Index: controlies/trunk/debian/changelog
===================================================================
--- controlies/trunk/debian/changelog	(nonexistent)
+++ controlies/trunk/debian/changelog	(revision 178)
@@ -0,0 +1,30 @@
+controlies (0.3-3) unstable; urgency=low
+
+  * Añade profesores al grupo teachers y alumnos al students
+
+ -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Tue, 31 May 2011 13:52:41 +0200
+
+controlies (0.3-1) unstable; urgency=low
+
+  * Terminado de implementar en web2py todo lo que había con twisted
+
+ -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Tue, 17 May 2011 13:08:40 +0200
+
+controlies (0.2-2) unstable; urgency=low
+
+  * Cambios en la configuración de apache: directorio en vez de vhost
+
+ -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Mon, 16 May 2011 14:23:55 +0200
+
+controlies (0.2-1) unstable; urgency=low
+
+  * Completando funcionalidades
+
+ -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Fri, 13 May 2011 14:37:17 +0200
+
+controlies (0.1-1) unstable; urgency=low
+
+  * First Debian package
+
+ -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Wed, 04 May 2011 19:20:55 +0200
+
Index: controlies/trunk/debian/links
===================================================================
--- controlies/trunk/debian/links	(nonexistent)
+++ controlies/trunk/debian/links	(revision 178)
@@ -0,0 +1 @@
+var/web2py/applications/controlies var/web2py/applications/init
Index: controlies/trunk/debian/dirs
===================================================================
--- controlies/trunk/debian/dirs	(nonexistent)
+++ controlies/trunk/debian/dirs	(revision 178)
@@ -0,0 +1,4 @@
+var/web2py
+etc/apache2/conf.d
+etc/ldap/ssl
+
Index: controlies/trunk/debian/postinst
===================================================================
--- controlies/trunk/debian/postinst	(nonexistent)
+++ controlies/trunk/debian/postinst	(revision 178)
@@ -0,0 +1,32 @@
+#!/bin/sh
+# postinst script for controlies
+#
+# see: dh_installdeb(1)
+
+set -e
+
+case "$1" in
+    configure)
+
+	chown -R  www-data:www-data /var/web2py
+    a2enmod ssl
+    a2enmod wsgi
+    a2ensite default-ssl
+
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
Index: controlies/trunk/debian/install
===================================================================
--- controlies/trunk/debian/install	(nonexistent)
+++ controlies/trunk/debian/install	(revision 178)
@@ -0,0 +1,6 @@
+applications var/web2py
+wsgihandler.py var/web2py
+subwsgihandler.py var/web2py
+VERSION var/web2py
+controlies-apache etc/apache2/conf.d
+applications/__init__.py var/web2py
Index: controlies/trunk/debian/control
===================================================================
--- controlies/trunk/debian/control	(nonexistent)
+++ controlies/trunk/debian/control	(revision 178)
@@ -0,0 +1,13 @@
+Source: controlies
+Section: python
+Priority: extra
+Maintainer: José L. Redrejo Rodríguez <jredrejo@debian.org>
+Build-Depends: debhelper (>= 7.0.50~)
+Standards-Version: 3.8.4
+
+Package: controlies
+Architecture: all
+Depends: ${shlibs:Depends}, ${misc:Depends}, python-gluon, python-ldap, python-dev, libapache2-mod-wsgi, libapache2-mod-python, libapache2-mod-gnutls, openssl, ssl-cert
+Description: Gestión de LDAP para un centro educativo
+ ControlIES gestiona cuentas de usuarios, grupos, aulas, departamentos,
+ distintos tipos de ordenadores, importación de Rayuela, etc.
Index: controlies/trunk/debian/copyright
===================================================================
--- controlies/trunk/debian/copyright	(nonexistent)
+++ controlies/trunk/debian/copyright	(revision 178)
@@ -0,0 +1,26 @@
+This work was packaged for Debian by:
+
+    José L. Redrejo Rodríguez <jredrejo@debian.org> on Tue, 29 Jun 2010 20:40:58 +0200
+
+Upstream Author(s):
+
+    Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+    Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
+
+Copyright:
+
+    Copyright (C) 2011  Manuel Mora Gordillo
+                        Francisco Mendez Palma
+
+License:
+
+    ControlIES is Licensed under the LGPL license version 3 
+    see "/usr/share/common-licenses/LGPL-3".
+
+The Debian packaging is:
+
+    Copyright (C) 2010 José L. Redrejo Rodríguez <jredrejo@debian.org>
+
+and is licensed under the GPL version 3,
+see "/usr/share/common-licenses/GPL-3".
+
Index: controlies/trunk/debian/rules
===================================================================
--- controlies/trunk/debian/rules	(nonexistent)
+++ controlies/trunk/debian/rules	(revision 178)
@@ -0,0 +1,8 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+%:
+	dh $@ 

Property changes on: controlies/trunk/debian/rules
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/debian/compat
===================================================================
--- controlies/trunk/debian/compat	(nonexistent)
+++ controlies/trunk/debian/compat	(revision 178)
@@ -0,0 +1 @@
+7
Index: controlies/trunk/applications/controlies/modules/Users.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Users.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Users.py	(revision 178)
@@ -0,0 +1,442 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:      ControlIES
+# Module:       Users.py
+# Purpose:      Users class
+# Language:     Python 2.5
+# Date:         7-Feb-2011.
+# Ver:          7-Feb-2011.
+# Author:       Manuel Mora Gordillo
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import ldap
+import logging
+import hashlib
+import base64
+from math import ceil
+from operator import itemgetter
+from Utils import Utils, LdapUtils
+
+class Users(object):
+
+    def __init__(self):
+        pass
+    
+    def __init__(self,ldap,type,name,surname,nif,user,password,password2,departments,classrooms):
+        self.ldap = ldap
+        self.type = type
+        self.name = name
+        self.surname = surname
+        self.nif = nif
+        self.user = user        
+        self.password = password
+        self.password2 = password2
+        self.departments = departments
+        self.classrooms = classrooms
+        if  self.departments.__class__.__name__ == 'str': self.departments=[departments]
+        if  self.classrooms.__class__.__name__ == 'str': self.classrooms=[classrooms]
+        
+        
+    def validation(self,action):
+        
+        if action == "add":
+            if self.type == "none":
+                return "type"
+        
+        if self.name == "":
+            return "name"
+
+        if self.surname == "":
+            return "surname"
+
+        if self.nif == "":
+            return "nif"
+
+        if self.user == "":
+            return "user"
+        
+        if action == "add":
+            if self.existsUsername():
+                return "userAlreadyExists"
+        
+            if self.password == "":
+                return "password"
+
+            if self.password2 == "":
+                return "password2"
+
+            if self.password != self.password2:
+                return "distinctPassword"
+                
+        elif action == "modify":            
+            if self.password == "" and self.password2 != "":
+                return "password"
+                                
+            if self.password != "" and self.password2 == "":
+                return "password2"
+
+            if self.password != "" and self.password2 != "" and self.password != self.password2:
+                return "distinctPassword"
+
+        return "OK"
+
+    def process(self,action):
+        if action == "add":
+            val = self.validation(action)
+            
+            if val != "OK":
+                return val
+            else:
+                response = self.add()
+                return response
+
+        if action == "modify":
+            val = self.validation(action)
+            
+            if val != "OK":
+                return val
+            else:
+                response = self.modify()
+                return response
+        
+            
+    def list(self,args):
+
+        filter = self.buildFilter(args)
+        search = self.ldap.search("ou=People",filter,["employeeNumber","uid","cn","uidnumber","gidnumber","homedirectory"])
+
+        # grid parameters
+        limit = int(args['rows'])
+        page = int(args['page'])
+        start = limit * page - limit
+        finish = start + limit;             
+
+        # sort by field
+        sortBy = args['sidx']
+        if sortBy == "uid":
+            sortBy = "id"
+
+        # reverse Sort
+        reverseSort = False
+        if args['sord'] == "asc":
+            reverseSort = True
+
+        # type of user (Teacher/Student)
+        try:
+            searchType = args['type']
+        except LookupError:
+            searchType = "none"
+
+        rows = []
+        for i in search:
+            
+            typeRow="Alumno"
+            userdata=i[0][1]
+            if userdata["homeDirectory"][0][0:14]=="/home/profesor":
+                typeRow="Profesor"
+            if not "employeeNumber" in userdata: userdata["employeeNumber"]=["0"]
+            if searchType == typeRow or searchType=="none":
+                row = {
+                    "id":userdata["uid"][0], 
+                    "cell":[typeRow, userdata["cn"][0], userdata["uid"][0], userdata["uidNumber"][0], userdata["gidNumber"][0], userdata["employeeNumber"][0]], 
+                    "type": typeRow,                    
+                    "cn":userdata["cn"][0],
+                    "uidNumber":userdata["uidNumber"][0],
+                    "gidNumber":userdata["gidNumber"][0],                
+                    "employeeNumber":userdata["employeeNumber"][0]
+                }
+                rows.append(row)
+                    
+        # grid parameters
+        if len(rows) > 0:
+            totalPages = ceil( len(rows) / int(limit) )
+        else:
+            totalPages = 0
+
+        if page > totalPages:
+            page = totalPages
+
+        # sort rows
+        result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
+
+        return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish] }
+
+
+    def buildFilter(self, args):
+        filter = "(&(uid=*)"
+        
+        try:
+            filter = filter + "(uid=*" + args['uid'] + "*)"
+        except LookupError:
+            pass
+
+        try:
+            filter = filter + "(cn=*" + args['cn'] + "*)"
+        except LookupError:
+            pass
+
+        try:
+            filter = filter + "(uidNumber=" + args['uidNumber'] + ")"
+        except LookupError:
+            pass
+
+        try:
+            filter = filter + "(gidNumber=" + args['gidNumber'] + ")"
+        except LookupError:
+            pass
+
+        try:
+            filter = filter + "(employeeNumber=*" + args['employeeNumber'] + "*)"
+        except LookupError:
+            pass
+
+        filter = filter + ")"
+        return filter
+
+
+    def add(self):
+
+        maxID = str(LdapUtils.getMaxID(self.ldap))
+        passwd = '{SSHA}' + Utils.encrypt(self.password)
+        
+        attr = [
+        ('objectclass', ['top','posixAccount','shadowAccount','person','inetOrgPerson']),
+        ('uid', [self.user]),
+        ('cn', [self.name] ),
+        ('employeenumber', [self.nif] ),        
+        ('sn', [self.surname] ),
+        ('uidnumber', [maxID] ),
+        ('gidnumber', [maxID] ),    
+        ('loginshell', ['/bin/bash'] ),
+        ('homeDirectory', [LdapUtils.whatHome(self.type) + self.user] ),
+        #('jpegPhoto', ['jpegPhoto'] ),     
+        ('userpassword', [passwd])
+        ]
+
+        self.ldap.add("uid="+self.user+",ou=People", attr)
+
+        # Add private group
+        attr = [
+        ('objectclass', ['top','posixGroup','lisGroup']),
+        ('grouptype', ['private']), 
+        ('gidnumber', [maxID] ),    
+        ('cn', [self.user] ),
+        ('description', [self.name+' personal group'] )
+        ]
+
+        self.ldap.add("cn="+self.user+",ou=Group", attr)
+        
+        
+        # Add selected groups   
+        attr = [
+        (ldap.MOD_ADD, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
+        (ldap.MOD_ADD, 'memberUid', [self.user] )
+        ]
+
+                    
+        for n in self.departments:
+            self.ldap.modify('cn='+ n +',ou=Group', attr)
+
+        for n in self.classrooms:
+            self.ldap.modify('cn='+ n +',ou=Group', attr)
+            
+        if self.type=='teacher':
+            self.ldap.modify('cn=teachers,ou=Group', attr)
+        elif self.type=='student':
+            self.ldap.modify('cn=students,ou=Group', attr)
+                        
+        return "OK"
+            
+            
+    def modify(self):
+        attr = [
+        (ldap.MOD_REPLACE, 'cn', [self.name] ),
+        (ldap.MOD_REPLACE, 'employeenumber', [self.nif] ),      
+        (ldap.MOD_REPLACE, 'sn', [self.surname] )       
+        ]
+
+        if self.password!="":
+            passwd = '{SSHA}' + Utils.encrypt(self.password)
+            attr.append((ldap.MOD_REPLACE, 'userpassword', [passwd]))
+        
+        self.ldap.modify("uid="+self.user+",ou=People", attr)
+
+        # Get current groups
+        currentGroups = self.getUserGroups()
+        
+        groupsDepartments = Utils.cmpLists(currentGroups["departments"], self.departments)
+        groupsClassrooms = Utils.cmpLists(currentGroups["classrooms"], self.classrooms)     
+        
+        # Delete unselected groups      
+        deleteDepartments = groupsDepartments["onlyInList1"]
+        deleteClassrooms = groupsClassrooms["onlyInList1"]
+        
+        attr = [
+        (ldap.MOD_DELETE, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
+        (ldap.MOD_DELETE, 'memberUid', [self.user] )
+        ]
+
+        for d in deleteDepartments:
+            self.ldap.modify('cn='+ d +',ou=Group', attr)
+
+        for d in deleteClassrooms:
+            self.ldap.modify('cn='+ d +',ou=Group', attr)
+                    
+        # Add selected groups   
+        newDepartments = groupsDepartments["onlyInList2"]
+        newClassrooms = groupsClassrooms["onlyInList2"]
+        
+        attr = [
+        (ldap.MOD_ADD, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
+        (ldap.MOD_ADD, 'memberUid', [self.user] )
+        ]
+
+        for n in newDepartments:
+            self.ldap.modify('cn='+ n +',ou=Group', attr)
+
+        for n in newClassrooms:
+            self.ldap.modify('cn='+ n +',ou=Group', attr)
+                    
+        return "OK"
+
+
+    def delete(self):
+        
+        self.ldap.delete('uid='+ self.user +',ou=People')
+        self.ldap.delete("cn="+self.user+",ou=Group")
+        
+        # Delete unselected groups      
+        currentGroups = self.getUserGroups()
+
+        attr = [
+        (ldap.MOD_DELETE, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
+        (ldap.MOD_DELETE, 'memberUid', [self.user] )
+        ]
+
+        for d in currentGroups["departments"]:
+            self.ldap.modify('cn='+ d +',ou=Group', attr)
+
+        for d in currentGroups["classrooms"]:
+            self.ldap.modify('cn='+ d +',ou=Group', attr)
+            
+        return "OK"
+
+
+    def existsUsername(self):
+        
+        result = self.ldap.search("ou=People","uid="+self.user,["uid"])
+
+        if len(result) > 0:
+            return True
+        
+        return False
+
+
+    def searchNewUsername(self):
+
+        result = self.ldap.search("ou=People","uid=*",["uid"])
+        users = []
+        for i in result:
+            users.append(i[0][1]['uid'][0])
+
+        n = self.name.lower().split(" ")
+        
+        username = ""
+        if len(n) > 0:
+            username = n[0][0:1]
+
+        if len(n) > 1:
+             username = username + n[1]
+             
+        if len(n) > 2:
+            username = username + n[2][0:1]
+
+        num = 1
+        searching = username + "0" + str(num)
+
+        found = True
+        while found:
+            try:
+                users.index(searching)
+                num = num + 1
+                
+                if len(str(num)) == 1:
+                    searching = username + "0" + str(num)
+                else:
+                    searching = username + str(num)
+            except:
+                found = False
+                
+        return searching
+
+    def getUserGroups(self):
+        result = self.ldap.search("ou=Group","(&(memberUid="+self.user+")(|(groupType=school_department)(groupType=school_class)))",["cn","groupType"])
+        
+        departments = []
+        classrooms = []     
+        for g in result:
+            if g[0][1]["groupType"][0] == "school_department":
+                departments.append(g[0][1]["cn"][0])
+            elif g[0][1]["groupType"][0] == "school_class":
+                classrooms.append(g[0][1]["cn"][0])
+        
+        departments.sort()
+        classrooms.sort()
+        return { "departments":departments, "classrooms":classrooms }
+        
+    def getUserData(self):
+        self.getUserGroups()
+        result = self.ldap.search("ou=People","uid="+self.user,["uid","cn","sn","employeenumber","homedirectory","jpegPhoto"])
+        
+        if len(result) == 0:
+            return { "user":"", "name":"", "surname":"", "nif":"", "photo":"", "type":"", "groups":[] }
+        
+        type = "student"
+        if result[0][0][1]["homeDirectory"][0][0:14]=="/home/profesor":
+            type = "teacher"
+        
+        try:
+            photo = base64.b64encode(result[0][0][1]["jpegPhoto"][0])
+        except:
+            photo = ""
+        userdata=result[0][0][1]  
+        if "employeeNumber" not in userdata: userdata["employeeNumber"]=["0"]
+        dataUser = {
+            "user":userdata["uid"][0],
+            "name":userdata["cn"][0],
+            "surname":userdata["sn"][0],
+            "nif":userdata["employeeNumber"][0],
+            "photo":photo,
+            "type":type,
+            "groups":self.getUserGroups()
+         }
+         
+        return dataUser
+
+    def getUserPhoto(self):
+        self.getUserGroups()
+        result = self.ldap.search("ou=People","uid="+self.user,["jpegPhoto"])
+                
+        try:
+            photo = base64.b64encode(result[0][0][1]["jpegPhoto"][0])
+        except:
+            photo = ""
+            
+        dataUser = {
+            "photo":photo
+         }
+         
+        return dataUser
Index: controlies/trunk/applications/controlies/modules/Hosts.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Hosts.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Hosts.py	(revision 178)
@@ -0,0 +1,451 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    Hosts.py
+# Purpose:     Hosts class
+# Language:    Python 2.5
+# Date:        7-Feb-2011.
+# Ver:        7-Feb-2011.
+# Author:   Manuel Mora Gordillo
+#           Francisco Mendez Palma
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#               2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import ldap
+import logging
+import time
+from math import ceil
+from operator import itemgetter
+
+class Hosts(object):
+
+    def __init__(self):
+        pass
+    
+    def __init__(self,ldap,name,ip,mac,group,type):
+        self.ldap = ldap
+        self.name = name
+        self.ip = ip
+        self.mac = mac
+        self.group = group 
+        self.type = type
+    
+    def getName (self):
+        return self.mac 
+                
+    def validation(self,action):
+
+        if action == "add":
+            if self.type == "none":
+                return "type"
+        
+        if self.name == "":
+            return "name"
+            
+        if self.type <> 'thinclient':
+            if self.ip == "":
+                return "ip"
+
+        if self.mac == "":
+            return "mac"
+            
+        if self.type =="thinclient":
+            if self.group == "":
+                return "group"
+
+        if self.type == "":
+            return "type"
+        
+        if action == "add":
+            if self.existsHostname():
+                return "hostAlreadyExists"
+        
+            # thinclients no requieren ip, la cogen dinamicamente en el aula
+            if self.type <> "thinclient":
+                if self.existsIP():
+                    return "ipAlreadyExists"
+            #controlar overflow en nodos        
+            if self.groupOverflow(300):
+                return "groupOverflow"
+
+            if self.existsMAC():
+                return "macAlreadyExists"
+
+        elif action == "modify":        
+            if self.groupOverflow(300):
+                return "groupOverflow"
+
+            if self.existsMAC():
+                return "macAlreadyExists"   
+
+        return "OK"     
+        
+    def process(self,action):
+        if action == "add":
+            val = self.validation(action)
+            
+            if val != "OK":
+                return val
+            else:
+                response = self.add()
+                return response
+
+        if action == "modify":
+            val = self.validation(action)
+            
+            if val != "OK":
+                return val
+            else:
+                response = self.modify()
+                return response
+                
+        if action == "delete":
+            response = self.delete()
+            return response
+        
+        if action == "list":
+            response = self.list();
+            return response 
+            
+    def list(self,args):
+        
+        #from Plugins.LdapConnection import LdapConnection
+
+        #l = LdapConnection("172.23.36.5",'cn=admin,ou=People,dc=instituto,dc=extremadura,dc=es',"Sta1987teleco")
+        #l.connect()
+        
+        # grid parameters
+        limit = int(args['rows'])
+        page = int(args['page'])
+        start = limit * page - limit
+        finish = start + limit;             
+
+        # sort by field
+        sortBy = args['sidx']
+        #if sortBy == "uid":
+            #sortBy = "id"
+
+        # reverse Sort
+        reverseSort = False
+        if args['sord'] == "asc":
+            reverseSort = True
+        
+        #Distinguimos entre hosts ltsp, workstations y portatiles
+        type = args['type']
+        
+                        
+        if type == "ltsp":
+            # Obtengo todos los elementos del nodo hosts
+            #search = l.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])
+            #filter = self.buildFilter(args)        
+            search = self.ldap.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])     
+            
+            # triplets que contiene los nombres de los ltsp-servers
+            hostnames = self.getLTSPServers()
+                            
+            # Ahora tengo que quedarme con los elementos de search que estan en hostnames: los que son ltsp
+            resultado=list()
+            for element in search:
+                if element[0][1]["cn"][0] in hostnames:
+                    resultado.append(element)
+            
+            search = resultado 
+
+            rows = []
+            for i in search:
+                row = {
+                    "id":i[0][1]["cn"][0], 
+                    "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]],
+                    "cn":i[0][1]["cn"][0],
+                    "ipHostNumber":i[0][1]["ipHostNumber"][0],
+                    "macAddress":i[0][1]["macAddress"][0]
+                }
+                #row = { "cn":i[0][0], "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]]}
+                rows.append(row)
+                
+            if len(rows) > 0:
+                totalPages = ceil( len(rows) / int(limit) )
+            else:
+                totalPages = 0
+            if page > totalPages:
+                page = totalPages
+
+            result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
+            return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish]  }       
+                
+        elif type == "thinclient":
+            search = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","cn=*",["cn","dhcpHWAddress"])
+            filter="(|(dhcpOption=*subnet*)(dhcpOption=*log*))"
+            
+            rows = []
+            
+            # esto hay que cambiarlo: tenemos 4 groups en thinclientes
+            for i in search[6:len(search)]:
+                    nodeinfo=i[0][0].replace ("cn=","").split(",")
+                    row = {
+                        "id":i[0][1]["cn"][0], 
+                        "cell":[i[0][1]["cn"][0], i[0][1]["dhcpHWAddress"][0].replace("ethernet ",""), nodeinfo[1]],
+                        "cn":i[0][1]["cn"][0],
+                        "dhcpHWAddress":i[0][1]["dhcpHWAddress"][0],
+                        "groupName":i[0][1]["dhcpHWAddress"][0]
+                    }                       
+                    rows.append(row)
+            if len(rows) > 0:
+                totalPages = ceil( len(rows) / int(limit) )
+            else:
+                totalPages = 0
+            if page > totalPages:
+                page = totalPages
+                
+            result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
+            return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish] }                    
+        
+        elif type == "workstation":
+            # Obtengo todos los elementos del nodo hosts
+            #search = l.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])
+            search = self.ldap.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])                 
+            # triplets que contiene los nombres de las workstations
+            #triplets = l.search("ou=Netgroup","cn=workstation-hosts",["nisNetgroupTriple"])
+            triplets = self.ldap.search("ou=Netgroup","cn=workstation-hosts",["nisNetgroupTriple"])
+            triplets = triplets [0][0][1]["nisNetgroupTriple"]
+            hostnames=list()
+            
+            # obtengo lista de nombres de los hosts workstation
+            for node in triplets:
+                name = node.replace(",-,-)","").replace("(","")
+                hostnames.append(name)
+                
+            # Ahora tengo que quedarme con los elementos de search que estan en hostnames
+            resultado=list()
+            for element in search:
+                if element[0][1]["cn"][0] in hostnames:
+                    resultado.append(element)
+            
+            search = resultado 
+
+            rows = []
+            for i in search:
+                row = {
+                    "id":i[0][1]["cn"][0], 
+                    "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]],
+                    "cn":i[0][1]["cn"][0],
+                    "ipHostNumber":i[0][1]["ipHostNumber"][0],
+                    "macAddress":i[0][1]["macAddress"][0]
+                }                       
+                #row = { "cn":i[0][0], "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]]}
+                rows.append(row)
+
+            if len(rows) > 0:
+                totalPages = ceil( len(rows) / int(limit) )
+            else:
+                totalPages = 0
+            if page > totalPages:
+                page = totalPages                   
+
+            result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
+            return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish] }        
+
+    def add(self):
+        if self.type=="thinclient":
+            attr = [
+            ('objectclass', ['top','dhcpHost']),
+            ('cn', [self.name] ),
+            ('dhcpStatements', ['filename "/var/lib/tftpboot/ltsp/i386/pxelinux.0"'] ), 
+            ('dhcpHWAddress', ['ethernet ' + self.mac] )
+            ]
+            
+            self.ldap.add("cn="+self.name +",cn="+self.group+",cn=THINCLIENTS,cn=DHCP Config", attr)
+                        
+        return "OK"
+        
+    def modify(self):
+        attr = [
+        (ldap.MOD_REPLACE, 'cn', [self.name] ),
+        (ldap.MOD_REPLACE, 'dhcpHWAddress', ["ethernet "+ self.mac])
+        ]
+            
+        self.ldap.modify("cn="+self.name+",cn="+self.group +",cn=THINCLIENTS,cn=DHCP Config", attr)
+
+        return "OK"
+
+    def delete(self):
+        if self.type=="thinclient":
+            self.ldap.delete('cn='+ self.name +',cn=' +self.group +',cn=THINCLIENTS,cn=DHCP Config')
+
+        return "OK"     
+
+    def wakeup(self):
+        from Plugins import NetworkUtils
+        NetworkUtils.startup(self.mac)
+        
+    def groupOverflow(self,overflow):
+        if self.type == 'thinclient':
+            search = self.ldap.search("cn=" + self.group +",cn=THINCLIENTS,cn=DHCP Config","cn=*",["cn"])
+            if len(search)-2 >= overflow:
+                return True
+                
+        return False
+            
+    def existsHostname(self):
+        
+        if self.type == 'thinclient':
+            result = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","cn="+self.name,["cn"])
+        else:
+            result = self.ldap.search("ou=hosts","cn="+self.name,["cn"])
+        
+        if len(result) > 0:
+            return True
+        
+        return False
+        
+    def existsMAC(self):
+        # Compruebo con las macs de la rama hosts
+        if self.type == 'thinclient':
+            result = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","dhcpHWAddress=*",["dhcpHWAddress"])
+            for i in range (0, len(result) - 1):
+                if result [i][0][1]['dhcpHWAddress'][0].replace ("ethernet ", "") == self.mac:
+                    return True
+        else:
+            result = self.ldap.search("ou=hosts","macAddress="+self.mac,["macAddress"])
+
+            if len(result) > 0:
+                return True
+        
+        return False
+        
+    def existsIP (self):
+        # Cojo las ips de la rama hosts -> arpa -> in-addr
+        result = self.ldap.search ("dc=23,dc=172,dc=in-addr,dc=arpa,ou=hosts", "dc=*",["associatedDomain"])
+        
+        myIP = self.ip.split (".")
+
+        for i in range (0, len (result) -1):
+            reverseIP = result [i][0][1]['associatedDomain'][0].replace (".in-addr.arpa","").split(".")
+            reverseIP.reverse() 
+            if myIP == reverseIP:
+                return True
+        
+        return False
+        
+    def getThinclientGroups (self):
+
+        groups = []
+        search = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","cn=group*",["cn"])
+        
+        for g in search:
+            groups.append (g[0][1]["cn"][0])
+            
+        return { "groups":groups }
+        
+    def getInternalGroups (self):
+        
+        groups = []
+        search = self.ldap.search("cn=INTERNAL,cn=DHCP Config","cn=group*",["cn"])
+        
+        for g in search:
+            groups.append (g[0][1]["cn"][0])
+            
+        return { "groups":groups }      
+        
+    def getHostData(self):       
+        result1 = self.ldap.search("cn=DHCP Config","cn="+self.name,["cn","dhcpHWAddress"])
+        result2 = self.ldap.search(" ou=hosts","dc="+self.name,["aRecord"])   
+        dataHost = {
+            "cn":self.name,
+            "group":self.group,
+            "mac":"",
+            "ip":""
+        }
+        if len(result1)==1:
+            dataHost["mac"]=result1[0][0][1]["dhcpHWAddress"][0].replace("ethernet ","")
+        if len(result2)==1:
+            dataHost["ip"]=result2[0][0][1]["aRecord"][0]
+         
+        return dataHost     
+        
+        
+    def getLTSPServers (self):
+        triplets = self.ldap.search("ou=Netgroup","cn=ltsp-server-hosts",["nisNetgroupTriple"])
+        triplets = triplets [0][0][1]["nisNetgroupTriple"]
+        hostnames=list()
+            
+        for node in triplets:
+            name = node.replace(",-,-)","").replace("(","")
+            hostnames.append(name)
+        hostnames.sort()
+        return hostnames
+
+
+    def getLTSPStatus (self):
+        from Utils.avahiClient import avahiClient
+        import threading
+        
+        a = avahiClient()  
+        a.start() 
+        time.sleep(1000)    
+        a.cancel()      
+        names = a.getList()
+        print names
+        
+        """a = avahiClient()
+        time.sleep(1000)        
+        names = a.getList()
+        print names
+        a.kill()"""
+        return names
+
+#   def wakeup(self):
+#       from twisted.internet.task import LoopingCall
+#       from twisted.internet import defer
+#       from Plugins import NetworkUtils
+#       NetworkUtils.startup(self.mac)
+        
+
+# Encender el equipo
+#def wakeup(self):
+#        macs=[]
+#        for i in self.targets:
+#            mac=Configs.MonitorConfigs.GetMAC(i)
+#            if mac !='':                
+#                macs.append(mac)                
+#        Actions.sendWOLBurst(macs, 2)
+
+#Apagar el equipo
+#    def sleep(self):
+#        self.usersCommand(Desktop.sleep)
+
+#def sendWOLBurst(macs,throttle):    
+#    from twisted.internet.task import LoopingCall    
+#    from twisted.internet import defer    
+#    if not macs:
+#        return defer.succeed(None)
+#    d = defer.Deferred()
+#    work = list(macs)
+#    def sendNext():
+#        if not work:
+#            loop.stop()
+#            d.callback(None)
+#            return defer.succeed(None)
+#        next = work.pop(0)
+#
+#        #subprocess.Popen(['wakeonlan',next ])
+#        #subprocess.Popen(['wakeonlan','-i','192.168.0.255',next ])
+#        NetworkUtils.startup(next)
+#                   
+#        return None
+#    loop = LoopingCall(sendNext)
+#    loop.start(throttle)
+#    return d

Property changes on: controlies/trunk/applications/controlies/modules/Hosts.py
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/modules/Security.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Security.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Security.py	(revision 178)
@@ -0,0 +1,60 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    Security.py
+# Purpose:     Authentication with ldap server
+# Language:    Python 2.5
+# Date:        7-Feb-2011.
+# Ver:        7-Feb-2011.
+# Author:    Manuel Mora Gordillo
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from Plugins.LdapConnection import LdapConnection
+
+class Security(object):
+
+	def __init__(self,host,user,password):
+		self.host = host
+		self.user = user
+		self.password = password
+
+
+	def validation(self):
+		if self.host == "":
+			return "host"
+
+		if self.user == "":
+			return "user"
+
+		if self.password == "":
+			return "password"
+
+		return "OK"
+
+	def process(self):
+		val = self.validation()
+        	
+		if val != "OK":
+			return val
+
+		auth = self.authentication()
+		return auth
+
+	def authentication(self):
+		l = LdapConnection(self.host,'cn='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es',self.password)
+		ret = l.connect()
+
+		return ret
Index: controlies/trunk/applications/controlies/modules/Utils/avahiClient.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Utils/avahiClient.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Utils/avahiClient.py	(revision 178)
@@ -0,0 +1,104 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:		ControlIES
+# Module:    	avahiClient.py
+# Purpose:		Avahi client to detect ltsp servers
+# Language:		Python 2.5
+# Date:			27-Feb-2011.
+# Ver:			27-Feb-2011.
+# Author:		José Luis Redrejo Rodriguez
+# Copyright:    2011 - José Luis Redrejo Rodriguez <jredrejo @no-spam@ debian.org>
+# Modified by:  Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+try:
+    import dbus
+    if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
+		import dbus.glib		
+except ImportError:
+    dbus = None
+
+if dbus:
+    try:
+        import avahi
+    except ImportError:
+        avahi = None
+else:
+    avahi = None
+
+from twisted.internet import defer, threads
+from twisted.internet import glib2reactor
+import logging
+glib2reactor.install()
+
+class avahiClient():
+
+    def __init__(self, type):
+		self._callbacks = {'new-service':  [], 'remove-service': [] }
+		# initialize dbus stuff needed for discovery
+								   
+		self.bus = dbus.SystemBus()
+		
+		avahi_bus = self.bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER)
+		self.server = dbus.Interface(avahi_bus, avahi.DBUS_INTERFACE_SERVER)
+		
+		#stype = '_workstation._tcp'
+		#stype = '_controlaula._tcp'
+
+		stype = type
+
+		domain = 'local'
+		self._plugged = {}
+
+		avahi_browser = self.server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, stype, domain, dbus.UInt32(0))
+		obj = self.bus.get_object(avahi.DBUS_NAME, avahi_browser)
+		self.browser = dbus.Interface(obj, avahi.DBUS_INTERFACE_SERVICE_BROWSER)	
+
+    def start(self):
+		self.browser.connect_to_signal('ItemNew', self.new_service)
+		self.browser.connect_to_signal('ItemRemove', self.remove_service)
+		
+    def stop(self):
+        self.bus.close()
+
+    def new_service(self, interface, protocol, name, type, domain, flags):
+		
+		def resolve_service_reply(*service):
+			address, port = service[-4:-2]
+			name = unicode(service[2])
+			for cb in self._callbacks['new-service']:
+				self._plugged[name] = (address,port)				
+				cb(self,name, address, port)
+				
+		def resolve_service_error(exception):
+			logging.getLogger().debug('could not resolve daap service %s %s: %s' % (name, domain, exception))			
+			#self.warning('could not resolve daap service %s %s: %s' % (name, domain, exception))
+
+		self.server.ResolveService(interface, protocol, name, type, domain,
+				avahi.PROTO_UNSPEC, dbus.UInt32(0),
+				reply_handler=resolve_service_reply,
+				error_handler=resolve_service_error)
+
+    def remove_service(self, interface, protocol, name, type, domain,server):
+        address, port = self._plugged[name]
+        for cb in self._callbacks['remove-service']:
+            cb(self,name, address, port)
+
+
+    def add_callback(self, sig_name, callback):
+        self._callbacks[sig_name].append(callback)
+
+    def remove_callback(self, sig_name, callback):
+        self._callback[sig_name].remove(callback)
Index: controlies/trunk/applications/controlies/modules/Utils/Configs.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Utils/Configs.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Utils/Configs.py	(revision 178)
@@ -0,0 +1,3 @@
+LOG_FILENAME= '/tmp/controlies.log'
+
+
Index: controlies/trunk/applications/controlies/modules/Utils/__init__.py
===================================================================
Index: controlies/trunk/applications/controlies/modules/Utils/Utils.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Utils/Utils.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Utils/Utils.py	(revision 178)
@@ -0,0 +1,63 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    Groups.py
+# Purpose:     Groups class
+# Language:    Python 2.5
+# Date:        18-Feb-2011.
+# Ver:        18-Feb-2011.
+# Author:	Manuel Mora Gordillo
+#			Francisco Mendez Palma
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+def cmpLists(list1, list2):
+	
+	onlyInList1 = set(list1).difference(set(list2))
+	onlyInList2 = set(list2).difference(set(list1))
+	inTwoLists = set(list1) & set(list2)
+
+	return { 'onlyInList1':onlyInList1, 'onlyInList2':onlyInList2, 'inTwoLists':inTwoLists }
+
+
+def parseToLdap(string):
+	string = string.replace(" ","_")
+	string = string.replace("á","a").replace("é","e").replace("í","o").replace("ó","o").replace("ú","u")
+	string = string.replace("Á","A").replace("É","E").replace("Í","I").replace("Ó","O").replace("Ú","U")	
+	string = string.replace("ñ","n").replace("Ñ","N")
+				
+	return string
+
+def generate_salt():
+	# Salt can be any length, but not more than about 37 characters
+	# because of limitations of the binascii module.
+	# 7 is what Netscape's example used and should be enough.
+	# All 256 characters are available.
+	from random import randrange
+	
+	salt = ''
+	for n in range(7):
+		salt += chr(randrange(256))
+	return salt
+
+def encrypt(password):
+	import sha
+	from binascii import b2a_base64
+	
+	password = str(password)
+	salt = generate_salt()
+ 
+	return b2a_base64(sha.new(password + salt).digest() + salt)[:-1]
Index: controlies/trunk/applications/controlies/modules/Utils/LdapUtils.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Utils/LdapUtils.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Utils/LdapUtils.py	(revision 178)
@@ -0,0 +1,82 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    LdapUtils.py
+# Purpose:     Ldap utils
+# Language:    Python 2.5
+# Date:        18-Feb-2011.
+# Ver:        18-Feb-2011.
+# Author:	Manuel Mora Gordillo
+#			Francisco Mendez Palma
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+# Get all users
+def getAllUsers(ldap):
+	result = ldap.search("ou=People","uid=*",["uid","cn"])
+
+	rows = []
+	for u in result:
+		rows.append([u[0][1]['uid'][0] , u[0][1]['cn'][0] ]);
+
+	return rows
+
+
+# Get all groups classified by type
+def getAllGroups(ldap):
+	result = ldap.search("ou=Group","(|(groupType=school_department)(groupType=school_class))",["cn","groupType"])
+	
+	departments = []
+	classrooms = []		
+	for g in result:
+		if g[0][1]["groupType"][0] == "school_department":
+			departments.append(g[0][1]["cn"][0])
+		elif g[0][1]["groupType"][0] == "school_class":
+			classrooms.append(g[0][1]["cn"][0])
+	
+	departments.sort()
+	classrooms.sort()
+	
+	return { "departments":departments, "classrooms":classrooms }
+
+
+# Get the max ID of the groups and users
+def getMaxID(ldap): 
+	result = ldap.search("ou=Group","cn=*",["gidNumber"])		
+	
+	numbers = []
+	for i in result:
+		numbers.append(int(i[0][1]['gidNumber'][0]))
+
+	result = ldap.search("ou=People","uid=*",["gidNumber","uidNumber"])		
+	for i in result:
+		numbers.append(int(i[0][1]['gidNumber'][0]))
+		numbers.append(int(i[0][1]['uidNumber'][0]))
+
+	numbers.sort()		
+	
+	maxID = 1		
+	if len(numbers) > 0:
+		maxID = numbers[len(numbers)-1] + 1
+
+	return maxID
+
+def whatHome(type):
+	
+	if type == "teacher":
+		return "/home/profesor/"
+	else:
+		return "/home/alumnos/"
Index: controlies/trunk/applications/controlies/modules/NetworkUtils.py
===================================================================
--- controlies/trunk/applications/controlies/modules/NetworkUtils.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/NetworkUtils.py	(revision 178)
@@ -0,0 +1,305 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     Controlaula
+# Module:     NetworkUtils.py
+# Purpose:     Several network utilities to be used in Python
+# Language:    Python 2.5
+# Date:        17-Jan-2010.
+# Ver:        17-Jan-2010.
+# Author:    José L. Redrejo Rodríguez
+# Copyright:   2009 - José L. Redrejo Rodríguez    <jredrejo @nospam@ debian.org>
+#
+# ControlAula is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlAula is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+
+import array,fcntl,socket,struct,os,re
+import logging,subprocess
+
+gateway='0'
+ltspGateway='0'
+essid=''
+bssid=''
+IFNAMSIZE = 16
+IW_ESSID_MAX_SIZE = 16
+SIOCGIWESSID  = 0x8B1B
+SIOCGIWAP     = 0x8B15
+
+def get_ip_address(ifname):
+    """Returns the ip address of the interface ifname"""
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    try:
+        ip= socket.inet_ntoa(fcntl.ioctl(
+            s.fileno(),
+            0x8915,  # SIOCGIFADDR
+            struct.pack('256s', ifname[:15]) )[20:24]
+            )
+    except:
+        ip=''
+    return ip
+
+def get_ip_inet_address(connection_ip='198.41.0.4'):
+    """Returns the ip address of the interface used to connect to the given ip
+    
+    198.41.0.4 is a DNS ROOT Server, so it's the default value to connect to Internet
+    """
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)   
+    try: 
+        s.connect((connection_ip, 0))
+        inet_address= s.getsockname()[0]
+    except:
+        inet_address=''
+    s.close()
+    logging.getLogger().debug("Inet Address:" + inet_address)
+    return inet_address 
+
+
+def get_inet_HwAddr(connection_ip='192.168.0.254'):
+    """Returns the mac address of the interface used to connect to the given ip"""
+    interfaces=all_interfaces()
+    rightIP=get_ip_inet_address(connection_ip)
+    mac=''
+    ifname=''
+    for i in interfaces:
+        if rightIP== get_ip_address(i[0]):
+            ifname=i[0]
+            break
+    if ifname !='':
+        mac=get_HwAddr(ifname)
+        
+    return mac
+        
+
+
+def get_HwAddr(ifname):
+    """Returns the mac of the ifname network card"""
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', ifname[:15]))
+    try:
+        mac= ''.join(['%02x:' % ord(char) for char in info[18:24]])[:-1]
+    except:
+        mac=''
+    
+    return mac
+
+
+def getWirelessNICnames():
+    """ return list of  wireless device names   """
+    device = re.compile('[a-z]{3,4}[0-9]') 
+    ifnames = []
+    
+    f = open('/proc/net/wireless', 'r')
+    data = f.readlines()
+    for line in data:
+        try:
+            ifnames.append(device.search(line).group())
+        except AttributeError:
+            pass 
+    
+    return ifnames
+
+
+def all_interfaces():
+    """Returns all the available network interfaces in a linux machine"""
+    max_possible = 128  # arbitrary. raise if needed.
+    bytes = max_possible * 32
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    names = array.array('B', '\0' * bytes)
+    outbytes = struct.unpack('iL', fcntl.ioctl( s.fileno(), 0x8912,  struct.pack('iL', bytes, names.buffer_info()[0])    ))[0]
+    namestr = names.tostring()
+    #return [namestr[i:i+32].split('\0', 1)[0] for i in range(0, outbytes, 32)]
+    lst = []
+    arch64=(os.uname()[4]=='x86_64')
+    if arch64:
+        totalStruct=40
+    else:
+        totalStruct=32
+    for i in range(0, outbytes, totalStruct):
+        if arch64:
+            name = namestr[i:i+16].split('\0', 1)[0]
+        else:
+            name = namestr[i:i+32].split('\0', 1)[0]
+        ip   = namestr[i+20:i+24]
+        lst.append((name, socket.inet_ntoa(ip)))
+
+
+    return lst
+
+def getESSID( ifname):
+
+    sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    essid = ""
+    
+    buff = array.array('c', '\0'*32)
+    caddr_t, length = buff.buffer_info()
+    s = struct.pack('Pi', caddr_t, length)
+       
+    buff2 = IFNAMSIZE-len(ifname)
+    ifreq = ifname + '\0'*buff2
+    ifreq = ifreq + s                  
+    try:
+        result = fcntl.ioctl(sockfd.fileno(), SIOCGIWESSID, ifreq)
+        i=0
+        result=result[16:]
+    except IOError, (i, e):
+        i=i
+        result=e
+            
+    if i > 0:
+        return (i, result)
+    str = buff.tostring()
+    return (0,str.strip('\x00'))
+
+
+def getHostName():
+    return socket.gethostname()
+
+def getFreeTCPPort():
+    """Returns a random free port provided by the Operative System"""
+    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+    sock.bind(('localhost', 0))
+    newPort= sock.getsockname()[1]
+    sock.close()
+    return newPort
+
+
+def getWirelessData():
+    global essid
+    global bssid
+    wifiNICs=getWirelessNICnames()
+    if len(wifiNICs)>0:
+        for i in wifiNICs:
+            value,nessid=getESSID(i)
+            if value==0:
+                essid=nessid
+                value2,nbssid=getAPaddr(i)
+                if value2==0:
+                    bssid=nbssid    
+
+def getAPaddr(ifname):
+    sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    
+    buff = array.array('c', '\0'*32)
+    caddr_t, length = buff.buffer_info()
+    s = struct.pack('Pi', caddr_t, length)
+        
+
+    buff2 = IFNAMSIZE-len(ifname)
+    ifreq = ifname + '\0'*buff2
+    ifreq = ifreq + s                  
+    try:
+        result = fcntl.ioctl(sockfd.fileno(), SIOCGIWAP, ifreq)
+        i=0
+        result=result[16:]
+    except IOError, (i, e):
+        i=i
+        result=e
+                                  
+                                  
+    if i > 0:
+        return (i, result)
+    else:
+        mac_addr = struct.unpack('xxBBBBBB',result[:8])
+        return (0,"%02X:%02X:%02X:%02X:%02X:%02X" % mac_addr)
+    
+def scan_server(address, port): 
+    """Returns true if a port is open at address, or false otherwise"""
+    s = socket.socket() 
+    #print "Attempting to connect to %s on port %s." %(address, port) 
+    try: 
+        s.connect((address, port)) 
+        #print "Connected to server %s on port %s." %(address, port) 
+        s.close()
+        return True 
+    except socket.error, e: 
+        logging.getLogger().debug("Connecting to %s on port %s failed with the following error: %s" %(address, port, e))
+        return False
+
+
+def getUsableTCPPort(address,port):
+    """Returns the first free port between port and port +10"""
+    freeport=port
+    for x in range(port,port+10): 
+        check = scan_server(address, x) 
+        if check==False :
+            freeport=x
+            break
+    
+    
+    return freeport
+
+
+def startup(address):
+
+    addr_byte = address.split(':')
+    hw_addr = struct.pack('BBBBBB', int(addr_byte[0], 16),
+      int(addr_byte[1], 16),
+      int(addr_byte[2], 16),
+      int(addr_byte[3], 16),
+      int(addr_byte[4], 16),
+      int(addr_byte[5], 16))
+
+    msg = '\xff' * 6 + hw_addr * 16
+    
+    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
+    try:
+        s.sendto(msg, ('<broadcast>', 9))
+        s.sendto(msg, ('<broadcast>', 7))
+        s.sendto(msg, ('192.168.0.255', 9))
+        s.sendto(msg, ('192.168.0.255', 7))   
+    except:
+        s.sendto(msg, ('<broadcast>', 2000))
+        s.sendto(msg, ('192.168.0.255', 2000))
+    s.close()
+
+def defaultGW():
+    global gateway
+    if gateway=='0':
+        try:
+            s=subprocess.Popen('/sbin/route -n|grep "0.0.0.0"|grep UG',shell=True,stdout=subprocess.PIPE).communicate()[0]
+            gateway=s.splitlines()[0].split()[1]
+        except:
+            gateway='0'
+    return gateway
+    
+def ltspGW():
+    global ltspGateway
+    if ltspGateway=='0':
+        try:
+            externalIP=get_ip_inet_address()
+            internalIP=get_ip_inet_address('192.168.0.2')
+        
+            if externalIP==internalIP or externalIP=='':
+                ltspGateway=defaultGW()
+            else:
+                ltspGateway=internalIP
+        except:
+            ltspGateway='0'
+    return ltspGateway
+
+def cleanRoutes():
+    s=subprocess.Popen(['route','-n'],stdout=subprocess.PIPE).communicate()[0]
+    l=s.splitlines()
+    for route in l:
+        target=route.split()[0]
+        if target[:4]=='239.':
+            subprocess.Popen(['route','del','-net',target + '/24'])
+            
+def addRoute(net,gw=''):
+    if gw=='':
+        newgw=defaultGW()
+    else:
+        newgw=gw
+    subprocess.Popen(['route','add','-net',net+ '/24','gw',newgw])

Property changes on: controlies/trunk/applications/controlies/modules/NetworkUtils.py
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/modules/DHCP.py
===================================================================
--- controlies/trunk/applications/controlies/modules/DHCP.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/DHCP.py	(revision 178)
@@ -0,0 +1,203 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    DHCP.py
+# Purpose:     DHCP class
+# Language:    Python 2.5
+# Date:        7-Feb-2011.
+# Ver:        7-Feb-2011.
+# Author:	Manuel Mora Gordillo
+#			Francisco Mendez Palma
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import ldap
+import logging
+from math import ceil
+
+class DHCP(object):
+
+    def __init__(self):
+		pass
+	
+    def __init__(self,ldap,subnet_mask,broadcast_address,routers,domain_name_servers,domain_name,ntp_servers,log_servers,netbios_name_servers,netbios_node_type):
+		self.ldap = ldap
+		self.subnet_mask = subnet_mask
+		self.broadcast_address = broadcast_address
+		self.routers = routers
+		self.domain_name_servers = domain_name_servers
+		self.domain_name = domain_name
+		self.ntp_servers = ntp_servers
+		self.log_servers = log_servers
+		self.netbios_name_servers = netbios_name_servers
+		self.netbios_node_type = netbios_node_type
+	
+    def validation(self):
+		if self.subnet_mask == "":
+			return "subnet_mask"
+
+		if self.broadcast_address == "broadcast_address":
+			return "broadcast_address"
+			
+		if self.routers == "routers":
+			return "routers"
+
+		if self.domain-name == "domain-name":
+			return "domain-name"
+			
+		if self.domain_name_servers == "domain_name_servers":
+			return "domain_name_servers"
+			
+		if self.ntp_servers == "ntp_servers":
+			return "ntp_servers"
+			
+		if self.log_servers == "log_servers":
+			return "log_servers"
+
+		if self.netbios_name_servers == "netbios_name_servers":
+			return "netbios_name_servers"
+			
+		if self.netbios_node_type == "netbios_node_type":
+			return "netbios_node_type"
+			
+		return "OK"
+
+    def process(self,action):
+		if action == "add":
+			val = self.validation()
+			
+			if val != "OK":
+				return val
+			else:
+				response = self.add()
+				return response
+
+		if action == "modify":
+			val = self.validation()
+			
+			if val != "OK":
+				return val
+			else:
+				response = self.modify()
+				return response
+				
+		if action == "delete":
+			response = self.delete()
+			return response
+		
+		if action == "list":
+			response = self.list();
+			return response	
+			
+    def list(self,args):
+		#busqueda dhcp
+		search = self.ldap.search("cn=INTERNAL,cn=DHCP Config,dc=instituto,dc=extremadura,dc=es","dhcpOption=*",["dhcpOption"])
+
+		limit = int(args['rows'][0])
+		page = int(args['page'][0])
+
+		start = limit * page - limit
+		finish = start + limit;		
+		
+		if len(search) > 0:
+			totalPages = ceil( len(search) / int(limit) )
+		else:
+			totalPages = 0
+
+		if page > totalPages:
+			page = totalPages
+		# print search[0][0][1]["uidNumber"][0]
+		rows = []
+		for i in search[start:finish]:
+			row = { "cn":i[0][0], "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]]}
+			rows.append(row)
+
+		return { "page":page, "total":totalPages, "records":len(search), "rows":rows }
+
+    def add(self):
+		record = [
+		('objectclass', ['person','organizationalperson','inetorgperson']),
+		('uid', ['francis']),
+		('cn', [self.name] ),
+		('sn', ['Bacon'] ),
+		('userpassword', [self.password]),
+		('ou', ['users'])
+		]
+		try:
+			self.ldap.add("cn=hosts", record)
+		except ldap.ALREADY_EXISTS:
+			return "fail"
+		
+		return "OK"
+ 
+    def modify(self):
+		mod_attrs = [
+		(ldap.MOD_ADD, 'description', 'Author of New Organon'),
+		(ldap.MOD_ADD, 'description', 'British empiricist') 
+		]
+		self.ldap.modify_s('uid='+ uid +',cn=hosts', mod_attrs)
+
+    def delete(self,uid):
+		self.ldap.delete('uid='+ uid +',cn=hosts')
+
+    def wakeup(self):
+		from twisted.internet.task import LoopingCall
+		from twisted.internet import defer
+		from Plugins import NetworkUtils
+		NetworkUtils.startup(self.mac)
+
+#	def wakeup(self):
+#		from twisted.internet.task import LoopingCall
+#		from twisted.internet import defer
+#		from Plugins import NetworkUtils
+#		NetworkUtils.startup(self.mac)
+		
+
+# Encender el equipo
+#def wakeup(self):
+#        macs=[]
+#        for i in self.targets:
+#            mac=Configs.MonitorConfigs.GetMAC(i)
+#            if mac !='':                
+#                macs.append(mac)                
+#        Actions.sendWOLBurst(macs, 2)
+
+#Apagar el equipo
+#    def sleep(self):
+#        self.usersCommand(Desktop.sleep)
+
+#def sendWOLBurst(macs,throttle):    
+#    from twisted.internet.task import LoopingCall    
+#    from twisted.internet import defer    
+#    if not macs:
+#        return defer.succeed(None)
+#    d = defer.Deferred()
+#    work = list(macs)
+#    def sendNext():
+#        if not work:
+#            loop.stop()
+#            d.callback(None)
+#            return defer.succeed(None)
+#        next = work.pop(0)
+#
+#        #subprocess.Popen(['wakeonlan',next ])
+#        #subprocess.Popen(['wakeonlan','-i','192.168.0.255',next ])
+#        NetworkUtils.startup(next)
+#                   
+#        return None
+#    loop = LoopingCall(sendNext)
+#    loop.start(throttle)
+#    return d

Property changes on: controlies/trunk/applications/controlies/modules/DHCP.py
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/modules/Groups.py
===================================================================
--- controlies/trunk/applications/controlies/modules/Groups.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/Groups.py	(revision 178)
@@ -0,0 +1,227 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    Groups.py
+# Purpose:     Groups class
+# Language:    Python 2.5
+# Date:        7-Feb-2011.
+# Ver:        7-Feb-2011.
+# Author:	Manuel Mora Gordillo
+#			Francisco Mendez Palma
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import ldap
+import logging
+from math import ceil
+from operator import itemgetter
+from Utils import Utils, LdapUtils
+
+class Groups(object):
+
+    def __init__(self):
+		pass
+	
+    def __init__(self,ldap,type,name,users):
+		self.ldap = ldap
+		self.type = type
+		self.name = Utils.parseToLdap(name)
+		self.users = users
+		
+    def validation(self,action):
+
+		if self.type == "none":
+			return "type"
+				
+		if self.name == "":
+			return "name"
+			
+		if self.users == "":
+			return "users"
+					
+		return "OK"
+
+    def process(self,action):
+		if action == "add":
+			val = self.validation(action)
+			
+			if val != "OK":
+				return val
+			else:
+				response = self.add()
+				return response
+
+		if action == "modify":
+			val = self.validation(action)
+
+			if val != "OK":
+				return val
+			else:
+				response = self.modify()
+				return response		
+			
+    def list(self,args):
+
+		filter = self.buildFilter(args)		
+		search = self.ldap.search("ou=Group",filter,["cn","gidNumber","groupType","memberUid"])
+
+		# grid parameters
+		limit = int(args['rows'])
+		page = int(args['page'])
+		start = limit * page - limit
+		finish = start + limit;				
+
+		# sort by field
+		sortBy = args['sidx']
+		if sortBy == "cn":
+			sortBy = "id"
+
+		# reverse Sort
+		reverseSort = False
+		if args['sord']== "asc":
+			reverseSort = True
+
+		# type of group (Classroom/Department)
+		try:
+			searchType = args['type']
+		except LookupError:
+			searchType = "none"
+
+		rows = []
+		for i in search:
+			
+			typeRow="Aula"
+			if i[0][1]["groupType"][0]=="school_department":
+				typeRow="Departamento"
+			
+			if searchType == typeRow or searchType=="none":
+				
+				try:
+					usersNumber = len(i[0][1]["memberUid"])
+				except:
+					usersNumber = 0
+					
+				row = {
+					"id":i[0][1]["cn"][0], 
+					"cell":[typeRow, i[0][1]["cn"][0], i[0][1]["gidNumber"][0], usersNumber],
+					"type": typeRow,
+					"cn": i[0][1]["cn"][0],
+					"gidNumber": i[0][1]["gidNumber"][0],
+					"usersNumber": usersNumber
+				}
+				rows.append(row)				
+								
+			
+		if len(search) > 0:
+			totalPages = ceil( len(search) / int(limit) )
+		else:
+			totalPages = 0
+
+		if page > totalPages:
+			page = totalPages
+
+		# sort rows
+		result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
+
+		return { "page":page, "total":totalPages, "records":len(search), "rows":result[start:finish] }
+		
+
+    def buildFilter(self, args):
+		filter = "(&(cn=*)(|(groupType=school_class)(groupType=school_department))"
+		
+		try:
+			filter = filter + "(cn=*" + args['cn'] + "*)"
+		except LookupError:
+			pass
+
+		try:
+			filter = filter + "(gidNumber=" + args['gidNumber'] + ")"
+		except LookupError:
+			pass
+
+		filter = filter + ")"
+		return filter
+		
+
+    def add(self):
+		maxID = str(LdapUtils.getMaxID(self.ldap))
+
+		members = []
+		for m in self.users.split(','):
+			members.append("uid=" + m + ",ou=People,dc=instituto,dc=extremadura,dc=es")
+
+		attr = [
+		('objectclass', ['top','posixGroup','lisGroup','lisAclGroup']),
+		('grouptype', [self.type] ),		
+		('gidnumber', [maxID] ),		
+		('cn', [self.name] ),
+		('description', [self.name+' department group']),
+		('memberuid', self.users.split(',')),
+		('member', members)
+		]
+
+		self.ldap.add("cn="+self.name+",ou=Group", attr)
+		
+		return "OK"
+
+			
+    def modify(self):
+
+		members = []
+		for m in self.users.split(','):
+			members.append("uid=" + m + ",ou=People,dc=instituto,dc=extremadura,dc=es")
+			
+		mod_attrs = [
+		(ldap.MOD_REPLACE, 'memberuid', self.users.split(',')),
+		(ldap.MOD_REPLACE, 'member', members) 
+		]
+
+		self.ldap.modify('cn='+ self.name +',ou=Group', mod_attrs)
+
+		return "OK"
+
+
+    def delete(self):
+		self.ldap.delete('cn='+ self.name +',ou=Group')
+
+		return "OK"
+		
+
+    def getGroupData(self):
+
+		result = self.ldap.search("ou=Group","cn="+self.name,["cn","grouptype","memberuid"])
+
+		members = result[0][0][1]["memberUid"]
+		members.sort()
+
+		dataGroup = {
+			"name":result[0][0][1]["cn"][0],
+			"type":result[0][0][1]["groupType"][0],
+			"memberuid":members
+		 }
+		 
+		return dataGroup
+
+    def getGroupUsers(self):
+		result = self.ldap.search("ou=Group","cn="+self.name,["cn","memberUid"])
+		
+		members = []
+		for m in result:
+			members.append(m[0][1]["memberUid"][0])
+		
+		members.sort()
+		
+		return members

Property changes on: controlies/trunk/applications/controlies/modules/Groups.py
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/modules/__init__.py
===================================================================
Index: controlies/trunk/applications/controlies/modules/LdapConnection.py
===================================================================
--- controlies/trunk/applications/controlies/modules/LdapConnection.py	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/LdapConnection.py	(revision 178)
@@ -0,0 +1,173 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    LdapConnection.py
+# Purpose:     Connection with ldap server
+# Language:    Python 2.5
+# Date:        7-Feb-2011.
+# Ver:        7-Feb-2011.
+# Author:    Manuel Mora Gordillo
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import ldap
+import logging
+
+
+ldap_secure=True
+ldap_cert='/etc/ldap/ssl/ldap-server-pubkey.pem'
+ldapmode='uid'
+
+def session_ldap(server,username,password): 
+    import ldap
+    if ldap_secure:
+        ldap_port = 636
+        con = ldap.initialize("ldaps://" + server + ":" + str(ldap_port))
+        if ldap_cert:
+            con.set_option(ldap.OPT_X_TLS_CACERTDIR, ldap_cert)
+    else:
+        ldap_port = 389
+        con = ldap.initialize("ldap://" + server + ":" + str(ldap_port))
+
+    if username == 'admin':
+        dn = "cn=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
+    else:
+        dn = "uid=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
+        
+    con.simple_bind_s(dn, password)        
+        
+    
+    return con
+    
+    
+class LdapConnection(object):
+
+    
+    def __init__(self,session):
+        self.host = session.server
+        self.user = session.username
+        self.passwd = session.password
+
+    def setCredentials(self,host,user,passwd):
+        self.host = host
+        self.user = user
+        self.passwd = passwd
+
+    def validation(self):
+        if self.host == "":
+            return "host"
+
+        if self.user == "":
+            return "user"
+
+        if self.passwd == "":
+            return "password"
+
+        return "OK"
+
+    def process(self):
+        val = self.validation()
+            
+        if val != "OK":
+            return val
+
+        auth = self.connect()
+        return auth
+
+    def connect(self):
+        self.connection=ldap.open(self.host)
+        try:
+            self.connection.simple_bind_s("cn="+self.user+",ou=People,dc=instituto,dc=extremadura,dc=es",self.passwd)
+        except ldap.INVALID_CREDENTIALS:
+            logging.getLogger().debug('LDAP user or password incorrect')
+            return False
+        except ldap.CONFIDENTIALITY_REQUIRED:
+            try:
+                #self.connection.set_option(ldap.OPT_X_TLS_DEMAND, True)
+                self.connection=ldap.initialize("ldaps://" +self.host)
+                self.connection.simple_bind_s("cn="+self.user+",ou=People,dc=instituto,dc=extremadura,dc=es",self.passwd)
+                return True
+            except ldap.LDAPError,e:
+                logging.getLogger().debug('A secure connection with the ldap server could not be established')
+                return False          
+                
+        except ldap.LDAPError,e:
+            logging.getLogger().debug('LDAP error %s' % e.message["desc"])
+            return False
+
+        return True
+
+    def getConnect(self):
+        return self.connection
+        
+    def search(self,baseDN,filter,retrieveAttributes):
+        
+        try:
+            ldap_result_id = self.connection.search(baseDN+",dc=instituto,dc=extremadura,dc=es", ldap.SCOPE_SUBTREE, filter, retrieveAttributes)
+            result_set = []
+            while 1:
+                result_type, result_data = self.connection.result(ldap_result_id, 0)
+                if (result_data == []):
+                    break
+                else:
+                    if result_type == ldap.RES_SEARCH_ENTRY:
+                        result_set.append(result_data)
+            return result_set
+        except ldap.LDAPError, e:
+            logging.getLogger().debug('LDAP error search')
+        
+        """result = con.search_s( base_dn, ldap.SCOPE_SUBTREE, filter, attrs )
+        return result"""
+
+    def add(self,baseDN,attr):
+        try:
+            self.connection.add_s(baseDN+",dc=instituto,dc=extremadura,dc=es", attr)
+            
+        except ldap.ALREADY_EXISTS:
+            logging.getLogger().debug("LDAP already exists %s" % (baseDN))
+        except ldap.OPERATIONS_ERROR:
+            logging.getLogger().debug("LDAP operation error %s" % (baseDN))
+        except ldap.NO_SUCH_OBJECT:
+            logging.getLogger().debug("LDAP no such object %s" % (baseDN))
+            
+        return True
+
+    def modify(self,baseDN,attr):
+        try:
+            self.connection.modify_s(baseDN+",dc=instituto,dc=extremadura,dc=es", attr)
+            
+        except ldap.OPERATIONS_ERROR:
+            print "error"
+        except ldap.NO_SUCH_OBJECT:
+            print "no_such_object"
+            
+        return True
+        
+    def delete(self,baseDN):
+        try:
+            self.connection.delete_s(baseDN+",dc=instituto,dc=extremadura,dc=es")
+            
+        except ldap.OPERATIONS_ERROR:
+            print "error"
+        except ldap.NO_SUCH_OBJECT:
+            print "no_such_object"
+            
+        return True
+        
+        
+    def close(self):
+        self.connection.unbind()
+        
+
Index: controlies/trunk/applications/controlies/modules/LdapConnection.py2
===================================================================
--- controlies/trunk/applications/controlies/modules/LdapConnection.py2	(nonexistent)
+++ controlies/trunk/applications/controlies/modules/LdapConnection.py2	(revision 178)
@@ -0,0 +1,47 @@
+##############################################################################
+# -*- coding: utf-8 -*-
+# Project:     ControlIES
+# Module:    LdapConnection.py
+# Purpose:     Connection with ldap server
+# Language:    Python 2.5
+# Date:        7-Feb-2011.
+# Ver:        7-Feb-2011.
+# Author:    Manuel Mora Gordillo
+# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
+#
+# ControlIES is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# ControlIES is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+ldap_secure=True
+ldap_cert='/etc/ldap/ssl/ldap-server-pubkey.pem'
+ldapmode='uid'
+
+def session_ldap(server,username,password): 
+    import ldap
+    if ldap_secure:
+        ldap_port = 636
+        con = ldap.initialize("ldaps://" + server + ":" + str(ldap_port))
+        if ldap_cert:
+            con.set_option(ldap.OPT_X_TLS_CACERTDIR, ldap_cert)
+    else:
+        ldap_port = 389
+        con = ldap.initialize("ldap://" + server + ":" + str(ldap_port))
+
+    if username == 'admin':
+        dn = "cn=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
+    else:
+        dn = "uid=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
+        
+    con.simple_bind_s(dn, password)        
+        
+    
+    return con
Index: controlies/trunk/applications/controlies/controllers/gestion.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/gestion.py	(nonexistent)
+++ controlies/trunk/applications/controlies/controllers/gestion.py	(revision 178)
@@ -0,0 +1,81 @@
+# coding: utf8
+from applications.controlies.modules.Hosts import Hosts
+
+@service.json   
+@auth.requires_login()
+def servidores_aula():
+    return dict()
+    
+@service.json   
+@auth.requires_login()    
+def getClassroomDetails():
+    import xmlrpclib
+    from applications.controlies.modules.Users import Users
+    l=conecta()
+    objUser = Users(l,"","","","",request.vars['teacher'],"","","","")
+    teacherData = objUser.getUserData()
+
+    s = xmlrpclib.Server("http://" + request.vars['classroom'] + ":8900");
+
+    users = s.Users()
+
+    response = []
+    for u in users:
+        user = u.split("@")
+
+        objUser = Users(l,"","","","",user[0],"","","","")
+        photo = objUser.getUserPhoto()
+
+    #    response.append({ 'username': user[0], 'host': user[1], 'photo': photo })
+
+    #return json.dumps({ "teacher" : teacherData, "classroom" : request.args['classroom'][0], "students" : response })
+
+
+
+    return dict(message="hello from gestion.py")
+
+
+@auth.requires_login()    
+def rayuela_alumnos():
+    return dict()
+
+@auth.requires_login()    
+def rayuela_profesores():
+    return dict()
+
+@service.json   
+@auth.requires_login()    
+def getLTSPServers():
+    l=conecta()
+    h = Hosts (l,"","","","","")
+    response = h.getLTSPServers()
+    l.close()
+    return dict(response=response)
+
+@service.json   
+@auth.requires_login()    
+def getLTSPStatus():
+#esto no me gusta como está hecho
+#tiene problemas de seguridad, lo comento de momento:
+
+#    f = open('/tmp/controlIES.ltpsSevers', 'r')
+#    computers = f.read().split(" ")
+#    computers.sort()
+    
+#    f = open('/tmp/controlIES.ltpsTeachers', 'r')
+#    teachers = f.read().split(" ")
+#    teachers.sort()                
+
+    teachers=()
+    computers=()
+    return dict(computers=computers,teachers=teachers)
+
+def call():
+    """
+    exposes services. for example:
+    http://..../[app]/default/call/jsonrpc
+    decorate with @services.jsonrpc the functions to expose
+    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
+    """
+    session.forget()
+    return service()
Index: controlies/trunk/applications/controlies/controllers/grupos.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/grupos.py	(nonexistent)
+++ controlies/trunk/applications/controlies/controllers/grupos.py	(revision 178)
@@ -0,0 +1,66 @@
+# coding: utf8
+from applications.controlies.modules.Groups import Groups
+                
+def index(): 
+    return dict()
+
+@service.json
+@auth.requires_login()
+def list():
+    l=conecta()
+    g = Groups(l,"","","")
+    a=request.vars
+    response = g.list(a)
+    l.close()
+    return response  
+    
+@service.json 
+def getAllGroups():
+    import applications.controlies.modules.Utils.LdapUtils as LdapUtils
+    l=conecta()
+    response = LdapUtils.getAllGroups(l)
+    l.close()
+    return response
+    
+@service.json
+@auth.requires_login()
+def modify():
+    l=conecta()
+    g = Groups(l,request.vars['type'], request.vars['name'], request.vars['users'])
+    response = g.process(request.vars['action'])    
+    l.close()
+    return dict(response=response)
+    
+
+@service.json  
+def getGroupData():
+    l=conecta()
+    g = Groups(l,"",request.vars['name'],"")
+    response = g.getGroupData()
+    l.close()
+    return dict(response=response)
+
+@service.json  
+@auth.requires_login()    
+def delete():
+    l=conecta()
+    g = Groups(l,"",request.vars['name'],"")
+    response = g.delete()
+    l.close()
+    return dict(response=response)
+    
+def search():
+    return dict()
+
+def form():
+    return dict()
+    
+def call():
+    """
+    exposes services. for example:
+    http://..../[app]/default/call/jsonrpc
+    decorate with @services.jsonrpc the functions to expose
+    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
+    """
+    session.forget()
+    return service()
Index: controlies/trunk/applications/controlies/controllers/hosts.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/hosts.py	(nonexistent)
+++ controlies/trunk/applications/controlies/controllers/hosts.py	(revision 178)
@@ -0,0 +1,89 @@
+# coding: utf8
+from applications.controlies.modules.Hosts import Hosts
+    
+def index():
+#equivalente a list
+    return dict(message="hello from hosts.py")
+    
+@service.json    
+def getThinclientGroups():
+    l=conecta()
+    h = Hosts (l,"","","","","")
+    response = h.getThinclientGroups()
+    l.close()
+    return dict(response=response)
+
+
+@service.json
+def getHostData():
+    l=conecta()
+    h = Hosts(l,request.vars['cn'],"","",request.vars['group'],request.vars['type'])
+    response = h.getHostData()    
+    l.close()
+    return dict(response=response)
+    
+@service.json   
+@auth.requires_login()
+def list_ltspservers():
+    l=conecta()
+    h = Hosts (l,"","","","","")
+    response = h.getLTSPServers()
+    l.close()
+    return response    
+   
+   
+@service.json   
+@auth.requires_login()
+def list():
+    l=conecta()
+    h = Hosts (l,"","","","","")
+    a=request.vars
+    response = h.list(a)    
+    l.close()
+    return response    
+
+@service.json
+@auth.requires_login()
+def modify():
+    l=conecta()
+    ip=''
+    if request.vars['type']!='thinclient':ip=request.vars['ip']
+    h = Hosts(l,request.vars['name'],ip,request.vars['mac'],request.vars['group'],request.vars['type'])
+    response=h.process(request.vars['action']  )
+    l.close()
+    return dict(response=response)
+   
+@service.json
+@auth.requires_login()    
+def delete():
+    l=conecta()
+    h = Hosts(l,request.vars['cn'],"","",request.vars['group'],request.vars['type'])
+    response=h.process(request.vars['action']  )
+    l.close()
+    return dict(response=response)
+
+#necesaria estas funciones en el controlador para poder cargar las vistas correspondientes:    
+def ltspservers():
+    return dict()
+    
+def workstations():
+    return dict()    
+
+def thinclients():
+    return dict()  
+    
+def form_thinclient():
+    return dict()
+
+def form_ltspserver():
+    return dict()
+
+def call():
+    """
+    exposes services. for example:
+    http://..../[app]/default/call/jsonrpc
+    decorate with @services.jsonrpc the functions to expose
+    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
+    """
+    session.forget()
+    return service()
Index: controlies/trunk/applications/controlies/controllers/usuarios.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/usuarios.py	(nonexistent)
+++ controlies/trunk/applications/controlies/controllers/usuarios.py	(revision 178)
@@ -0,0 +1,78 @@
+# coding: utf8
+from applications.controlies.modules.Users import Users
+
+def index():    
+    return dict()
+
+@service.json
+@auth.requires_login()
+def list():
+    l=conecta()
+    u = Users(l,"","","","","","","","","")
+    response = u.list(request.vars)
+    l.close()
+    return response    
+
+@service.json
+@auth.requires_login()    
+def searchUsername():
+    l=conecta()
+    u = Users(l,"",request.vars['name'],request.vars['surname'],"","","","","","")
+    response = u.searchNewUsername() 
+    l.close()                
+    return dict(response=response)
+    
+@service.json
+def getUserData():
+    l=conecta()
+    u = Users(l,"","","","",request.vars['username'],"","","","")
+    response = u.getUserData()
+    l.close()
+    return dict(response=response)
+
+
+@service.json      
+def getAllUsers():
+    import applications.controlies.modules.Utils.LdapUtils as LdapUtils
+    l=conecta()
+    response = LdapUtils.getAllUsers(l)
+    l.close()
+    return response
+
+@service.json
+@auth.requires_login()       
+def delete():
+    l=conecta()
+    u = Users(l,"","","","",request.vars['user'],"","","","")
+    response = u.delete()  
+    l.close()                          
+    return dict(response=response)
+
+@service.json
+@auth.requires_login()    
+def modify_user():
+    l=conecta() 
+    departments=[]
+    classrooms=[]                
+    if 'multiselect_departments' in request.vars: departments = request.vars['multiselect_departments']
+    if 'multiselect_classrooms' in request.vars:classrooms = request.vars['multiselect_classrooms']
+
+    u = Users(l,request.vars['type'],request.vars['name'],request.vars['surname'],request.vars['nif'],request.vars['user'],request.vars['password'],request.vars['password2'],departments,classrooms)
+    response = u.process(request.vars['action'])
+    l.close()
+    return dict(response = response)    
+    
+      
+
+def form():
+    return dict()
+    
+def call():
+    """
+    exposes services. for example:
+    http://..../[app]/default/call/jsonrpc
+    decorate with @services.jsonrpc the functions to expose
+    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
+    """
+    session.forget()
+    return service()
Index: controlies/trunk/applications/controlies/controllers/default.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/default.py	(nonexistent)
+++ controlies/trunk/applications/controlies/controllers/default.py	(revision 178)
@@ -0,0 +1,67 @@
+# -*- coding: utf-8 -*-
+# this file is released under public domain and you can use without limitations
+
+#########################################################################
+## This is a samples controller
+## - index is the default action of any application
+## - user is required for authentication and authorization
+## - download is for downloading files uploaded in the db (does streaming)
+## - call exposes all registered services (none by default)
+#########################################################################
+@auth.requires_login()
+def index():
+    """
+    example action using the internationalization operator T and flash
+    rendered by views/default/index.html or views/generic.html
+    """
+
+    return dict()
+
+def user():
+    """
+    exposes:
+    http://..../[app]/default/user/login
+    http://..../[app]/default/user/logout
+    http://..../[app]/default/user/register
+    http://..../[app]/default/user/profile
+    http://..../[app]/default/user/retrieve_password
+    http://..../[app]/default/user/change_password
+    use @auth.requires_login()
+        @auth.requires_membership('group name')
+        @auth.requires_permission('read','table name',record_id)
+    to decorate functions that need access control
+    """
+    if "host" in request.vars:
+        session.server=request.vars["host"]
+        session.username=request.vars["username"]        
+        session.password=request.vars["password"]
+        con_parameters=auth.settings.login_methods[0].func_defaults
+        if con_parameters[0] != request.vars["host"] or request.vars["username"] != 'admin':
+            #tengo que cambiar los parámetros con los que se llama a la función de logueo:
+            new_parameters=list(con_parameters)
+            new_parameters[0]=request.vars["host"]
+            if request.vars["username"] != 'admin' : new_parameters[3]='uid'
+            auth.settings.login_methods[0].func_defaults=tuple(new_parameters)
+
+
+
+    return dict(form=auth())
+
+@auth.requires_login()
+def download():
+    """
+    allows downloading of uploaded files
+    http://..../[app]/default/download/[filename]
+    """
+    return response.download(request,db)
+
+@auth.requires_login()
+def call():
+    """
+    exposes services. for example:
+    http://..../[app]/default/call/jsonrpc
+    decorate with @services.jsonrpc the functions to expose
+    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
+    """
+    session.forget()
+    return service()
Index: controlies/trunk/applications/controlies/controllers/dhcpd.py
===================================================================
--- controlies/trunk/applications/controlies/controllers/dhcpd.py	(nonexistent)
+++ controlies/trunk/applications/controlies/controllers/dhcpd.py	(revision 178)
@@ -0,0 +1,10 @@
+# coding: utf8
+# intente algo como
+def index():
+#equivalente a list
+
+
+    return dict(message="hello from dhcpd.py")
+    
+def delete():
+    return dict()
Index: controlies/trunk/applications/controlies/views/layout.html
===================================================================
--- controlies/trunk/applications/controlies/views/layout.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/layout.html	(revision 178)
@@ -0,0 +1,143 @@
+<!DOCTYPE html>
+<html lang="{{=T.accepted_language or 'en'}}" class="no-js"><!-- no-js need it for modernzr -->
+  <head>
+    
+    <meta charset="utf-8" />        
+    <!-- www.phpied.com/conditional-comments-block-downloads/ -->
+    <!--[if IE]><![endif]-->    
+    <!-- Always force latest IE rendering engine 
+     (even in intranet) & Chrome Frame 
+     Remove this if you use the .htaccess -->
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    
+    <title>{{=response.title or request.application}}</title>
+    
+    <!-- http://dev.w3.org/html5/markup/meta.name.html -->
+    <meta name="application-name" content="{{=request.application}}" /> 
+    
+    
+    <!-- Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references -->
+    <link rel="shortcut icon" href="{{=URL('static','favicon.ico')}}" type="image/x-icon">
+    <link rel="apple-touch-icon" href="{{=URL('static','favicon.png')}}">
+
+    <!-- For the less-enabled mobile browsers like Opera Mini -->
+    <link rel="stylesheet" media="handheld" href="{{=URL('static','css/handheld.css')}}">
+    
+    <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
+    <script src="{{=URL('static','js/modernizr-1.7.min.js')}}"></script>
+    
+{{response.files.append(URL('static','js/jdgrid/css/ui.jqgrid.css'))}}
+{{response.files.append(URL('static','js/jquery/jquery.dropdown.js'))}}
+{{response.files.append(URL('static','js/jdgrid/grid.locale-sp.js'))}} 
+{{response.files.append(URL('static','js/jdgrid/jquery.jqGrid.min.js'))}}
+{{response.files.append(URL('static','js/jdgrid/src/grid.common.js'))}}
+{{response.files.append(URL('static','js/jdgrid/src/grid.formedit.js'))}}
+{{response.files.append(URL('static','js/jdgrid/src/grid.custom.js'))}}
+    
+    {{#------  require CSS and JS files for this page (read info in base.css) ------}}
+    {{response.files.append(URL('static','css/base.css'))}}
+    {{response.files.append(URL('static','css/superfish.css'))}}
+    {{response.files.append(URL('static','js/superfish.js'))}}
+
+    {{response.files.append(URL('static','ui/css/ui-lightness/jquery-ui-1.8.9.custom.css'))}}
+
+    
+   
+    
+    
+    {{#------ include web2py specific js code (jquery, calendar, form stuff) ------}}
+    {{include 'web2py_ajax.html'}}
+
+    {{
+    #using sidebars need to know what sidebar you want to use
+    #prior of using it, because of static width size of content, you can use
+    #left_sidebar, right_sidebar, both or none (False left and right)    
+    left_sidebar_enabled = globals().get('left_sidebar_enabled',False)
+    right_sidebar_enabled = globals().get('right_sidebar_enabled',False)
+    if left_sidebar_enabled and right_sidebar_enabled: width_content='63%'
+    elif left_sidebar_enabled != right_sidebar_enabled: width_content='740px'
+    else: width_content='100%'
+    if left_sidebar_enabled: left_sidebar_style = 'style="display: block;"'
+    else: left_sidebar_style = 'style="display: none;"'
+    if right_sidebar_enabled: right_sidebar_style = 'style="display: block;"'
+    else: right_sidebar_style = 'style="display: none;"'
+    style_content = 'style="width: %s"' % width_content
+    }}
+  </head>
+  
+  <body> 
+    
+    <div class="flash">{{=response.flash or ''}}</div> <!-- notification div -->
+    
+    <div id="container">                        
+      
+      <div id="wrapper">        
+    
+            <div id="header"> <!-- header and login nav -->
+              {{block header}} <!-- this is default header -->
+{{try:}}{{=SPAN(T('Welcome'),' ',auth.user.first_name,' [ ', A(T('logout'),_href=URL('default','user')+'/logout'), ']',_class='auth_navbar')}}{{except:pass}}   
+              
+                     
+<h1>&nbsp;&nbsp;Control<span class="fontTitle">IES</span>&nbsp;&nbsp;<span class="subTitle">Centros Educativos de Extremadura</span></h1>              
+
+              <div style="clear: both;"></div><!-- Clear the divs -->
+              {{end}}                                     
+            </div><!-- header  -->
+    
+            <div id="statusbar"><!-- statusbar is menu zone -->
+              {{block statusbar}} <!-- this is default statusbar -->
+              {{#------ superfish menu ------}}
+              {{if auth.user is not None:
+              =MENU(response.menu,_class='sf-menu') }}
+              
+              <script type="text/javascript">
+                jQuery(document).ready(function(){
+                jQuery('ul.sf-menu').superfish();});
+              </script>
+              {{pass}}
+              <div style="clear: both;"></div><!-- Clear the divs -->   
+              {{end}}               
+            </div><!-- statusbar -->
+    
+            <div id="page"> <!-- Here my central body -->     
+        
+                  {{if left_sidebar_enabled:}}
+                      <div id="left_sidebar" {{=XML(left_sidebar_style)}} >
+                        <div style="padding: 4px;">
+                      {{block left_sidebar}}Content Left Sidebar{{end}}       
+                        </div>
+                      </div><!-- left_sidebar -->
+                  {{pass}}
+        
+                  <!-- content -->
+                  <div id="content" {{=XML(style_content)}} >
+                  
+                  
+                      {{include}}           
+                  
+                  
+                  
+
+                  </div>
+                  <!-- content -->
+        
+                  {{if right_sidebar_enabled:}}
+                      <div id="right_sidebar" {{=XML(right_sidebar_style)}} >
+                        <div style="padding: 4px;">
+                          {{block right_sidebar}}Content Right Sidebar{{end}}
+                        </div>
+                  </div><!-- right_sidebar -->
+                      {{pass}}
+        
+        
+              <div style="clear: both;"></div><!-- Clear the divs -->
+              
+            </div><!-- page -->                         
+    
+         
+      </div><!-- wrapper -->
+    </div><!-- container -->        
+    
+ 
+  </body>
+</html>
Index: controlies/trunk/applications/controlies/views/gestion/servidores_aula.html
===================================================================
--- controlies/trunk/applications/controlies/views/gestion/servidores_aula.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/gestion/servidores_aula.html	(revision 178)
@@ -0,0 +1,144 @@
+<style>
+    #selectable .ui-selecting { background: #FECA40; }
+    #selectable .ui-selected { background: #F39814; color: white; }
+    #selectable { list-style-type: none; margin: 0; padding: 0; }
+    #selectable li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 80px; height: 95px; font-size: 1px; text-align: center; cursor:pointer; }
+
+    #selectableStudents .ui-selecting { background: #FECA40; }
+    #selectableStudents .ui-selected { background: #F39814; color: white; }
+    #selectableStudents { list-style-type: none; margin: 0; padding: 0; }
+    #selectableStudents li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 80px; height: 95px; font-size: 1px; text-align: center; cursor:pointer; } 
+</style>
+
+
+{{response.files.append(URL('static','js/utils.js'))}}
+
+{{extend 'layout.html'}}
+
+<script>
+    $(function() {
+        $("#tabsActions").tabs().css("font-size","13px");
+        $("#tabsServers").tabs().css("font-size","13px");
+        
+        $( "#selectAll" )
+            .css("font-size","11px")
+            .button({ icons: { primary: "ui-icon-circle-plus"}})
+            .click(function(){ selectAll() });
+
+        $( "#selectNone" )
+            .css("font-size","11px")
+            .button({ icons: { primary: "ui-icon-circle-minus"}})
+            .click(function(){ selectNone() });
+
+        $( "#turnOn" )
+            .css("font-size","11px")        
+            .button({ icons: { primary: "ui-icon-power"}})
+            .click(function(){ alert("En desarrollo");/*sendOrderSelected("wakeup","","cambiaconfig");*/ });
+
+        $( "#turnOff" )
+            .css("font-size","11px")        
+            .button({ icons: { primary: "ui-icon-circle-close"}})
+            .click(function(){ alert("En desarrollo");/*sendOrderSelected("sleep","","cambiaconfig");*/ });     
+
+        $( "#classroomDetails" )
+            .css("font-size","11px")        
+            .button({ icons: { primary: "ui-icon-circle-close"}})
+            .click(function(){ getClassroomDetails(); });       
+        
+        $( "#selectable" ).selectable();        
+
+        getLTSPServers();
+    });
+    
+    function getLTSPServers(){
+        jQuery.post('call/json/getLTSPServers', function(result) {                                                            
+            jQuery.each(result.response, function(i, l){
+                jQuery('#selectable').append('<li class="ui-state-default" id="selectable-'+l+'"><div id="pcName" style="font-size:11px;">'+l+'</div>{{=IMG(_src=URL(r=request,c="static",f="images/turnOff.png"),_class="thumb-image")}}<div id="userName" style="font-size:11px;"></div></li>');               
+            });
+            
+            getLTSPStatus();
+        });
+    }
+   
+   
+    function getLTSPStatus(){
+        
+        jQuery.post('call/json/getLTSPStatus', function(result) {     
+
+
+            jQuery('#selectable li .thumb-image').attr('src','{{=URL(r=request,c="static",f="images/turnOff.png")}}');
+            jQuery('#selectable li #userName').html('');
+            
+            jQuery.each(result.computers, function(i, l){                
+                jQuery('#selectable #selectable-'+l+' .thumb-image').attr('src','{{=URL(r=request,c="static",f="images/turnOn.png")}}');           
+            });
+
+            $.each(result.teachers, function(i, l){
+                var teacher = l.split(".");
+                var computer = teacher[0].split("@");
+                jQuery('#selectable #selectable-'+computer[1]+' #userName').html(computer[0]);
+               jQuery('#selectable #selectable-'+computer[1]+' .thumb-image').attr('src','{{=URL(r=request,c="static",f="images/nobody.png")}}');
+            });
+
+            //getLTSPClients();
+            
+            setTimeout("getLTSPStatus()",10000);            
+        });
+    }
+    
+
+
+
+</script>
+
+<table width="100" cellspacing="12">
+<tr>
+    <td style="vertical-align:top;" >
+        <div id="tabsActions">
+            <ul>
+                <li><a href="#tabs-1"><span id="actions">Acciones</span></a></li>
+            </ul>
+            <div id="tabs-1" style="padding:3px;">
+                <table width="100%">
+                    <tr>
+                        <td style="text-align:center;"><button id="selectAll" style="width:123px;">Selecc. Todo</button></td>
+                        <td style="text-align:center;"><button id="selectNone" style="width:123px;">Selecc. Ninguno</button></td>                       
+                    </tr>
+                    <tr>
+                        <td style="text-align:center;"><button id="turnOn" style="width:123px;">Encender</button></td>
+                        <td style="text-align:center;"><button id="turnOff" style="width:123px;">Apagar</button></td>
+                    </tr>
+                    <tr>
+                        <td style="text-align:center;"><button id="classroomDetails" style="width:123px;">Mostrar Aula</button></td>
+                        <td style="text-align:center;"></td>
+                    </tr>                   
+                </table>
+            </div>
+        </div>
+    </td></tr>
+    </table>
+    <table width="100" cellspacing="12">
+
+    <tr>
+
+    <td>
+    
+        <div id="tabsServers">
+            <ul>
+                <li><a href="#tabs-1"><span id="actions">Servidores</span></a></li>
+            </ul>
+            <div id="tabs-1" style="padding:3px;">  
+                <table>
+                    <tr>
+                        <td id="tableSelectable">
+                            <ol id="selectable" style="width:870px;"></ol>
+                        </td>
+                    </tr>
+                </table>
+            </div>
+        </div>              
+    </td>
+</tr>
+</table>
+
+<div id="dialog-details"></div>
Index: controlies/trunk/applications/controlies/views/layout_form_hosts.html
===================================================================
--- controlies/trunk/applications/controlies/views/layout_form_hosts.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/layout_form_hosts.html	(revision 178)
@@ -0,0 +1,89 @@
+<script language="javascript">
+
+    $(function() {
+        $("#name").focus();
+        $("#saveButton").button({ icons: { primary: "ui-icon-disk"}});
+          
+        $("#cancelButton")
+            .button({ icons: { primary: "ui-icon-close"}})
+            .click( function(){ $('#dialog-form').dialog('close'); });            
+    });
+
+    function restartStyle(){
+        $("#form_data p span").css("color","black");
+        $('#message').html("");
+    }
+
+
+    function send(){
+
+        restartStyle();
+
+{{block controlador}}               
+        jQuery.post('call/json/modify', jQuery("#form_data").serialize(), function(result) {
+{{end}}        
+            //var result = $.parseJSON(data);
+            switch(result.response){
+                case "OK":{
+                    jQuery('#message').html("Operación realizada correctamente").css("color","green").effect("highlight", {"color":"yellow"}, 1000);
+                    setTimeout("$('#dialog-form').dialog('close')",1000);
+                    jQuery("#list").trigger("reloadGrid");
+                    break;
+                }
+                case "fail":{
+                    jQuery('#message').html("Se produjo un error").effect("highlight", {"color":"yellow"}, 1000);
+                    break;
+                }
+                case "hostAlreadyExists":{
+                    jQuery('#nameTag').css("color","red");
+                    jQuery('#name').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Ya existe ese nombre de host").effect("slide");                 
+                    break;
+                }
+                case "macAlreadyExists":{
+                    jQuery('#macTag').css("color","red");
+                    jQuery('#mac').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Ya existe un host con esa MAC").effect("slide");                    
+                    break;
+                }
+                case "ipAlreadyExists":{
+                    jQuery('#ipTag').css("color","red");
+                    jQuery('#ip').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Ya existe un host con esa IP").effect("slide");                 
+                    break;
+                }                
+                case "groupOverflow":{
+                    jQuery('#groupTag').css("color","red");
+                    jQuery('#group').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("El grupo escogido esta completo").effect("slide");                  
+                    break;  
+                }    
+                default:{
+                    jQuery('#'+result.response+"Tag").css("color","red");
+                    jQuery('#'+result.response).effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Hay campos vacíos o incorrectos").effect("slide");
+                    break;
+                }
+            }
+        });
+
+        return false;
+    }
+    
+</script>
+
+
+<form id="form_data" onSubmit="return send();">
+    <input type="hidden" id="action" name="action"/>
+{{block form_table}}    
+   <input type="hidden" id="type" name="type" value="ltsp"/>
+    <p><span id="nameTag">Nombre del equipo:</span><br><input type="text" id="name" name="name" onChange="searchUsername();"/></p>
+    <p><span id="ipTag">Ip</span><br><input type="text" id="ip" name="ip"/></p> 
+    <p><span id="macTag">MAC</span><br><input type="text" id="mac" name="mac"/></p>
+
+{{end}}
+
+    <div id="message" style="text-align:center; font-weight:bold; color:red; padding:3px; "></div>
+    <div style="text-align:center;"><button id="saveButton" type="submit" style="width:100px;">Guardar</button>&nbsp;&nbsp;<button type="button" id="cancelButton" style="width:100px;">Cancelar</button></div>
+    <p style="padding-top:10px; text-align:center; font-size:10px;" id="messageForm"></p>       
+</form>
Index: controlies/trunk/applications/controlies/views/layout_hosts.html
===================================================================
--- controlies/trunk/applications/controlies/views/layout_hosts.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/layout_hosts.html	(revision 178)
@@ -0,0 +1,251 @@
+{{extend 'layout.html'}}
+        <div id="tabla_clientes" class="centerGrid">
+        <table width="100%">
+        <tr>
+            <td style="width:2%"></td>
+            <td><table id="list" width="100%"></table></td>
+            <td style="width:2%"></td>
+        </tr>
+        </table>
+        <div id="pager" style=""></div> 
+        <div id="filter" style="margin-left:30%;display:none">Search Invoices</div>
+        </div>
+
+        <div id="dialog-form"></div>
+
+        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
+        </div>
+
+        <div id="dialog-alert" title="Atención" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
+        </div>
+
+
+
+
+
+<script type="text/javascript">  
+    jQuery(function() {
+        jQuery("#dialog-confirm").dialog({ autoOpen: false });
+        jQuery("#dialog-alert").dialog({ autoOpen: false });
+    });
+
+    function print_grid(){  
+        jQuery("#list").jqGrid({
+            url:"{{=URL(c='hosts',f='call',args=['json','list'])}}",
+            data: "{}",
+            datatype: 'json',
+            mtype: 'GET',           
+            
+{{block camposgrid}}                               
+            colNames:['Nombre','IP','mac'],
+            colModel:[ 
+                {name:'cn',index:'cn', width:80, align:"center"},
+                {name:'ipHostNumber',index:'ipHostNumber', width:60, align:"center"},
+                {name:'macAddress',index:'macAddress', width:60, align:"center"}
+            ], 
+
+            postData:{type:'ltsp'}, 
+            caption:"Servidores de Aula (LTSP)",
+{{end}} 
+            rowNum:25,
+            height:335,
+            width: 800,
+            rowList:[25,50,75], 
+            pager: '#pager', 
+            sortname: 'cn', 
+            autowidth: false,
+            viewrecords: true, 
+            sortorder: "desc"
+            
+        }); 
+                      
+        jQuery("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false});
+        
+        jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                caption: "Insertar",
+                buttonicon :'ui-icon-plus',
+                onClickButton : function (){ 
+                    addRecord();
+                } 
+        }); 
+        jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                caption: "Modificar", 
+                buttonicon :'ui-icon-pencil',
+                onClickButton : function (){ 
+                    modifyRecord();
+            } 
+        }); 
+        jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                caption: "Borrar", 
+                buttonicon :'ui-icon-trash',
+                onClickButton : function (){ 
+                    deleteRecord();
+            } 
+        });        
+          
+          jQuery("#list").jqGrid('filterToolbar'); 
+
+    }
+
+    function rowSelected(){
+            var id = jQuery("#list").jqGrid('getGridParam','selrow'); 
+        
+            if( id == null ){
+                jQuery( "#dialog-alert" ).dialog({
+                    resizable: false,
+                    height:150,
+                    width:290,
+                    modal: true,
+                    buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
+                }).dialog('open');
+                return false;
+            }
+            return id;
+    }        
+                
+                
+    function getCell (column) {
+        var rowid = jQuery("#list").jqGrid('getGridParam', 'selrow');
+        
+        if( rowid == null ){
+            jQuery( "#dialog-alert" ).dialog({
+                resizable: false,
+                height:150,
+                width:290,
+                modal: true,
+                buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
+            }).dialog('open');
+            return false;
+        }
+        
+        var Cell = jQuery("#list").jqGrid('getCell', rowid, column);
+        
+        
+        return Cell;
+    }
+            
+    function getThinClientGroups(selected) {
+        jQuery.post('call/json/getThinclientGroups', function(result) {
+
+                var selectGrupos = document.getElementById("group");                
+    
+                for (i=0;i<result.response.groups.length;i++) {
+                    var optn = document.createElement("option");
+                    optn.text = result.response.groups[i];
+                    optn.value = result.response.groups[i];
+                    if (selected==optn.text) 
+                        optn.selected = true;
+                    selectGrupos.options.add (optn);
+                }
+        });
+    }                
+
+
+            function modifyRecord(){
+                var hid;
+                var group; 
+                jQuery("#messageLoading").show();
+                
+                var hid = rowSelected();
+                var group = getCell("groupName"); 
+                if(hid==false)
+                    return false;
+
+                jQuery("#dialog-form").html("").css("display","none");
+{{block edit_form}}                      
+                jQuery("#dialog-form").load("form_ltspserver.html", function() {
+                   
+
+{{end}}                     
+                    jQuery("#form_data #action").val("modify");
+                    jQuery("#form_data #name").attr("readonly","true");
+                    jQuery("#form_data #name").css("background-color","#DDD");
+                    jQuery("#form_data #group").attr("readonly","true");
+                    jQuery("#form_data #group").css("background-color","#DDD");
+{{block edit2_form}}                       
+                    jQuery.post('call/json/getHostData',{ cn: hid,group:group,type:'ltsp' }, function(result) {
+                        jQuery("#form_data #name").val(result.response['cn']);
+                        jQuery("#form_data #ip").val(result.response['ip']);                        
+                        jQuery("#form_data #mac").val(result.response['mac']);                           
+{{end}}                        
+                        x = (jQuery(window).width()-300)/2;
+                        y = (jQuery(window).height()-500)/2;
+                        
+                        jQuery("#messageLoading").hide();
+                        
+                        jQuery("#dialog-form").dialog({
+                            resizable: false,
+                            modal: true,
+                            width: 300,
+{{block edit3_form}}                                                          
+                            title: "Modificar Servidor de aula"
+{{end}}
+                        }).dialog('option', 'position', [x, y]);                        
+                    });               
+                });
+            }
+
+
+
+    function addRecord(){
+    
+        jQuery("#dialog-form").html("");
+{{block edit_form}}        
+        jQuery("#dialog-form").load("form_ltspserver.html", function() {
+{{end}}        
+            jQuery("#form_data #action").val("add");
+            jQuery("#form_data #messageForm").html("Todos los campos son obligatorios");                 
+        });
+    
+        x = (jQuery(window).width()-250)/2;
+        y = (jQuery(window).height()-400)/2;
+    
+        jQuery("#dialog-form").dialog({
+            resizable: false,
+            position: top,
+            modal: true,                       
+{{block add_host}}            
+            title: "Añadir Servidor de Aula (ltsp)"  
+{{end}}
+        }).dialog('option', 'position', [x, y]);
+    } 
+
+
+    
+function deleteRecord(){
+    
+        var cn = rowSelected();
+        var grupo = getCell("groupName");
+
+        if(cn==false)
+            return false;    
+    
+    
+        jQuery( "#dialog-confirm" ).dialog({
+            resizable: false,
+            height:160,
+            width:350,
+            modal: true,
+            buttons: {
+                "Borrar": function() {
+{{block delete_host}}                
+                    jQuery.post("call/json/delete",{cn:cn,action:'delete',group:grupo,type:'ltsp'}, function(data){
+{{end}}                    
+                        jQuery("#dialog-confirm").dialog( "close" );
+                        jQuery("#list").trigger("reloadGrid");
+                    });
+                },
+                "Cancelar": function() {
+                    $(this).dialog( "close" );
+                }
+            }
+        }).dialog('open');
+}    
+
+</script>
+
+<script type="text/javascript">
+  jQuery(document).ready(function(){  print_grid();}); 
+</script>
Index: controlies/trunk/applications/controlies/views/hosts/form_ltspserver.html
===================================================================
--- controlies/trunk/applications/controlies/views/hosts/form_ltspserver.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/hosts/form_ltspserver.html	(revision 178)
@@ -0,0 +1 @@
+{{extend 'layout_form_hosts.html'}}
Index: controlies/trunk/applications/controlies/views/hosts/ltspservers.html
===================================================================
--- controlies/trunk/applications/controlies/views/hosts/ltspservers.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/hosts/ltspservers.html	(revision 178)
@@ -0,0 +1 @@
+{{extend 'layout_hosts.html'}}
Index: controlies/trunk/applications/controlies/views/hosts/ltspservers.html.mio
===================================================================
--- controlies/trunk/applications/controlies/views/hosts/ltspservers.html.mio	(nonexistent)
+++ controlies/trunk/applications/controlies/views/hosts/ltspservers.html.mio	(revision 178)
@@ -0,0 +1,22 @@
+{{extend 'layout.html'}}
+        <div id="tabla_clientes" class="centerGrid">
+        <table width="100%">
+        <tr>
+            <td style="width:2%"></td>
+            <td><table id="list" width="100%"></table></td>
+            <td style="width:2%"></td>
+        </tr>
+        </table>
+        <div id="pager" style=""></div> 
+        <div id="filter" style="margin-left:30%;display:none">Search Invoices</div>
+        </div>
+
+        <div id="dialog-form"></div>
+
+        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
+        </div>
+
+        <div id="dialog-alert" title="Atención" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
+        </div>
Index: controlies/trunk/applications/controlies/views/hosts/form_thinclient.html
===================================================================
--- controlies/trunk/applications/controlies/views/hosts/form_thinclient.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/hosts/form_thinclient.html	(revision 178)
@@ -0,0 +1,13 @@
+{{extend 'layout_form_hosts.html'}}
+{{block form_table}}    
+    <input type="hidden" id="type" name="type" value="thinclient"/>
+    
+    <p><span id="groupTag">Grupo</span><br>
+        <select id="group" name="group">
+            <option value="none">Seleccione...</option>
+        </select>
+    </p>    
+        
+    <p><span id="nameTag">Nombre del equipo:</span><br><input type="text" id="name" name="name" onChange="searchUsername();"/></p>
+    <p><span id="macTag">MAC</span><br><input type="text" id="mac" name="mac"/></p>
+{{end}}
Index: controlies/trunk/applications/controlies/views/hosts/thinclients.html
===================================================================
--- controlies/trunk/applications/controlies/views/hosts/thinclients.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/hosts/thinclients.html	(revision 178)
@@ -0,0 +1,36 @@
+{{extend 'layout_hosts.html'}}
+
+{{block camposgrid}}
+
+            colNames:['Nombre','MAC','Grupo'],
+            colModel:[ 
+                {name:'cn',index:'cn', width:80, align:"center"},
+                {name:'macAddress',index:'dhcpHWAddress', width:60, align:"center"},
+                {name:'groupName',index:'groupName', width:60, align:"center"}
+            ], 
+
+
+            postData:{type:'thinclient'}, 
+            caption:"Clientes ligeros",
+{{end}}
+{{block edit_form}}        
+        jQuery("#dialog-form").load("form_thinclient.html", function() {
+              getThinClientGroups(group);
+{{end}}   
+{{block edit2_form}}                       
+                    jQuery.post('call/json/getHostData',{ cn: hid,group:group,type:'thinclient' }, function(result) {
+                        jQuery("#form_data #name").val(result.response['cn']);
+                        jQuery("#form_data #mac").val(result.response['mac']);                    
+{{end}}
+
+{{block edit3_form}}                                                          
+                            title: "Modificar Cliente ligero"
+{{end}}
+
+{{block add_host}}
+            title: "Añadir cliente ligero"
+{{end}}
+
+{{block delete_host}}
+            jQuery.post("call/json/delete",{cn:cn,action:'delete',group:grupo,type:'thinclient'}, function(data){
+{{end}}
Index: controlies/trunk/applications/controlies/views/hosts/workstations.html
===================================================================
--- controlies/trunk/applications/controlies/views/hosts/workstations.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/hosts/workstations.html	(revision 178)
@@ -0,0 +1,23 @@
+{{extend 'layout_hosts.html'}}
+
+{{block camposgrid}}
+            colNames:['Nombre','IP','mac'],
+            colModel:[ 
+                {name:'cn',index:'cn', width:80, align:"center"},
+                {name:'ipHostNumber',index:'ipHostNumber', width:60, align:"center"},
+                {name:'macAddress',index:'macAddress', width:60, align:"center"}
+            ], 
+
+            postData:{type:'workstation'}, 
+            caption:"Workstations",
+{{end}}
+{{block edit3_form}}                                                          
+                            title: "Modificar Workstation"
+{{end}}
+
+{{block add_host}}
+            title: "Añadir Workstation"
+{{end}}
+{{block delete_host}}
+            jQuery.post("call/json/delete",{cn:cn,action:'delete',group:grupo,type:'workstation'}, function(data){
+{{end}}
Index: controlies/trunk/applications/controlies/views/usuarios/index.html
===================================================================
--- controlies/trunk/applications/controlies/views/usuarios/index.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/usuarios/index.html	(revision 178)
@@ -0,0 +1,263 @@
+<!-- Libreria Multiselect -->
+{{response.files.append(URL('static','js/multiselect/jquery.multiselect.css'))}}
+{{response.files.append(URL('static','js/multiselect/jquery.multiselect.min.js'))}}
+{{response.files.append(URL('static','js/multiselect/jquery.multiselect.es.js'))}}
+{{#response.files.append(URL('static','css/helper.css'))}}
+{{#response.files.append(URL('static','css/dropdown.css'))}}
+{{#response.files.append(URL('static','css/default.advanced.css'))}}
+
+
+
+
+ 
+{{extend 'layout.html'}}
+
+
+
+
+ 
+
+
+        <div id="tabla_clientes" class="centerGrid">
+            <table width="100%" align="center">
+            <tr>
+                <td style="width:2%"></td>
+                <td style="text-align:center;"><table id="list" width="100%"></table></td>
+                <td style="width:2%"></td>
+            </tr>
+            </table>
+            <div id="pager" style=""></div> 
+            <div id="filter" style="margin-left:30%;display:none">Buscar nada</div>
+        </div>
+
+        <div id="dialog-form"></div>
+
+        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
+        </div>
+
+        <div id="dialog-alert" title="Atención" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
+        </div>
+
+
+<script type="text/javascript">  
+    
+    jQuery(function() {
+        jQuery("#dialog-confirm").dialog({ autoOpen: false });
+        jQuery("#dialog-alert").dialog({ autoOpen: false });
+    });
+    
+                
+    function print_grid(){  
+          jQuery("#list").jqGrid({
+                url:"{{=URL(c='usuarios',f='call',args=['json','list'])}}",
+                data: "{}",
+                datatype: 'json',
+                mtype: 'GET',
+                contentType: "application/json; charset=utf-8",
+                complete: function(jsondata, stat) {
+                    if (stat == "success") {
+                        var thegrid = jQuery("#list")[0];
+                        thegrid.addJSONData(JSON.parse(jsondata.responseText).d);
+                    }
+                },
+                
+                colNames:['Tipo Usuario','Nombre','Usuario','ID usuario','ID Grupo','Identificación'],
+                colModel:[ 
+                    {name:'type',index:'type', width:60, align:"center",  stype:'select', editoptions:{value:":Todo;Profesor:Profesores;Alumno:Alumnos"}},                  
+                    {name:'cn',index:'cn', width:140, align:"left"},
+                    {name:'uid',index:'uid', width:90, align:"center"},
+                    {name:'uidNumber',index:'uidNumber', width:70, align:"center"},
+                    {name:'gidNumber',index:'gidNumber', width:70, align:"center"},
+                    {name:'employeeNumber',index:'employeeNumber', width:80, align:"center"}
+                ], 
+                rowNum:25,
+                height:335,
+                width: 900,
+                rowList:[25,50,75],  
+                pager: '#pager', 
+                sortname: 'cn', 
+                autowidth: false,
+                viewrecords: true, 
+                sortorder: "desc", 
+                caption:"Usuarios"    
+        
+          }); 
+          jQuery("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false});
+        
+            jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                    caption: "Insertar",
+                    buttonicon :'ui-icon-plus',
+                    onClickButton : function (){ 
+                        addRecord();
+                    } 
+            }); 
+            jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                    caption: "Modificar", 
+                    buttonicon :'ui-icon-pencil',
+                    onClickButton : function (){ 
+                        modifyRecord();
+                } 
+            }); 
+            jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                    caption: "Borrar", 
+                    buttonicon :'ui-icon-trash',
+                    onClickButton : function (){ 
+                        deleteRecord();
+                } 
+            }); 
+        
+          
+          jQuery("#list").jqGrid('filterToolbar'); 
+       
+    }
+    
+    
+    function rowSelected(){
+            var uid = jQuery("#list").jqGrid('getGridParam','selrow'); 
+        
+            if( uid == null ){
+                jQuery( "#dialog-alert" ).dialog({
+                    resizable: false,
+                    height:150,
+                    width:290,
+                    modal: true,
+                    buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
+                }).dialog('open');
+                return false;
+            }
+            return uid;
+    }           
+    
+    function addRecord(){
+    
+            jQuery("#messageLoading").show();
+        
+            jQuery("#dialog-form").html("").css("display","none");;
+            jQuery("#dialog-form").load("form.html", function() {
+                getAllGroups();
+                jQuery("#form_data #action").val("add");
+                jQuery("#form_data #messageForm").html("Todos los campos son obligatorios");                                     
+        
+                x = (jQuery(window).width()-300)/2;
+                y = (jQuery(window).height()-500)/2;
+        
+                jQuery("#messageLoading").hide();
+        
+                jQuery("#dialog-form").dialog({
+                    resizable: false,
+                    position: top,
+                    modal: true,
+                    width: 300,                     
+                    title: "Añadir Usuario"
+                }).dialog('option', 'position', [x, y]);
+            });
+    }
+    
+    function modifyRecord(){
+                    var uid;
+    
+                    jQuery("#messageLoading").show();
+                    
+                    var uid = rowSelected();
+                    if(uid==false)
+                        return false;
+    
+                    jQuery("#dialog-form").html("").css("display","none");
+                    jQuery("#dialog-form").load("form.html", function() {
+                        
+                        getAllGroups();
+                        
+                        jQuery("#form_data #action").val("modify");
+                        jQuery("#form_data #user").attr("readonly","true");
+                        jQuery("#form_data #user").css("background-color","#DDD");
+                        jQuery("#form_data #messageForm").html("Si deja la contraseña en blanco no se modificará<br>El resto de campos son obligatorios");
+                        
+                        jQuery.post('call/json/getUserData',{ username: uid }, function(result) {
+                            //var result = jQuery.parseJSON(data);
+    
+                            if(result.response['type']=="teacher")
+                                var textType = "Profesor";
+                            else
+                                var textType = "Alumno";
+                                
+                            var dep = Array(result.response['groups']['departments']);
+    
+                            jQuery("#form_data #type").replaceWith(textType+"<input type='hidden' id='type' name='type' value='"+result.response['type']+"'/>");
+                            jQuery("#form_data #name").val(result.response['name']);
+                            jQuery("#form_data #nif").val(result.response['nif']);       
+                            jQuery("#form_data #user").val(result.response['user']);
+                            jQuery("#form_data #surname").val(result.response['surname']);
+                            if (result.response['photo']!='')
+                                jQuery("#form_data #photo").attr("src","data:image/png;base64,"+result.response['photo']);                       
+    
+                            $.each(result.response['groups']['departments'], function(i, l){
+                                jQuery('#form_data input:checkbox[value='+l+']').attr('checked', true);                          
+                            });
+    
+                            $.each(result.response['groups']['classrooms'], function(i, l){
+                                jQuery('#form_data input:checkbox[value='+l+']').attr('checked', true);                          
+                            });                     
+    
+                            x = (jQuery(window).width()-300)/2;
+                            y = (jQuery(window).height()-500)/2;
+                            
+                            jQuery("#messageLoading").hide();
+                            
+                            jQuery("#dialog-form").dialog({
+                                resizable: false,
+                                modal: true,
+                                width: 300,
+                                title: "Modificar Usuario"
+                            }).dialog('option', 'position', [x, y]);                        
+                        });               
+                    });
+    }
+    
+    function deleteRecord(){
+        
+            var uid = rowSelected();
+            if(uid==false)
+                return false;
+        
+            jQuery( "#dialog-confirm" ).dialog({
+                resizable: false,
+                height:160,
+                width:350,
+                modal: true,
+                buttons: {
+                    "Borrar": function() {
+                        jQuery.post("call/json/delete","user="+uid, function(data){
+                            jQuery("#dialog-confirm").dialog( "close" );
+                            jQuery("#list").trigger("reloadGrid");
+                        });
+                    },
+                    "Cancelar": function() {
+                        $(this).dialog( "close" );
+                    }
+                }
+            }).dialog('open');
+    }
+    
+    function getAllGroups(){
+            $.post("{{=URL(c='grupos',f='call',args=['json','getAllGroups'])}}",   function(groups) {
+                //var groups = $.parseJSON(data);                 
+                
+                $.each( groups.departments, function(i, l){
+                    jQuery("#form_data #departments").append("<option value='"+l+"'>"+l+"</option>");
+                 });
+                $.each( groups.classrooms, function(i, l){
+                    jQuery("#form_data #classrooms").append("<option value='"+l+"'>"+l+"</option>");
+                 });                         
+                jQuery("#form_data #departments").multiselect(); 
+                jQuery("#form_data #classrooms").multiselect();                       
+            });             
+    }
+    
+</script>
+
+
+<script type="text/javascript">
+  jQuery(document).ready(function(){  print_grid();}); 
+</script>
Index: controlies/trunk/applications/controlies/views/usuarios/form.html
===================================================================
--- controlies/trunk/applications/controlies/views/usuarios/form.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/usuarios/form.html	(revision 178)
@@ -0,0 +1,95 @@
+<script language="javascript">
+
+    $(function() {
+        $("#name").focus();
+        $("#saveButton").button({ icons: { primary: "ui-icon-disk"}});
+        $("#cancelButton")
+            .button({ icons: { primary: "ui-icon-close"}})
+            .click( function(){ $('#dialog-form').dialog('close'); });
+    });
+
+    function restartStyle(){
+        $("#form_data p span").css("color","black");
+        $('#message').html("");
+    }
+
+    function send(){
+
+        restartStyle();
+
+        jQuery.post('call/json/modify_user', jQuery("#form_data").serialize(), function(result) {
+            //var result = $.parseJSON(data);
+            switch(result.response){
+                case "OK":{
+                    jQuery('#message').html("Operación realizada correctamente").css("color","green").effect("highlight", {"color":"yellow"}, 1000);
+                    setTimeout("$('#dialog-form').dialog('close')",1000);
+                    jQuery("#list").trigger("reloadGrid");
+                    break;
+                }
+                case "fail":{
+                    jQuery('#message').html("Se produjo un error").effect("highlight", {"color":"yellow"}, 1000);
+                    break;
+                }
+                case "distinctPassword":{
+                    jQuery('#password2Tag').css("color","red");
+                    jQuery('#password2').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("La repetición no coincide").effect("highlight", {"color":"yellow"}, 1000);
+                    break;
+                }
+                case "userAlreadyExists":{
+                    jQuery('#userTag').css("color","red");
+                    jQuery('#user').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Ya existe ese nombre de usuario").effect("slide");                  
+                    break;
+                }
+                default:{
+                    jQuery('#'+result.response+"Tag").css("color","red");
+                    jQuery('#'+result.response).effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Hay campos vacíos o incorrectos").effect("slide");
+                    break;
+                }
+            }
+        });
+
+        return false;
+    }
+    
+    function searchUsername(){
+        if(jQuery("#form_data #action").val()=="add")
+            jQuery.post('call/json/searchUsername','name='+jQuery("#form_data #name").val()+'&surname='+jQuery("#form_data #surname").val(), function(data) {
+                //var result = $.parseJSON(data);
+                jQuery("#form_data #user").val(result.response);
+            });
+    }
+</script>
+ 
+<form id="form_data" onsubmit="return send();">
+    <input type="hidden" id="action" name="action"/>
+    <div>
+        <div style="float:right;">
+            <p> {{=IMG(_src=URL('static','images/nobody.png'),_id='photo',_name='photo', _style='border:1px solid #BBB;')}} </p>
+        </div>
+        <div>
+            <p><span id="typeTag">Tipo Usuario</span><br>
+                <select type="text" id="type" name="type">
+                    <option value="none">Seleccione...</option>
+                    <option value="teacher">Profesor</option>
+                    <option value="student">Alumno</option>
+                </select>
+            </p>    
+            <p><span id="nameTag">Nombre y Apellidos</span><br><input type="text" id="name" name="name" onChange="searchUsername();"/></p>
+            <p><span id="surnameTag">Primer Apellido</span><br><input type="text" id="surname" name="surname"/></p> 
+            <p><span id="nifTag">NIF</span><br><input type="text" id="nif" name="nif"/></p>
+
+            <p><span id="departmentsTag">Departamentos</span><br><select type="text" id="departments" name="departments[]" multiple style="width:250px;"></select>
+            <p><span id="classroomsTag">Cursos</span><br><select type="text" id="classrooms" name="classrooms[]" multiple style="width:250px;"></select>    
+                    
+            <p><span id="userTag">Usuario</span><br><input type="text" id="user" name="user"/></p>
+            <p><span id="passwordTag">Contraseña</span><br><input type="text" id="password" name="password"/></p>
+            <p><span id="password2Tag">Repita Contraseña</span><br><input type="text" id="password2" name="password2"/></p>
+        </div>
+    </div>
+    <div id="message" style="text-align:center; font-weight:bold; color:red; padding:3px; "></div>
+    <div style="text-align:center;"><button id="saveButton" type="submit" style="width:100px;">Guardar</button>&nbsp;&nbsp;<button type="button" id="cancelButton" style="width:100px;">Cancelar</button></div>
+    <p style="padding-top:10px; text-align:center; font-size:10px;" id="messageForm"></p>       
+</form>
Index: controlies/trunk/applications/controlies/views/grupos/form.html
===================================================================
--- controlies/trunk/applications/controlies/views/grupos/form.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/grupos/form.html	(revision 178)
@@ -0,0 +1,76 @@
+<script language="javascript">
+
+    $(function() {
+        $("#name").focus();
+        $("#saveButton").button({ icons: { primary: "ui-icon-disk"}});
+        $("#cancelButton")
+            .button({ icons: { primary: "ui-icon-close"}})
+            .click( function(){ $('#dialog-form').dialog('close'); });
+    });
+
+    function restartStyle(){
+        $("#form_data p span").css("color","black");
+        $('#message').html("");
+    }
+
+
+    function send(){
+
+        restartStyle();
+
+        jQuery.post('call/json/modify', jQuery("#form_data").serialize(), function(result) {
+            switch(result.response){
+                case "OK":{
+                    jQuery('#message').html("Operación realizada correctamente").css("color","green").effect("highlight", {"color":"yellow"}, 1000);
+                    setTimeout("$('#dialog-form').dialog('close')",1000);
+                    jQuery("#list").trigger("reloadGrid");
+                    break;
+                }
+                case "fail":{
+                    jQuery('#message').html("Se produjo un error").effect("highlight", {"color":"yellow"}, 1000);
+                    break;
+                }
+                case "distinctPassword":{
+                    jQuery('#password2Tag').css("color","red");
+                    jQuery('#password2').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("La repetición no coincide").effect("highlight", {"color":"yellow"}, 1000);
+                    break;
+                }
+                case "userAlreadyExists":{
+                    jQuery('#userTag').css("color","red");
+                    jQuery('#user').effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Ya existe ese nombre de usuario").effect("slide");                  
+                    break;
+                }
+                default:{
+                    jQuery('#'+result.response+"Tag").css("color","red");
+                    jQuery('#'+result.response).effect("highlight", {"color":"yellow"}, 1000).focus();
+                    jQuery('#message').html("Hay campos vacíos o incorrectos").effect("slide");
+                    break;
+                }
+            }
+        });
+
+        return false;
+    }
+    
+</script>
+ 
+<form id="form_data" onsubmit="return send();">
+    <input type="hidden" id="action" name="action"/>
+    <p><span id="typeTag">Tipo Grupo</span><br>
+        <select id="type" name="type">
+            <option value="none">Seleccione...</option>
+            <option value="school_department">Departamento</option>
+            <option value="school_class">Curso</option>
+        </select>
+    </p>    
+    <p><span id="nameTag">Nombre </span><br><input type="text" id="name" name="name"/></p>
+
+    <p><span id="usersTag">Usuarios</span>
+       <div class="form_users"><input type="text" name="users" value="" id="users" /></div>
+    </p>
+    <p  style="margin-bottom:300px;"></p>
+    <div id="message" style="text-align:center; font-weight:bold; color:red; padding:3px; "></div>
+    <div style="text-align:center;"><button id="saveButton" type="submit" style="width:100px;">Guardar</button>&nbsp;&nbsp;<button type="button" id="cancelButton" style="width:100px;">Cancelar</button></div>      
+</form>
Index: controlies/trunk/applications/controlies/views/grupos/index.html
===================================================================
--- controlies/trunk/applications/controlies/views/grupos/index.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/grupos/index.html	(revision 178)
@@ -0,0 +1,256 @@
+<!-- Libreria Multiselect -->
+{{response.files.append(URL('static','js/multiselect/jquery.multiselect.css'))}}
+{{response.files.append(URL('static','js/multiselect/jquery.multiselect.min.js'))}}
+{{response.files.append(URL('static','js/multiselect/jquery.multiselect.es.js'))}}
+
+{{response.files.append(URL('static','js/autocomplete/TextboxList.css'))}}
+{{response.files.append(URL('static','js/autocomplete/TextboxList.Autocomplete.css'))}}
+{{response.files.append(URL('static','js/autocomplete/GrowingInput.js'))}}
+{{response.files.append(URL('static','js/autocomplete/TextboxList.js'))}}
+{{response.files.append(URL('static','js/autocomplete/TextboxList.Autocomplete.js'))}}
+{{response.files.append(URL('static','js/autocomplete/TextboxList.Autocomplete.Binary.js'))}}
+
+ 
+{{extend 'layout.html'}}
+
+        <div id="tabla_clientes" class="centerGrid">
+        <table width="100%">
+        <tr>
+            <td style="width:2%"></td>
+            <td><table id="list" width="100%"></table></td>
+            <td style="width:2%"></td>
+        </tr>
+        </table>
+        <div id="pager" style=""></div> 
+        <div id="filter" style="margin-left:30%;display:none">Search Invoices</div>
+        </div>
+
+        <div id="dialog-form"></div>
+
+        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
+        </div>
+
+        <div id="dialog-alert" title="Atención" style="display:none;">
+            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
+        </div>
+        
+        
+        
+
+
+
+
+
+<script type="text/javascript">  
+
+jQuery(function() {
+    jQuery("#dialog-confirm").dialog({ autoOpen: false });
+    jQuery("#dialog-alert").dialog({ autoOpen: false });
+});
+
+            
+function print_grid(){  
+      jQuery("#list").jqGrid({
+            url:"{{=URL(c='grupos',f='call',args=['json','list'])}}",
+            data: "{}",            
+            mtype: 'GET', 
+            datatype: "json", 
+            colNames:['Tipo Grupo','Nombre','ID Grupo','Nº Usuarios'],
+            colModel:[
+                {name:'type',index:'type', width:60, align:"center",  stype:'select', editoptions:{value:":Todo;Departamento:Departamentos;Aula:Cursos"}},                                      
+                {name:'cn',index:'cn', width:80, align:"center"},
+                {name:'gidNumber',index:'gidNumber', width:60, align:"center"},
+                {name:'usersNumber',index:'usersNumber', width:60, align:"center"}                      
+            ], 
+            rowNum:25,
+            height:335,
+            width: 900,
+            rowList:[25,50,75],  
+            pager: '#pager', 
+            sortname: 'cn', 
+            autowidth: false,
+            viewrecords: true, 
+            sortorder: "desc", 
+            caption:"Grupos"  
+    
+      }); 
+      jQuery("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false});
+    
+        jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                caption: "Insertar",
+                buttonicon :'ui-icon-plus',
+                onClickButton : function (){ 
+                    addRecord();
+                } 
+        }); 
+        jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                caption: "Modificar", 
+                buttonicon :'ui-icon-pencil',
+                onClickButton : function (){ 
+                    modifyRecord();
+            } 
+        }); 
+        jQuery("#list").jqGrid('navButtonAdd','#pager',{
+                caption: "Borrar", 
+                buttonicon :'ui-icon-trash',
+                onClickButton : function (){ 
+                    deleteRecord();
+            } 
+        }); 
+    
+      
+      jQuery("#list").jqGrid('filterToolbar'); 
+   
+}
+
+
+function rowSelected(){
+        var uid = jQuery("#list").jqGrid('getGridParam','selrow'); 
+    
+        if( uid == null ){
+            jQuery( "#dialog-alert" ).dialog({
+                resizable: false,
+                height:150,
+                width:290,
+                modal: true,
+                buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
+            }).dialog('open');
+            return false;
+        }
+        return uid;
+}           
+
+function addRecord(){
+
+        jQuery("#messageLoading").show();
+    
+        jQuery("#dialog-form").html("");
+        jQuery("#dialog-form").load("form.html", function() {
+            jQuery("#form_data #action").val("add");
+            jQuery("#form_data #messageForm").html("Todos los campos son obligatorios");                                     
+    
+            x = (jQuery(window).width()-500)/2;
+            y = (jQuery(window).height()-500)/2;
+    
+            jQuery("#messageLoading").hide();
+    
+            jQuery("#dialog-form").dialog({
+                resizable: false,
+                position: top,
+                modal: true,
+                width: 500,                     
+                title: "Añadir Grupo"
+            }).dialog('option', 'position', [x, y]);
+            
+            var autoComplete = new jQuery.TextboxList('#users', {unique: true, plugins: {autocomplete: {
+                minLength: 2,
+                queryRemote: true,
+                remote: {url: "{{=URL(c='usuarios',f='call',args=['json','getAllUsers'])}}" }
+            }}}); 
+                                
+        });
+}
+
+
+
+var autoComplete;
+
+function modifyRecord(){
+                var uid;
+
+                jQuery("#messageLoading").show();
+                
+                var uid = rowSelected();
+                if(uid==false)
+                    return false;
+
+                jQuery("#dialog-form").html("").css("display","none");
+                jQuery("#dialog-form").load("form.html", function() {
+                    
+                jQuery("#form_data #action").val("modify");
+                    
+                    jQuery.post('call/json/getGroupData',{ name: uid }, function(result) {
+
+                        if(result.response['type']=="school_department")
+                            var textType = "Departamento";
+                        else
+                            var textType = "Curso";
+                            
+                        jQuery("#form_data #type").replaceWith(textType+"<input type='hidden' id='type' name='type' value='"+result.response['type']+"'/>");
+                        jQuery("#form_data #name").replaceWith(result.response['name']+"<input type='hidden' id='name' name='name' value='"+result.response['name']+"'/>");
+                                    
+                        x = (jQuery(window).width()-500)/2;
+                        y = (jQuery(window).height()-500)/2;
+                        
+                        jQuery("#messageLoading").hide();
+                        
+                        jQuery("#dialog-form").dialog({
+                            resizable: false,
+                            modal: true,
+                            width: 500,
+                            title: "Modificar Grupo"
+                        }).dialog('option', 'position', [x, y]);        
+                                        
+                        // Autocomplete with poll the server as you type
+                        autoComplete = new jQuery.TextboxList('#users', {unique: true, plugins: {autocomplete: {
+                            minLength: 2,
+                            queryRemote: true,
+                            remote: {url: "{{=URL(c='usuarios',f='call',args=['json','getAllUsers'])}}" }
+                        }}});
+
+                        $.each(result.response['memberuid'], function(i, l){
+                            autoComplete.add(l);        
+                        });                       
+                    });               
+                });
+}
+
+function deleteRecord(){
+    
+        var id = rowSelected();
+        if(id==false)
+            return false;
+    
+        jQuery( "#dialog-confirm" ).dialog({
+            resizable: false,
+            height:160,
+            width:350,
+            modal: true,
+            buttons: {
+                "Borrar": function() {
+                    jQuery.post("call/json/delete","name="+id, function(data){
+                        jQuery("#dialog-confirm").dialog( "close" );
+                        jQuery("#list").trigger("reloadGrid");
+                    });
+                },
+                "Cancelar": function() {
+                    $(this).dialog( "close" );
+                }
+            }
+        }).dialog('open');
+}
+
+
+
+function getAllUsers(){
+        $.post("{{=URL(c='usuarios',f='call',args=['json','getAllUsers'])}}",   function(users) {
+    
+    
+                          
+        });             
+}
+
+</script>
+
+
+
+
+
+
+
+
+
+<script type="text/javascript">
+  jQuery(document).ready(function(){  print_grid();}); 
+</script>
Index: controlies/trunk/applications/controlies/views/web2py_ajax.html
===================================================================
--- controlies/trunk/applications/controlies/views/web2py_ajax.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/web2py_ajax.html	(revision 178)
@@ -0,0 +1,116 @@
+{{
+response.files.insert(0,URL('static','js/jquery/jquery.js'))
+response.files.insert(1,URL('static','js/jquery/jquery-ui.custom.min.js'))
+response.files.insert(2,URL('static','css/calendar.css'))
+response.files.insert(3,URL('static','js/calendar.js'))
+for _item in response.meta or []:}}
+     <meta name="{{=_item}}" content="{{=response.meta[_item]}}" />{{
+pass
+for _k,_file in enumerate(response.files or []):
+  if _file in response.files[:_k]:
+     continue
+  _file0=_file.lower().split('?')[0]
+  if _file0.endswith('.css'):}}
+     <link href="{{=_file}}" rel="stylesheet" type="text/css" />{{
+  elif _file0.endswith('.js'):}}
+     <script src="{{=_file}}" type="text/javascript"></script>{{
+  pass
+pass
+}}
+  
+<script type="text/javascript"><!--
+function popup(url) {
+  newwindow=window.open(url,'name','height=400,width=600');
+  if (window.focus) newwindow.focus();
+  return false;
+}
+function collapse(id) { jQuery('#'+id).slideToggle(); }
+function fade(id,value) { if(value>0) jQuery('#'+id).hide().fadeIn('slow'); else jQuery('#'+id).show().fadeOut('slow'); }
+function ajax(u,s,t) {
+    query = '';
+    if (typeof s == "string") {
+        d = jQuery(s).serialize();
+        if(d){ query = d; }
+    } else {
+        pcs = [];
+        for(i=0; i<s.length; i++) {
+            q = jQuery("[name="+s[i]+"]").serialize();
+            if(q){pcs.push(q);}
+        }
+        if (pcs.length>0){query = pcs.join("&");}
+    }
+    jQuery.ajax({type: "POST", url: u, data: query, success: function(msg) { if(t) { if(t==':eval') eval(msg); else jQuery("#" + t).html(msg); } } }); 
+}
+
+String.prototype.reverse = function () { return this.split('').reverse().join('');};
+function web2py_ajax_init() {
+  jQuery('.hidden').hide();
+  jQuery('.error').hide().slideDown('slow');
+  jQuery('.flash').click(function() { jQuery(this).fadeOut('slow'); return false; });
+  // jQuery('input[type=submit]').click(function(){var t=jQuery(this);t.hide();t.after('<input class="submit_disabled" disabled="disabled" type="submit" name="'+t.attr("name")+'_dummy" value="'+t.val()+'">')});
+  jQuery('input.integer').live('keyup', function(){this.value=this.value.reverse().replace(/[^0-9\-]|\-(?=.)/g,'').reverse();});
+  jQuery('input.double,input.decimal').live('keyup', function(){this.value=this.value.reverse().replace(/[^0-9\-\.,]|[\-](?=.)|[\.,](?=[0-9]*[\.,])/g,'').reverse();});
+  jQuery("input[type='checkbox'].delete").live('click', function(){ if(this.checked) if(!confirm("{{=T('Sure you want to delete this object?')}}")) this.checked=false; });
+  try {jQuery("input.date").live('focus',function() {Calendar.setup({
+     inputField:this, ifFormat:"{{=T('%Y-%m-%d')}}", showsTime:false
+  }); }); } catch(e) {};
+  try { jQuery("input.datetime").live('focus', function() {Calendar.setup({
+     inputField:this, ifFormat:"{{=T('%Y-%m-%d %H:%M:%S')}}", showsTime: true,timeFormat: "24"
+  }); }); } catch(e) {};
+
+  jQuery("input.time").live('focus', function() { var el = jQuery(this); 
+          if (!el.hasClass('hasTimeEntry')) try { el.timeEntry(); } catch(e) {}; 
+  });
+};
+
+jQuery(document).ready(function() {   
+   var flash = jQuery('.flash');
+   flash.hide();
+   if(flash.html()) flash.slideDown();
+   web2py_ajax_init();
+});
+function web2py_trap_form(action,target) {
+   jQuery('#'+target+' form').each(function(i){
+      var form=jQuery(this);
+      if(!form.hasClass('no_trap'))
+        form.submit(function(obj){
+         jQuery('.flash').hide().html('');
+         web2py_ajax_page('post',action,form.serialize(),target);
+         return false;
+      });
+   });
+}
+function web2py_ajax_page(method,action,data,target) {
+  jQuery.ajax({'type':method,'url':action,'data':data,
+    'beforeSend':function(xhr) {
+      xhr.setRequestHeader('web2py-component-location',document.location);
+      xhr.setRequestHeader('web2py-component-element',target);},
+    'complete':function(xhr,text){
+      var html=xhr.responseText;
+      var content=xhr.getResponseHeader('web2py-component-content'); 
+      var command=xhr.getResponseHeader('web2py-component-command');
+      var flash=xhr.getResponseHeader('web2py-component-flash');
+      var t = jQuery('#'+target);
+      if(content=='prepend') t.prepend(html); 
+      else if(content=='append') t.append(html);
+      else if(content!='hide') t.html(html);  
+      web2py_trap_form(action,target);
+      web2py_ajax_init();      
+      if(command) eval(command);
+      if(flash) jQuery('.flash').html(flash).slideDown();
+      }
+    });
+}
+function web2py_component(action,target) {
+  jQuery(document).ready(function(){ web2py_ajax_page('get',action,null,target); });
+}
+function web2py_comet(url,onmessage,onopen,onclose) {
+  if ("WebSocket" in window) {
+    var ws = new WebSocket(url);
+    ws.onopen = onopen?onopen:(function(){});
+    ws.onmessage = onmessage;
+    ws.onclose = onclose?onclose:(function(){});
+    return true; // supported
+  } else return false; // not supported
+}
+//--></script>
Index: controlies/trunk/applications/controlies/views/generic.html
===================================================================
--- controlies/trunk/applications/controlies/views/generic.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/generic.html	(revision 178)
@@ -0,0 +1,22 @@
+{{extend 'layout.html'}}
+{{"""
+
+You should not modify this file. 
+It is used as default when a view is not provided for your controllers
+
+"""}}
+<h2>{{=' '.join(x.capitalize() for x in request.function.split('_'))}}</h2>
+{{if len(response._vars)==1:}}
+{{=response._vars.values()[0]}}
+{{elif len(response._vars)>1:}}
+{{=BEAUTIFY(response._vars)}}
+
+<button onclick="document.location='{{=URL("admin","default","design",args=request.application)}}'">admin</button>
+<button onclick="jQuery('#request').slideToggle()">request</button>
+<div class="hidden" id="request"><h2>request</h2>{{=BEAUTIFY(request)}}</div>
+<button onclick="jQuery('#session').slideToggle()">session</button>
+<div class="hidden" id="session"><h2>session</h2>{{=BEAUTIFY(session)}}</div>
+<button onclick="jQuery('#response').slideToggle()">response</button>
+<div class="hidden" id="response"><h2>response</h2>{{=BEAUTIFY(response)}}</div>
+<script>jQuery('.hidden').hide();</script>
+{{pass}}
Index: controlies/trunk/applications/controlies/views/generic.rss
===================================================================
--- controlies/trunk/applications/controlies/views/generic.rss	(nonexistent)
+++ controlies/trunk/applications/controlies/views/generic.rss	(revision 178)
@@ -0,0 +1,20 @@
+{{
+###
+# response._vars contains the dictionary returned by the controller action
+# for this to work the action must return something like
+#
+#   dict(title=...,link=...,description=...,created_on='...',items=...)
+#
+# items is a list of dictionaries each with title, link, description, pub_date.
+###
+try:
+   from gluon.serializers import rss   
+   response.write(rss(response._vars), escape=False)
+   response.headers['Content-Type'] = 'application/rss+xml'
+except (TypeError, ValueError):
+	raise HTTP(405, 'RSS serialization error')
+except ImportError:
+	raise HTTP(405, 'RSS not available')
+except:
+	raise HTTP(405, 'RSS error')
+}}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/views/default/index.html
===================================================================
--- controlies/trunk/applications/controlies/views/default/index.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/default/index.html	(revision 178)
@@ -0,0 +1,45 @@
+{{response.files.append(URL('static','js/jquery.tzineClock/jquery.tzineClock.css'))}}
+ {{response.files.append(URL('static','js/jquery.tzineClock/jquery.tzineClock.js'))}}
+
+ 
+{{left_sidebar_enabled=right_sidebar_enabled=False}}
+{{extend 'layout.html'}}
+
+{{if auth.user is not None:}}
+
+
+ <script type="text/javascript">
+    jQuery(document).ready(function(){
+        jQuery('#fancyClock').tzineClock();
+    });
+</script>
+{{pass}}
+ 
+
+
+{{if 'message' in globals():}}
+
+<h1>{{=message}}</h1>
+
+<hr />
+
+ 
+
+
+
+
+
+
+
+
+
+
+
+{{else:}}
+{{=BEAUTIFY(response._vars)}}
+{{pass}}
+
+<div id="fancyClock" style="margin-left:190px;"></div>
+
+{{block left_sidebar}}New Left Sidebar Content{{end}}
+{{block right_sidebar}}New Right Sidebar Content{{end}}
Index: controlies/trunk/applications/controlies/views/default/user.html
===================================================================
--- controlies/trunk/applications/controlies/views/default/user.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/default/user.html	(revision 178)
@@ -0,0 +1,69 @@
+{{extend 'layout.html'}}
+
+ <script type="text/javascript">
+     $(function() {
+            $( "#tabs" ).tabs();
+            $( "#authButton" ).button({ icons: { primary: "ui-icon-locked"}});
+        });
+</script>
+
+
+
+<h2>{{=T( request.args(0).replace('_',' ').capitalize() )}}</h2>
+<div id="web2py_user_form">
+
+
+    <div id="tabs" class="centerAuth"> 
+        <ul> 
+            <li><a href="#tabs-1">Autenticaci&oacute;n</a></li> 
+        </ul> 
+        <div id="tabs-1"> 
+
+        {{=IMG(_src=URL(r=request,c='static',f='images/unlock.png'),_style="float:right;")}} 
+
+            
+            {{=form.custom.begin}}
+         
+
+                <p><span>LDAP</span><br><input type="text" id="host" name="host" value="localhost"></p> 
+                <p><span>{{=form.custom.label.username}}</span><br>    {{=form.custom.widget.username}}</p> 
+                <p><span>{{=form.custom.label.password}}</span><br>{{=form.custom.widget.password}}</p><br> 
+                <p style="text-align:center;">
+                            {{form.custom.submit
+                            submit = form.element("input",_type="submit")
+                            submit["_value"] = "Autenticar"
+                            submit["_id"] = "authButton"
+                            =submit
+                            }}   
+            </p>
+
+            
+            {{=form.custom.end}}
+            
+        </div> 
+    </div> 
+
+
+
+
+
+
+
+
+
+
+{{if request.args(0)=='login':}}
+{{if not 'register' in auth.settings.actions_disabled:}}
+<br/><a href="{{=URL(r=request,args='register')}}">register</a>
+{{pass}}
+{{if not 'request_reset_password' in auth.settings.actions_disabled:}}
+<br/><a href="{{=URL(r=request,args='request_reset_password')}}">lost password</a>
+{{pass}}
+{{pass}}
+</div>
+
+<script language="javascript">
+<!--
+ jQuery("#web2py_user_form input:visible:enabled:first").focus();
+//-->
+</script>
Index: controlies/trunk/applications/controlies/views/generic.json
===================================================================
--- controlies/trunk/applications/controlies/views/generic.json	(nonexistent)
+++ controlies/trunk/applications/controlies/views/generic.json	(revision 178)
@@ -0,0 +1,15 @@
+{{
+###
+# response._vars contains the dictionary returned by the controller action
+###
+try:
+	from gluon.serializers import json
+	response.write(json(response._vars), escape=False)
+	response.headers['Content-Type'] = 'application/json'
+except (TypeError, ValueError):
+	raise HTTP(405, 'JSON serialization error')
+except ImportError:
+	raise HTTP(405, 'JSON not available')
+except:
+	raise HTTP(405, 'JSON error')
+}}
Index: controlies/trunk/applications/controlies/views/generic.pdf
===================================================================
--- controlies/trunk/applications/controlies/views/generic.pdf	(nonexistent)
+++ controlies/trunk/applications/controlies/views/generic.pdf	(revision 178)
@@ -0,0 +1,31 @@
+{{
+import re
+from gluon.contrib.markmin.markmin2pdf import markmin2pdf
+def markmin_serializer(text,tag=None,attr={}):
+    if tag==None: return re.sub('\s+',' ',text)
+    if tag=='br': return '\n\n'
+    if tag=='h1': return '# '+text+'\n\n'
+    if tag=='h2': return '#'*2+' '+text+'\n\n'
+    if tag=='h3': return '#'*3+' '+text+'\n\n'
+    if tag=='h4': return '#'*4+' '+text+'\n\n'
+    if tag=='p': return text+'\n\n'
+    if tag=='li': return '\n- '+text.replace('\n',' ')
+    if tag=='tr': return text[3:].replace('\n',' ')+'\n'
+    if tag in ['table','blockquote']: return '\n-----\n'+text+'\n------\n'
+    if tag in ['td','th']: return ' | '+text
+    if tag in ['b','strong','label']: return '**%s**' % text
+    if tag in ['em','i']: return "''%s''" % text
+    if tag in ['tt','code']: return '``%s``' % text
+    if tag=='a': return '[[%s %s]]' % (text,attr.get('_href',''))
+    return text
+html=response.render('%s/%s.html' % (request.controller,request.function))
+markmin=TAG(html).element('#content').flatten(markmin_serializer)
+pdf,warnings,errors=markmin2pdf(markmin)
+if errors:
+   response.headers['Content-Type']='text'
+   response.write(HTML(BODY(H1('errors'),LU(*errors),H1('warnings'),LU(*warnings))))
+else:
+   response.headers['Content-Type']='application/pdf'
+   response.write(pdf,escape=False)
+pass
+}}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/views/__init__.py
===================================================================
Index: controlies/trunk/applications/controlies/views/generic.load
===================================================================
--- controlies/trunk/applications/controlies/views/generic.load	(nonexistent)
+++ controlies/trunk/applications/controlies/views/generic.load	(revision 178)
@@ -0,0 +1,30 @@
+{{'''
+# License: Public Domain
+# Author: Iceberg at 21cn dot com
+
+With this generic.load file, you can use same function to serve two purposes.
+
+= regular action
+- ajax callback (when called with .load)
+
+Example modified from http://www.web2py.com/AlterEgo/default/show/252:
+
+def index():
+    return dict(
+		part1='hello world',
+        	part2=LOAD(url=URL(r=request,f='auxiliary.load'),ajax=True))
+
+def auxiliary():
+    form=SQLFORM.factory(Field('name'))
+    if form.accepts(request.vars):
+        response.flash = 'ok' 
+        return dict(message="Hello %s" % form.vars.name)
+    return dict(form=form)
+
+Notice:
+
+- no need to set response.headers['web2py-response-flash']
+- no need to return a string
+even if the function is called via ajax.
+
+'''}}{{if len(response._vars)==1:}}{{=response._vars.values()[0]}}{{else:}}{{=BEAUTIFY(response._vars)}}{{pass}}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/views/generic.xml
===================================================================
--- controlies/trunk/applications/controlies/views/generic.xml	(nonexistent)
+++ controlies/trunk/applications/controlies/views/generic.xml	(revision 178)
@@ -0,0 +1,15 @@
+{{
+###
+# response._vars contains the dictionary returned by thecontroller action
+###
+try:
+   from gluon.serializers import xml
+   response.write(xml(response._vars), escape=False)
+   response.headers['Content-Type'] = 'text/xml'
+except (TypeError, ValueError):
+	raise HTTP(405, 'XML serialization error')
+except ImportError:
+	raise HTTP(405, 'XML not available')
+except:
+	raise HTTP(405, 'XML error')
+}}
Index: controlies/trunk/applications/controlies/views/appadmin.html
===================================================================
--- controlies/trunk/applications/controlies/views/appadmin.html	(nonexistent)
+++ controlies/trunk/applications/controlies/views/appadmin.html	(revision 178)
@@ -0,0 +1,198 @@
+{{extend 'layout.html'}}
+<script><!--
+jQuery(document).ready(function(){
+  jQuery("table.sortable tbody tr").mouseover( function() {
+     jQuery(this).addClass("highlight"); }).mouseout( function() { 
+     jQuery(this).removeClass("highlight"); });
+  jQuery('table.sortable tbody tr:odd').addClass('odd');
+  jQuery('table.sortable tbody tr:even').addClass('even');
+});
+//--></script>
+
+{{if request.function=='index':}}
+  <h1>{{=T("Available databases and tables")}}</h1>
+  {{if not databases:}}{{=T("No databases in this application")}}{{pass}}
+  {{for db in sorted(databases):}}
+    {{for table in databases[db].tables:}}
+      {{qry='%s.%s.id>0'%(db,table)}}
+      {{tbl=databases[db][table]}}
+      {{if hasattr(tbl,'_primarykey'):}}
+        {{if tbl._primarykey:}}
+            {{firstkey=tbl[tbl._primarykey[0]]}}
+            {{if firstkey.type in ['string','text']:}}
+              {{qry='%s.%s.%s!=""'%(db,table,firstkey.name)}}
+            {{else:}}
+              {{qry='%s.%s.%s>0'%(db,table,firstkey.name)}}
+            {{pass}}
+        {{else:}}
+             {{qry=''}}
+             {{pass}}
+      {{pass}}
+      <h2>{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
+</h2>
+      [ {{=A(str(T('insert new'))+' '+table,_href=URL('insert',args=[db,table]))}} ]
+    <br /><br />
+    {{pass}}
+  {{pass}}
+
+{{elif request.function=='select':}}
+  <h1>{{=XML(str(T("database %s select"))%A(request.args[0],_href=URL('index'))) }}
+  </h1>
+   {{if table:}}
+  [ {{=A(str(T('insert new %s'))%table,_href=URL('insert',args=[request.args[0],table]))}} ]<br/><br/>
+    <h2>{{=T("Rows in table")}}</h2><br/>
+   {{else:}}
+    <h2>{{=T("Rows selected")}}</h2><br/>
+   {{pass}}
+   {{=form}}
+   <p>{{=T('The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.')}}<br/>
+      {{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.')}}<br/>
+      {{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
+    <br/><br/>
+    <h3>{{=nrows}} {{=T("selected")}}</h3>
+    {{if start>0:}}[ {{=A(T('previous 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start-100)))}} ]{{pass}}
+    {{if stop<nrows:}}[ {{=A(T('next 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start+100)))}} ]{{pass}}    
+    {{if rows:}}
+       <div style="overflow: auto;" width="80%">
+       {{linkto=URL('update',args=request.args[0])}}
+       {{upload=URL('download',args=request.args[0])}}    
+       {{=SQLTABLE(rows,linkto,upload,orderby=True,_class='sortable')}}
+       </div>
+    {{pass}}
+    <br/><br/><h2>{{=T("Import/Export")}}</h2><br/>
+    [ <a href="{{=URL('csv',args=request.args[0],vars=dict(query=query))}}">{{=T("export as csv file")}}</a> ]
+  {{if table:}}
+    {{=FORM(str(T('or import from csv file'))+" ",INPUT(_type='file',_name='csvfile'),INPUT(_type='hidden',_value=table,_name='table'),INPUT(_type='submit',_value='import'))}}
+  {{pass}}
+
+
+{{elif request.function=='insert':}}  
+  <h1>{{=T("database")}} {{=A(request.args[0],_href=URL('index'))}}
+    {{if hasattr(table,'_primarykey'):}}
+      {{fieldname=table._primarykey[0]}}
+      {{dbname=request.args[0]}}
+      {{tablename=request.args[1]}}
+      {{cond = table[fieldname].type in ['string','text'] and '!=""' or '>0'}}
+      {{=T("table")}} {{=A(tablename,_href=URL('select',args=dbname,vars=dict(query='%s.%s.%s%s'%(dbname,tablename,fieldname,cond))))}}
+    {{else:}}  
+      {{=T("table")}} {{=A(request.args[1],_href=URL('select',args=request.args[0],vars=dict(query='%s.%s.id>0'%tuple(request.args[:2]))))}}
+    {{pass}}
+  </h1>
+  <h2>{{=T("New Record")}}</h2><br/>
+  {{=form}}
+
+
+
+{{elif request.function=='update':}}
+  <h1>{{=T("database")}} {{=A(request.args[0],_href=URL('index'))}}
+    {{if hasattr(table,'_primarykey'):}}
+      {{fieldname=request.vars.keys()[0]}}
+      {{dbname=request.args[0]}}
+      {{tablename=request.args[1]}}
+      {{cond = table[fieldname].type in ['string','text'] and '!=""' or '>0'}}      
+      {{=T("table")}} {{=A(tablename,_href=URL('select',args=dbname,vars=dict(query='%s.%s.%s%s'%(dbname,tablename,fieldname,cond))))}}
+      {{=T("record")}} {{=A('%s=%s'%request.vars.items()[0],_href=URL('update',args=request.args[:2],vars=request.vars))}}
+    {{else:}}
+      {{=T("table")}} {{=A(request.args[1],_href=URL('select',args=request.args[0],vars=dict(query='%s.%s.id>0'%tuple(request.args[:2]))))}}
+      {{=T("record id")}} {{=A(request.args[2],_href=URL('update',args=request.args[:3]))}}
+    {{pass}}
+  </h1>
+  <h2>{{=T("Edit current record")}}</h2><br/><br/>{{=form}}
+
+
+
+{{elif request.function=='state':}}
+  <h1>{{=T("Internal State")}}</h1>
+  <h2>{{=T("Current request")}}</h2>
+  {{=BEAUTIFY(request)}}
+  <br/><h2>{{=T("Current response")}}</h2>
+  {{=BEAUTIFY(response)}}
+  <br/><h2>{{=T("Current session")}}</h2>
+  {{=BEAUTIFY(session)}}
+
+
+{{elif request.function == 'ccache':}}
+<h2>Cache</h2>
+<div class="wrapper">
+<div class="list">
+    <div class="list-header">
+        Statistics
+    </div>
+    <div class="content">
+        <h3>Overview</h3>
+        <p>
+            Hit Ratio: 
+            <strong>{{=total['ratio']}}%</strong> 
+            (<strong>{{=total['hits']}}</strong> hits 
+            and <strong>{{=total['misses']}}</strong> misses)
+        </p>
+        <p>
+            Size of cache: 
+            <strong>{{=total['objects']}}</strong> items, 
+            <strong>{{=total['bytes']}}</strong> bytes 
+            {{if total['bytes'] > 524287:}}
+                (<strong>{{="%.0d" % (total['bytes'] / 1048576)}} MB</strong>)
+            {{pass}}
+        </p>
+        <p>
+            Cache contains items up to 
+            <strong>{{="%02d" % total['oldest'][0]}}</strong> hours 
+            <strong>{{="%02d" % total['oldest'][1]}}</strong> minutes 
+            <strong>{{="%02d" % total['oldest'][2]}}</strong> seconds old.
+        </p>
+        <h3>RAM</h3>
+        <p>
+            Hit Ratio: 
+            <strong>{{=ram['ratio']}}%</strong> 
+            (<strong>{{=ram['hits']}}</strong> hits 
+            and <strong>{{=ram['misses']}}</strong> misses)
+        </p>
+        <p>
+            Size of cache: 
+            <strong>{{=ram['objects']}}</strong> items, 
+            <strong>{{=ram['bytes']}}</strong> bytes 
+            {{if ram['bytes'] > 524287:}}
+                (<strong>{{=ram['bytes'] / 1048576}} MB</strong>)
+            {{pass}}
+        </p>
+        <p>
+            RAM contains items up to 
+            <strong>{{="%02d" % ram['oldest'][0]}}</strong> hours 
+            <strong>{{="%02d" % ram['oldest'][1]}}</strong> minutes 
+            <strong>{{="%02d" % ram['oldest'][2]}}</strong> seconds old.
+        </p>
+        <h3>DISK</h3>
+        <p>
+            Hit Ratio: 
+            <strong>{{=disk['ratio']}}%</strong> 
+            (<strong>{{=disk['hits']}}</strong> hits 
+            and <strong>{{=disk['misses']}}</strong> misses)
+        </p>
+        <p>
+            Size of cache: 
+            <strong>{{=disk['objects']}}</strong> items, 
+            <strong>{{=disk['bytes']}}</strong> bytes 
+            {{if disk['bytes'] > 524287:}}
+                (<strong>{{=disk['bytes'] / 1048576}} MB</strong>)
+            {{pass}}
+        </p>
+        <p>
+            DISK contains items up to 
+            <strong>{{="%02d" % disk['oldest'][0]}}</strong> hours 
+            <strong>{{="%02d" % disk['oldest'][1]}}</strong> minutes 
+            <strong>{{="%02d" % disk['oldest'][2]}}</strong> seconds old.
+        </p>
+    </div>
+    
+    <div class="list-header">
+    Manage Cache
+    </div>
+    <div class="content">
+    <p>
+        {{=form}}
+    </p>
+    </div>
+</div>
+<div class="clear"></div>
+</div>
+{{pass}}
Index: controlies/trunk/applications/controlies/models/menu.py
===================================================================
--- controlies/trunk/applications/controlies/models/menu.py	(nonexistent)
+++ controlies/trunk/applications/controlies/models/menu.py	(revision 178)
@@ -0,0 +1,63 @@
+# -*- coding: utf-8 -*-
+# this file is released under public domain and you can use without limitations
+#########################################################################
+## Customize your APP title, subtitle and menus here
+#########################################################################
+
+response.title = 'ControlIES'
+response.subtitle = 'Centros educativos de Extremadura'
+
+#http://dev.w3.org/html5/markup/meta.name.html
+response.meta.author = 'manuito chischo jredrejo'
+response.meta.description = 'Aplicación para la gestión de usuarios y máquinas en los centros educativos de Extremadura'
+response.meta.keywords = 'ldap, rayuela, linex,extremadura, institutos,usuarios,máquinas, workstations,ltsp'
+response.meta.generator = 'Web2py Enterprise Framework'
+response.meta.copyright = 'Copyright 2010-2011'
+
+
+##########################################
+## this is the main application menu
+## add/remove items as required
+##########################################
+
+response.menu = [
+    (T('Home'), False, URL('default','index'), [])
+    ]
+
+
+
+response.menu+=[
+    ('Administración', False,None,
+     [
+            ('Usuarios', False, URL( 'usuarios', 'index' )),
+            ('Grupos', False,URL( 'grupos', 'index' )),
+            ('Servidores LTSP',False, URL( 'hosts', 'ltspservers' )),
+            ('Workstations', False,URL( 'hosts', 'workstations' )),
+            ('Clientes Ligeros', False,URL( 'hosts', 'thinclients' )),         
+            ('Parámetros DHCP', False,URL( 'dhcpd', 'index' )),
+
+            ]
+   )]
+
+
+
+response.menu+=[('Gestión', False, None,
+     [            
+     ('Servidores de Aula', False,URL( 'gestion', 'servidores_aula')),   
+     
+    ('Importación de Rayuela', False, None,
+        [
+        ('Profesores', False, URL( 'gestion', 'rayuela_profesores')),
+        ('Alumnos', False, URL( 'gestion', 'rayuela_alumnos')),
+
+        ]),
+        
+    ('Mantenimiento de LDAP', False, None,
+        [
+        ('Limpieza de usuarios inexistentes en grupos', False, URL( 'gestion', 'limpieza_usuarios')),
+        ('Detección de uid o gid duplicados', False, URL( 'gestion', 'duplicados')),
+
+        ]),        
+
+    ]
+   )]
Index: controlies/trunk/applications/controlies/models/db.py
===================================================================
--- controlies/trunk/applications/controlies/models/db.py	(nonexistent)
+++ controlies/trunk/applications/controlies/models/db.py	(revision 178)
@@ -0,0 +1,97 @@
+# -*- coding: utf-8 -*-
+# this file is released under public domain and you can use without limitations
+
+#########################################################################
+## This scaffolding model makes your app work on Google App Engine too
+#########################################################################
+
+if request.env.web2py_runtime_gae:            # if running on Google App Engine
+    db = DAL('gae')                           # connect to Google BigTable
+                                              # optional DAL('gae://namespace')
+    session.connect(request, response, db = db) # and store sessions and tickets there
+    ### or use the following lines to store sessions in Memcache
+    # from gluon.contrib.memdb import MEMDB
+    # from google.appengine.api.memcache import Client
+    # session.connect(request, response, db = MEMDB(Client()))
+else:                                         # else use a normal relational database
+    db = DAL('sqlite://storage.sqlite')       # if not, use SQLite or other DB
+## if no need for session
+# session.forget()
+
+#########################################################################
+## Here is sample code if you need for
+## - email capabilities
+## - authentication (registration, login, logout, ... )
+## - authorization (role based authorization)
+## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
+## - crud actions
+## (more options discussed in gluon/tools.py)
+#########################################################################
+
+from gluon.tools import *
+from gluon.contrib.login_methods.ldap_auth import ldap_auth
+
+
+
+
+mail = Mail()                                  # mailer
+auth = Auth(globals(),db)                      # authentication/authorization
+crud = Crud(globals(),db)                      # for CRUD helpers using auth
+service = Service(globals())                   # for json, xml, jsonrpc, xmlrpc, amfrpc
+plugins = PluginManager()
+
+auth.define_tables(username=True)
+
+
+mail.settings.server = 'logging' or 'smtp.gmail.com:587'  # your SMTP server
+mail.settings.sender = 'you@gmail.com'         # your email
+mail.settings.login = 'username:password'      # your credentials or None
+
+auth.settings.hmac_key = 'sha512:f649047b-106d-4ef5-ba95-ac9d43734978'   # before define_tables()
+auth.define_tables()                           # creates all needed tables
+auth.settings.mailer = mail                    # for user email verification
+auth.settings.registration_requires_verification = True
+auth.settings.registration_requires_approval = True
+auth.messages.verify_email = 'Click on the link http://'+request.env.http_host+URL('default','user',args=['verify_email'])+'/%(key)s to verify your email'
+auth.settings.reset_password_requires_verification = True
+#auth.settings.alternate_requires_registration = True 
+auth.messages.reset_password = 'Click on the link http://'+request.env.http_host+URL('default','user',args=['reset_password'])+'/%(key)s to reset your password'
+
+#########################################################################
+## If you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc.
+## register with janrain.com, uncomment and customize following
+# from gluon.contrib.login_methods.rpx_account import RPXAccount
+# auth.settings.actions_disabled=['register','change_password','request_reset_password']
+auth.settings.actions_disabled=['register','profile','request_reset_password','retrieve_username']
+# auth.settings.login_form = RPXAccount(request, api_key='...',domain='...',
+#    url = "http://localhost:8000/%s/default/user/login" % request.application)
+## other login methods are in gluon/contrib/login_methods
+#########################################################################
+
+crud.settings.auth = None                      # =auth to enforce authorization on crud
+
+#########################################################################
+## Define your tables below (or better in another model file) for example
+##
+## >>> db.define_table('mytable',Field('myfield','string'))
+##
+## Fields can be 'string','text','password','integer','double','boolean'
+##       'date','time','datetime','blob','upload', 'reference TABLENAME'
+## There is an implicit 'id integer autoincrement' field
+## Consult manual for more options, validators, etc.
+##
+## More API examples for controllers:
+##
+## >>> db.mytable.insert(myfield='value')
+## >>> rows=db(db.mytable.myfield=='value').select(db.mytable.ALL)
+## >>> for row in rows: print row.id, row.myfield
+#########################################################################
+import applications.controlies.modules.LdapConnection as LdapConnection
+
+auth.settings.login_methods=[ldap_auth( server='localhost', base_dn='ou=People,dc=instituto,dc=extremadura,dc=es',secure=LdapConnection.ldap_secure,cert_path=LdapConnection.ldap_cert,mode='cn')]
+
+#auth.settings.login_onaccept=lambda form: session_ldap(form)
+def conecta():
+    l=LdapConnection.LdapConnection(session)
+    l.process()
+    return l
Index: controlies/trunk/applications/controlies/static/js/utils.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/utils.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/utils.js	(revision 178)
@@ -0,0 +1,111 @@
+/* #########################################################################
+# Project:     ControlIES
+# Module:     	utils.js
+# Purpose:     Util functions
+# Language:    javascript
+# Copyright:   2009-2010 - Manuel Mora Gordillo <manuito @nospam@ gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# 
+############################################################################## */
+
+function selectAll(){
+	$("#tabsClassroom").tabs("select","tabsClassroom-1");
+	$("#selectable li").addClass("ui-selected");
+}
+
+function selectNone(){
+	$("#tabsClassroom").tabs("select","tabsClassroom-1");
+	$("#selectable li").removeClass("ui-selected");
+}
+
+function computersSelected(){
+	var selected = Array();
+	var j=0;
+	
+	$("#selectable li").each(function(i, item){
+		if($("#"+item.id).hasClass('ui-selected')==true){
+			selected[j] = $("#"+item.id + ":eq(0) > #pcName").html();
+			j++;
+		}
+	});
+	return selected;
+}
+
+function sendOrderSelected(url,args,action){
+
+	var selected = computersSelected(url);
+
+	if(selected.length==0){
+		modalAlert("Para realizar la acci&oacute;n debe seleccionar al menos un equipo");
+		return;
+	}
+
+	var classroom = {
+		"pclist" : selected,
+		"args" : args
+	}
+
+	var dataString = $.JSON.encode(classroom)
+	connection(url,dataString,action);
+}
+
+function sendOrder(url,args,action){
+
+	var classroom = {
+		"args" : args
+	}
+
+	var dataString = $.JSON.encode(classroom);
+	connection(url,dataString,action);
+}
+
+
+function modalAlert(message){
+
+	$("#dialogAlertMessage").html(message);
+
+	$("#dialogAlert")
+		.dialog({
+			modal: true,
+			width: 350,
+			resizable: false,
+			hide: "explode",
+			buttons: {
+				Ok: function() { $( this ).dialog( "close" ); }
+			}
+		})
+		.dialog('open'); 
+
+	return true;
+}
+
+function modalConfirm(message, funct){
+
+	$("#dialogAlertMessage").html(message);
+
+	$("#dialogAlert")
+		.dialog({
+			modal: true,
+			width: 350,
+			resizable: false,
+			buttons: {
+				"Si": function() { eval(funct); },
+				"No": function() { $( this ).dialog( "close" ); }
+			}
+		})
+		.dialog('open'); 
+
+	return true;
+}
Index: controlies/trunk/applications/controlies/static/js/dd_belatedpng.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/dd_belatedpng.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/dd_belatedpng.js	(revision 178)
@@ -0,0 +1,13 @@
+/**
+* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
+* Author: Drew Diller
+* Email: drew.diller@gmail.com
+* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
+* Version: 0.0.8a
+* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
+*
+* Example usage:
+* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector
+* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
+**/
+var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;b<c.length;b++){this.screenStyleSheet.addRule(c[b],"behavior:expression(DD_belatedPNG.fixPng(this))")}}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlOffsets(a);this.vmlOpacity(a);if(a.isImg){this.copyImageBorders(a)}},attachHandlers:function(i){var d,c,g,e,b,f;d=this;c={resize:"vmlOffsets",move:"vmlOffsets"};if(i.nodeName=="A"){e={mouseleave:"handlePseudoHover",mouseenter:"handlePseudoHover",focus:"handlePseudoHover",blur:"handlePseudoHover"};for(b in e){if(e.hasOwnProperty(b)){c[b]=e[b]}}}for(f in c){if(c.hasOwnProperty(f)){g=function(){d[c[f]](i)};i.attachEvent("on"+f,g)}}i.attachEvent("onpropertychange",this.readPropertyChange)},giveLayout:function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}},copyImageBorders:function(b){var c,a;c={borderStyle:true,borderWidth:true,borderColor:true};for(a in c){if(c.hasOwnProperty(a)){b.vml.color.shape.style[a]=b.currentStyle[a]}}},vmlFill:function(e){if(!e.currentStyle){return}else{var d,f,g,b,a,c;d=e.currentStyle}for(b in e.vml){if(e.vml.hasOwnProperty(b)){e.vml[b].shape.style.zIndex=d.zIndex}}e.runtimeStyle.backgroundColor="";e.runtimeStyle.backgroundImage="";f=true;if(d.backgroundImage!="none"||e.isImg){if(!e.isImg){e.vmlBg=d.backgroundImage;e.vmlBg=e.vmlBg.substr(5,e.vmlBg.lastIndexOf('")')-5)}else{e.vmlBg=e.src}g=this;if(!g.imgSize[e.vmlBg]){a=document.createElement("img");g.imgSize[e.vmlBg]=a;a.className=g.ns+"_sizeFinder";a.runtimeStyle.cssText="behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;";c=function(){this.width=this.offsetWidth;this.height=this.offsetHeight;g.vmlOffsets(e)};a.attachEvent("onload",c);a.src=e.vmlBg;a.removeAttribute("width");a.removeAttribute("height");document.body.insertBefore(a,document.body.firstChild)}e.vml.image.fill.src=e.vmlBg;f=false}e.vml.image.fill.on=!f;e.vml.image.fill.color="none";e.vml.color.shape.style.backgroundColor=d.backgroundColor;e.runtimeStyle.backgroundImage="none";e.runtimeStyle.backgroundColor="transparent"},vmlOffsets:function(d){var h,n,a,e,g,m,f,l,j,i,k;h=d.currentStyle;n={W:d.clientWidth+1,H:d.clientHeight+1,w:this.imgSize[d.vmlBg].width,h:this.imgSize[d.vmlBg].height,L:d.offsetLeft,T:d.offsetTop,bLW:d.clientLeft,bTW:d.clientTop};a=(n.L+n.bLW==1)?1:0;e=function(b,p,q,c,s,u){b.coordsize=c+","+s;b.coordorigin=u+","+u;b.path="m0,0l"+c+",0l"+c+","+s+"l0,"+s+" xe";b.style.width=c+"px";b.style.height=s+"px";b.style.left=p+"px";b.style.top=q+"px"};e(d.vml.color.shape,(n.L+(d.isImg?0:n.bLW)),(n.T+(d.isImg?0:n.bTW)),(n.W-1),(n.H-1),0);e(d.vml.image.shape,(n.L+n.bLW),(n.T+n.bTW),(n.W),(n.H),1);g={X:0,Y:0};if(d.isImg){g.X=parseInt(h.paddingLeft,10)+1;g.Y=parseInt(h.paddingTop,10)+1}else{for(j in g){if(g.hasOwnProperty(j)){this.figurePercentage(g,n,j,h["backgroundPosition"+j])}}}d.vml.image.fill.position=(g.X/n.W)+","+(g.Y/n.H);m=h.backgroundRepeat;f={T:1,R:n.W+a,B:n.H,L:1+a};l={X:{b1:"L",b2:"R",d:"W"},Y:{b1:"T",b2:"B",d:"H"}};if(m!="repeat"||d.isImg){i={T:(g.Y),R:(g.X+n.w),B:(g.Y+n.h),L:(g.X)};if(m.search("repeat-")!=-1){k=m.split("repeat-")[1].toUpperCase();i[l[k].b1]=1;i[l[k].b2]=n[l[k].d]}if(i.B>n.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/modernizr-1.7.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/modernizr-1.7.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/modernizr-1.7.min.js	(revision 178)
@@ -0,0 +1,2 @@
+// Modernizr v1.7  www.modernizr.com
+window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return(""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild(c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b){return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild(d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return!1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)!="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|\\s)("+c+")","gi"),g=new RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^\\n]*?\\s)("+c+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),i=b.createDocumentFragment(),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o[4]);m.styleSheet.cssText=k.join("\n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+=" iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function(){l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/\bno-js\b/,"")+" js "+u.join(" ");return e}(this,this.document)
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.es.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.es.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.es.js	(revision 178)
@@ -0,0 +1,9 @@
+﻿/* Spanish initialisation for the jQuery UI multiselect plugin. */
+/* Written by Vinius Fontoura Correa(vinusfc@gmail.com). */
+
+$.extend($.ech.multiselect.prototype.options, {
+	checkAllText: 'Todas',
+	uncheckAllText: 'Ninguna',
+	noneSelectedText: 'Seleccione las opciones',
+	selectedText: '# seleccionado'
+});
Index: controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.css	(revision 178)
@@ -0,0 +1,23 @@
+.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
+.ui-multiselect span.ui-icon { float:right }
+.ui-multiselect-single input { position:absolute !important; top: auto !important; left:-9999px; }
+.ui-multiselect-single label { padding:5px !important }
+
+.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px }
+.ui-multiselect-header ul { font-size:0.9em }
+.ui-multiselect-header ul li { float:left; padding:0 10px 0 0 }
+.ui-multiselect-header a { text-decoration:none }
+.ui-multiselect-header a:hover { text-decoration:underline }
+.ui-multiselect-header span.ui-icon { float:left }
+.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 }
+
+.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000 }
+.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:scroll }
+.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px }
+.ui-multiselect-checkboxes label input { position:relative; top:1px }
+.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px }
+.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid }
+.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none }
+
+/* remove label borders in IE6 because IE6 does not support transparency */
+* html .ui-multiselect-checkboxes label { border:none }
Index: controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/multiselect/jquery.multiselect.min.js	(revision 178)
@@ -0,0 +1,20 @@
+/*
+ * jQuery MultiSelect UI Widget 1.9
+ * Copyright (c) 2011 Eric Hynds
+ *
+ * http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/
+ *
+ * Depends:
+ *   - jQuery 1.4.2+
+ *   - jQuery UI 1.8 widget factory
+ *
+ * Optional:
+ *   - jQuery UI effects
+ *   - jQuery UI position utility
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ *
+*/
+(function(d){var o=0;d.widget("ech.multiselect",{options:{header:true,height:175,minWidth:225,classes:"",checkAllText:"Check all",uncheckAllText:"Uncheck all",noneSelectedText:"Select options",selectedText:"# selected",selectedList:0,show:"",hide:"",autoOpen:false,multiple:true,position:{}},_create:function(){var a=this.element.hide(),b=this.options;this.speed=d.fx.speeds._default;this._isOpen=false;a=(this.button=d('<button type="button"><span class="ui-icon ui-icon-triangle-2-n-s"></span></button>')).addClass("ui-multiselect ui-widget ui-state-default ui-corner-all").addClass(b.classes).attr({title:a.attr("title"), "aria-haspopup":true}).insertAfter(a);(this.buttonlabel=d("<span />")).html(b.noneSelectedText).appendTo(a);a=(this.menu=d("<div />")).addClass("ui-multiselect-menu ui-widget ui-widget-content ui-corner-all").addClass(b.classes).insertAfter(a);var e=(this.header=d("<div />")).addClass("ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix").appendTo(a);(this.headerLinkContainer=d("<ul />")).addClass("ui-helper-reset").html(function(){return b.header===true?'<li><a class="ui-multiselect-all" href="#"><span class="ui-icon ui-icon-check"></span><span>'+ b.checkAllText+'</span></a></li><li><a class="ui-multiselect-none" href="#"><span class="ui-icon ui-icon-closethick"></span><span>'+b.uncheckAllText+"</span></a></li>":typeof b.header==="string"?"<li>"+b.header+"</li>":""}).append('<li class="ui-multiselect-close"><a href="#" class="ui-multiselect-close"><span class="ui-icon ui-icon-circle-close"></span></a></li>').appendTo(e);(this.checkboxContainer=d("<ul />")).addClass("ui-multiselect-checkboxes ui-helper-reset").appendTo(a);this._bindEvents(); this.refresh(true);b.multiple||a.addClass("ui-multiselect-single")},_init:function(){this.options.header===false&&this.header.hide();this.options.multiple||this.headerLinkContainer.find(".ui-multiselect-all, .ui-multiselect-none").hide();this.options.autoOpen&&this.open();this.element.is(":disabled")&&this.disable()},refresh:function(a){var b=this.options,e=this.menu,c=this.button,g=this.checkboxContainer,f=[],h=this.element.attr("id")||o++;g.empty();this.element.find("option").each(function(k){var i= d(this),m=i.html(),n=this.value;k=this.id||"ui-multiselect-"+h+"-option-"+k;var j=i.parent();i=i.is(":disabled");var l=["ui-corner-all"];if(j.is("optgroup")){j=j.attr("label");if(d.inArray(j,f)===-1){d('<li><a href="#">'+j+"</a></li>").addClass("ui-multiselect-optgroup-label").appendTo(g);f.push(j)}}if(n.length>0){i&&l.push("ui-state-disabled");j=d("<li />").addClass(i?"ui-multiselect-disabled":"").appendTo(g);l=d("<label />").attr("for",k).addClass(l.join(" ")).appendTo(j);d('<input type="'+(b.multiple? "checkbox":"radio")+'" '+(this.selected?'checked="checked"':"")+' name="multiselect_'+h+'" />').attr({id:k,checked:this.selected,title:m,disabled:i,"aria-disabled":i,"aria-selected":this.selected}).val(n).appendTo(l).after("<span>"+m+"</span>")}});this.labels=e.find("label");this._setButtonWidth();this._setMenuWidth();c[0].defaultValue=this.update();a||this._trigger("refresh")},update:function(){var a=this.options,b=this.labels.find("input"),e=b.filter(":checked"),c=e.length;a=c===0?a.noneSelectedText: d.isFunction(a.selectedText)?a.selectedText.call(this,c,b.length,e.get()):/\d/.test(a.selectedList)&&a.selectedList>0&&c<=a.selectedList?e.map(function(){return this.title}).get().join(", "):a.selectedText.replace("#",c).replace("#",b.length);this.buttonlabel.html(a);return a},_bindEvents:function(){function a(){b[b._isOpen?"close":"open"]();return false}var b=this,e=this.button;e.find("span").bind("click.multiselect",a);e.bind({click:a,keypress:function(c){switch(c.which){case 27:case 38:case 37:b.close(); break;case 39:case 40:b.open()}},mouseenter:function(){e.hasClass("ui-state-disabled")||d(this).addClass("ui-state-hover")},mouseleave:function(){d(this).removeClass("ui-state-hover")},focus:function(){e.hasClass("ui-state-disabled")||d(this).addClass("ui-state-focus")},blur:function(){d(this).removeClass("ui-state-focus")}});this.header.delegate("a","click.multiselect",function(c){d(this).hasClass("ui-multiselect-close")?b.close():b[d(this).hasClass("ui-multiselect-all")?"checkAll":"uncheckAll"](); c.preventDefault()});this.menu.delegate("li.ui-multiselect-optgroup-label a","click.multiselect",function(c){c.preventDefault();var g=d(this),f=g.parent().nextUntil("li.ui-multiselect-optgroup-label").find("input:visible:not(:disabled)");b._trigger("optgrouptoggle",c,{inputs:f.get(),label:g.parent().text(),checked:f[0].checked})!==false&&b._toggleChecked(f.filter(":checked").length!==f.length,f)}).delegate("label","mouseenter.multiselect",function(){if(!d(this).hasClass("ui-state-disabled")){b.labels.removeClass("ui-state-hover"); d(this).addClass("ui-state-hover").find("input").focus()}}).delegate("label","keydown.multiselect",function(c){switch(c.which){case 9:case 27:b.close();break;case 38:case 40:case 37:case 39:b._traverse(c.which,this);c.preventDefault();break;case 13:c.preventDefault();d(this).find("input")[0].click()}}).delegate('input[type="checkbox"], input[type="radio"]',"click.multiselect",function(c){var g=d(this),f=this.value,h=this.checked,k=b.element.find("option");if(g.is(":disabled")||b._trigger("click", c,{value:f,text:this.title,checked:h})===false)c.preventDefault();else{g.attr("aria-selected",h);k.filter(function(){return this.value===f}).attr("selected",h?"selected":"");if(!b.options.multiple){k.not(function(){return this.value===f}).removeAttr("selected");b.labels.removeClass("ui-state-active");g.closest("label").toggleClass("ui-state-active",h);b.close()}setTimeout(d.proxy(b.update,b),10)}});d(document).bind("mousedown.multiselect",function(c){b._isOpen&&!d.contains(b.menu[0],c.target)&&c.target!== b.button[0]&&b.close()});d(this.element[0].form).bind("reset.multiselect",function(){setTimeout(function(){b.update()},10)})},_setButtonWidth:function(){var a=this.element.outerWidth(),b=this.options;if(/\d/.test(b.minWidth)&&a<b.minWidth)a=b.minWidth;this.button.width(a)},_setMenuWidth:function(){var a=this.menu,b=this.button.outerWidth()-parseInt(a.css("padding-left"),10)-parseInt(a.css("padding-right"),10)-parseInt(a.css("border-right-width"),10)-parseInt(a.css("border-left-width"),10);a.width(b|| this.button.outerWidth())},_traverse:function(a,b){var e=d(b),c=a===38||a===37;e=e.parent()[c?"prevAll":"nextAll"]("li:not(.ui-multiselect-disabled, .ui-multiselect-optgroup-label)")[c?"last":"first"]();if(e.length)e.find("label").trigger("mouseover");else{e=this.menu.find("ul:last");this.menu.find("label")[c?"last":"first"]().trigger("mouseover");e.scrollTop(c?e.height():0)}},_toggleChecked:function(a,b){var e=b&&b.length?b:this.labels.find("input");e.not(":disabled").attr({checked:a,"aria-selected":a}); this.update();var c=e.map(function(){return this.value}).get();this.element.find("option").filter(function(){return!this.disabled&&d.inArray(this.value,c)>-1}).attr({selected:a,"aria-selected":a})},_toggleDisabled:function(a){this.button.attr({disabled:a,"aria-disabled":a})[a?"addClass":"removeClass"]("ui-state-disabled");this.menu.find("input").attr({disabled:a,"aria-disabled":a}).parent()[a?"addClass":"removeClass"]("ui-state-disabled");this.element.attr({disabled:a,"aria-disabled":a})},open:function(){var a= this.button,b=this.menu,e=this.speed,c=this.options;if(!(this._trigger("beforeopen")===false||a.hasClass("ui-state-disabled")||this._isOpen)){var g=b.find("ul:last"),f=c.show,h=a.position();if(d.isArray(c.show)){f=c.show[0];e=c.show[1]||this.speed}g.scrollTop(0).height(c.height);if(d.ui.position&&!d.isEmptyObject(c.position)){c.position.of=c.position.of||a;b.show().position(c.position).hide().show(f,e)}else b.css({top:h.top+a.outerHeight(),left:h.left}).show(f,e);this.labels.eq(0).trigger("mouseover").trigger("mouseenter").find("input").trigger("focus"); a.addClass("ui-state-active");this._isOpen=true;this._trigger("open")}},close:function(){if(this._trigger("beforeclose")!==false){var a=this.options,b=a.hide,e=this.speed;if(d.isArray(a.hide)){b=a.hide[0];e=a.hide[1]||this.speed}this.menu.hide(b,e);this.button.removeClass("ui-state-active").trigger("blur").trigger("mouseleave");this._trigger("close");this._isOpen=false}},enable:function(){this._toggleDisabled(false)},disable:function(){this._toggleDisabled(true)},checkAll:function(){this._toggleChecked(true); this._trigger("checkAll")},uncheckAll:function(){this._toggleChecked(false);this._trigger("uncheckAll")},getChecked:function(){return this.menu.find("input").filter(":checked")},destroy:function(){d.Widget.prototype.destroy.call(this);this.button.remove();this.menu.remove();this.element.show();return this},isOpen:function(){return this._isOpen},widget:function(){return this.menu},_setOption:function(a,b){var e=this.menu;switch(a){case "header":e.find("div.ui-multiselect-header")[b?"show":"hide"](); break;case "checkAllText":e.find("a.ui-multiselect-all span").eq(-1).text(b);break;case "uncheckAllText":e.find("a.ui-multiselect-none span").eq(-1).text(b);break;case "height":e.find("ul:last").height(parseInt(b,10));break;case "minWidth":this.options[a]=parseInt(b,10);this._setButtonWidth();this._setMenuWidth();break;case "selectedText":case "selectedList":case "noneSelectedText":this.options[a]=b;this.update();break;case "classes":e.add(this.button).removeClass(this.options.classes).addClass(b)}d.Widget.prototype._setOption.apply(this, arguments)}})})(jQuery);
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffffff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_228ef1_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_228ef1_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/jquery-ui-1.8.9.custom.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/jquery-ui-1.8.9.custom.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/css/ui-lightness/jquery-ui-1.8.9.custom.css	(revision 178)
@@ -0,0 +1,573 @@
+/*
+ * jQuery UI CSS Framework 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
+.ui-widget-content a { color: #333333; }
+.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
+.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
+ * jQuery UI Resizable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.9
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/jquery/jquery.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jquery.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jquery.js	(revision 178)
@@ -0,0 +1 @@
+link jquery-1.5.min.js
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jquery.js
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jquery-ui-1.8.9.custom.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jquery-ui-1.8.9.custom.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jquery-ui-1.8.9.custom.min.js	(revision 178)
@@ -0,0 +1,781 @@
+/*!
+ * jQuery UI 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.9",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
+NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
+"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
+if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
+"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
+d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
+c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
+b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
+;/*!
+ * jQuery UI Widget 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
+a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
+e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
+this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
+widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
+enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
+;/*!
+ * jQuery UI Mouse 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(true===c.data(b.target,a.widgetName+".preventClickEvent")){c.removeData(b.target,a.widgetName+".preventClickEvent");b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
+a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
+this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);
+return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",
+true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+;/*
+ * jQuery UI Position 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
+left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
+k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
+m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
+d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
+a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
+g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
+;/*
+ * jQuery UI Draggable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
+"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
+this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
+this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
+d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
+this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&
+this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
+a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
+0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
+this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
+(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
+"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?
+0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
+10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==
+Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
+f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;
+if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/
+b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-
+this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=
+this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.9"});
+d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=
+0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=
+c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,
+true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=
+0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=
+a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},
+stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=
+document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-
+c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-
+(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable",
+"snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=
+c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",
+{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,
+left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,
+a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,
+b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
+;/*
+ * jQuery UI Droppable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Droppables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.draggable.js
+ */
+(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
+a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
+this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
+this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
+d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
+a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.9"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
+switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
+i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
+"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
+a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
+d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
+;/*
+ * jQuery UI Resizable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
+_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
+top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
+this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
+nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
+String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
+this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
+if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
+d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
+this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
+this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
+b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
+f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
+b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=
+a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
+k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),
+c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
+this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,
+arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,
+{version:"1.8.9"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,
+function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=
+(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=
+false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-
+a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",
+b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top",
+"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,
+f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=
+a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+
+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&
+e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",
+height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=
+d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
+;/*
+ * jQuery UI Selectable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
+c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
+this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
+a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
+!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
+e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.9"})})(jQuery);
+;/*
+ * jQuery UI Sortable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Sortables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
+this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
+arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
+c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
+{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
+if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
+a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
+if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
+c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
+document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-
+1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});
+this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&
+a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?
+"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?
+c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;
+return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=
+d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});
+return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=
+d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=
+this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=
+e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
+if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);
+c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===
+1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=
+this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):
+b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==
+""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
+this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
+10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions=
+{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||
+document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,
+b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=
+document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
+e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
+this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<
+this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&
+this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=
+this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();
+this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],
+this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",
+g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||
+this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,
+originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.9"})})(jQuery);
+;/*
+ * jQuery UI Accordion 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
+a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
+if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
+function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+
+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
+this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
+b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
+a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
+c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
+if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
+if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
+e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
+e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
+tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.9",animations:{slide:function(a,b){a=
+c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1],
+unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",
+paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
+;/*
+ * jQuery UI Autocomplete 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.position.js
+ */
+(function(d){d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){f=false;var e=d.ui.keyCode;
+switch(c.keyCode){case e.PAGE_UP:a._move("previousPage",c);break;case e.PAGE_DOWN:a._move("nextPage",c);break;case e.UP:a._move("previous",c);c.preventDefault();break;case e.DOWN:a._move("next",c);c.preventDefault();break;case e.ENTER:case e.NUMPAD_ENTER:if(a.menu.active){f=true;c.preventDefault()}case e.TAB:if(!a.menu.active)return;a.menu.select(c);break;case e.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=
+null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(f){f=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||
+"body",b)[0]).mousedown(function(c){var e=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(g){g.target!==a.element[0]&&g.target!==e&&!d.ui.contains(e,g.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,e){e=e.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:e})&&/^key/.test(c.originalEvent.type)&&a.element.val(e.value)},selected:function(c,e){var g=e.item.data("item.autocomplete"),
+h=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=h;setTimeout(function(){a.previous=h;a.selectedItem=g},1)}false!==a._trigger("select",c,{item:g})&&a.element.val(g.value);a.term=a.element.val();a.close(c);a.selectedItem=g},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
+this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,f;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,e){e(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source===
+"string"){f=this.options.source;this.source=function(c,e){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:f,data:c,dataType:"json",success:function(g,h,i){i===a.xhr&&e(g);a.xhr=null},error:function(g){g===a.xhr&&e([]);a.xhr=null}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;
+this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==
+this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position))},
+_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var f=this;d.each(b,function(c,e){f._renderItem(a,e)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);
+else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var f=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return f.test(c.label||c.value||c)})}})})(jQuery);
+(function(d){d.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(d(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+-1).mouseenter(function(b){a.activate(b,d(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var f=b.offset().top-this.element.offset().top,c=this.element.attr("scrollTop"),e=this.element.height();if(f<0)this.element.attr("scrollTop",c+f);else f>=e&&this.element.attr("scrollTop",c+f-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})},
+deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,f){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);
+a.length?this.activate(f,a):this.activate(f,this.element.children(b))}else this.activate(f,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(".ui-menu-item:first"));else{var b=this.active.offset().top,f=this.element.height(),c=this.element.children(".ui-menu-item").filter(function(){var e=d(this).offset().top-b-f+d(this).height();return e<10&&e>-10});c.length||(c=this.element.children(".ui-menu-item:last"));this.activate(a,
+c)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(".ui-menu-item:last"));else{var b=this.active.offset().top,f=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-b+f-d(this).height();return c<10&&c>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
+this.activate(a,result)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
+;/*
+ * jQuery UI Button 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
+i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
+function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
+b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
+g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
+c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=
+this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
+this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
+true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
+c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
+this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},
+destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
+;/*
+ * jQuery UI Dialog 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *  jquery.ui.button.js
+ *	jquery.ui.draggable.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.position.js
+ *	jquery.ui.resizable.js
+ */
+(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&
+c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
+-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
+"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
+b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
+a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");
+isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);
+d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});
+c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,
+h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=
+d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,
+position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,
+h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===
+1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
+l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");
+break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=
+this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&
+this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.9",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===
+0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
+height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
+b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,
+function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
+;/*
+ * jQuery UI Slider 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
+this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
+if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();
+else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
+false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
+b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
+this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,
+g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},
+_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;
+if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=
+this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],
+value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=
+this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();
+else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case "disabled":if(a){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
+this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];
+return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},
+_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);
+if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,
+1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.9"})})(jQuery);
+;/*
+ * jQuery UI Tabs 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
+e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
+d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
+(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
+this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
+this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
+if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
+this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
+g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
+function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
+this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
+-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
+d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
+d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
+e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
+j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
+if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
+this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
+load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
+"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
+url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.9"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
+a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
+;/*
+ * jQuery UI Datepicker 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ */
+(function(d,G){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
+"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
+"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
+minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]==
+null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.9"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();
+f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
+_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
+b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
+""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
+c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
+true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});
+b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);
+this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",
+this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,
+function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:
+f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},
+e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);
+this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?
+d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||
+a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,
+e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,
+"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},
+_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=
+d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,
+c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&
+d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",
+function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=
+-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,
+"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},
+_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-
+g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?
+b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
+_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
+0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=
+false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=
+d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);
+else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=
+a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,
+g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
+s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case "!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
+1;l=w.getDate();break;case "'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",
+RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&
+a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",
+b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+=
+"0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=
+f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=
+(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,
+l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=
+a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),
+b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=
+this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
+(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,
+"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=
+this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var M="",D=0;D<i[1];D++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
+1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=
+(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=
+p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!v?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":
+""))+'"'+((!B||v)&&F[2]?' title="'+F[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!v?"&#xa0;":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=
+P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',
+o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&
+l)?"&#xa0;":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
+a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=
+a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
+"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
+c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
+"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
+function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));
+return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.9";window["DP_jQuery_"+y]=d})(jQuery);
+;/*
+ * jQuery UI Progressbar 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ *   jquery.ui.core.js
+ *   jquery.ui.widget.js
+ */
+(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
+this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
+this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.9"})})(jQuery);
+;/*
+ * jQuery UI Effects 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/
+ */
+jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
+16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
+a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
+a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
+"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
+0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
+211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
+d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];
+h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,
+a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.9",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,
+a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",
+border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
+return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);
+else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),
+b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,
+a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,
+a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==
+e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=
+g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
+h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,
+a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
+;/*
+ * jQuery UI Effects Blind 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Blind
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
+g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
+;/*
+ * jQuery UI Effects Bounce 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Bounce
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
+3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
+b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
+;/*
+ * jQuery UI Effects Clip 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Clip
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
+c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Drop 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Drop
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
+"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Explode 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Explode
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
+0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
+e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
+;/*
+ * jQuery UI Effects Fade 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fade
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Fold 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fold
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
+10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
+;/*
+ * jQuery UI Effects Highlight 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Highlight
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
+this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Pulsate 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Pulsate
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
+a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
+;/*
+ * jQuery UI Effects Scale 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Scale
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
+b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
+1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
+p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
+if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
+a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
+child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
+n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Shake 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Shake
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
+(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
+;/*
+ * jQuery UI Effects Slide 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Slide
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
+var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Transfer 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Transfer
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
+b.dequeue()})})}})(jQuery);
+;
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/jquery/jquery-1.5.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jquery-1.5.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jquery-1.5.min.js	(revision 178)
@@ -0,0 +1,16 @@
+/*!
+ * jQuery JavaScript Library v1.5
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Jan 31 08:31:29 2011 -0500
+ */
+(function(a,b){function b$(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function bX(a){if(!bR[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bR[a]=c}return bR[a]}function bW(a,b){var c={};d.each(bV.concat.apply([],bV.slice(0,b)),function(){c[this]=a});return c}function bJ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f=a.converters,g,h=e.length,i,j=e[0],k,l,m,n,o;for(g=1;g<h;g++){k=j,j=e[g];if(j==="*")j=k;else if(k!=="*"&&k!==j){l=k+" "+j,m=f[l]||f["* "+j];if(!m){o=b;for(n in f){i=n.split(" ");if(i[0]===k||i[0]==="*"){o=f[i[1]+" "+j];if(o){n=f[n],n===!0?m=o:o===!0&&(m=n);break}}}}!m&&!o&&d.error("No conversion from "+l.replace(" "," to ")),m!==!0&&(c=m?m(c):o(n(c)))}}return c}function bI(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bH(a,b,c,e){d.isArray(b)&&b.length?d.each(b,function(b,f){c||bp.test(a)?e(a,f):bH(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)}):c||b==null||typeof b!=="object"?e(a,b):d.isArray(b)||d.isEmptyObject(b)?e(a,""):d.each(b,function(b,d){bH(a+"["+b+"]",d,c,e)})}function bG(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bD,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(g[l]?l=b:(c.dataTypes.unshift(l),l=bG(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bG(a,c,d,e,"*",g));return l}function bF(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bz),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bn(a,b,c){var e=b==="width"?bh:bi,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function _(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(q,"`").replace(r,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,p,q=[],r=[],s=d._data(this,u);typeof s==="function"&&(s=s.events);if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(o,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,p=f.handleObj.origHandler.apply(f.elem,arguments);if(p===!1||a.isPropagationStopped()){c=f.level,p===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,b,c){c[0].type=a;return d.event.handle.apply(b,c)}function w(){return!0}function v(){return!1}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");e.type="text/javascript",d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a,c){if(a==null){if(e)return e;e=a={}}c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.then(c.cancel,b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments,c=b.length,e=c<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),f=e.promise(),g;c>1?(g=Array(c),d.each(b,function(a,b){d.when(b).then(function(b){g[a]=arguments.length>1?E.call(arguments,0):b,--c||e.resolveWith(f,g)},e.reject)})):e!==a&&e.resolve(a);return f},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return a.jQuery=a.$=d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option"));if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:b.getElementsByTagName("input")[0].value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,_scriptEval:null,noCloneEvent:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},g.disabled=!0,d.support.optDisabled=!h.disabled,d.support.scriptEval=function(){if(d.support._scriptEval===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();e.type="text/javascript";try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(d.support._scriptEval=!0,delete a[f]):d.support._scriptEval=!1,b.removeChild(e),b=e=f=null}return d.support._scriptEval};try{delete b.test}catch(i){d.support.deleteExpando=!1}b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function j(){d.support.noCloneEvent=!1,b.detachEvent("onclick",j)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var k=c.createDocumentFragment();k.appendChild(b.firstChild),d.support.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var l=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=l("submit"),d.support.changeBubbles=l("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!d.isEmptyObject(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={}),typeof c==="object"&&(f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c)),i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,i=g?b[d.expando]:d.expando;if(!h[i])return;if(c){var j=e?h[i][f]:h[i];if(j){delete j[c];if(!d.isEmptyObject(j))return}}if(e){delete h[i][f];if(!d.isEmptyObject(h[i]))return}var k=h[i][f];d.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},h[i][f]=k):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var g=/[\n\t\r]/g,h=/\s+/,i=/\r/g,j=/^(?:href|src|style)$/,k=/^(?:button|input)$/i,l=/^(?:button|input|object|select|textarea)$/i,m=/^a(?:rea)?$/i,n=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(h);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",i=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(i+=" "+b[j]);f.className=d.trim(i)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(h);for(var e=0,f=this.length;e<f;e++){var i=this[e];if(i.nodeType===1&&i.className)if(a){var j=(" "+i.className+" ").replace(g," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");i.className=d.trim(j)}else i.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,i=d(this),j=b,k=a.split(h);while(f=k[g++])j=e?j:!i.hasClass(f),i[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(g," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,j=c.type==="select-one";if(f<0)return null;for(var k=j?f:0,l=j?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(j)return a;g.push(a)}}return g}if(n.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(i,"")}return b}var o=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){o&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&n.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=j.test(c);if(c==="selected"&&!d.support.optSelected){var n=a.parentNode;n&&(n.selectedIndex,n.parentNode&&n.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&k.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:l.test(a.nodeName)||m.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var o=/\.(.*)$/,p=/^(?:textarea|input|select)$/i,q=/\./g,r=/ /g,s=/[^\w\s.|`]/g,t=function(a){return a.replace(s,"\\$&")},u="events";d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a);if(f===!1)f=v;else if(!f)return;var h,i;f.handler&&(h=f,f=h.handler),f.guid||(f.guid=d.guid++);var j=d._data(c);if(!j)return;var k=j[u],l=j.handle;typeof k==="function"?(l=k.handle,k=k.events):k||(c.nodeType||(j[u]=j=function(){}),j.events=k={}),l||(j.handle=l=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(l.elem,arguments):b}),l.elem=c,e=e.split(" ");var m,n=0,o;while(m=e[n++]){i=h?d.extend({},h):{handler:f,data:g},m.indexOf(".")>-1?(o=m.split("."),m=o.shift(),i.namespace=o.slice(0).sort().join(".")):(o=[],i.namespace=""),i.type=m,i.guid||(i.guid=f.guid);var p=k[m],q=d.event.special[m]||{};if(!p){p=k[m]=[];if(!q.setup||q.setup.call(c,g,o,l)===!1)c.addEventListener?c.addEventListener(m,l,!1):c.attachEvent&&c.attachEvent("on"+m,l)}q.add&&(q.add.call(c,i),i.handler.guid||(i.handler.guid=f.guid)),p.push(i),d.event.global[m]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),w=s&&s[u];if(!s||!w)return;typeof w==="function"&&(s=w,w=w.events),c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in w)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),t).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=w[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete w[h]}if(d.isEmptyObject(w)){var x=s.handle;x&&(x.elem=null),delete s.events,delete s.handle,typeof s==="function"?d.removeData(a,u,!0):d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=e.nodeType?d._data(e,"handle"):(d._data(e,u)||{}).handle;h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(o,""),n=d.nodeName(l,"a")&&m==="click",p=d.event.special[m]||{};if((!p._default||p._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,u),typeof i==="function"&&(i=i.events),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(c){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,c){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="submit"||e==="image")&&d(c).closest("form").length){a.liveFired=b;return C("submit",this,arguments)}}),d.event.add(this,"keypress.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="text"||e==="password")&&d(c).closest("form").length&&a.keyCode===13){a.liveFired=b;return C("submit",this,arguments)}});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(p.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f){a.type="change",a.liveFired=b;return d.event.trigger(a,arguments[1],c)}}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;if(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")return B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")return B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return p.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return p.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var p in a)n[c](p,e,a[p],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=o.exec(h),k="",j&&(k=j[0],h=h.replace(o,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.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".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function s(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var j=d[g];if(j){var k=!1;j=j[a];while(j){if(j.sizcache===c){k=d[j.sizset];break}if(j.nodeType===1){f||(j.sizcache=c,j.sizset=g);if(typeof b!=="string"){if(j===b){k=!0;break}}else if(i.filter(b,[j]).length>0){k=j;break}}j=j[a]}d[g]=k}}}function r(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0;[0,0].sort(function(){h=!1;return 0});var i=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var l,m,o,p,q,r,s,u,v=!0,w=i.isXML(d),x=[],y=b;do{a.exec(""),l=a.exec(y);if(l){y=l[3],x.push(l[1]);if(l[2]){p=l[3];break}}}while(l);if(x.length>1&&k.exec(b))if(x.length===2&&j.relative[x[0]])m=t(x[0]+x[1],d);else{m=j.relative[x[0]]?[d]:i(x.shift(),d);while(x.length)b=x.shift(),j.relative[b]&&(b+=x.shift()),m=t(b,m)}else{!g&&x.length>1&&d.nodeType===9&&!w&&j.match.ID.test(x[0])&&!j.match.ID.test(x[x.length-1])&&(q=i.find(x.shift(),d,w),d=q.expr?i.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:n(g)}:i.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),m=q.expr?i.filter(q.expr,q.set):q.set,x.length>0?o=n(m):v=!1;while(x.length)r=x.pop(),s=r,j.relative[r]?s=x.pop():r="",s==null&&(s=d),j.relative[r](o,s,w)}else o=x=[]}o||(o=m),o||i.error(r||b);if(f.call(o)==="[object Array]")if(v)if(d&&d.nodeType===1)for(u=0;o[u]!=null;u++)o[u]&&(o[u]===!0||o[u].nodeType===1&&i.contains(d,o[u]))&&e.push(m[u]);else for(u=0;o[u]!=null;u++)o[u]&&o[u].nodeType===1&&e.push(m[u]);else e.push.apply(e,o);else n(o,e);p&&(i(p,h,e,g),i.uniqueSort(e));return e};i.uniqueSort=function(a){if(p){g=h,a.sort(p);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},i.matches=function(a,b){return i(a,null,null,b)},i.matchesSelector=function(a,b){return i(b,null,null,[a]).length>0},i.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=j.order.length;e<f;e++){var g,h=j.order[e];if(g=j.leftMatch[h].exec(a)){var i=g[1];g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(/\\/g,""),d=j.find[h](g,b,c);if(d!=null){a=a.replace(j.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},i.filter=function(a,c,d,e){var f,g,h=a,k=[],l=c,m=c&&c[0]&&i.isXML(c[0]);while(a&&c.length){for(var n in j.filter)if((f=j.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=j.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;l===k&&(k=[]);if(j.preFilter[n]){f=j.preFilter[n](f,l,d,k,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=l[s])!=null;s++)if(p){o=q(p,f,s,l);var t=e^!!o;d&&o!=null?t?g=!0:l[s]=!1:t&&(k.push(p),g=!0)}if(o!==b){d||(l=k),a=a.replace(j.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)i.error(a);else break;h=a}return l},i.error=function(a){throw"Syntax error, unrecognized expression: "+a};var j=i.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!/\W/.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&i.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!/\W/.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&i.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(/\\/g,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a,b){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||i.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&i.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(/\\/g,"");!f&&j.attrMap[g]&&(a[1]=j.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(/\\/g,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=i(b[3],null,null,c);else{var g=i.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(j.match.POS.test(b[0])||j.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!i(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=j.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||i.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,k=g.length;h<k;h++)if(g[h]===a)return!1;return!0}i.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=j.attrHandle[c]?j.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=j.setFilters[e];if(f)return f(a,c,b,d)}}},k=j.match.POS,l=function(a,b){return"\\"+(b-0+1)};for(var m in j.match)j.match[m]=new RegExp(j.match[m].source+/(?![^\[]*\])(?![^\(]*\))/.source),j.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+j.match[m].source.replace(/\\(\d+)/g,l));var n=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(o){n=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var p,q;c.documentElement.compareDocumentPosition?p=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(p=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return q(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return q(e[k],f[k]);return k===c?q(a,f[k],-1):q(e[k],b,1)},q=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),i.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=i.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(j.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},j.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(j.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(j.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=i,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){i=function(b,e,f,g){e=e||c;if(!g&&!i.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return n(e.getElementsByTagName(b),f);if(h[2]&&j.find.CLASS&&e.getElementsByClassName)return n(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return n([e.body],f);if(h&&h[3]){var k=e.getElementById(h[3]);if(!k||!k.parentNode)return n([],f);if(k.id===h[3])return n([k],f)}try{return n(e.querySelectorAll(b),f)}catch(l){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e.getAttribute("id"),o=m||d,p=e.parentNode,q=/^\s*[+~]/.test(b);m?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),q&&p&&(e=e.parentNode);try{if(!q||p)return n(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(r){}finally{m||e.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)i[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(i.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!i.isXML(a))try{if(d||!j.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return i(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;j.order.splice(1,0,"CLASS"),j.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?i.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?i.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains=function(){return!1},i.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var t=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=j.match.PSEUDO.exec(a))e+=c[0],a=a.replace(j.match.PSEUDO,"");a=j.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)i(a,f[g],d);return i.filter(e,d)};d.find=i,d.expr=i.selectors,d.expr[":"]=d.expr.filters,d.unique=i.uniqueSort,d.text=i.getText,d.isXMLDoc=i.isXML,d.contains=i.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!0:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,_)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if(!d.support.noCloneEvent&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");for(h=0;f[h];++h)$(f[h],g[h]);$(a,e)}if(b){Z(a,e);if(c&&"getElementsByTagName"in a){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");if(f.length)for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var ba=/alpha\([^)]*\)/i,bb=/opacity=([^)]*)/,bc=/-([a-z])/ig,bd=/([A-Z])/g,be=/^-?\d+(?:px)?$/i,bf=/^-?\d/,bg={position:"absolute",visibility:"hidden",display:"block"},bh=["Left","Right"],bi=["Top","Bottom"],bj,bk,bl,bm=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bj(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bj)return bj(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bc,bm)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bn(a,b,e):d.swap(a,bg,function(){f=bn(a,b,e)});if(f<=0){f=bj(a,b,b),f==="0px"&&bl&&(f=bl(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!be.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=ba.test(f)?f.replace(ba,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bk=function(a,c,e){var f,g,h;e=e.replace(bd,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bl=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!be.test(d)&&bf.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bj=bk||bl,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bo=/%20/g,bp=/\[\]$/,bq=/\r?\n/g,br=/#.*$/,bs=/^(.*?):\s*(.*?)\r?$/mg,bt=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bu=/^(?:GET|HEAD)$/,bv=/^\/\//,bw=/\?/,bx=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,by=/^(?:select|textarea)/i,bz=/\s+/,bA=/([?&])_=[^&]*/,bB=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,bC=d.fn.load,bD={},bE={};d.fn.extend({load:function(a,b,c){if(typeof a!=="string"&&bC)return bC.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}var g="GET";b&&(d.isFunction(b)?(c=b,b=null):typeof b==="object"&&(b=d.param(b,d.ajaxSettings.traditional),g="POST"));var h=this;d.ajax({url:a,type:g,dataType:"html",data:b,complete:function(a,b,e){e=a.responseText,a.isResolved()&&(a.done(function(a){e=a}),h.html(f?d("<div>").append(e.replace(bx,"")).find(f):e)),c&&h.each(c,[e,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||by.test(this.nodeName)||bt.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bq,"\r\n")}}):{name:b.name,value:c.replace(bq,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,b){d[b]=function(a,c,e,f){d.isFunction(c)&&(f=f||e,e=c,c=null);return d.ajax({type:b,url:a,data:c,success:e,dataType:f})}}),d.extend({getScript:function(a,b){return d.get(a,null,b,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a){d.extend(!0,d.ajaxSettings,a),a.context&&(d.ajaxSettings.context=a.context)},ajaxSettings:{url:location.href,global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bF(bD),ajaxTransport:bF(bE),ajax:function(a,e){function w(a,c,e,l){if(t!==2){t=2,p&&clearTimeout(p),o=b,m=l||"",v.readyState=a?4:0;var n,q,r,s=e?bI(f,v,e):b,u,w;if(a>=200&&a<300||a===304){if(f.ifModified){if(u=v.getResponseHeader("Last-Modified"))d.lastModified[f.url]=u;if(w=v.getResponseHeader("Etag"))d.etag[f.url]=w}if(a===304)c="notmodified",n=!0;else try{q=bJ(f,s),c="success",n=!0}catch(x){c="parsererror",r=x}}else r=c,a&&(c="error",a<0&&(a=0));v.status=a,v.statusText=c,n?i.resolveWith(g,[q,c,v]):i.rejectWith(g,[v,c,r]),v.statusCode(k),k=b,f.global&&h.trigger("ajax"+(n?"Success":"Error"),[v,f,n?q:r]),j.resolveWith(g,[v,c]),f.global&&(h.trigger("ajaxComplete",[v,f]),--d.active||d.event.trigger("ajaxStop"))}}typeof e!=="object"&&(e=a,a=b),e=e||{};var f=d.extend(!0,{},d.ajaxSettings,e),g=(f.context=("context"in e?e:d.ajaxSettings).context)||f,h=g===f?d.event:d(g),i=d.Deferred(),j=d._Deferred(),k=f.statusCode||{},l={},m,n,o,p,q=c.location,r=q.protocol||"http:",s,t=0,u,v={readyState:0,setRequestHeader:function(a,b){t===0&&(l[a.toLowerCase()]=b);return this},getAllResponseHeaders:function(){return t===2?m:null},getResponseHeader:function(a){var b;if(t===2){if(!n){n={};while(b=bs.exec(m))n[b[1].toLowerCase()]=b[2]}b=n[a.toLowerCase()]}return b||null},abort:function(a){a=a||"abort",o&&o.abort(a),w(0,a);return this}};i.promise(v),v.success=v.done,v.error=v.fail,v.complete=j.done,v.statusCode=function(a){if(a){var b;if(t<2)for(b in a)k[b]=[k[b],a[b]];else b=a[v.status],v.then(b,b)}return this},f.url=(""+(a||f.url)).replace(br,"").replace(bv,r+"//"),f.dataTypes=d.trim(f.dataType||"*").toLowerCase().split(bz),f.crossDomain||(s=bB.exec(f.url.toLowerCase()),f.crossDomain=s&&(s[1]!=r||s[2]!=q.hostname||(s[3]||(s[1]==="http:"?80:443))!=(q.port||(r==="http:"?80:443)))),f.data&&f.processData&&typeof f.data!=="string"&&(f.data=d.param(f.data,f.traditional)),bG(bD,f,e,v),f.type=f.type.toUpperCase(),f.hasContent=!bu.test(f.type),f.global&&d.active++===0&&d.event.trigger("ajaxStart");if(!f.hasContent){f.data&&(f.url+=(bw.test(f.url)?"&":"?")+f.data);if(f.cache===!1){var x=d.now(),y=f.url.replace(bA,"$1_="+x);f.url=y+(y===f.url?(bw.test(f.url)?"&":"?")+"_="+x:"")}}if(f.data&&f.hasContent&&f.contentType!==!1||e.contentType)l["content-type"]=f.contentType;f.ifModified&&(d.lastModified[f.url]&&(l["if-modified-since"]=d.lastModified[f.url]),d.etag[f.url]&&(l["if-none-match"]=d.etag[f.url])),l.accept=f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+(f.dataTypes[0]!=="*"?", */*; q=0.01":""):f.accepts["*"];for(u in f.headers)l[u.toLowerCase()]=f.headers[u];if(!f.beforeSend||f.beforeSend.call(g,v,f)!==!1&&t!==2){for(u in {success:1,error:1,complete:1})v[u](f[u]);o=bG(bE,f,e,v);if(o){t=v.readyState=1,f.global&&h.trigger("ajaxSend",[v,f]),f.async&&f.timeout>0&&(p=setTimeout(function(){v.abort("timeout")},f.timeout));try{o.send(l,w)}catch(z){status<2?w(-1,z):d.error(z)}}else w(-1,"No Transport")}else w(0,"abort"),v=!1;return v},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery)d.each(a,function(){f(this.name,this.value)});else for(var g in a)bH(g,a[g],c,f);return e.join("&").replace(bo,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bK=d.now(),bL=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bK++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){e=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bL.test(b.url)||e&&bL.test(b.data))){var f,g=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],i=b.url,j=b.data,k="$1"+g+"$2";b.jsonp!==!1&&(i=i.replace(bL,k),b.url===i&&(e&&(j=j.replace(bL,k)),b.data===j&&(i+=(/\?/.test(i)?"&":"?")+b.jsonp+"="+g))),b.url=i,b.data=j,a[g]=function(a){f=[a]},b.complete=[function(){a[g]=h;if(h)f&&d.isFunction(h)&&a[g](f[0]);else try{delete a[g]}catch(b){}},b.complete],b.converters["script json"]=function(){f||d.error(g+" was not called");return f[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bM=d.now(),bN={},bO,bP;d.ajaxSettings.xhr=a.ActiveXObject?function(){if(a.location.protocol!=="file:")try{return new a.XMLHttpRequest}catch(b){}try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(c){}}:function(){return new a.XMLHttpRequest};try{bP=d.ajaxSettings.xhr()}catch(bQ){}d.support.ajax=!!bP,d.support.cors=bP&&"withCredentials"in bP,bP=b,d.support.ajax&&d.ajaxTransport(function(b){if(!b.crossDomain||d.support.cors){var c;return{send:function(e,f){bO||(bO=1,d(a).bind("unload",function(){d.each(bN,function(a,b){b.onreadystatechange&&b.onreadystatechange(1)})}));var g=b.xhr(),h;b.username?g.open(b.type,b.url,b.async,b.username,b.password):g.open(b.type,b.url,b.async),(!b.crossDomain||b.hasContent)&&!e["x-requested-with"]&&(e["x-requested-with"]="XMLHttpRequest");try{d.each(e,function(a,b){g.setRequestHeader(a,b)})}catch(i){}g.send(b.hasContent&&b.data||null),c=function(a,e){if(c&&(e||g.readyState===4)){c=0,h&&(g.onreadystatechange=d.noop,delete bN[h]);if(e)g.readyState!==4&&g.abort();else{var i=g.status,j,k=g.getAllResponseHeaders(),l={},m=g.responseXML;m&&m.documentElement&&(l.xml=m),l.text=g.responseText;try{j=g.statusText}catch(n){j=""}i=i===0?!b.crossDomain||j?k?304:0:302:i==1223?204:i,f(i,j,l,k)}}},b.async&&g.readyState!==4?(h=bM++,bN[h]=g,g.onreadystatechange=c):c()},abort:function(){c&&c(0,1)}}}});var bR={},bS=/^(?:toggle|show|hide)$/,bT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,bU,bV=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(bW("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",bX(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(bW("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(bW("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=bX(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(bS.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=bT.exec(e),j=f.cur()||0;if(i){var k=parseFloat(i[2]),l=i[3]||"px";l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:bW("show",1),slideUp:bW("hide",1),slideToggle:bW("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(d.css(this.elem,this.prop));return a||0},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||"px",this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!bU&&(bU=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(bU),bU=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var bY=/^t(?:able|d|h)$/i,bZ=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=b$(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!bY.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=bZ.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!bZ.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=b$(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=b$(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}})})(window);
Index: controlies/trunk/applications/controlies/static/js/jquery/jquery-ui.custom.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jquery-ui.custom.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jquery-ui.custom.min.js	(revision 178)
@@ -0,0 +1 @@
+link jquery-ui-1.8.9.custom.min.js
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jquery-ui.custom.min.js
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js	(revision 178)
@@ -0,0 +1,117 @@
+/* 
+* jqGrid  3.6.5 - jQuery Grid 
+* Copyright (c) 2008, Tony Tomov, tony@trirand.com 
+* Dual licensed under the MIT and GPL licenses 
+* http://www.opensource.org/licenses/mit-license.php 
+* http://www.gnu.org/licenses/gpl-2.0.html 
+* Date:2010-05-05 
+* Modules: grid.base.js; 
+*/
+(function(b){b.jgrid=b.jgrid||{};b.extend(b.jgrid,{htmlDecode:function(f){if(f=="&nbsp;"||f=="&#160;"||f.length==1&&f.charCodeAt(0)==160)return"";return!f?f:String(f).replace(/&amp;/g,"&").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"')},htmlEncode:function(f){return!f?f:String(f).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\"/g,"&quot;")},format:function(f){var k=b.makeArray(arguments).slice(1);if(f===undefined)f="";return f.replace(/\{(\d+)\}/g,function(i,
+h){return k[h]})},getCellIndex:function(f){f=b(f);f=(!f.is("td")&&!f.is("th")?f.closest("td,th"):f)[0];if(b.browser.msie)return b.inArray(f,f.parentNode.cells);return f.cellIndex},stripHtml:function(f){f+="";var k=/<("[^"]*"|'[^']*'|[^'">])*>/gi;if(f)return(f=f.replace(k,""))&&f!=="&nbsp;"&&f!=="&#160;"?f.replace(/\"/g,"'"):"";else return f},stringToDoc:function(f){var k;if(typeof f!=="string")return f;try{k=(new DOMParser).parseFromString(f,"text/xml")}catch(i){k=new ActiveXObject("Microsoft.XMLDOM");
+k.async=false;k.loadXML(f)}return k&&k.documentElement&&k.documentElement.tagName!="parsererror"?k:null},parse:function(f){f=f;if(f.substr(0,9)=="while(1);")f=f.substr(9);if(f.substr(0,2)=="/*")f=f.substr(2,f.length-4);f||(f="{}");return b.jgrid.useJSON===true&&typeof JSON==="object"&&typeof JSON.parse==="function"?JSON.parse(f):eval("("+f+")")},jqID:function(f){f+="";return f.replace(/([\.\:\[\]])/g,"\\$1")},ajaxOptions:{},extend:function(f){b.extend(b.fn.jqGrid,f);this.no_legacy_api||b.fn.extend(f)}});
+b.fn.jqGrid=function(f){if(typeof f=="string"){var k=b.fn.jqGrid[f];if(!k)throw"jqGrid - No such method: "+f;var i=b.makeArray(arguments).slice(1);return k.apply(this,i)}return this.each(function(){if(!this.grid){var h=b.extend(true,{url:"",height:150,page:1,rowNum:20,records:0,pager:"",pgbuttons:true,pginput:true,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:false,selarrrow:[],savedRow:[],shrinkToFit:true,xmlReader:{},jsonReader:{},subGrid:false,
+subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,onHeaderClick:null,viewrecords:false,loadonce:false,multiselect:false,multikey:false,editurl:null,search:false,caption:"",hidegrid:true,hiddengrid:false,postData:{},userData:{},treeGrid:false,treeGridModel:"nested",
+treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null},forceFit:false,gridstate:"visible",cellEdit:false,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[false,""],scroll:false,multiboxonly:false,deselectAfterSort:true,scrollrows:false,autowidth:false,scrollOffset:18,cellLayout:5,subGridWidth:20,multiselectWidth:20,
+gridview:false,rownumWidth:25,rownumbers:false,pagerpos:"center",recordpos:"right",footerrow:false,userDataOnFooter:false,hoverrows:true,altclass:"ui-priority-secondary",viewsortcols:[false,"vertical",true],resizeclass:"",autoencode:false,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:false,headertitles:false,scrollTimeout:200},b.jgrid.defaults,f||{}),g={headers:[],cols:[],footers:[],dragStart:function(c,d,e){this.resizing={idx:c,startX:d.clientX,sOL:e[0]};this.hDiv.style.cursor="col-resize";
+this.curGbox=b("#rs_m"+h.id,"#gbox_"+h.id);this.curGbox.css({display:"block",left:e[0],top:e[1],height:e[2]});b.isFunction(h.resizeStart)&&h.resizeStart.call(this,d,c);document.onselectstart=function(){return false}},dragMove:function(c){if(this.resizing){var d=c.clientX-this.resizing.startX;c=this.headers[this.resizing.idx];var e=h.direction==="ltr"?c.width+d:c.width-d,l;if(e>33){this.curGbox.css({left:this.resizing.sOL+d});if(h.forceFit===true){l=this.headers[this.resizing.idx+h.nv];d=h.direction===
+"ltr"?l.width-d:l.width+d;if(d>33){c.newWidth=e;l.newWidth=d}}else{this.newWidth=h.direction==="ltr"?h.tblwidth+d:h.tblwidth-d;c.newWidth=e}}}},dragEnd:function(){this.hDiv.style.cursor="default";if(this.resizing){var c=this.resizing.idx,d=this.headers[c].newWidth||this.headers[c].width;d=parseInt(d,10);this.resizing=false;b("#rs_m"+h.id).css("display","none");h.colModel[c].width=d;this.headers[c].width=d;this.headers[c].el.style.width=d+"px";if(this.cols.length>0)this.cols[c].style.width=d+"px";
+if(this.footers.length>0)this.footers[c].style.width=d+"px";if(h.forceFit===true){d=this.headers[c+h.nv].newWidth||this.headers[c+h.nv].width;this.headers[c+h.nv].width=d;this.headers[c+h.nv].el.style.width=d+"px";if(this.cols.length>0)this.cols[c+h.nv].style.width=d+"px";if(this.footers.length>0)this.footers[c+h.nv].style.width=d+"px";h.colModel[c+h.nv].width=d}else{h.tblwidth=this.newWidth||h.tblwidth;b("table:first",this.bDiv).css("width",h.tblwidth+"px");b("table:first",this.hDiv).css("width",
+h.tblwidth+"px");this.hDiv.scrollLeft=this.bDiv.scrollLeft;if(h.footerrow){b("table:first",this.sDiv).css("width",h.tblwidth+"px");this.sDiv.scrollLeft=this.bDiv.scrollLeft}}b.isFunction(h.resizeStop)&&h.resizeStop.call(this,d,c)}this.curGbox=null;document.onselectstart=function(){return true}},populateVisible:function(){g.timer&&clearTimeout(g.timer);g.timer=null;var c=b(g.bDiv).height();if(c){var d=b("table:first",g.bDiv),e=b("> tbody > tr:visible:first",d).outerHeight()||g.prevRowHeight;if(e){g.prevRowHeight=
+e;var l=h.rowNum,n=g.scrollTop=g.bDiv.scrollTop,o=Math.round(d.position().top)-n,p=o+d.height();e=e*l;var w,y,s;if(o<=0&&(h.lastpage===undefined||parseInt((p+n+e-1)/e,10)<=h.lastpage)){y=parseInt((c-p+e-1)/e,10);if(p>=0||y<2||h.scroll===true){w=Math.round((p+n)/e)+1;o=-1}else o=1}if(o>0){w=parseInt(n/e,10)+1;y=parseInt((n+c)/e,10)+2-w;s=true}if(y)if(!(h.lastpage&&w>h.lastpage))if(g.hDiv.loading)g.timer=setTimeout(g.populateVisible,h.scrollTimeout);else{h.page=w;if(s){g.selectionPreserver(d[0]);g.emptyRows(g.bDiv,
+false)}g.populate(y)}}}},scrollGrid:function(){if(h.scroll){var c=g.bDiv.scrollTop;if(c!=g.scrollTop){g.scrollTop=c;g.timer&&clearTimeout(g.timer);g.timer=setTimeout(g.populateVisible,200)}}g.hDiv.scrollLeft=g.bDiv.scrollLeft;if(h.footerrow)g.sDiv.scrollLeft=g.bDiv.scrollLeft},selectionPreserver:function(c){var d=c.p,e=d.selrow,l=d.selarrrow?b.makeArray(d.selarrrow):null,n=c.grid.bDiv.scrollLeft,o=d.gridComplete;d.gridComplete=function(){d.selrow=null;d.selarrrow=[];if(d.multiselect&&l&&l.length>
+0)for(var p=0;p<l.length;p++)l[p]!=e&&b(c).jqGrid("setSelection",l[p],false);e&&b(c).jqGrid("setSelection",e,false);c.grid.bDiv.scrollLeft=n;d.gridComplete=o;d.gridComplete&&o()}}};this.p=h;var j,m,a;if(this.p.colNames.length===0)for(j=0;j<this.p.colModel.length;j++)this.p.colNames[j]=this.p.colModel[j].label||this.p.colModel[j].name;if(this.p.colNames.length!==this.p.colModel.length)alert(b.jgrid.errors.model);else{var q=b("<div class='ui-jqgrid-view'></div>"),t,x=b.browser.msie?true:false,C=b.browser.safari?
+true:false;a=this;a.p.direction=b.trim(a.p.direction.toLowerCase());if(b.inArray(a.p.direction,["ltr","rtl"])==-1)a.p.direction="ltr";m=a.p.direction;b(q).insertBefore(this);b(this).appendTo(q).removeClass("scroll");var K=b("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");b(K).insertBefore(q).attr({id:"gbox_"+this.id,dir:m});b(q).appendTo(K).attr("id","gview_"+this.id);t=x&&b.browser.version<=6?'<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>':
+"";b("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(t).insertBefore(q);b("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(q);b(this).attr({cellSpacing:"0",cellPadding:"0",border:"0",role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});var J=function(c,d){c=parseInt(c,10);return isNaN(c)?d?d:0:c},F=function(c,d,e){var l=a.p.colModel[c],n=l.align,o='style="',
+p=l.classes,w=l.name;if(n)o+="text-align:"+n+";";if(l.hidden===true)o+="display:none;";if(d===0)o+="width: "+g.headers[c].width+"px;";o+='"'+(p!==undefined?' class="'+p+'"':"")+(l.title&&e?' title="'+b.jgrid.stripHtml(e)+'"':"");o+=' aria-describedby="'+a.p.id+"_"+w+'"';return o},Q=function(c){return c===undefined||c===null||c===""?"&#160;":a.p.autoencode?b.jgrid.htmlEncode(c):c+""},M=function(c,d,e,l,n){e=a.p.colModel[e];if(typeof e.formatter!=="undefined"){c={rowId:c,colModel:e,gid:a.p.id};d=b.isFunction(e.formatter)?
+e.formatter.call(a,d,c,l,n):b.fmatter?b.fn.fmatter(e.formatter,d,c,l,n):Q(d)}else d=Q(d);return d},R=function(c,d,e,l,n){c=M(c,d,e,n,"add");return'<td role="gridcell" '+F(e,l,c)+">"+c+"</td>"},u=function(c,d,e){c='<input role="checkbox" type="checkbox" id="jqg_'+c+'" class="cbox" name="jqg_'+c+'"/>';d=F(d,e,"");return'<td role="gridcell" aria-describedby="'+a.p.id+'_cb" '+d+">"+c+"</td>"},la=function(c,d,e,l){e=(parseInt(e,10)-1)*parseInt(l,10)+1+d;c=F(c,d,"");return'<td role="gridcell" aria-describedby="'+
+a.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+c+">"+e+"</td>"},ca=function(c){var d,e=[],l=0,n;for(n=0;n<a.p.colModel.length;n++){d=a.p.colModel[n];if(d.name!=="cb"&&d.name!=="subgrid"&&d.name!=="rn"){e[l]=c=="xml"?d.xmlmap||d.name:d.jsonmap||d.name;l++}}return e},fa=function(c){var d=a.p.remapColumns;if(!d||!d.length)d=b.map(a.p.colModel,function(e,l){return l});if(c)d=b.map(d,function(e){return e<c?null:e-c});return d},aa=function(c,d){a.p.deepempty?b("tbody:first tr",c).remove():b("tbody:first",
+c).empty();if(d&&a.p.scroll){b(">div:first",c).css({height:"auto"}).children("div:first").css({height:0,display:"none"});c.scrollTop=0}},U=function(c,d){var e,l,n,o;if(typeof d==="function")return d(c);e=c[d];if(e===undefined){if(typeof d==="string")n=d.split(".");try{if(o=n.length)for(e=c;e&&o--;){l=n.shift();e=e[l]}}catch(p){}}return e},ia=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(b.isXMLDoc(c)){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p,w=0,y,s,r=0,v=0,
+z=0,D,N,L=[],P,G={},da=a.rows.length,E,W,B=[],S=0,ga=a.p.altRows===true?" "+a.p.altclass:"";a.p.xmlReader.repeatitems||(L=ca("xml"));D=a.p.keyIndex===false?a.p.xmlReader.id:a.p.keyIndex;if(L.length>0&&!isNaN(D)){if(a.p.remapColumns&&a.p.remapColumns.length)D=b.inArray(D,a.p.remapColumns);D=L[D]}N=(D+"").indexOf("[")===-1?L.length?function(X,V){return b(D,X).text()||V}:function(X,V){return b(a.p.xmlReader.cell,X).eq(D).text()||V}:function(X,V){return X.getAttribute(D.replace(/[\[\]]/g,""))||V};a.p.userData=
+{};b(a.p.xmlReader.page,c).each(function(){a.p.page=this.textContent||this.text||0});b(a.p.xmlReader.total,c).each(function(){a.p.lastpage=this.textContent||this.text;if(a.p.lastpage===undefined)a.p.lastpage=1});b(a.p.xmlReader.records,c).each(function(){a.p.records=this.textContent||this.text||0});b(a.p.xmlReader.userdata,c).each(function(){a.p.userData[this.getAttribute("name")]=this.textContent||this.text});c=b(a.p.xmlReader.root+" "+a.p.xmlReader.row,c);var ha=c.length,O=0;if(c&&ha){var ma=parseInt(a.p.rowNum,
+10),wa=a.p.scroll?(parseInt(a.p.page,10)-1)*ma+1:1;if(n)ma*=n+1;for(n=b.isFunction(a.p.afterInsertRow);O<ha;){E=c[O];W=N(E,wa+O);p=e===0?0:e+1;p=(p+O)%2==1?ga:"";B[S++]='<tr id="'+W+'" role="row" class ="ui-widget-content jqgrow ui-row-'+a.p.direction+""+p+'">';if(a.p.rownumbers===true){B[S++]=la(0,O,a.p.page,a.p.rowNum);z=1}if(a.p.multiselect===true){B[S++]=u(W,z,O);r=1}if(a.p.subGrid===true){B[S++]=b(a).jqGrid("addSubGridCell",r+z,O+e);v=1}if(a.p.xmlReader.repeatitems){P||(P=fa(r+v+z));var za=b(a.p.xmlReader.cell,
+E);b.each(P,function(X){var V=za[this];if(!V)return false;y=V.textContent||V.text;G[a.p.colModel[X+r+v+z].name]=y;B[S++]=R(W,y,X+r+v+z,O+e,E)})}else for(p=0;p<L.length;p++){y=b(L[p],E).text();G[a.p.colModel[p+r+v+z].name]=y;B[S++]=R(W,y,p+r+v+z,O+e,E)}B[S++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){p=a.p.treeANode>=-1?a.p.treeANode:0;s=b(B.join(""))[0];try{b(a).jqGrid("setTreeNode",G,s)}catch(Fa){}da===0?b("tbody:first",d).append(s):b(a.rows[O+p+e]).after(s)}else b("tbody:first",d).append(B.join(""));
+if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],r+z)}catch(Ga){}n&&a.p.afterInsertRow.call(a,W,G,E);B=[];S=0}G={};w++;O++;if(w==ma)break}}a.p.gridview===true&&b("tbody:first",d).append(B.join(""));a.p.totaltime=new Date-o;if(w>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=ha}B=null;if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=w;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},
+ra=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(c){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p=0,w,y,s,r=[],v,z=0,D=0,N=0,L,P,G,da={},E,W=a.rows.length,B;s=[];E=0;var S=a.p.altRows===true?" "+a.p.altclass:"";a.p.page=U(c,a.p.jsonReader.page)||0;G=U(c,a.p.jsonReader.total);a.p.lastpage=G===undefined?1:G;a.p.records=U(c,a.p.jsonReader.records)||0;a.p.userData=U(c,a.p.jsonReader.userdata)||{};a.p.jsonReader.repeatitems||(v=r=ca("json"));G=a.p.keyIndex===false?a.p.jsonReader.id:
+a.p.keyIndex;if(r.length>0&&!isNaN(G)){if(a.p.remapColumns&&a.p.remapColumns.length)G=b.inArray(G,a.p.remapColumns);G=r[G]}if(P=U(c,a.p.jsonReader.root)){L=P.length;c=0;var ga=parseInt(a.p.rowNum,10),ha=a.p.scroll?(parseInt(a.p.page,10)-1)*ga+1:1;if(n)ga*=n+1;for(var O=b.isFunction(a.p.afterInsertRow);c<L;){n=P[c];B=U(n,G);if(B===undefined){B=ha+c;if(r.length===0)if(a.p.jsonReader.cell)B=n[a.p.jsonReader.cell][G]||B}w=e===0?0:e+1;w=(w+c)%2==1?S:"";s[E++]='<tr id="'+B+'" role="row" class= "ui-widget-content jqgrow ui-row-'+
+a.p.direction+""+w+'">';if(a.p.rownumbers===true){s[E++]=la(0,c,a.p.page,a.p.rowNum);N=1}if(a.p.multiselect){s[E++]=u(B,N,c);z=1}if(a.p.subGrid){s[E++]=b(a).jqGrid("addSubGridCell",z+N,c+e);D=1}if(a.p.jsonReader.repeatitems){if(a.p.jsonReader.cell)n=U(n,a.p.jsonReader.cell);v||(v=fa(z+D+N))}for(y=0;y<v.length;y++){w=U(n,v[y]);s[E++]=R(B,w,y+z+D+N,c+e,n);da[a.p.colModel[y+z+D+N].name]=w}s[E++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){E=a.p.treeANode>=-1?a.p.treeANode:0;s=b(s.join(""))[0];
+try{b(a).jqGrid("setTreeNode",da,s)}catch(ma){}W===0?b("tbody:first",d).append(s):b(a.rows[c+E+e]).after(s)}else b("tbody:first",d).append(s.join(""));if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],z+N)}catch(wa){}O&&a.p.afterInsertRow.call(a,B,da,n);s=[];E=0}da={};p++;c++;if(p==ga)break}a.p.gridview===true&&b("tbody:first",d).append(s.join(""));a.p.totaltime=new Date-o;if(p>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=L}}if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=
+0;a.p.reccount=p;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},na=function(c,d){var e,l,n,o,p,w,y,s="";n=parseInt(a.p.page,10)-1;if(n<0)n=0;n*=parseInt(a.p.rowNum,10);p=n+a.p.reccount;if(a.p.scroll){e=b("tbody:first > tr",a.grid.bDiv);n=p-e.length;if(l=e.outerHeight()){e=n*l;l=parseInt(a.p.records,10)*l;b(">div:first",a.grid.bDiv).css({height:l}).children("div:first").css({height:e,display:e?"":"none"})}}s=a.p.pager?a.p.pager:"";s+=a.p.toppager?
+s?","+a.p.toppager:a.p.toppager:"";if(s){y=b.jgrid.formatter.integer||{};if(a.p.loadonce){e=l=1;a.p.lastpage=a.page=1;b(".selbox",s).attr("disabled",true)}else{e=J(a.p.page);l=J(a.p.lastpage);b(".selbox",s).attr("disabled",false)}if(a.p.pginput===true){b(".ui-pg-input",s).val(a.p.page);b("#sp_1",s).html(b.fmatter?b.fmatter.util.NumberFormat(a.p.lastpage,y):a.p.lastpage)}if(a.p.viewrecords)if(a.p.reccount===0)b(".ui-paging-info",s).html(a.p.emptyrecords);else{o=n+1;w=a.p.records;if(b.fmatter){o=b.fmatter.util.NumberFormat(o,
+y);p=b.fmatter.util.NumberFormat(p,y);w=b.fmatter.util.NumberFormat(w,y)}b(".ui-paging-info",s).html(b.jgrid.format(a.p.recordtext,o,p,w))}if(a.p.pgbuttons===true){if(e<=0)e=l=0;if(e==1||e===0){b("#first, #prev",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#first, #prev",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).removeClass("ui-state-disabled")}if(e==
+l||e===0){b("#next, #last",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#next, #last",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).removeClass("ui-state-disabled")}}}c===true&&a.p.rownumbers===true&&b("td.jqgrid-rownum",a.rows).each(function(r){b(this).html(n+1+r)});d&&a.p.jqgdnd&&b(a).jqGrid("gridDnD","updateDnD");
+b.isFunction(a.p.gridComplete)&&a.p.gridComplete.call(a)},Y=function(c){if(!a.grid.hDiv.loading){var d=a.p.scroll&&c===false,e={},l,n=a.p.prmNames;if(a.p.page<=0)a.p.page=1;if(n.search!==null)e[n.search]=a.p.search;if(n.nd!==null)e[n.nd]=(new Date).getTime();if(n.rows!==null)e[n.rows]=a.p.rowNum;if(n.page!==null)e[n.page]=a.p.page;if(n.sort!==null)e[n.sort]=a.p.sortname;if(n.order!==null)e[n.order]=a.p.sortorder;var o=a.p.loadComplete,p=b.isFunction(o);p||(o=null);var w=0;c=c||1;if(c>1)if(n.npage!==
+null){e[n.npage]=c;w=c-1;c=1}else o=function(s){p&&a.p.loadComplete.call(a,s);a.grid.hDiv.loading=false;a.p.page++;Y(c-1)};else n.npage!==null&&delete a.p.postData[n.npage];b.extend(a.p.postData,e);var y=!a.p.scroll?0:a.rows.length-1;if(b.isFunction(a.p.datatype))a.p.datatype.call(a,a.p.postData,"load_"+a.p.id);else{b.isFunction(a.p.beforeRequest)&&a.p.beforeRequest.call(a);l=a.p.datatype.toLowerCase();switch(l){case "json":case "jsonp":case "xml":case "script":b.ajax(b.extend({url:a.p.url,type:a.p.mtype,
+dataType:l,data:b.isFunction(a.p.serializeGridData)?a.p.serializeGridData.call(a,a.p.postData):a.p.postData,success:function(s){l==="xml"?ia(s,a.grid.bDiv,y,c>1,w):ra(s,a.grid.bDiv,y,c>1,w);o&&o.call(a,s);d&&a.grid.populateVisible();if(a.p.loadonce||a.p.treeGrid)a.p.datatype="local";ja()},error:function(s,r,v){b.isFunction(a.p.loadError)&&a.p.loadError.call(a,s,r,v);ja()},beforeSend:function(s){oa();b.isFunction(a.p.loadBeforeSend)&&a.p.loadBeforeSend.call(a,s)}},b.jgrid.ajaxOptions,a.p.ajaxGridOptions));
+break;case "xmlstring":oa();e=b.jgrid.stringToDoc(a.p.datastr);p&&a.p.loadComplete.call(a,e);ia(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "jsonstring":oa();e=typeof a.p.datastr=="string"?b.jgrid.parse(a.p.datastr):a.p.datastr;p&&a.p.loadComplete.call(a,e);ra(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "local":case "clientside":oa();a.p.datatype="local";p&&a.p.loadComplete.call(a,"");Aa();na(true,true);ja();break}}}},oa=function(){a.grid.hDiv.loading=
+true;if(!a.p.hiddengrid)switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).show();break;case "block":b("#lui_"+a.p.id).show();b("#load_"+a.p.id).show();break}},ja=function(){a.grid.hDiv.loading=false;switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).hide();break;case "block":b("#lui_"+a.p.id).hide();b("#load_"+a.p.id).hide();break}},Aa=function(){var c=/[\$,%]/g,d=[],e=0,l,n,o,p=a.p.sortorder=="asc"?1:-1,w=false,y;b.each(a.p.colModel,function(r){if(this.index==
+a.p.sortname||this.name==a.p.sortname){if(a.p.lastsort==r)w=true;e=r;l=this.sorttype;return false}});o=l=="float"||l=="number"||l=="currency"?function(r){r=parseFloat(r.replace(c,""));return isNaN(r)?0:r}:l=="int"||l=="integer"?function(r){return J(r.replace(c,""),0)}:l=="date"||l=="datetime"?function(r){return Ba(a.p.colModel[e].datefmt||"Y-m-d",r).getTime()}:b.isFunction(l)?l:function(r){return b.trim(r.toUpperCase())};y=a.p.colModel[e];b.each(a.rows,function(r,v){try{n=b.unformat(b(v).children("td").eq(e),
+{rowId:v.id,colModel:y},e,true)}catch(z){n=b(v).children("td").eq(e).text()}v.sortKey=o(n);d[r]=this});if(a.p.treeGrid)b(a).jqGrid("SortTree",p);else{w?d.reverse():d.sort(function(r,v){if(r.sortKey<v.sortKey)return-p;if(r.sortKey>v.sortKey)return p;return 0});if(d[0]){b("td",d[0]).each(function(r){b(this).css("width",g.headers[r].width+"px")});a.grid.cols=d[0].cells}var s="";if(a.p.altRows)s=a.p.altclass;b.each(d,function(r,v){if(s)r%2==1?b(v).addClass(s):b(v).removeClass(s);b("tbody",a.grid.bDiv).append(v);
+v.sortKey=null})}a.grid.bDiv.scrollTop=0},Ba=function(c,d){var e={m:1,d:1,y:1970,h:0,i:0,s:0},l,n,o;if(d=b.trim(d)){d=d.split(/[\\\/:_;.\t\T\s-]/);c=c.split(/[\\\/:_;.\t\T\s-]/);var p=b.jgrid.formatter.date.monthNames,w=b.jgrid.formatter.date.AmPm,y=function(s,r){if(s===0){if(r==12)r=0}else if(r!=12)r+=12;return r};l=0;for(n=c.length;l<n;l++){if(c[l]=="M"){o=b.inArray(d[l],p);if(o!==-1&&o<12)d[l]=o+1}if(c[l]=="F"){o=b.inArray(d[l],p);if(o!==-1&&o>11)d[l]=o+1-12}if(c[l]=="a"){o=b.inArray(d[l],w);if(o!==
+-1&&o<2&&d[l]==w[o]){d[l]=o;e.h=y(d[l],e.h)}}if(c[l]=="A"){o=b.inArray(d[l],w);if(o!==-1&&o>1&&d[l]==w[o]){d[l]=o-2;e.h=y(d[l],e.h)}}e[c[l].toLowerCase()]=parseInt(d[l],10)}e.m=parseInt(e.m,10)-1;c=e.y;if(c>=70&&c<=99)e.y=1900+e.y;else if(c>=0&&c<=69)e.y=2E3+e.y}return new Date(e.y,e.m,e.d,e.h,e.i,e.s,0)};t=function(c,d){var e="",l="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",n="",o,p,w,y,s=function(r){var v;if(b.isFunction(a.p.onPaging))v=
+a.p.onPaging.call(a,r);a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];if(v=="stop")return false;return true};c=c.substr(1);o="pg_"+c;p=c+"_left";w=c+"_center";y=c+"_right";b("#"+c).append("<div id='"+o+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+p+"' align='left'></td><td id='"+
+w+"' align='center' style='white-space:pre;'></td><td id='"+y+"' align='right'></td></tr></tbody></table></div>").attr("dir","ltr");if(a.p.rowList.length>0){n="<td dir='"+m+"'>";n+="<select class='ui-pg-selbox' role='listbox'>";for(p=0;p<a.p.rowList.length;p++)n+="<option role='option' value='"+a.p.rowList[p]+"'"+(a.p.rowNum==a.p.rowList[p]?" selected":"")+">"+a.p.rowList[p]+"</option>";n+="</select></td>"}if(m=="rtl")l+=n;if(a.p.pginput===true)e="<td dir='"+m+"'>"+b.jgrid.format(a.p.pgtext||"","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>",
+"<span id='sp_1'></span>")+"</td>";if(a.p.pgbuttons===true){p=["first"+d,"prev"+d,"next"+d,"last"+d];m=="rtl"&&p.reverse();l+="<td id='"+p[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";l+="<td id='"+p[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";l+=e!=""?"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>"+e+"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>":
+"";l+="<td id='"+p[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";l+="<td id='"+p[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>"}else if(e!="")l+=e;if(m=="ltr")l+=n;l+="</tr></tbody></table>";a.p.viewrecords===true&&b("td#"+c+"_"+a.p.recordpos,"#"+o).append("<div dir='"+m+"' style='text-align:"+a.p.recordpos+"' class='ui-paging-info'></div>");b("td#"+c+"_"+a.p.pagerpos,"#"+o).append(l);n=b(".ui-jqgrid").css("font-size")||
+"11px";b("body").append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+n+";visibility:hidden;' ></div>");l=b(l).clone().appendTo("#testpg").width();b("#testpg").remove();if(l>0){if(e!="")l+=50;b("td#"+c+"_"+a.p.pagerpos,"#"+o).width(l)}a.p._nvtd=[];a.p._nvtd[0]=l?Math.floor((a.p.width-l)/2):Math.floor(a.p.width/3);a.p._nvtd[1]=0;l=null;b(".ui-pg-selbox","#"+o).bind("change",function(){a.p.page=Math.round(a.p.rowNum*(a.p.page-1)/this.value-0.5)+1;a.p.rowNum=this.value;
+if(d)b(".ui-pg-selbox",a.p.pager).val(this.value);else a.p.toppager&&b(".ui-pg-selbox",a.p.toppager).val(this.value);if(!s("records"))return false;Y();return false});if(a.p.pgbuttons===true){b(".ui-pg-button","#"+o).hover(function(){if(b(this).hasClass("ui-state-disabled"))this.style.cursor="default";else{b(this).addClass("ui-state-hover");this.style.cursor="pointer"}},function(){if(!b(this).hasClass("ui-state-disabled")){b(this).removeClass("ui-state-hover");this.style.cursor="default"}});b("#first"+
+d+", #prev"+d+", #next"+d+", #last"+d,"#"+c).click(function(){var r=J(a.p.page,1),v=J(a.p.lastpage,1),z=false,D=true,N=true,L=true,P=true;if(v===0||v===1)P=L=N=D=false;else if(v>1&&r>=1)if(r===1)N=D=false;else{if(!(r>1&&r<v))if(r===v)P=L=false}else if(v>1&&r===0){P=L=false;r=v-1}if(this.id==="first"+d&&D){a.p.page=1;z=true}if(this.id==="prev"+d&&N){a.p.page=r-1;z=true}if(this.id==="next"+d&&L){a.p.page=r+1;z=true}if(this.id==="last"+d&&P){a.p.page=v;z=true}if(z){if(!s(this.id))return false;Y()}return false})}a.p.pginput===
+true&&b("input.ui-pg-input","#"+o).keypress(function(r){if((r.charCode?r.charCode:r.keyCode?r.keyCode:0)==13){a.p.page=b(this).val()>0?b(this).val():a.p.page;if(!s("user"))return false;Y();return false}return this})};var xa=function(c,d,e,l){if(a.p.colModel[d].sortable)if(!(a.p.savedRow.length>0)){if(!e){if(a.p.lastsort==d)if(a.p.sortorder=="asc")a.p.sortorder="desc";else{if(a.p.sortorder=="desc")a.p.sortorder="asc"}else a.p.sortorder=a.p.colModel[d].firstsortorder||"asc";a.p.page=1}if(l)if(a.p.lastsort==
+d&&a.p.sortorder==l&&!e)return;else a.p.sortorder=l;e=b("thead:first",a.grid.hDiv).get(0);b("tr th:eq("+a.p.lastsort+") span.ui-grid-ico-sort",e).addClass("ui-state-disabled");b("tr th:eq("+a.p.lastsort+")",e).attr("aria-selected","false");b("tr th:eq("+d+") span.ui-icon-"+a.p.sortorder,e).removeClass("ui-state-disabled");b("tr th:eq("+d+")",e).attr("aria-selected","true");if(!a.p.viewsortcols[0])if(a.p.lastsort!=d){b("tr th:eq("+a.p.lastsort+") span.s-ico",e).hide();b("tr th:eq("+d+") span.s-ico",
+e).show()}c=c.substring(5);a.p.sortname=a.p.colModel[d].index||c;e=a.p.sortorder;if(b.isFunction(a.p.onSortCol))if(a.p.onSortCol.call(a,c,d,e)=="stop"){a.p.lastsort=d;return}if(a.p.datatype=="local")a.p.deselectAfterSort&&b(a).jqGrid("resetSelection");else{a.p.selrow=null;a.p.multiselect&&b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false);a.p.selarrrow=[];a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}a.p.subGrid&&a.p.datatype=="local"&&b("td.sgexpanded","#"+a.p.id).each(function(){b(this).trigger("click")});
+Y();a.p.lastsort=d;if(a.p.sortname!=c&&d)a.p.lastsort=d}},Ca=function(c){var d=c,e;for(e=c+1;e<a.p.colModel.length;e++)if(a.p.colModel[e].hidden!==true){d=e;break}return d-c},Da=function(c){var d,e={},l=C?0:a.p.cellLayout;for(d=e[0]=e[1]=e[2]=0;d<=c;d++)if(a.p.colModel[d].hidden===false)e[0]+=a.p.colModel[d].width+l;if(a.p.direction=="rtl")e[0]=a.p.width-e[0];e[0]-=a.grid.bDiv.scrollLeft;if(b(a.grid.cDiv).is(":visible"))e[1]+=b(a.grid.cDiv).height()+parseInt(b(a.grid.cDiv).css("padding-top"),10)+
+parseInt(b(a.grid.cDiv).css("padding-bottom"),10);if(a.p.toolbar[0]===true&&(a.p.toolbar[1]=="top"||a.p.toolbar[1]=="both"))e[1]+=b(a.grid.uDiv).height()+parseInt(b(a.grid.uDiv).css("border-top-width"),10)+parseInt(b(a.grid.uDiv).css("border-bottom-width"),10);if(a.p.toppager)e[1]+=b(a.grid.topDiv).height()+parseInt(b(a.grid.topDiv).css("border-bottom-width"),10);e[2]+=b(a.grid.bDiv).height()+b(a.grid.hDiv).height();return e};this.p.id=this.id;if(b.inArray(a.p.multikey,["shiftKey","altKey","ctrlKey"])==
+-1)a.p.multikey=false;a.p.keyIndex=false;for(j=0;j<a.p.colModel.length;j++)if(a.p.colModel[j].key===true){a.p.keyIndex=j;break}a.p.sortorder=a.p.sortorder.toLowerCase();if(this.p.treeGrid===true)try{b(this).jqGrid("setTreeGrid")}catch(Ha){}if(this.p.subGrid)try{b(a).jqGrid("setSubGrid")}catch(Ia){}if(this.p.multiselect){this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");this.p.colModel.unshift({name:"cb",width:C?a.p.multiselectWidth+a.p.cellLayout:
+a.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}if(this.p.rownumbers){this.p.colNames.unshift("");this.p.colModel.unshift({name:"rn",width:a.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}a.p.xmlReader=b.extend(true,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:true,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:true,
+cell:"cell"}},a.p.xmlReader);a.p.jsonReader=b.extend(true,{root:"rows",page:"page",total:"total",records:"records",repeatitems:true,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:true,cell:"cell"}},a.p.jsonReader);if(a.p.scroll){a.p.pgbuttons=false;a.p.pginput=false;a.p.rowList=[]}var H="<thead><tr class='ui-jqgrid-labels' role='rowheader'>",ya,ba,sa,ka,pa,I,A,ea;ba=ea="";if(a.p.shrinkToFit===true&&a.p.forceFit===true)for(j=a.p.colModel.length-1;j>=0;j--)if(!a.p.colModel[j].hidden){a.p.colModel[j].resizable=
+false;break}if(a.p.viewsortcols[1]=="horizontal"){ea=" ui-i-asc";ba=" ui-i-desc"}ya=x?"class='ui-th-div-ie'":"";ea="<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+ea+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+m+"'></span>";ea+="<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+ba+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+m+"'></span></span>";for(j=0;j<this.p.colNames.length;j++){ba=a.p.headertitles?' title="'+b.jgrid.stripHtml(a.p.colNames[j])+
+'"':"";H+="<th id='"+a.p.id+"_"+a.p.colModel[j].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+m+"'"+ba+">";ba=a.p.colModel[j].index||a.p.colModel[j].name;H+="<div id='jqgh_"+a.p.colModel[j].name+"' "+ya+">"+a.p.colNames[j];a.p.colModel[j].width=a.p.colModel[j].width?parseInt(a.p.colModel[j].width,10):150;if(typeof a.p.colModel[j].title!=="boolean")a.p.colModel[j].title=true;if(ba==a.p.sortname)a.p.lastsort=j;H+=ea+"</div></th>"}H+="</tr></thead>";b(this).append(H);b("thead tr:first th",
+this).hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")});if(this.p.multiselect){var ta=[],qa;b("#cb_"+b.jgrid.jqID(a.p.id),this).bind("click",function(){if(this.checked){b("[id^=jqg_]",a.rows).attr("checked",true);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).addClass("ui-state-highlight").attr("aria-selected","true");a.p.selarrrow[c]=a.p.selrow=this.id}});qa=true;ta=[]}else{b("[id^=jqg_]",a.rows).attr("checked",false);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).removeClass("ui-state-highlight").attr("aria-selected",
+"false");ta[c]=this.id}});a.p.selarrrow=[];a.p.selrow=null;qa=false}if(b.isFunction(a.p.onSelectAll))a.p.onSelectAll.call(a,qa?a.p.selarrrow:ta,qa)})}if(a.p.autowidth===true){H=b(K).innerWidth();a.p.width=H>0?H:"nw"}(function(){var c=0,d=a.p.cellLayout,e=0,l,n=a.p.scrollOffset,o,p=false,w,y=0,s=0,r=0,v;if(C)d=0;b.each(a.p.colModel,function(){if(typeof this.hidden==="undefined")this.hidden=false;if(this.hidden===false){c+=J(this.width,0);if(this.fixed){y+=this.width;s+=this.width+d}else e++;r++}});
+if(isNaN(a.p.width))a.p.width=g.width=c;else g.width=a.p.width;a.p.tblwidth=c;if(a.p.shrinkToFit===false&&a.p.forceFit===true)a.p.forceFit=false;if(a.p.shrinkToFit===true&&e>0){w=g.width-d*e-s;if(!isNaN(a.p.height)){w-=n;p=true}c=0;b.each(a.p.colModel,function(z){if(this.hidden===false&&!this.fixed){this.width=o=Math.round(w*this.width/(a.p.tblwidth-y));c+=o;l=z}});v=0;if(p){if(g.width-s-(c+d*e)!==n)v=g.width-s-(c+d*e)-n}else if(!p&&Math.abs(g.width-s-(c+d*e))!==1)v=g.width-s-(c+d*e);a.p.colModel[l].width+=
+v;a.p.tblwidth=c+v+y+r*d;if(a.p.tblwidth>a.p.width){a.p.colModel[l].width-=a.p.tblwidth-parseInt(a.p.width,10);a.p.tblwidth=a.p.width}}})();b(K).css("width",g.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+a.p.id+"'>&#160;</div>");b(q).css("width",g.width+"px");H=b("thead:first",a).get(0);var ua="<table role='grid' style='width:"+a.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+
+m+"'>";q=b("tr:first",H);a.p.disableClick=false;b("th",q).each(function(c){sa=a.p.colModel[c].width;if(typeof a.p.colModel[c].resizable==="undefined")a.p.colModel[c].resizable=true;if(a.p.colModel[c].resizable){ka=document.createElement("span");b(ka).html("&#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+m);b.browser.opera||b(ka).css("cursor","col-resize");b(this).addClass(a.p.resizeclass)}else ka="";b(this).css("width",sa+"px").prepend(ka);a.p.colModel[c].hidden&&b(this).css("display","none");
+g.headers[c]={width:sa,el:this};pa=a.p.colModel[c].sortable;if(typeof pa!=="boolean")pa=a.p.colModel[c].sortable=true;var d=a.p.colModel[c].name;d=="cb"||d=="subgrid"||d=="rn"||a.p.viewsortcols[2]&&b("div",this).addClass("ui-jqgrid-sortable");if(pa)if(a.p.viewsortcols[0]){b("div span.s-ico",this).show();c==a.p.lastsort&&b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}else if(c==a.p.lastsort){b("div span.s-ico",this).show();b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}ua+=
+"<td role='gridcell' "+F(c,0,"")+">&#160;</td>"}).mousedown(function(c){if(b(c.target).closest("th>span.ui-jqgrid-resize").length==1){var d=b.jgrid.getCellIndex(this);if(a.p.forceFit===true)a.p.nv=Ca(d);g.dragStart(d,c,Da(d));return false}}).click(function(c){if(a.p.disableClick)return a.p.disableClick=false;var d="th>div.ui-jqgrid-sortable",e,l;a.p.viewsortcols[2]||(d="th>div>span>span.ui-grid-ico-sort");c=b(c.target).closest(d);if(c.length==1){d=b.jgrid.getCellIndex(this);if(!a.p.viewsortcols[2]){e=
+true;l=c.attr("sort")}xa(b("div",this)[0].id,d,e,l);return false}});if(a.p.sortable&&b.fn.sortable)try{b(a).jqGrid("sortableColumns",q)}catch(Ja){}ua+="</tr></tbody></table>";this.appendChild(document.createElement("tbody"));b(this).addClass("ui-jqgrid-btable");q=b("<table class='ui-jqgrid-htable' style='width:"+a.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(H);var T=a.p.caption&&a.p.hiddengrid===true?true:false;H=b("<div class='ui-jqgrid-hbox"+
+(m=="rtl"?"-rtl":"")+"'></div>");g.hDiv=document.createElement("div");b(g.hDiv).css({width:g.width+"px"}).addClass("ui-state-default ui-jqgrid-hdiv").append(H);b(H).append(q);T&&b(g.hDiv).hide();if(a.p.pager){if(typeof a.p.pager=="string"){if(a.p.pager.substr(0,1)!="#")a.p.pager="#"+a.p.pager}else a.p.pager="#"+b(a.p.pager).attr("id");b(a.p.pager).css({width:g.width+"px"}).appendTo(K).addClass("ui-state-default ui-jqgrid-pager ui-corner-bottom");T&&b(a.p.pager).hide();t(a.p.pager,"")}a.p.cellEdit===
+false&&a.p.hoverrows===true&&b(a).bind("mouseover",function(c){A=b(c.target).closest("tr.jqgrow");b(A).attr("class")!=="subgrid"&&b(A).addClass("ui-state-hover");return false}).bind("mouseout",function(c){A=b(c.target).closest("tr.jqgrow");b(A).removeClass("ui-state-hover");return false});var Z,$;b(a).before(g.hDiv).click(function(c){I=c.target;var d=b(I).hasClass("cbox");A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return this;var e=true;if(b.isFunction(a.p.beforeSelectRow))e=a.p.beforeSelectRow.call(a,
+A[0].id,c);if(I.tagName=="A"||(I.tagName=="INPUT"||I.tagName=="TEXTAREA"||I.tagName=="OPTION"||I.tagName=="SELECT")&&!d)return this;if(e===true){if(a.p.cellEdit===true)if(a.p.multiselect&&d)b(a).jqGrid("setSelection",A[0].id,true);else{Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);try{b(a).jqGrid("editCell",Z,$,true)}catch(l){}}else if(a.p.multikey)if(c[a.p.multikey])b(a).jqGrid("setSelection",A[0].id,true);else{if(a.p.multiselect&&d){d=b("[id^=jqg_]",A).attr("checked");b("[id^=jqg_]",A).attr("checked",
+!d)}}else{if(a.p.multiselect&&a.p.multiboxonly)if(!d){b(a.p.selarrrow).each(function(n,o){n=a.rows.namedItem(o);b(n).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(o),n).attr("checked",false)});a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}b(a).jqGrid("setSelection",A[0].id,true)}if(b.isFunction(a.p.onCellSelect)){Z=A[0].id;$=b.jgrid.getCellIndex(I);a.p.onCellSelect.call(a,Z,$,b(I).html(),c)}c.stopPropagation()}else return this}).bind("reloadGrid",function(c,
+d){if(a.p.treeGrid===true)a.p.datatype=a.p.treedatatype;d&&d.current&&a.grid.selectionPreserver(a);if(a.p.datatype=="local")b(a).jqGrid("resetSelection");else if(!a.p.treeGrid){a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}if(d&&d.page){c=d.page;if(c>a.p.lastpage)c=a.p.lastpage;if(c<1)c=1;a.p.page=c;a.grid.bDiv.scrollTop=a.grid.prevRowHeight?(c-1)*a.grid.prevRowHeight*a.p.rowNum:
+0}if(a.grid.prevRowHeight&&a.p.scroll){delete a.p.lastpage;a.grid.populateVisible()}else a.grid.populate();return false});b.isFunction(this.p.ondblClickRow)&&b(this).dblclick(function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return false;Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.ondblClickRow.call(a,b(A).attr("id"),Z,$,c);return false});b.isFunction(this.p.onRightClickRow)&&b(this).bind("contextmenu",function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===
+0)return false;a.p.multiselect||b(a).jqGrid("setSelection",A[0].id,true);Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.onRightClickRow.call(a,b(A).attr("id"),Z,$,c);return false});g.bDiv=document.createElement("div");b(g.bDiv).append(b('<div style="position:relative;'+(x&&b.browser.version<8?"height:0.01%;":"")+'"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:a.p.height+(isNaN(a.p.height)?"":"px"),width:g.width+"px"}).scroll(g.scrollGrid);b("table:first",g.bDiv).css({width:a.p.tblwidth+
+"px"});if(x){b("tbody",this).size()==2&&b("tbody:first",this).remove();a.p.multikey&&b(g.bDiv).bind("selectstart",function(){return false})}else a.p.multikey&&b(g.bDiv).bind("mousedown",function(){return false});T&&b(g.bDiv).hide();g.cDiv=document.createElement("div");var va=a.p.hidegrid===true?b("<a role='link' href='javascript:void(0)'/>").addClass("ui-jqgrid-titlebar-close HeaderButton").hover(function(){va.addClass("ui-state-hover")},function(){va.removeClass("ui-state-hover")}).append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css(m==
+"rtl"?"left":"right","0px"):"";b(g.cDiv).append(va).append("<span class='ui-jqgrid-title"+(m=="rtl"?"-rtl":"")+"'>"+a.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");b(g.cDiv).insertBefore(g.hDiv);if(a.p.toolbar[0]){g.uDiv=document.createElement("div");if(a.p.toolbar[1]=="top")b(g.uDiv).insertBefore(g.hDiv);else a.p.toolbar[1]=="bottom"&&b(g.uDiv).insertAfter(g.hDiv);if(a.p.toolbar[1]=="both"){g.ubDiv=document.createElement("div");b(g.uDiv).insertBefore(g.hDiv).addClass("ui-userdata ui-state-default").attr("id",
+"t_"+this.id);b(g.ubDiv).insertAfter(g.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);T&&b(g.ubDiv).hide()}else b(g.uDiv).width(g.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);T&&b(g.uDiv).hide()}if(a.p.toppager){a.p.toppager=a.p.id+"_toppager";g.topDiv=b("<div id='"+a.p.toppager+"'></div>")[0];a.p.toppager="#"+a.p.toppager;b(g.topDiv).insertBefore(g.hDiv).addClass("ui-state-default ui-jqgrid-toppager").width(g.width);t(a.p.toppager,"_t")}if(a.p.footerrow){g.sDiv=
+b("<div class='ui-jqgrid-sdiv'></div>")[0];H=b("<div class='ui-jqgrid-hbox"+(m=="rtl"?"-rtl":"")+"'></div>");b(g.sDiv).append(H).insertAfter(g.hDiv).width(g.width);b(H).append(ua);g.footers=b(".ui-jqgrid-ftable",g.sDiv)[0].rows[0].cells;if(a.p.rownumbers)g.footers[0].className="ui-state-default jqgrid-rownum";T&&b(g.sDiv).hide()}if(a.p.caption){var Ea=a.p.datatype;if(a.p.hidegrid===true){b(".ui-jqgrid-titlebar-close",g.cDiv).click(function(c){var d=b.isFunction(a.p.onHeaderClick);if(a.p.gridstate==
+"visible"){b(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+a.p.id).slideUp("fast");a.p.pager&&b(a.p.pager).slideUp("fast");a.p.toppager&&b(a.p.toppager).slideUp("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideUp("fast");b(g.uDiv).slideUp("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideUp("fast");b("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");a.p.gridstate="hidden";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&
+b(".ui-resizable-handle","#gbox_"+a.p.id).hide();if(d)T||a.p.onHeaderClick.call(a,a.p.gridstate,c)}else if(a.p.gridstate=="hidden"){b(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+a.p.id).slideDown("fast");a.p.pager&&b(a.p.pager).slideDown("fast");a.p.toppager&&b(a.p.toppager).slideDown("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideDown("fast");b(g.uDiv).slideDown("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideDown("fast");b("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
+if(T){a.p.datatype=Ea;Y();T=false}a.p.gridstate="visible";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&b(".ui-resizable-handle","#gbox_"+a.p.id).show();d&&a.p.onHeaderClick.call(a,a.p.gridstate,c)}return false});if(T){a.p.datatype="local";b(".ui-jqgrid-titlebar-close",g.cDiv).trigger("click")}}}else b(g.cDiv).hide();b(g.hDiv).after(g.bDiv).mousemove(function(c){if(g.resizing){g.dragMove(c);return false}});b(".ui-jqgrid-labels",g.hDiv).bind("selectstart",function(){return false});b(document).mouseup(function(){if(g.resizing){g.dragEnd();
+return false}return true});this.updateColumns=function(){var c=this.rows[0],d=this;if(c){b("td",c).each(function(e){b(this).css("width",d.grid.headers[e].width+"px")});this.grid.cols=c.cells}return this};a.formatCol=F;a.sortData=xa;a.updatepager=na;a.formatter=function(c,d,e,l,n){return M(c,d,e,l,n)};b.extend(g,{populate:Y,emptyRows:aa});this.grid=g;a.addXmlData=function(c){ia(c,a.grid.bDiv)};a.addJSONData=function(c){ra(c,a.grid.bDiv)};Y();a.p.hiddengrid=false;b(window).unload(function(){a=null})}}})};
+b.jgrid.extend({getGridParam:function(f){var k=this[0];if(k.grid)return f?typeof k.p[f]!="undefined"?k.p[f]:null:k.p},setGridParam:function(f){return this.each(function(){this.grid&&typeof f==="object"&&b.extend(true,this.p,f)})},getDataIDs:function(){var f=[],k=0,i;this.each(function(){if((i=this.rows.length)&&i>0)for(;k<i;){f[k]=this.rows[k].id;k++}});return f},setSelection:function(f,k){return this.each(function(){function i(a){var q=b(h.grid.bDiv)[0].clientHeight,t=b(h.grid.bDiv)[0].scrollTop,
+x=h.rows[a].offsetTop;a=h.rows[a].clientHeight;if(x+a>=q+t)b(h.grid.bDiv)[0].scrollTop=x-(q+t)+a+t;else if(x<q+t)if(x<t)b(h.grid.bDiv)[0].scrollTop=x}var h=this,g,j,m;if(f!==undefined){k=k===false?false:true;if(j=h.rows.namedItem(f+"")){if(h.p.scrollrows===true){g=h.rows.namedItem(f).rowIndex;g>=0&&i(g)}if(h.p.multiselect){h.p.selrow=j.id;m=b.inArray(h.p.selrow,h.p.selarrrow);if(m===-1){j.className!=="ui-subgrid"&&b(j).addClass("ui-state-highlight").attr("aria-selected","true");g=true;b("#jqg_"+b.jgrid.jqID(h.p.selrow),
+h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.push(h.p.selrow);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g)}else{j.className!=="ui-subgrid"&&b(j).removeClass("ui-state-highlight").attr("aria-selected","false");g=false;b("#jqg_"+b.jgrid.jqID(h.p.selrow),h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.splice(m,1);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g);j=h.p.selarrrow[0];h.p.selrow=j===undefined?null:j}}else if(j.className!=="ui-subgrid"){h.p.selrow&&b(h.rows.namedItem(h.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected",
+"false");h.p.selrow=j.id;b(j).addClass("ui-state-highlight").attr("aria-selected","true");h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,true)}}}})},resetSelection:function(){return this.each(function(){var f=this,k;if(f.p.multiselect){b(f.p.selarrrow).each(function(i,h){k=f.rows.namedItem(h);b(k).removeClass("ui-state-highlight").attr("aria-selected","false");b("#jqg_"+b.jgrid.jqID(h),k).attr("checked",false)});b("#cb_"+b.jgrid.jqID(f.p.id),f.grid.hDiv).attr("checked",false);f.p.selarrrow=
+[]}else if(f.p.selrow){b("tr#"+b.jgrid.jqID(f.p.selrow),f.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");f.p.selrow=null}f.p.savedRow=[]})},getRowData:function(f){var k={},i,h=false,g,j=0;this.each(function(){var m=this,a,q;if(typeof f=="undefined"){h=true;i=[];g=m.rows.length}else{q=m.rows.namedItem(f);if(!q)return k;g=1}for(;j<g;){if(h)q=m.rows[j];b("td",q).each(function(t){a=m.p.colModel[t].name;if(a!=="cb"&&a!=="subgrid")if(m.p.treeGrid===true&&a==m.p.ExpandColumn)k[a]=
+b.jgrid.htmlDecode(b("span:first",this).html());else try{k[a]=b.unformat(this,{rowId:q.id,colModel:m.p.colModel[t]},t)}catch(x){k[a]=b.jgrid.htmlDecode(b(this).html())}});j++;if(h){i.push(k);k={}}}});return i?i:k},delRowData:function(f){var k=false,i,h,g;this.each(function(){var j=this;if(i=j.rows.namedItem(f)){g=i.rowIndex;b(i).remove();j.p.records--;j.p.reccount--;j.updatepager(true,false);k=true;if(j.p.multiselect){h=b.inArray(f,j.p.selarrrow);h!=-1&&j.p.selarrrow.splice(h,1)}if(f==j.p.selrow)j.p.selrow=
+null}else return false;g===0&&k&&j.updateColumns();if(j.p.altRows===true&&k){var m=j.p.altclass;b(j.rows).each(function(a){a%2==1?b(this).addClass(m):b(this).removeClass(m)})}});return k},setRowData:function(f,k,i){var h,g=false,j;this.each(function(){var m=this,a,q,t=typeof i;if(!m.grid)return false;q=m.rows.namedItem(f);if(!q)return false;k&&b(this.p.colModel).each(function(x){h=this.name;if(k[h]!==undefined){a=m.formatter(f,k[h],x,k,"edit");j=this.title?{title:b.jgrid.stripHtml(a)}:{};m.p.treeGrid===
+true&&h==m.p.ExpandColumn?b("td:eq("+x+") > span:first",q).html(a).attr(j):b("td:eq("+x+")",q).html(a).attr(j);g=true}});if(t==="string")b(q).addClass(i);else t==="object"&&b(q).css(i)});return g},addRowData:function(f,k,i,h){i||(i="last");var g=false,j,m,a,q,t,x,C,K,J="",F,Q,M,R;if(k){if(b.isArray(k)){F=true;i="last";Q=f}else{k=[k];F=false}this.each(function(){var u=this,la=k.length;t=u.p.rownumbers===true?1:0;a=u.p.multiselect===true?1:0;q=u.p.subGrid===true?1:0;if(!F)if(typeof f!="undefined")f+=
+"";else{f=u.p.records+1+"";if(u.p.keyIndex!==false){Q=u.p.colModel[u.p.keyIndex+a+q+t].name;if(typeof k[0][Q]!="undefined")f=k[0][Q]}}M=u.p.altclass;for(var ca=0,fa="",aa=b.isFunction(u.p.afterInsertRow)?true:false;ca<la;){R=k[ca];m="";if(F){try{f=R[Q]}catch(U){f=u.p.records+1}fa=u.p.altRows===true?(u.rows.length-1)%2===0?M:"":""}if(t){J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+J+">0</td>"}if(a){K='<input role="checkbox" type="checkbox" id="jqg_'+
+f+'" class="cbox"/>';J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_cb" '+J+">"+K+"</td>"}if(q)m+=b(u).jqGrid("addSubGridCell",a+t,1);for(C=a+q+t;C<this.p.colModel.length;C++){j=this.p.colModel[C].name;K=u.formatter(f,R[j],C,R,"add");J=u.formatCol(C,1,K);m+='<td role="gridcell" aria-describedby="'+u.p.id+"_"+j+'" '+J+">"+K+"</td>"}m='<tr id="'+f+'" role="row" class="ui-widget-content jqgrow ui-row-'+u.p.direction+" "+fa+'">'+m+"</tr>";if(u.p.subGrid===true){m=b(m)[0];b(u).jqGrid("addSubGrid",
+m,a+t)}if(u.rows.length===0)b("table:first",u.grid.bDiv).append(m);else switch(i){case "last":b(u.rows[u.rows.length-1]).after(m);break;case "first":b(u.rows[0]).before(m);break;case "after":if(x=u.rows.namedItem(h))b(u.rows[x.rowIndex+1]).hasClass("ui-subgrid")?b(u.rows[x.rowIndex+1]).after(m):b(x).after(m);break;case "before":if(x=u.rows.namedItem(h)){b(x).before(m);x=x.rowIndex}break}u.p.records++;u.p.reccount++;if(!u.grid.cols||!u.grid.cols.length)u.grid.cols=u.rows[0].cells;if(i==="first"||i===
+"before"&&x<=1||u.rows.length===1)u.updateColumns();aa&&u.p.afterInsertRow.call(u,f,R,R);ca++}if(u.p.altRows===true&&!F)if(i=="last")(u.rows.length-1)%2==1&&b(u.rows[u.rows.length-1]).addClass(M);else b(u.rows).each(function(ia){ia%2==1?b(this).addClass(M):b(this).removeClass(M)});u.updatepager(true,true);g=true})}return g},footerData:function(f,k,i){function h(q){for(var t in q)if(q.hasOwnProperty(t))return false;return true}var g,j=false,m={},a;if(typeof f=="undefined")f="get";if(typeof i!="boolean")i=
+true;f=f.toLowerCase();this.each(function(){var q=this,t;if(!q.grid||!q.p.footerrow)return false;if(f=="set")if(h(k))return false;j=true;b(this.p.colModel).each(function(x){g=this.name;if(f=="set"){if(k[g]!==undefined){t=i?q.formatter("",k[g],x,k,"edit"):k[g];a=this.title?{title:b.jgrid.stripHtml(t)}:{};b("tr.footrow td:eq("+x+")",q.grid.sDiv).html(t).attr(a);j=true}}else if(f=="get")m[g]=b("tr.footrow td:eq("+x+")",q.grid.sDiv).html()})});return f=="get"?m:j},ShowHideCol:function(f,k){return this.each(function(){var i=
+this,h=false;if(i.grid){if(typeof f==="string")f=[f];k=k!="none"?"":"none";var g=k==""?true:false;b(this.p.colModel).each(function(j){if(b.inArray(this.name,f)!==-1&&this.hidden===g){b("tr",i.grid.hDiv).each(function(){b("th:eq("+j+")",this).css("display",k)});b(i.rows).each(function(m){b("td:eq("+j+")",i.rows[m]).css("display",k)});i.p.footerrow&&b("td:eq("+j+")",i.grid.sDiv).css("display",k);if(k=="none")i.p.tblwidth-=this.width;else i.p.tblwidth+=this.width;this.hidden=!g;h=true}});if(h===true){b("table:first",
+i.grid.hDiv).width(i.p.tblwidth);b("table:first",i.grid.bDiv).width(i.p.tblwidth);i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){b("table:first",i.grid.sDiv).width(i.p.tblwidth);i.grid.sDiv.scrollLeft=i.grid.bDiv.scrollLeft}}}})},hideCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"none")})},showCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"")})},remapColumns:function(f,k,i){function h(m){var a;a=m.length?b.makeArray(m):b.extend({},
+m);b.each(f,function(q){m[q]=a[this]})}function g(m,a){b(">tr"+(a||""),m).each(function(){var q=this,t=b.makeArray(q.cells);b.each(f,function(){var x=t[this];x&&q.appendChild(x)})})}var j=this.get(0);h(j.p.colModel);h(j.p.colNames);h(j.grid.headers);g(b("thead:first",j.grid.hDiv),i&&":not(.ui-jqgrid-labels)");k&&g(b("tbody:first",j.grid.bDiv),".jqgrow");j.p.footerrow&&g(b("tbody:first",j.grid.sDiv));if(j.p.remapColumns)if(j.p.remapColumns.length)h(j.p.remapColumns);else j.p.remapColumns=b.makeArray(f);
+j.p.lastsort=b.inArray(j.p.lastsort,f);if(j.p.treeGrid)j.p.expColInd=b.inArray(j.p.expColInd,f)},setGridWidth:function(f,k){return this.each(function(){var i=this,h,g=0,j=i.p.cellLayout,m,a=0,q=false,t=i.p.scrollOffset,x,C=0,K=0,J=0,F;if(i.grid){if(typeof k!="boolean")k=i.p.shrinkToFit;if(!isNaN(f)){f=parseInt(f,10);i.grid.width=i.p.width=f;b("#gbox_"+i.p.id).css("width",f+"px");b("#gview_"+i.p.id).css("width",f+"px");b(i.grid.bDiv).css("width",f+"px");b(i.grid.hDiv).css("width",f+"px");i.p.pager&&
+b(i.p.pager).css("width",f+"px");i.p.toppager&&b(i.p.toppager).css("width",f+"px");if(i.p.toolbar[0]===true){b(i.grid.uDiv).css("width",f+"px");i.p.toolbar[1]=="both"&&b(i.grid.ubDiv).css("width",f+"px")}i.p.footerrow&&b(i.grid.sDiv).css("width",f+"px");if(k===false&&i.p.forceFit===true)i.p.forceFit=false;if(k===true){if(b.browser.safari)j=0;b.each(i.p.colModel,function(){if(this.hidden===false){g+=parseInt(this.width,10);if(this.fixed){K+=this.width;C+=this.width+j}else a++;J++}});if(a!==0){i.p.tblwidth=
+g;x=f-j*a-C;if(!isNaN(i.p.height))if(b(i.grid.bDiv)[0].clientHeight<b(i.grid.bDiv)[0].scrollHeight){q=true;x-=t}g=0;var Q=i.grid.cols.length>0;b.each(i.p.colModel,function(M){if(this.hidden===false&&!this.fixed){h=Math.round(x*this.width/(i.p.tblwidth-K));if(!(h<0)){this.width=h;g+=h;i.grid.headers[M].width=h;i.grid.headers[M].el.style.width=h+"px";if(i.p.footerrow)i.grid.footers[M].style.width=h+"px";if(Q)i.grid.cols[M].style.width=h+"px";m=M}}});F=0;if(q){if(f-C-(g+j*a)!==t)F=f-C-(g+j*a)-t}else if(Math.abs(f-
+C-(g+j*a))!==1)F=f-C-(g+j*a);i.p.colModel[m].width+=F;i.p.tblwidth=g+F+K+j*J;if(i.p.tblwidth>f){q=i.p.tblwidth-parseInt(f,10);i.p.tblwidth=f;h=i.p.colModel[m].width-=q}else h=i.p.colModel[m].width;i.grid.headers[m].width=h;i.grid.headers[m].el.style.width=h+"px";if(Q)i.grid.cols[m].style.width=h+"px";b("table:first",i.grid.bDiv).css("width",i.p.tblwidth+"px");b("table:first",i.grid.hDiv).css("width",i.p.tblwidth+"px");i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){i.grid.footers[m].style.width=
+h+"px";b("table:first",i.grid.sDiv).css("width",i.p.tblwidth+"px")}}}}}})},setGridHeight:function(f){return this.each(function(){var k=this;if(k.grid){b(k.grid.bDiv).css({height:f+(isNaN(f)?"":"px")});k.p.height=f;k.p.scroll&&k.grid.populateVisible()}})},setCaption:function(f){return this.each(function(){this.p.caption=f;b("span.ui-jqgrid-title",this.grid.cDiv).html(f);b(this.grid.cDiv).show()})},setLabel:function(f,k,i,h){return this.each(function(){var g=this,j=-1;if(g.grid){if(isNaN(f))b(g.p.colModel).each(function(q){if(this.name==
+f){j=q;return false}});else j=parseInt(f,10);if(j>=0){var m=b("tr.ui-jqgrid-labels th:eq("+j+")",g.grid.hDiv);if(k){var a=b(".s-ico",m);b("[id^=jqgh_]",m).empty().html(k).append(a);g.p.colNames[j]=k}if(i)typeof i==="string"?b(m).addClass(i):b(m).css(i);typeof h==="object"&&b(m).attr(h)}}})},setCell:function(f,k,i,h,g,j){return this.each(function(){var m=this,a=-1,q,t;if(m.grid){if(isNaN(k))b(m.p.colModel).each(function(C){if(this.name==k){a=C;return false}});else a=parseInt(k,10);if(a>=0)if(q=m.rows.namedItem(f)){var x=
+b("td:eq("+a+")",q);if(i!==""||j===true){q=m.formatter(f,i,a,q,"edit");t=m.p.colModel[a].title?{title:b.jgrid.stripHtml(q)}:{};m.p.treeGrid&&b(".tree-wrap",b(x)).length>0?b("span",b(x)).html(q).attr(t):b(x).html(q).attr(t)}if(typeof h==="string")b(x).addClass(h);else h&&b(x).css(h);typeof g==="object"&&b(x).attr(g)}}})},getCell:function(f,k){var i=false;this.each(function(){var h=this,g=-1;if(h.grid){if(isNaN(k))b(h.p.colModel).each(function(a){if(this.name===k){g=a;return false}});else g=parseInt(k,
+10);if(g>=0){var j=h.rows.namedItem(f);if(j)try{i=b.unformat(b("td:eq("+g+")",j),{rowId:j.id,colModel:h.p.colModel[g]},g)}catch(m){i=b.jgrid.htmlDecode(b("td:eq("+g+")",j).html())}}}});return i},getCol:function(f,k,i){var h=[],g,j=0;k=typeof k!="boolean"?false:k;if(typeof i=="undefined")i=false;this.each(function(){var m=this,a=-1;if(m.grid){if(isNaN(f))b(m.p.colModel).each(function(C){if(this.name===f){a=C;return false}});else a=parseInt(f,10);if(a>=0){var q=m.rows.length,t=0;if(q&&q>0){for(;t<q;){try{g=
+b.unformat(b(m.rows[t].cells[a]),{rowId:m.rows[t].id,colModel:m.p.colModel[a]},a)}catch(x){g=b.jgrid.htmlDecode(m.rows[t].cells[a].innerHTML)}if(i)j+=parseFloat(g);else if(k)h.push({id:m.rows[t].id,value:g});else h[t]=g;t++}if(i)switch(i.toLowerCase()){case "sum":h=j;break;case "avg":h=j/q;break;case "count":h=q;break}}}}});return h},clearGridData:function(f){return this.each(function(){var k=this;if(k.grid){if(typeof f!="boolean")f=false;b("tbody:first tr",k.grid.bDiv).remove();k.p.footerrow&&f&&
+b(".ui-jqgrid-ftable td",k.grid.sDiv).html("&#160;");k.p.selrow=null;k.p.selarrrow=[];k.p.savedRow=[];k.p.records=0;k.p.page="0";k.p.lastpage="0";k.p.reccount=0;k.updatepager(true,false)}})},getInd:function(f,k){var i=false,h;this.each(function(){if(h=this.rows.namedItem(f))i=k===true?h:h.rowIndex});return i}})})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js	(revision 178)
@@ -0,0 +1 @@
+(function(a){a.jgrid={defaults:{recordtext:"Mostrando {0} - {1} de {2}",emptyrecords:"Sin registros que mostrar",loadtext:"Cargando...",pgtext:"Página {0} de {1}"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpiar",odata:["igual ","no igual a","menor que","menor o igual que","mayor que","mayor o igual a","empiece por","no empiece por","está en","no está en","termina por","no termina por","contiene","no contiene"],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"cualquier"}],matchText:" match",rulesText:" reglas"},edit:{addCaption:"Agregar registro",editCaption:"Modificar registro",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Cerrar",saveData:"Se han modificado los datos, ¿guardar cambios?",bYes:"Si",bNo:"No",bExit:"Cancelar",msg:{required:"Campo obligatorio",number:"Introduzca un número",minValue:"El valor debe ser mayor o igual a ",maxValue:"El valor debe ser menor o igual a ",email:"no es una dirección de correo válida",integer:"Introduzca un valor entero",date:"Introduza una fecha correcta ",url:"no es una URL válida. Prefijo requerido ('http://' or 'https://')",nodefined:" no está definido.",novalue:" valor de retorno es requerido.",customarray:"La función personalizada debe devolver un array.",customfcheck:"La función personalizada debe estar presente en el caso de validación personalizada."}},view:{caption:"Consultar registro",bClose:"Cerrar"},del:{caption:"Eliminar",msg:"¿Desea eliminar los registros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nueva fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione una fila",viewtext:"",viewtitle:"Ver fila seleccionada"},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No se ha especificado una URL",norecords:"No hay datos para procesar",model:"Las columnas de nombres son diferentes de las columnas de modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"],monthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml	(revision 178)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<bindings
+    xmlns="http://www.mozilla.org/xbl"
+    xmlns:xbl="http://www.mozilla.org/xbl"
+    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+    <binding id="ellipsis">
+        <content>
+            <xul:window><!-- xul:window tag required for FF2 -->
+                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
+            </xul:window>
+        </content>
+    </binding>
+</bindings>

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css	(revision 178)
@@ -0,0 +1,30 @@
+/* Multiselect
+----------------------------------*/
+
+.ui-multiselect { border: solid 1px; font-size: 0.8em; }
+.ui-multiselect ul { -moz-user-select: none; }
+.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }
+.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}
+.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }
+
+.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }
+.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }
+.ui-multiselect ul.selected li { }
+
+.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }
+.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }
+.ui-multiselect ul.available li { padding-left: 10px; }
+ 
+.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}
+.ui-multiselect .ui-state-hover { border: none; }
+.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}
+ 
+.ui-multiselect .add-all { float: right; padding: 7px;}
+.ui-multiselect .remove-all { float: right; padding: 7px;}
+.ui-multiselect .search { float: left; padding: 4px;}
+.ui-multiselect .count { float: left; padding: 7px;}
+
+.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }
+.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }
+ 
+.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css	(revision 178)
@@ -0,0 +1,7 @@
+.ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}
+.ui-searchFilter table {position:relative; margin:0em; width:auto}
+.ui-searchFilter table td {margin: 0em; padding: 1px;}
+.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}
+.ui-searchFilter .ui-state-default { cursor: pointer; }
+.ui-searchFilter .divider { height: 1px; }
+.ui-searchFilter .divider div { background-color: black; height: 1px; }
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css	(revision 178)
@@ -0,0 +1,129 @@
+/*Grid*/
+.ui-jqgrid {position: relative; font-size:11px;}
+.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em;}
+/* caption*/
+.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0px none;border-right: 0px none; border-top: 0px none;}
+.ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; }
+.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
+.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }
+/* header*/
+.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0em;padding: 0em; overflow-x: hidden; overflow-y: auto; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
+.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}
+.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0em;}
+.ui-jqgrid .ui-jqgrid-htable th {height:22px;padding: 0 2px 0 2px;}
+.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative; height:17px;}
+.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0px none;border-bottom : 0px none;}
+.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0px none;}
+.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0px none;}
+.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}
+.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}
+.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}
+.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}
+.ui-jqgrid .ui-icon-desc {margin-top:3px;height:12px;}
+.ui-jqgrid .ui-i-asc {margin-top:0px;height:16px;}
+.ui-jqgrid .ui-i-desc {margin-top:0px;margin-left:13px;height:16px;}
+.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;}
+.ui-jqgrid tr.ui-search-toolbar th { border-top-width: 1px !important; border-top-color: inherit !important; border-top-style: ridge !important }
+tr.ui-search-toolbar input {margin: 1px 0px 0px 0px}
+tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}
+/* body */ 
+.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0em; padding:0; overflow: auto; text-align:left;}
+.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0em;}
+.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
+.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
+.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
+.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0px; border: 0px none;}
+.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none;	border:0 none;}
+/* footer */
+.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0em;padding: 0em; overflow: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
+.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0em;}
+.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 21px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;}
+.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
+.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
+/* Pager*/
+.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;}
+.ui-jqgrid .ui-pager-control {position: relative;}
+.ui-jqgrid .ui-pg-table {position: relative; padding-bottom:2px; width:auto; margin: 0em;}
+.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:1px;}
+.ui-jqgrid .ui-pg-button  { height:19px !important;}
+.ui-jqgrid .ui-pg-button span { display: block; margin: 1px; float:left;}
+.ui-jqgrid .ui-pg-button:hover { padding: 0px; }
+.ui-jqgrid .ui-state-disabled:hover {padding:1px;}
+.ui-jqgrid .ui-pg-input { height:13px;font-size:.8em; margin: 0em;}
+.ui-jqgrid .ui-pg-selbox {font-size:.8em; line-height:18px; display:block; height:18px; margin: 0em;}
+.ui-jqgrid .ui-separator {height: 18px; border-left: 1px solid #ccc ; border-right: 1px solid #ccc ; margin: 1px; float: right;}
+.ui-jqgrid .ui-paging-info {font-weight: normal;height:19px; margin-top:3px;margin-right:4px;}
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-button { cursor:pointer; }
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon {float:left;margin:0 2px;}
+.ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { margin: 0em;}
+.ui-jqgrid td textarea {width:auto;height:auto;}
+.ui-jqgrid .ui-jqgrid-toppager {border-left: 0px none !important;border-right: 0px none !important; border-top: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px !important;white-space: nowrap;overflow: hidden;}
+/*subgrid*/
+.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}
+.ui-jqgrid .ui-subgrid {margin:0em;padding:0em; width:100%;}
+.ui-jqgrid .ui-subgrid table {table-layout: fixed;}
+.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
+.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0px none !important;}
+.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0px 0px 1px 0px;}
+.ui-jqgrid .ui-th-subgrid {height:20px;}
+/* loading */
+.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important;}
+.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}
+* html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+/* end loading div */
+/* toolbar */
+.ui-jqgrid .ui-userdata {border-left: 0px none;	border-right: 0px none;	height : 21px;overflow: hidden;	}
+/*Modal Window */
+.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}
+.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative;  }
+.ui-jqdialog .ui-jqdialog-title { margin: .1em 0 .2em; } 
+.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+
+.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }
+.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }
+.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}
+.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}
+/* end Modal window*/
+/* Form edit */
+.ui-jqdialog-content .FormGrid {margin: 0px;}
+.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0em;}
+.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0em;}
+.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0em;}
+.EditTable td textarea { width:auto; height:auto;}
+.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0px none;border-left: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
+.ui-jqdialog-content td.navButton {text-align: center; border-left: 0px none;border-top: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
+
+.ui-jqdialog-content .CaptionTD {text-align: left; vertical-align: top;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; padding: 1px;white-space: nowrap;}
+.ui-jqdialog-content .DataTD {padding: 1px;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; vertical-align: top;}
+.ui-jqdialog-content .form-view-data {white-space:pre}
+.fm-button { display: inline-block; margin:0 4px 0 0; padding: .4em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
+.fm-button-icon-left { padding-left: 1.9em; }
+.fm-button-icon-right { padding-right: 1.9em; }
+.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }
+.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}
+#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }
+/* End Eorm edit */
+/*.ui-jqgrid .edit-cell {}*/
+.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0px none;}
+/* Tree Grid */
+.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}
+.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}
+.ui-jqgrid .tree-plus {position: absolute;	height: 18px; width: 18px;	overflow: hidden;}
+.ui-jqgrid .tree-leaf {position: absolute;	height: 18px; width: 18px;overflow: hidden;}
+.ui-jqgrid .treeclick {cursor: pointer;}
+/* moda dialog */
+.jqmOverlay { background-color: #000; }
+* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}
+/* RTL Support */
+.ui-jqgrid .ui-jqgrid-title-rtl {float:right;margin: .1em 0 .2em; }
+.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right; padding-left: 20px;}
+.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0px;}
+.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0px -1px -3px;}
+.ui-jqgrid .ui-sort-rtl {left:0px;}
+.ui-jqgrid .tree-wrap-ltr {float: left;}
+.ui-jqgrid .tree-wrap-rtl {float: right;}
+.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis; -moz-binding:url('ellipsis-xbl.xml#ellipsis');}
+

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js	(revision 178)
@@ -0,0 +1,68 @@
+/*
+ * jqDnR - Minimalistic Drag'n'Resize for jQuery.
+ *
+ * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
+ * Licensed under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ * 
+ * $Version: 2007.08.19 +r2
+ */
+
+(function($){
+$.fn.jqDrag=function(h){return i(this,h,'d');};
+$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
+$.jqDnR={
+	dnr:{},
+	e:0,
+	drag:function(v){
+ 		if(M.k == 'd')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});
+ 		else {
+			E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
+			if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
+		}
+  		return false;
+  	},
+	stop:function(){
+		//E.css('opacity',M.o);
+		$(document).unbind('mousemove',J.drag).unbind('mouseup',J.stop);
+	}
+};
+var J=$.jqDnR,M=J.dnr,E=J.e,E1,
+i=function(e,h,k,aR){
+	return e.each(function(){
+		h=(h)?$(h,e):e;
+ 		h.bind('mousedown',{e:e,k:k},function(v){
+ 			var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
+ 			// attempt utilization of dimensions plugin to fix IE issues
+ 			if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
+ 			M={
+ 				X:p.left||f('left')||0,
+ 				Y:p.top||f('top')||0,
+ 				W:f('width')||E[0].scrollWidth||0,
+ 				H:f('height')||E[0].scrollHeight||0,
+ 				pX:v.pageX,
+ 				pY:v.pageY,
+ 				k:d.k
+ 				//o:E.css('opacity')
+ 			};
+			// also resize
+			if(E1 && d.k != 'd'){
+ 				M1={
+					X:p.left||f1('left')||0,
+					Y:p.top||f1('top')||0,
+					W:E1[0].offsetWidth||f1('width')||0,
+					H:E1[0].offsetHeight||f1('height')||0,
+					pX:v.pageX,
+					pY:v.pageY,
+					k:d.k
+				};
+			} else {M1 = false;}			
+ 			//E.css({opacity:0.8});
+ 			$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
+ 			return false;
+ 		});
+	});
+},
+f=function(k){return parseInt(E.css(k))||false;};
+f1=function(k){	return parseInt(E1.css(k))||false;};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js	(revision 178)
@@ -0,0 +1,106 @@
+/*
+ Transform a table to a jqGrid.
+ Peter Romianowski <peter.romianowski@optivo.de> 
+ If the first column of the table contains checkboxes or
+ radiobuttons then the jqGrid is made selectable.
+*/
+// Addition - selector can be a class or id
+function tableToGrid(selector, options) {
+jQuery(selector).each(function() {
+	if(this.grid) {return;} //Adedd from Tony Tomov
+	// This is a small "hack" to make the width of the jqGrid 100%
+	jQuery(this).width("99%");
+	var w = jQuery(this).width();
+
+	// Text whether we have single or multi select
+	var inputCheckbox = jQuery('input[type=checkbox]:first', jQuery(this));
+	var inputRadio = jQuery('input[type=radio]:first', jQuery(this));
+	var selectMultiple = inputCheckbox.length > 0;
+	var selectSingle = !selectMultiple && inputRadio.length > 0;
+	var selectable = selectMultiple || selectSingle;
+	var inputName = inputCheckbox.attr("name") || inputRadio.attr("name");
+
+	// Build up the columnModel and the data
+	var colModel = [];
+	var colNames = [];
+	jQuery('th', jQuery(this)).each(function() {
+		if (colModel.length === 0 && selectable) {
+			colModel.push({
+				name: '__selection__',
+				index: '__selection__',
+				width: 0,
+				hidden: true
+			});
+			colNames.push('__selection__');
+		} else {
+			colModel.push({
+				name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
+				index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
+				width: jQuery(this).width() || 150
+			});
+			colNames.push(jQuery(this).html());
+		}
+	});
+	var data = [];
+	var rowIds = [];
+	var rowChecked = [];
+	jQuery('tbody > tr', jQuery(this)).each(function() {
+		var row = {};
+		var rowPos = 0;
+		jQuery('td', jQuery(this)).each(function() {
+			if (rowPos === 0 && selectable) {
+				var input = jQuery('input', jQuery(this));
+				var rowId = input.attr("value");
+				rowIds.push(rowId || data.length);
+				if (input.attr("checked")) {
+					rowChecked.push(rowId);
+				}
+				row[colModel[rowPos].name] = input.attr("value");
+			} else {
+				row[colModel[rowPos].name] = jQuery(this).html();
+			}
+			rowPos++;
+		});
+		if(rowPos >0) { data.push(row); }
+	});
+
+	// Clear the original HTML table
+	jQuery(this).empty();
+
+	// Mark it as jqGrid
+	jQuery(this).addClass("scroll");
+
+	jQuery(this).jqGrid($.extend({
+		datatype: "local",
+		width: w,
+		colNames: colNames,
+		colModel: colModel,
+		multiselect: selectMultiple
+		//inputName: inputName,
+		//inputValueCol: imputName != null ? "__selection__" : null
+	}, options || {}));
+
+	// Add data
+	var a;
+	for (a = 0; a < data.length; a++) {
+		var id = null;
+		if (rowIds.length > 0) {
+			id = rowIds[a];
+			if (id && id.replace) {
+				// We have to do this since the value of a checkbox
+				// or radio button can be anything 
+				id = encodeURIComponent(id).replace(/[.\-%]/g, "_");
+			}
+		}
+		if (id === null) {
+			id = a + 1;
+		}
+		jQuery(this).jqGrid("addRowData",id, data[a]);
+	}
+
+	// Set the selection
+	for (a = 0; a < rowChecked.length; a++) {
+		jQuery(this).jqGrid("setSelection",rowChecked[a]);
+	}
+});
+};

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js	(revision 178)
@@ -0,0 +1,526 @@
+/*
+**
+ * formatter for values but most of the values if for jqGrid
+ * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
+ * we are trying to keep it as light as possible
+ * Joshua Burnett josh@9ci.com	
+ * http://www.greenbill.com
+ *
+ * Changes from Tony Tomov tony@trirand.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ * 
+**/
+
+;(function($) {
+	$.fmatter = {};
+	//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
+	//example {id:1234,}
+	$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
+		//debug(this);
+		//debug(cellval);
+		// build main options before element iteration
+		opts = $.extend({}, $.jgrid.formatter, opts);
+		return fireFormatter(formatType,cellval, opts, rwd, act); 
+	};
+	$.fmatter.util = {
+		// Taken from YAHOO utils
+		NumberFormat : function(nData,opts) {
+			if(!isNumber(nData)) {
+				nData *= 1;
+			}
+			if(isNumber(nData)) {
+		        var bNegative = (nData < 0);
+				var sOutput = nData + "";
+				var sDecimalSeparator = (opts.decimalSeparator) ? opts.decimalSeparator : ".";
+				var nDotIndex;
+				if(isNumber(opts.decimalPlaces)) {
+					// Round to the correct decimal place
+					var nDecimalPlaces = opts.decimalPlaces;
+					var nDecimal = Math.pow(10, nDecimalPlaces);
+					sOutput = Math.round(nData*nDecimal)/nDecimal + "";
+					nDotIndex = sOutput.lastIndexOf(".");
+					if(nDecimalPlaces > 0) {
+                    // Add the decimal separator
+						if(nDotIndex < 0) {
+							sOutput += sDecimalSeparator;
+							nDotIndex = sOutput.length-1;
+						}
+						// Replace the "."
+						else if(sDecimalSeparator !== "."){
+							sOutput = sOutput.replace(".",sDecimalSeparator);
+						}
+                    // Add missing zeros
+						while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
+						    sOutput += "0";
+						}
+	                }
+	            }
+	            if(opts.thousandsSeparator) {
+	                var sThousandsSeparator = opts.thousandsSeparator;
+	                nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
+	                nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
+	                var sNewOutput = sOutput.substring(nDotIndex);
+	                var nCount = -1;
+	                for (var i=nDotIndex; i>0; i--) {
+	                    nCount++;
+	                    if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
+	                        sNewOutput = sThousandsSeparator + sNewOutput;
+	                    }
+	                    sNewOutput = sOutput.charAt(i-1) + sNewOutput;
+	                }
+	                sOutput = sNewOutput;
+	            }
+	            // Prepend prefix
+	            sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
+	            // Append suffix
+	            sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
+	            return sOutput;
+				
+			} else {
+				return nData;
+			}
+		},
+		// Tony Tomov
+		// PHP implementation. Sorry not all options are supported.
+		// Feel free to add them if you want
+		DateFormat : function (format, date, newformat, opts)  {
+			var	token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,
+			timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
+			timezoneClip = /[^-+\dA-Z]/g,
+			pad = function (value, length) {
+				value = String(value);
+				length = parseInt(length,10) || 2;
+				while (value.length < length)  { value = '0' + value; }
+				return value;
+			},
+		    ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},
+		    timestamp=0, dM, k,hl,
+		    dateFormat=["i18n"];
+			// Internationalization strings
+		    dateFormat["i18n"] = {
+				dayNames: opts.dayNames,
+				monthNames: opts.monthNames
+			};
+			if( format in opts.masks ) { format = opts.masks[format]; }
+			if(date.constructor === Date) {
+				timestamp = date;
+			} else {
+				date = date.split(/[\\\/:_;.\t\T\s-]/);
+				format = format.split(/[\\\/:_;.\t\T\s-]/);
+				// parsing for month names
+				for(k=0,hl=format.length;k<hl;k++){
+					if(format[k] == 'M') {
+						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
+						if(dM !== -1 && dM < 12){date[k] = dM+1;}
+					}
+					if(format[k] == 'F') {
+						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
+						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
+					}
+				    ts[format[k].toLowerCase()] = parseInt(date[k],10);
+				}
+				ts.m = parseInt(ts.m,10)-1;
+				var ty = ts.y;
+				if (ty >= 70 && ty <= 99) { ts.y = 1900+ts.y; }
+				else if (ty >=0 && ty <=69) { ts.y= 2000+ts.y; }
+				timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
+			}
+			
+			if( newformat in opts.masks )  {
+				newformat = opts.masks[newformat];
+			} else if ( !newformat ) {
+				newformat = 'Y-m-d';
+			}
+		    var 
+		        G = timestamp.getHours(),
+		        i = timestamp.getMinutes(),
+		        j = timestamp.getDate(),
+				n = timestamp.getMonth() + 1,
+				o = timestamp.getTimezoneOffset(),
+				s = timestamp.getSeconds(),
+				u = timestamp.getMilliseconds(),
+				w = timestamp.getDay(),
+				Y = timestamp.getFullYear(),
+				N = (w + 6) % 7 + 1,
+				z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,
+				flags = {
+					// Day
+					d: pad(j),
+					D: dateFormat.i18n.dayNames[w],
+					j: j,
+					l: dateFormat.i18n.dayNames[w + 7],
+					N: N,
+					S: opts.S(j),
+					//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',
+					w: w,
+					z: z,
+					// Week
+					W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),
+					// Month
+					F: dateFormat.i18n.monthNames[n - 1 + 12],
+					m: pad(n),
+					M: dateFormat.i18n.monthNames[n - 1],
+					n: n,
+					t: '?',
+					// Year
+					L: '?',
+					o: '?',
+					Y: Y,
+					y: String(Y).substring(2),
+					// Time
+					a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],
+					A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],
+					B: '?',
+					g: G % 12 || 12,
+					G: G,
+					h: pad(G % 12 || 12),
+					H: pad(G),
+					i: pad(i),
+					s: pad(s),
+					u: u,
+					// Timezone
+					e: '?',
+					I: '?',
+					O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
+					P: '?',
+					T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""),
+					Z: '?',
+					// Full Date/Time
+					c: '?',
+					r: '?',
+					U: Math.floor(timestamp / 1000)
+				};	
+			return newformat.replace(token, function ($0) {
+				return $0 in flags ? flags[$0] : $0.substring(1);
+			});			
+		}
+	};
+	$.fn.fmatter.defaultFormat = function(cellval, opts) {
+		return (isValue(cellval) && cellval!=="" ) ?  cellval : opts.defaultValue ? opts.defaultValue : "&#160;";
+	};
+	$.fn.fmatter.email = function(cellval, opts) {
+		if(!isEmpty(cellval)) {
+			return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
+        }else {
+			return $.fn.fmatter.defaultFormat(cellval,opts );
+        }
+	};
+	$.fn.fmatter.checkbox =function(cval, opts) {
+		var op = $.extend({},opts.checkbox), ds;
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(op.disabled===true) {ds = "disabled";} else {ds="";}
+		if(isEmpty(cval) || isUndefined(cval) ) { cval = $.fn.fmatter.defaultFormat(cval,op); }
+		cval=cval+""; cval=cval.toLowerCase();
+		var bchk = cval.search(/(false|0|no|off)/i)<0 ? " checked='checked' " : "";
+        return "<input type=\"checkbox\" " + bchk  + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
+    };
+	$.fn.fmatter.link = function(cellval, opts) {
+		var op = {target:opts.target };
+		var target = "";
+		if(!isUndefined(opts.colModel.formatoptions)) {
+            op = $.extend({},op,opts.colModel.formatoptions);
+        }
+		if(op.target) {target = 'target=' + op.target;}
+        if(!isEmpty(cellval)) {
+			return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
+        }else {
+            return $.fn.fmatter.defaultFormat(cellval,opts);
+        }
+    };
+	$.fn.fmatter.showlink = function(cellval, opts) {
+		var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName },
+		target = "", idUrl;
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(op.target) {target = 'target=' + op.target;}
+		idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
+        if(isString(cellval)) {	//add this one even if its blank string
+			return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
+        }else {
+			return $.fn.fmatter.defaultFormat(cellval,opts);
+	    }
+    };
+	$.fn.fmatter.integer = function(cellval, opts) {
+		var op = $.extend({},opts.integer);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(isEmpty(cellval)) {
+			return op.defaultValue;
+		}
+		return $.fmatter.util.NumberFormat(cellval,op);
+	};
+	$.fn.fmatter.number = function (cellval, opts) {
+		var op = $.extend({},opts.number);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(isEmpty(cellval)) {
+			return op.defaultValue;
+		}
+		return $.fmatter.util.NumberFormat(cellval,op);
+	};
+	$.fn.fmatter.currency = function (cellval, opts) {
+		var op = $.extend({},opts.currency);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(isEmpty(cellval)) {
+			return op.defaultValue;
+		}
+		return $.fmatter.util.NumberFormat(cellval,op);
+	};
+	$.fn.fmatter.date = function (cellval, opts, rwd, act) {
+		var op = $.extend({},opts.date);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(!op.reformatAfterEdit && act=='edit'){
+			return $.fn.fmatter.defaultFormat(cellval, opts);
+		} else if(!isEmpty(cellval)) {
+			return  $.fmatter.util.DateFormat(op.srcformat,cellval,op.newformat,op);
+		} else {
+			return $.fn.fmatter.defaultFormat(cellval, opts);
+		}
+	};
+	$.fn.fmatter.select = function (cellval,opts, rwd, act) {
+		// jqGrid specific
+		cellval = cellval + "";
+		var oSelect = false, ret=[];
+		if(!isUndefined(opts.colModel.editoptions)){
+			oSelect= opts.colModel.editoptions.value;
+		}
+		if (oSelect) {
+			var	msl =  opts.colModel.editoptions.multiple === true ? true : false,
+			scell = [], sv;
+			if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
+			if (isString(oSelect)) {
+				// mybe here we can use some caching with care ????
+				var so = oSelect.split(";"), j=0;
+				for(var i=0; i<so.length;i++){
+					sv = so[i].split(":");
+					if(sv.length > 2 ) {
+						sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n; } }).join(":");
+					}
+					if(msl) {
+						if(jQuery.inArray(sv[0],scell)>-1) {
+							ret[j] = sv[1];
+							j++;
+						}
+					} else if($.trim(sv[0])==$.trim(cellval)) {
+						ret[0] = sv[1];
+						break;
+					}
+				}
+			} else if(isObject(oSelect)) {
+				// this is quicker
+				if(msl) {
+					ret = jQuery.map(scell, function(n, i){
+						return oSelect[n];
+					});
+				} else {
+					ret[0] = oSelect[cellval] || "";
+				}
+			}
+		}
+		cellval = ret.join(", ");
+		return  cellval == "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
+	};
+	$.fn.fmatter.rowactions = function(rid,gid,act,keys) {
+		switch(act)
+		{
+			case 'edit':
+				var restorerow = function()	{
+					$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
+					$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
+				};
+				$('#'+gid).jqGrid('editRow',rid,keys,null,null,null,{oper:'edit'},restorerow,null,restorerow);
+				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).hide();
+				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).show();
+			break;
+			case 'save':
+				$('#'+gid).jqGrid('saveRow',rid,null,null );
+				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
+				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
+				break;
+			case 'cancel' :
+				$('#'+gid).jqGrid('restoreRow',rid);
+				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
+				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
+				break;
+		}
+	};
+	$.fn.fmatter.actions = function(cellval,opts, rwd) {
+		var op ={keys:false, editbutton:true, delbutton:true};
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend(op,opts.colModel.formatoptions);
+		}
+		var rowid = opts.rowId, str="",ocl;
+		if(typeof(rowid) =='undefined' || isEmpty(rowid)) { return ""; }
+		if(op.editbutton){
+			ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','edit',"+op.keys+");";
+			str =str+ "<div style='margin-left:8px;'><div title='"+$.jgrid.nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='ui-icon ui-icon-pencil'></span></div>";
+		}
+		if(op.delbutton) {
+			ocl = "onclick=jQuery('#"+opts.gid+"').jqGrid('delGridRow','"+rowid+"');";
+			str = str+"<div title='"+$.jgrid.nav.deltitle+"' style='float:left;margin-left:5px;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='ui-icon ui-icon-trash'></span></div>";
+		}
+		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','save',false);";
+		str = str+"<div title='"+$.jgrid.edit.bSubmit+"' style='float:left;display:none' class='ui-pg-div ui-inline-save'><span class='ui-icon ui-icon-disk' "+ocl+"></span></div>";
+		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','cancel',false);";
+		str = str+"<div title='"+$.jgrid.edit.bCancel+"' style='float:left;display:none;margin-left:5px;' class='ui-pg-div ui-inline-cancel'><span class='ui-icon ui-icon-cancel' "+ocl+"></span></div></div>";
+		return str;
+	};
+	$.unformat = function (cellval,options,pos,cnt) {
+		// specific for jqGrid only
+		var ret, formatType = options.colModel.formatter,
+		op =options.colModel.formatoptions || {}, sep,
+		re = /([\.\*\_\'\(\)\{\}\+\?\\])/g;
+		unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
+		if(typeof unformatFunc !== 'undefined' && isFunction(unformatFunc) ) {
+			ret = unformatFunc($(cellval).text(), options, cellval);
+		} else if(typeof formatType !== 'undefined' && isString(formatType) ) {
+			var opts = $.jgrid.formatter || {}, stripTag;
+			switch(formatType) {
+				case 'integer' :
+					op = $.extend({},opts.integer,op);
+					sep = op.thousandsSeparator.replace(re,"\\$1");
+					stripTag = new RegExp(sep, "g");
+					ret = $(cellval).text().replace(stripTag,'');
+					break;
+				case 'number' :
+					op = $.extend({},opts.number,op);
+					sep = op.thousandsSeparator.replace(re,"\\$1");
+					stripTag = new RegExp(sep, "g");
+					ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
+					break;
+				case 'currency':
+					op = $.extend({},opts.currency,op);
+					sep = op.thousandsSeparator.replace(re,"\\$1");
+					stripTag = new RegExp(sep, "g");
+					ret = $(cellval).text().replace(stripTag,'').replace(op.decimalSeparator,'.').replace(op.prefix,'').replace(op.suffix,'');
+					break;
+				case 'checkbox':
+					var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
+					ret = $('input',cellval).attr("checked") ? cbv[0] : cbv[1];
+					break;
+				case 'select' :
+					ret = $.unformat.select(cellval,options,pos,cnt);
+					break;
+				case 'actions':
+					return "";
+				default:
+					ret= $(cellval).text();
+			}
+		}
+		return ret ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
+	};
+	$.unformat.select = function (cellval,options,pos,cnt) {
+		// Spacial case when we have local data and perform a sort
+		// cnt is set to true only in sortDataArray
+		var ret = [];
+		var cell = $(cellval).text();
+		if(cnt===true) { return cell; }
+		var op = $.extend({},options.colModel.editoptions);
+		if(op.value){
+			var oSelect = op.value,
+			msl =  op.multiple === true ? true : false,
+			scell = [], sv;
+			if(msl) { scell = cell.split(","); scell = $.map(scell,function(n){return $.trim(n);}); }
+			if (isString(oSelect)) {
+				var so = oSelect.split(";"), j=0;
+				for(var i=0; i<so.length;i++){
+					sv = so[i].split(":");
+					if(msl) {
+						if(jQuery.inArray(sv[1],scell)>-1) {
+							ret[j] = sv[0];
+							j++;
+						}
+					} else if($.trim(sv[1])==$.trim(cell)) {
+						ret[0] = sv[0];
+						break;
+					}
+				}
+			} else if(isObject(oSelect)) {
+				if(!msl) { scell[0] =  cell; }
+				ret = jQuery.map(scell, function(n){
+					var rv;
+					$.each(oSelect, function(i,val){
+						if (val == n) {
+							rv = i;
+							return false;
+						}
+					});
+					if( rv) { return rv; }
+				});
+			}
+			return ret.join(", ");
+		} else {
+			return cell || "";
+		}
+	};
+	function fireFormatter(formatType,cellval, opts, rwd, act) {
+		var v=cellval;
+
+        if ($.fn.fmatter[formatType]){
+            v = $.fn.fmatter[formatType](cellval, opts, rwd, act);
+        }
+
+        return v;
+	}
+	//private methods and data
+	function debug($obj) {
+		if (window.console && window.console.log) { window.console.log($obj); }
+	}
+	/**
+     * A convenience method for detecting a legitimate non-null value.
+     * Returns false for null/undefined/NaN, true for other values, 
+     * including 0/false/''
+	 *  --taken from the yui.lang
+     */
+    isValue= function(o) {
+		return (isObject(o) || isString(o) || isNumber(o) || isBoolean(o));
+    };
+	isBoolean= function(o) {
+        return typeof o === 'boolean';
+    };
+    isNull= function(o) {
+        return o === null;
+    };
+    isNumber= function(o) {
+        return typeof o === 'number' && isFinite(o);
+    };
+    isString= function(o) {
+        return typeof o === 'string';
+    };
+	/**
+	* check if its empty trim it and replace \&nbsp and \&#160 with '' and check if its empty ===""
+	* if its is not a string but has a value then it returns false, Returns true for null/undefined/NaN
+	essentailly this provdes a way to see if it has any value to format for things like links
+	*/
+	isEmpty= function(o) {
+		if(!isString(o) && isValue(o)) {
+			return false;
+		}else if (!isValue(o)){
+			return true;
+		}
+		o = $.trim(o).replace(/\&nbsp\;/ig,'').replace(/\&#160\;/ig,'');
+        return o==="";
+		
+    };
+    isUndefined= function(o) {
+        return typeof o === 'undefined';
+    };
+	isObject= function(o) {
+		return (o && (typeof o === 'object' || isFunction(o))) || false;
+    };
+	isFunction= function(o) {
+        return typeof o === 'function';
+    };
+
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid extension for manipulating columns properties
+ * Piotr Roznicki roznicki@o2.pl
+ * http://www.roznicki.prv.pl
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+$.jgrid.extend({
+	setColumns : function(p) {
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 200,
+			height: 'auto',
+			dataheight: 'auto',
+			modal: false,
+			drag: true,
+			beforeShowForm: null,
+			afterShowForm: null,
+			afterSubmitForm: null,
+			closeOnEscape : true,
+			ShrinkToFit : false,
+			jqModal : false,
+			saveicon: [true,"left","ui-icon-disk"],
+			closeicon: [true,"left","ui-icon-close"],
+			onClose : null,
+			colnameview : true,
+			closeAfterSubmit : true,
+			updateAfterCheck : false,
+			recreateForm : false
+		}, $.jgrid.col, p ||{});
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid ) { return; }
+			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;
+			var onAfterShow = typeof p.afterShowForm === 'function' ? true: false;
+			var onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;			
+			var gID = $t.p.id,
+			dtbl = "ColTbl_"+gID,
+			IDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};
+			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
+				$("#"+IDs.themodal).remove();
+			}
+			if ( $("#"+IDs.themodal).html() != null ) {
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			} else {
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var formdata = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
+				formdata += "<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>";
+				for(i=0;i<this.p.colNames.length;i++){
+					if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
+						formdata += "<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_" + this.p.colModel[i].name + "' class='cbox' value='T' " + 
+						((this.p.colModel[i].hidden===false)?"checked":"") + "/>" +  "<label for='col_" + this.p.colModel[i].name + "'>" + this.p.colNames[i] + ((p.colnameview) ? " (" + this.p.colModel[i].name + ")" : "" )+ "</label></td></tr>";
+					}
+				}
+				formdata += "</tbody></table></div>"
+				var bS  = !p.updateAfterCheck ? "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>" : "",
+				bC  ="<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
+				formdata += "<table border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
+				p.gbox = "#gbox_"+gID;
+				createModal(IDs,formdata,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				if(p.saveicon[0]==true) {
+					$("#dData","#"+dtbl+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
+				}
+				if(p.closeicon[0]==true) {
+					$("#eData","#"+dtbl+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
+				}
+				if(!p.updateAfterCheck) {
+					$("#dData","#"+dtbl+"_2").click(function(e){
+						for(i=0;i<$t.p.colModel.length;i++){
+							if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
+								var nm = $t.p.colModel[i].name.replace(".", "\\.");
+								if($("#col_" + nm,"#"+dtbl).attr("checked")) {
+									$($t).jqGrid("showCol",$t.p.colModel[i].name);
+									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",true); // Added from T. Tomov IE BUG
+								} else {
+									$($t).jqGrid("hideCol",$t.p.colModel[i].name);
+									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",""); // Added from T. Tomov IE BUG
+								}
+							}
+						}
+						if(p.ShrinkToFit===true) {
+							$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
+						}
+						if(p.closeAfterSubmit) hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
+						if (onAfterSubmit) { p.afterSubmitForm($("#"+dtbl)); }
+						return false;
+					});
+				} else {
+					$(":input","#"+dtbl).click(function(e){
+						var cn = this.id.substr(4);
+						if(cn){
+							if(this.checked) {
+								$($t).jqGrid("showCol",cn);
+							} else {
+								$($t).jqGrid("hideCol",cn);
+							}
+							if(p.ShrinkToFit===true) {
+								$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
+							}
+						}
+						return this;
+					});
+				}
+				$("#eData", "#"+dtbl+"_2").click(function(e){
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
+					return false;
+				});
+				$("#dData, #eData","#"+dtbl+"_2").hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);				
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			}
+		});
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js	(revision 178)
@@ -0,0 +1,260 @@
+;(function($){
+/**
+ * jqGrid extension for SubGrid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+$.jgrid.extend({
+setSubGrid : function () {
+	return this.each(function (){
+		var $t = this, cm;
+		$t.p.colNames.unshift("");
+		$t.p.colModel.unshift({name:'subgrid',width: $.browser.safari ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});
+		cm = $t.p.subGridModel;
+		if(cm[0]) {
+			cm[0].align = $.extend([],cm[0].align || []);
+			for(var i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}
+		}
+	});
+},
+addSubGridCell :function (pos,iRow) {
+	var prp='',gv,sid;
+	this.each(function(){
+		prp = this.formatCol(pos,iRow);
+		gv = this.p.gridview;
+		sid= this.p.id;
+	});
+	if( gv === false ){
+		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a></td>";
+	} else  {
+		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" " +prp +"></td>";
+	}
+},
+addSubGrid : function(t,pos) {
+	return this.each(function(){
+		var ts = this;
+		if (!ts.grid ) { return; }
+		var res,_id, pID,atd, nhc, subdata, bfsc;
+		$("td:eq("+pos+")",t).click( function(e) {
+			if($(this).hasClass("sgcollapsed")) {
+				pID = ts.p.id;
+				res = $(this).parent();
+				atd = pos >=1 ? "<td colspan='"+pos+"'>&#160;</td>":"";
+				_id = $(res).attr("id");
+				bfsc =true;
+				if($.isFunction(ts.p.subGridBeforeExpand)) {
+					bfsc = ts.p.subGridBeforeExpand(pID+"_"+_id,_id);
+				}
+				if(bfsc === false) {return false;}
+				nhc = 0;
+				$.each(ts.p.colModel,function(i,v){
+					if(this.hidden === true || this.name == 'rn' || this.name == 'cb') {nhc++;}
+				});
+				subdata = "<tr role='row' class='ui-subgrid'>"+atd+"<td class='ui-widget-content subgrid-cell'><span class='ui-icon ui-icon-carat-1-sw'/></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='ui-widget-content subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'>";
+				$(this).parent().after( subdata+ "</div></td></tr>" );
+				if( $.isFunction(ts.p.subGridRowExpanded)) {
+					ts.p.subGridRowExpanded(pID+"_"+ _id,_id);
+				} else {
+					populatesubgrid(res);
+				}
+				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-minus'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");
+			} else if($(this).hasClass("sgexpanded")) {
+				bfsc = true;
+				if( $.isFunction(ts.p.subGridRowColapsed)) {
+					res = $(this).parent();
+					_id = $(res).attr("id");
+					bfsc = ts.p.subGridRowColapsed(pID+"_"+_id,_id );
+				}
+				if(bfsc===false) {return false;}
+				$(this).parent().next().remove(".ui-subgrid");
+				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");
+			}
+			return false;
+		});
+		//-------------------------
+		var populatesubgrid = function( rd ) {
+			var res,sid,dp, i, j;
+			sid = $(rd).attr("id");
+			dp = {nd_: (new Date().getTime())};
+			dp[ts.p.prmNames.subgridid]=sid;
+			if(!ts.p.subGridModel[0]) { return false; }
+			if(ts.p.subGridModel[0].params) {
+				for(j=0; j < ts.p.subGridModel[0].params.length; j++) {
+					for(i=0; i<ts.p.colModel.length; i++) {
+						if(ts.p.colModel[i].name == ts.p.subGridModel[0].params[j]) {
+							dp[ts.p.colModel[i].name]= $("td:eq("+i+")",rd).text().replace(/\&#160\;/ig,'');
+						}
+					}
+				}
+			}
+			if(!ts.grid.hDiv.loading) {
+				ts.grid.hDiv.loading = true;
+				$("#load_"+ts.p.id).show();
+				if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }
+				if($.isFunction(ts.p.subgridtype)) {
+					ts.p.subgridtype(dp);
+				} else {
+					ts.p.subgridtype = ts.p.subgridtype.toLowerCase();
+				}
+				switch(ts.p.subgridtype) {
+					case "xml":
+					case "json":
+					$.ajax($.extend({
+						type:ts.p.mtype,
+						url: ts.p.subGridUrl,
+						dataType:ts.p.subgridtype,
+						data: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData(dp) : dp,
+						complete: function(sxml) {
+							if(ts.p.subgridtype == "xml") {
+								subGridXml(sxml.responseXML, sid);
+							} else {
+								subGridJson($.jgrid.parse(sxml.responseText),sid);
+							}
+							sxml=null;
+						}
+					}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));
+					break;
+				}
+			}
+			return false;
+		};
+		var subGridCell = function(trdiv,cell,pos){
+			var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell);
+			$(trdiv).append(tddiv);
+		};
+		var subGridXml = function(sjxml, sbid){
+			var tddiv, i, cur, sgmap,
+			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
+			trdiv = $("<tr></tr>");
+			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
+				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
+				$(tddiv).html(ts.p.subGridModel[0].name[i]);
+				$(tddiv).width( ts.p.subGridModel[0].width[i]);
+				$(trdiv).append(tddiv);
+			}
+			$(dummy).append(trdiv);
+			if (sjxml){
+				sgmap = ts.p.xmlReader.subgrid;
+				$(sgmap.root+" "+sgmap.row, sjxml).each( function(){
+					trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
+					if(sgmap.repeatitems === true) {
+						$(sgmap.cell,this).each( function(i) {
+							subGridCell(trdiv, $(this).text() || '&#160;',i);
+						});
+					} else {
+						var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
+						if (f) {
+							for (i=0;i<f.length;i++) {
+								subGridCell(trdiv, $(f[i],this).text() || '&#160;',i);
+							}
+						}
+					}
+					$(dummy).append(trdiv);
+				});
+			}
+			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
+			$("#"+pID+sbid).append(dummy);
+			ts.grid.hDiv.loading = false;
+			$("#load_"+ts.p.id).hide();
+			return false;
+		};
+		var subGridJson = function(sjxml, sbid){
+			var tddiv,result , i,cur, sgmap,j,
+			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
+			trdiv = $("<tr></tr>");
+			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
+				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
+				$(tddiv).html(ts.p.subGridModel[0].name[i]);
+				$(tddiv).width( ts.p.subGridModel[0].width[i]);
+				$(trdiv).append(tddiv);
+			}
+			$(dummy).append(trdiv);
+			if (sjxml){
+				sgmap = ts.p.jsonReader.subgrid;
+				result = sjxml[sgmap.root];
+				if ( typeof result !== 'undefined' ) {
+					for (i=0;i<result.length;i++) {
+						cur = result[i];
+						trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
+						if(sgmap.repeatitems === true) {
+							if(sgmap.cell) { cur=cur[sgmap.cell]; }
+							for (j=0;j<cur.length;j++) {
+								subGridCell(trdiv, cur[j] || '&#160;',j);
+							}
+						} else {
+							var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
+							if(f.length) {
+								for (j=0;j<f.length;j++) {
+									subGridCell(trdiv, cur[f[j]] || '&#160;',j);
+								}
+							}
+						}
+						$(dummy).append(trdiv);
+					}
+				}
+			}
+			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
+			$("#"+pID+sbid).append(dummy);
+			ts.grid.hDiv.loading = false;
+			$("#load_"+ts.p.id).hide();
+			return false;
+		};
+		ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};
+		ts.subGridJson = function(json,sid) {subGridJson(json,sid);};
+	});
+},
+expandSubGridRow : function(rowid) {
+	return this.each(function () {
+		var $t = this;
+		if(!$t.grid && !rowid) {return;}
+		if($t.p.subGrid===true) {
+			var rc = $(this).jqGrid("getInd",rowid,true);
+			if(rc) {
+				var sgc = $("td.sgcollapsed",rc)[0];
+				if(sgc) {
+					$(sgc).trigger("click");
+				}
+			}
+		}
+	});
+},
+collapseSubGridRow : function(rowid) {
+	return this.each(function () {
+		var $t = this;
+		if(!$t.grid && !rowid) {return;}
+		if($t.p.subGrid===true) {
+			var rc = $(this).jqGrid("getInd",rowid,true);
+			if(rc) {
+				var sgc = $("td.sgexpanded",rc)[0];
+				if(sgc) {
+					$(sgc).trigger("click");
+				}
+			}
+		}
+	});
+},
+toggleSubGridRow : function(rowid) {
+	return this.each(function () {
+		var $t = this;
+		if(!$t.grid && !rowid) {return;}
+		if($t.p.subGrid===true) {
+			var rc = $(this).jqGrid("getInd",rowid,true);
+			if(rc) {
+				var sgc = $("td.sgcollapsed",rc)[0];
+				if(sgc) {
+					$(sgc).trigger("click");
+				} else {
+					sgc = $("td.sgexpanded",rc)[0];
+					if(sgc) {
+						$(sgc).trigger("click");
+					}
+				}
+			}
+		}
+	});
+}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js	(revision 178)
@@ -0,0 +1,69 @@
+/*
+ * jqModal - Minimalist Modaling with jQuery
+ *   (http://dev.iceburg.net/jquery/jqmodal/)
+ *
+ * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ * 
+ * $Version: 07/06/2008 +r13
+ */
+(function($) {
+$.fn.jqm=function(o){
+var p={
+overlay: 50,
+closeoverlay : true,
+overlayClass: 'jqmOverlay',
+closeClass: 'jqmClose',
+trigger: '.jqModal',
+ajax: F,
+ajaxText: '',
+target: F,
+modal: F,
+toTop: F,
+onShow: F,
+onHide: F,
+onLoad: F
+};
+return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
+H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
+if(p.trigger)$(this).jqmAddTrigger(p.trigger);
+});};
+
+$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
+$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
+$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
+$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t)});};
+
+$.jqm = {
+hash:{},
+open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
+ if(c.modal) {if(!A[0])setTimeout(function(){L('bind');},1);A.push(s);}
+ else if(c.overlay > 0) {if(c.closeoverlay) h.w.jqmAddClose(o);}
+ else o=F;
+
+ h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
+ if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}
+
+ if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r == 'string')?$(r,h.w):$(r);u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
+  r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
+ else if(cc)h.w.jqmAddClose($(cc,h.w));
+
+ if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
+ (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
+},
+close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
+ if(A[0]){A.pop();if(!A[0])L('unbind');}
+ if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
+ if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
+},
+params:{}};
+var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
+e=function(h){var i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0});if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
+f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
+L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
+m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
+hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
+ if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js	(revision 178)
@@ -0,0 +1,445 @@
+;(function($) {
+/*
+**
+ * jqGrid extension - Tree Grid
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+	setTreeNode : function(rd, row){
+		return this.each(function(){
+			var $t = this;
+			if( !$t.grid || !$t.p.treeGrid ) { return; }
+			var expCol = $t.p.expColInd;
+			var expanded = $t.p.treeReader.expanded_field;
+			var isLeaf = $t.p.treeReader.leaf_field;
+			var level = $t.p.treeReader.level_field;
+			row.level = rd[level];
+			
+			if($t.p.treeGridModel == 'nested') {
+				row.lft = rd[$t.p.treeReader.left_field];
+				row.rgt = rd[$t.p.treeReader.right_field];
+				if(!rd[isLeaf]) {
+				// NS Model
+					rd[isLeaf] = (parseInt(row.rgt,10) === parseInt(row.lft,10)+1) ? 'true' : 'false';
+				}
+			} else {
+				row.parent_id = rd[$t.p.treeReader.parent_id_field];
+			}
+			var curLevel = parseInt(row.level,10), ident,lftpos;
+			if($t.p.tree_root_level === 0) {
+				ident = curLevel+1;
+				lftpos = curLevel;
+			} else {
+				ident = curLevel;
+				lftpos = curLevel -1;
+			}
+			var twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
+			twrap += "<div style='"+($t.p.direction=="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='ui-icon ";
+
+			if(rd[isLeaf] == "true" || rd[isLeaf] === true) {
+				twrap += $t.p.treeIcons.leaf+" tree-leaf'";
+				row.isLeaf = true;
+			} else {
+				if(rd[expanded] == "true" || rd[expanded] === true) {
+					twrap += $t.p.treeIcons.minus+" tree-minus treeclick'";
+					row.expanded = true;
+				} else {
+					twrap += $t.p.treeIcons.plus+" tree-plus treeclick'";
+					row.expanded = false;
+				}
+				row.isLeaf = false;
+			}
+			twrap += "</div></div>";
+			if(parseInt(rd[level],10) !== parseInt($t.p.tree_root_level,10)) {                
+				if(!$($t).jqGrid("isVisibleNode",row)){ 
+					$(row).css("display","none");
+				}
+			}
+			$("td:eq("+expCol+")",row).wrapInner("<span></span>").prepend(twrap);
+			$(".treeclick",row).bind("click",function(e){
+				var target = e.target || e.srcElement;
+				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
+				if(!$t.rows[ind].isLeaf){
+					if($t.rows[ind].expanded){
+						$($t).jqGrid("collapseRow",$t.rows[ind]);
+						$($t).jqGrid("collapseNode",$t.rows[ind]);
+					} else {
+						$($t).jqGrid("expandRow",$t.rows[ind]);
+						$($t).jqGrid("expandNode",$t.rows[ind]);
+					}
+				}
+				return false;
+			});
+			if($t.p.ExpandColClick === true) {
+			$("span", row).css("cursor","pointer").bind("click",function(e){
+				var target = e.target || e.srcElement;
+				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
+				if(!$t.rows[ind].isLeaf){
+					if($t.rows[ind].expanded){
+						$($t).jqGrid("collapseRow",$t.rows[ind]);
+						$($t).jqGrid("collapseNode",$t.rows[ind]);
+					} else {
+						$($t).jqGrid("expandRow",$t.rows[ind]);
+						$($t).jqGrid("expandNode",$t.rows[ind]);
+					}
+				}
+				$($t).jqGrid("setSelection",$t.rows[ind].id);
+				return false;
+			});
+			}
+		});
+	},
+	setTreeGrid : function() {
+		return this.each(function (){
+			var $t = this, i=0, pico;
+			if(!$t.p.treeGrid) { return; }
+			if(!$t.p.treedatatype ) { $.extend($t.p,{treedatatype: $t.p.datatype}); }
+			$t.p.subGrid = false; $t.p.altRows =false;
+			$t.p.pgbuttons = false; $t.p.pginput = false;
+			$t.p.multiselect = false; $t.p.rowList = [];
+			pico = 'ui-icon-triangle-1-' + ($t.p.direction=="rtl" ? 'w' : 'e');
+			$t.p.treeIcons = $.extend({plus:pico,minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'},$t.p.treeIcons || {});
+			if($t.p.treeGridModel == 'nested') {
+				$t.p.treeReader = $.extend({
+					level_field: "level",
+					left_field:"lft",
+					right_field: "rgt",
+					leaf_field: "isLeaf",
+					expanded_field: "expanded"
+				},$t.p.treeReader);
+			} else
+				if($t.p.treeGridModel == 'adjacency') {
+				$t.p.treeReader = $.extend({
+						level_field: "level",
+						parent_id_field: "parent",
+						leaf_field: "isLeaf",
+						expanded_field: "expanded"
+				},$t.p.treeReader );
+			}
+			for (var key in $t.p.colModel){
+				if($t.p.colModel.hasOwnProperty(key)) {
+					if($t.p.colModel[key].name == $t.p.ExpandColumn) {
+						$t.p.expColInd = i;
+						break;
+					}
+					i++;
+				}
+			}
+			if(!$t.p.expColInd) { $t.p.expColInd = 0; }
+			$.each($t.p.treeReader,function(i,n){
+				if(n){
+					$t.p.colNames.push(n);
+					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
+				}
+			});			
+		});
+	},
+	expandRow: function (record){
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var childern = $($t).jqGrid("getNodeChildren",record);
+			//if ($($t).jqGrid("isVisibleNode",record)) {
+			$(childern).each(function(i){
+				$(this).css("display","");
+				if(this.expanded) {
+					$($t).jqGrid("expandRow",this);
+				}
+			});
+			//}
+		});
+	},
+	collapseRow : function (record) {
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var childern = $($t).jqGrid("getNodeChildren",record);
+			$(childern).each(function(i){
+				$(this).css("display","none");
+				if(this.expanded){
+					$($t).jqGrid("collapseRow",this);
+				}
+			});
+		});
+	},
+	// NS ,adjacency models
+	getRootNodes : function() {
+		var result = [];
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var level = $t.p.treeReader.level_field;
+					$($t.rows).each(function(i){
+						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					$($t.rows).each(function(i){
+						if(this.parent_id === null || String(this.parent_id).toLowerCase() == "null") {
+							result.push(this);
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getNodeDepth : function(rc) {
+		var ret = null;
+		this.each(function(){
+			var $t = this;
+			if(!this.grid || !this.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					ret = parseInt(rc.level,10) - parseInt(this.p.tree_root_level,10);
+					break;
+				case 'adjacency' :
+					ret = $($t).jqGrid("getNodeAncestors",rc).length;
+					break;
+			}
+		});
+		return ret;
+	},
+	getNodeParent : function(rc) {
+		var result = null;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
+					$(this.rows).each(function(){
+						if(parseInt(this.level,10) === level-1 && parseInt(this.lft,10) < lft && parseInt(this.rgt,10) > rgt) {
+							result = this;
+							return false;
+						}
+					});
+					break;
+				case 'adjacency' :
+					$(this.rows).each(function(){
+						if(this.id == rc.parent_id ) {
+							result = this;
+							return false;
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getNodeChildren : function(rc) {
+		var result = [];
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
+					$(this.rows).each(function(i){
+						if(parseInt(this.level,10) === level+1 && parseInt(this.lft,10) > lft && parseInt(this.rgt,10) < rgt) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					$(this.rows).each(function(i){
+						if(this.parent_id == rc.id) {
+							result.push(this);
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getFullTreeNode : function(rc) {
+		var result = [];
+		this.each(function(){
+			var $t = this, len;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
+					$(this.rows).each(function(i){
+						if(parseInt(this.level,10) >= level && parseInt(this.lft,10) >= lft && parseInt(this.lft,10) <= rgt) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					result.push(rc);
+					$(this.rows).each(function(i){
+						len = result.length;
+						for (i = 0; i < len; i++) {
+							if (result[i].id == this.parent_id) {
+								result.push(this);
+								break;
+							}
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},	
+	// End NS, adjacency Model
+	getNodeAncestors : function(rc) {
+		var ancestors = [];
+		this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			var parent = $(this).jqGrid("getNodeParent",rc);
+			while (parent) {
+				ancestors.push(parent);
+				parent = $(this).jqGrid("getNodeParent",parent);	
+			}
+		});
+		return ancestors;
+	},
+	isVisibleNode : function(rc) {
+		var result = true;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var ancestors = $($t).jqGrid("getNodeAncestors",rc);
+			$(ancestors).each(function(){
+				result = result && this.expanded;
+				if(!result) {return false;}
+			});
+		});
+		return result;
+	},
+	isNodeLoaded : function(rc) {
+		var result;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			if(rc.loaded !== undefined) {
+				result = rc.loaded;
+			} else if( rc.isLeaf || $($t).jqGrid("getNodeChildren",rc).length > 0){
+				result = true;
+			} else {
+				result = false;
+			}
+		});
+		return result;
+	},
+	expandNode : function(rc) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			if(!rc.expanded) {
+				if( $(this).jqGrid("isNodeLoaded",rc) ) {
+					rc.expanded = true;
+					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
+				} else {
+					rc.expanded = true;
+					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
+					this.p.treeANode = rc.rowIndex;
+					this.p.datatype = this.p.treedatatype;
+					if(this.p.treeGridModel == 'nested') {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,n_left:rc.lft,n_right:rc.rgt,n_level:rc.level}});
+					} else {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,parentid:rc.parent_id,n_level:rc.level}});
+					}
+					$(this).trigger("reloadGrid");
+					if(this.p.treeGridModel == 'nested') {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
+					} else {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
+					}
+				}
+			}
+		});
+	},
+	collapseNode : function(rc) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			if(rc.expanded) {
+				rc.expanded = false;
+				$("div.treeclick",rc).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
+			}
+		});
+	},
+	SortTree : function( newDir) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			var i, len,
+			rec, records = [], $t = this,
+			roots = $(this).jqGrid("getRootNodes");
+			// Sorting roots
+			roots.sort(function(a, b) {
+				if (a.sortKey < b.sortKey) {return -newDir;}
+				if (a.sortKey > b.sortKey) {return newDir;}
+				return 0;
+			});
+			if(roots[0]){
+				$("td",roots[0]).each( function( k ) {
+					$(this).css("width",$t.grid.headers[k].width+"px");
+				});
+				$t.grid.cols = roots[0].cells;
+			}
+			// Sorting children
+			for (i = 0, len = roots.length; i < len; i++) {
+				rec = roots[i];
+				records.push(rec);
+				$(this).jqGrid("collectChildrenSortTree",records, rec, newDir);
+			}
+			$.each(records, function(index, row) {
+				$('tbody',$t.grid.bDiv).append(row);
+				row.sortKey = null;
+			});
+		});
+	},
+	collectChildrenSortTree : function(records, rec, newDir) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			var i, len,
+			child, 
+			children = $(this).jqGrid("getNodeChildren",rec);
+			children.sort(function(a, b) {
+				if (a.sortKey < b.sortKey) {return -newDir;}
+				if (a.sortKey > b.sortKey) {return newDir;}
+				return 0;
+			});
+			for (i = 0, len = children.length; i < len; i++) {
+				child = children[i];
+				records.push(child);
+				$(this).jqGrid("collectChildrenSortTree",records, child,newDir); 
+			}
+		});
+	},
+	// experimental 
+	setTreeRow : function(rowid, data) {
+		var nm, success=false;
+		this.each(function(){
+			var t = this;
+			if(!t.grid || !t.p.treeGrid) { return; }
+			success = $(t).jqGrid("setRowData",rowid,data);
+		});
+		return success;
+	},
+	delTreeNode : function (rowid) {
+		return this.each(function () {
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var rc = $($t).jqGrid("getInd",rowid,true);
+			if (rc) {
+				var dr = $($t).jqGrid("getNodeChildren",rc);
+				if(dr.length>0){
+					for (var i=0;i<dr.length;i++){
+						$($t).jqGrid("delRowData",dr[i].id);
+					}
+				}
+				$($t).jqGrid("delRowData",rc.id);
+			}
+		});
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js	(revision 178)
@@ -0,0 +1,714 @@
+/* Plugin:      searchFilter v1.2.9
+ * Author:      Kasey Speakman (kasey@cornerspeed.com)
+ * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)
+ *
+ * REQUIREMENTS:
+ *    jQuery 1.3+           (http://jquery.com/)
+ *    A Themeroller Theme   (http://jqueryui.com/themeroller/)
+ *
+ * SECURITY WARNING
+ *    You should always implement server-side checking to ensure that
+ *    the query will fail when forged/invalid data is received.
+ *    Clever users can send any value they want through JavaScript and HTTP POST/GET.
+ *
+ * THEMES
+ *    Simply include the CSS file for your Themeroller theme.
+ *
+ * DESCRIPTION
+ *     This plugin creates a new searchFilter object in the specified container
+ *
+ * INPUT TYPE
+ *     fields:  an array of field objects. each object has the following properties:
+ *              text: a string containing the display name of the field (e.g. "Field 1")
+ *              itemval: a string containing the actual field name (e.g. "field1")
+ *              optional properties:
+ *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators
+ *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]
+ *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used
+ *                  *** NOTE ***
+ *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated
+ *                  instead of a text input <input type='text'.../> where the user would normally type in their search data
+ *                  ************
+ *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field
+ *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]
+ *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element
+ *                  dataEvents: list of events to apply to the data element. uses $("#id").bind(type, [data], fn) to bind events to data element
+ *              *** JSON of this object could look like this: ***
+ *               var fields = [
+ *                 {
+ *                   text: 'Field Display Name',
+ *                   itemval: 'field_actual_name',
+ *                   // below this are optional values
+ *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators
+ *                     { op: 'gt', text: 'greater than' },
+ *                     { op: 'lt', text: 'less than' }
+ *                   ],
+ *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'
+ *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'
+ *                     { text: 'Data Value Display Name', value: 'data_actual_value' },
+ *                     { ... }
+ *                   ],
+ *                   dataInit: function(jElem) { jElem.datepicker(options); },
+ *                   dataEvents: [ // these are the same options that you pass to $("#id").bind(type, [data], fn)
+ *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },
+ *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }
+ *                   ]
+ *                 },
+ *                 { ... }
+ *               ]
+ *     options: name:value properties containing various creation options
+ *              see jQuery.fn.searchFilter.defaults for the overridable options
+ *
+ * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:
+ *     Methods
+ *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.
+ *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.
+ *         reset:  resets filters back to original state (only one blank filter), and calls onReset
+ *         search: puts the search rules into an object and calls onSearch with it
+ *         close:  calls the onClose event handler
+ *
+ * USAGE
+ *     HTML
+ *         <head>
+ *             ...
+ *             <script src="path/to/jquery.min.js" type="text/javascript"></script>
+ *             <link href="path/to/themeroller.css" rel="Stylesheet" type="text/css" />
+ *             <script src="path/to/jquery.searchFilter.js" type="text/javascript"></script>
+ *             <link href="path/to/jquery.searchFilter.css" rel="Stylesheet" type="text/css" />
+ *             ...
+ *         </head>
+ *         <body>
+ *             ...
+ *             <div id='mySearch'></div>
+ *             ...
+ *         </body>
+ *     JQUERY
+ *         Methods
+ *             initializing: $("#mySearch").searchFilter([{text: "Field 1", value: "field1"},{text: "Field 2", value: "field2"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });
+ *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)
+ *             add:          $("#mySearch").searchFilter().add();     // appends a blank filter
+ *                           $("#mySearch").searchFilter().add(0);    // copies the first filter as second
+ *             del:          $("#mySearch").searchFilter().del();     // removes the bottom filter
+ *                           $("#mySearch").searchFilter().del(1);    // removes the second filter
+ *             search:       $("#mySearch").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object
+ *             reset:        $("#mySearch").searchFilter().reset();   // resets rules and invokes onReset
+ *             close:        $("#mySearch").searchFilter().close();   // without an onClose handler, equivalent to $("#mySearch").hide();
+ * 
+ * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$
+ *     Example
+ *         $("#mySearch").searchFilter().add().add().reset().$.hide();
+ *     Verbose Example
+ *         $("#mySearch")      // gets jQuery object for the HTML element with id="mySearch"
+ *             .searchFilter() // gets the SearchFilter object for an existing search filter
+ *             .add()          // adds a new filter to the end of the list
+ *             .add()          // adds another new filter to the end of the list
+ *             .reset()        // resets filters back to original state, triggers onReset
+ *             .$              // returns jQuery object for $("#mySearch")
+ *             .hide();        // equivalent to $("#mySearch").hide();
+ */
+
+jQuery.fn.searchFilter = function(fields, options) {
+
+    function SearchFilter(jQ, fields, options) {
+
+
+        //---------------------------------------------------------------
+        // PUBLIC VARS
+        //---------------------------------------------------------------
+
+        this.$ = jQ; // makes the jQuery object available as .$ from the return value
+
+
+        //---------------------------------------------------------------
+        // PUBLIC FUNCTIONS
+        //---------------------------------------------------------------
+
+        this.add = function(i) {
+            if (i == null) jQ.find(".ui-add-last").click();
+            else jQ.find(".sf:eq(" + i + ") .ui-add").click();
+            return this;
+        };
+
+        this.del = function(i) {
+            if (i == null) jQ.find(".sf:last .ui-del").click();
+            else jQ.find(".sf:eq(" + i + ") .ui-del").click();
+            return this;
+        };
+
+        this.search = function(e) {
+            jQ.find(".ui-search").click();
+            return this;
+        };
+
+        this.reset = function(e) {
+            jQ.find(".ui-reset").click();
+            return this;
+        };
+
+        this.close = function() {
+            jQ.find(".ui-closer").click();
+            return this;
+        };
+
+
+
+        //---------------------------------------------------------------
+        // "CONSTRUCTOR" (in air quotes)
+        //---------------------------------------------------------------
+
+        if (fields != null) { // type coercion matches undefined as well as null
+
+
+            //---------------------------------------------------------------
+            // UTILITY FUNCTIONS
+            //---------------------------------------------------------------
+
+            function hover() {
+                jQuery(this).toggleClass("ui-state-hover");
+                return false;
+            }
+
+            function active(e) {
+                jQuery(this).toggleClass("ui-state-active", (e.type == "mousedown"));
+                return false;
+            }
+
+            function buildOpt(value, text) {
+                return "<option value='" + value + "'>" + text + "</option>";
+            }
+
+            function buildSel(className, options, isHidden) {
+                return "<select class='" + className + "'" + (isHidden ? " style='display:none;'" : "") + ">" + options + "</select>";
+            }
+
+            function initData(selector, fn) {
+                var jElem = jQ.find("tr.sf td.data " + selector);
+                if (jElem[0] != null)
+                    fn(jElem);
+            }
+
+            function bindDataEvents(selector, events) {
+                var jElem = jQ.find("tr.sf td.data " + selector);
+                if (jElem[0] != null) {
+                    jQuery.each(events, function() {
+                        if (this.data != null)
+                            jElem.bind(this.type, this.data, this.fn);
+                        else
+                            jElem.bind(this.type, this.fn);
+                    });
+                }
+            }
+
+
+            //---------------------------------------------------------------
+            // SUPER IMPORTANT PRIVATE VARS
+            //---------------------------------------------------------------
+
+            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that
+            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);
+
+            // this is keeps track of the last asynchronous setup
+            var highest_late_setup = -1;
+
+
+            //---------------------------------------------------------------
+            // CREATION PROCESS STARTS
+            //---------------------------------------------------------------
+
+            // generate the global ops
+            var gOps_html = "";
+            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });
+            gOps_html = "<select name='groupOp'>" + gOps_html + "</select>";
+
+            /* original content - doesn't minify very well
+            jQ
+            .html("") // clear any old content
+            .addClass("ui-searchFilter") // add classes
+            .append( // add content
+            "\
+            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\
+            <table class='ui-widget-content ui-corner-all'>\
+            <thead>\
+            <tr>\
+            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\
+            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\
+            <span class='ui-icon ui-icon-close'></span>\
+            </div>\
+            " + opts.windowTitle + "\
+            </td>\
+            </tr>\
+            </thead>\
+            <tbody>\
+            <tr class='sf'>\
+            <td class='fields'></td>\
+            <td class='ops'></td>\
+            <td class='data'></td>\
+            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\
+            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\
+            </tr>\
+            <tr>\
+            <td colspan='5' class='divider'><div>&nbsp;</div></td>\
+            </tr>\
+            </tbody>\
+            <tfoot>\
+            <tr>\
+            <td colspan='3'>\
+            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span>\
+            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span>\
+            <span class='matchText'>" + opts.matchText + "</span> \
+            " + gOps_html + " \
+            <span class='rulesText'>" + opts.rulesText + "</span>\
+            </td>\
+            <td>&nbsp;</td>\
+            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\
+            </tr>\
+            </tfoot>\
+            </table>\
+            ");
+            /* end hard-to-minify code */
+            /* begin easier to minify code */
+            jQ.html("").addClass("ui-searchFilter").append("<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>" + opts.windowTitle + "</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><div>&#160;</div></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span><span class='matchText'>" + opts.matchText + "</span> " + gOps_html + " <span class='rulesText'>" + opts.rulesText + "</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>");
+            /* end easier-to-minify code */
+
+            var jRow = jQ.find("tr.sf");
+            var jFields = jRow.find("td.fields");
+            var jOps = jRow.find("td.ops");
+            var jData = jRow.find("td.data");
+
+            // generate the defaults
+            var default_ops_html = "";
+            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });
+            default_ops_html = buildSel("default", default_ops_html, true);
+            jOps.append(default_ops_html);
+            var default_data_html = "<input type='text' class='default' style='display:none;' />";
+            jData.append(default_data_html);
+
+            // generate the field list as a string
+            var fields_html = "";
+            var has_custom_ops = false;
+            var has_custom_data = false;
+            jQuery.each(fields, function(i) {
+                var field_num = i;
+                fields_html += buildOpt(this.itemval, this.text);
+                // add custom ops if they exist
+                if (this.ops != null) {
+                    has_custom_ops = true;
+                    var custom_ops = "";
+                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });
+                    custom_ops = buildSel("field" + field_num, custom_ops, true);
+                    jOps.append(custom_ops);
+                }
+                // add custom data if it is given
+                if (this.dataUrl != null) {
+                    if (i > highest_late_setup) highest_late_setup = i;
+                    has_custom_data = true;
+                    var dEvents = this.dataEvents;
+                    var iEvent = this.dataInit;
+                    var bs = this.buildSelect;
+                    jQuery.ajax(jQuery.extend({
+                        url : this.dataUrl,
+                        complete: function(data) {
+                            var $d;
+                            if(bs != null) $d =jQuery("<div />").append(bs(data));
+                            else $d = jQuery("<div />").append(data.responseText);
+                            $d.find("select").addClass("field" + field_num).hide();
+                            jData.append($d.html());
+                            if (iEvent) initData(".field" + i, iEvent);
+                            if (dEvents) bindDataEvents(".field" + i, dEvents);
+                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed
+                                jQ.find("tr.sf td.fields select[name='field']").change();
+                            }
+                        }
+                    },opts.ajaxSelectOptions));
+                } else if (this.dataValues != null) {
+                    has_custom_data = true;
+                    var custom_data = "";
+                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });
+                    custom_data = buildSel("field" + field_num, custom_data, true);
+                    jData.append(custom_data);
+                } else if (this.dataEvents != null || this.dataInit != null) {
+                    has_custom_data = true;
+                    var custom_data = "<input type='text' class='field" + field_num + "' />";
+                    jData.append(custom_data);
+                }
+                // attach events to data if they exist
+                if (this.dataInit != null && i != highest_late_setup)
+                    initData(".field" + i, this.dataInit);
+                if (this.dataEvents != null && i != highest_late_setup)
+                    bindDataEvents(".field" + i, this.dataEvents);
+            });
+            fields_html = "<select name='field'>" + fields_html + "</select>";
+            jFields.append(fields_html);
+
+            // setup the field select with an on-change event if there are custom ops or data
+            var jFSelect = jFields.find("select[name='field']");
+            if (has_custom_ops) jFSelect.change(function(e) {
+                var index = e.target.selectedIndex;
+                var td = jQuery(e.target).parents("tr.sf").find("td.ops");
+                td.find("select").removeAttr("name").hide(); // disown and hide all elements
+                var jElem = td.find(".field" + index);
+                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
+                jElem.attr("name", "op").show();
+
+            });
+            else jOps.find(".default").attr("name", "op").show();
+            if (has_custom_data) jFSelect.change(function(e) {
+                var index = e.target.selectedIndex;
+                var td = jQuery(e.target).parents("tr.sf").find("td.data");
+                td.find("select,input").removeClass("vdata").hide(); // disown and hide all elements
+                var jElem = td.find(".field" + index);
+                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
+                jElem.show().addClass("vdata");
+            });
+            else jData.find(".default").show().addClass("vdata");
+            // go ahead and call the change event and setup the ops and data values
+            if (has_custom_ops || has_custom_data) jFSelect.change();
+
+            // bind events
+            jQ.find(".ui-state-default").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons
+            jQ.find(".ui-closer").click(function(e) {
+                opts.onClose(jQuery(jQ.selector));
+                return false;
+            });
+            jQ.find(".ui-del").click(function(e) {
+                var row = jQuery(e.target).parents(".sf");
+                if (row.siblings(".sf").length > 0) { // doesn't remove if there's only one filter left
+                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)
+                        row.find(".hasDatepicker").datepicker("destroy"); // clean up datepicker's $.data mess
+                    row.remove(); // also unbinds
+                } else { // resets the filter if it's the last one
+                    row.find("select[name='field']")[0].selectedIndex = 0;
+                    row.find("select[name='op']")[0].selectedIndex = 0;
+                    row.find(".data input").val(""); // blank all input values
+                    row.find(".data select").each(function() { this.selectedIndex = 0; }); // select first option on all selects
+                    row.find("select[name='field']").change(); // trigger any change events
+                }
+                return false;
+            });
+            jQ.find(".ui-add").click(function(e) {
+                var row = jQuery(e.target).parents(".sf");
+                var newRow = row.clone(true).insertAfter(row);
+                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
+                if (opts.clone) {
+                    newRow.find("select[name='field']")[0].selectedIndex = row.find("select[name='field']")[0].selectedIndex;
+                    var stupid_browser = (newRow.find("select[name='op']")[0] == null); // true for IE6
+                    if (!stupid_browser)
+                        newRow.find("select[name='op']").focus()[0].selectedIndex = row.find("select[name='op']")[0].selectedIndex;
+                    var jElem = newRow.find("select.vdata");
+                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned
+                        jElem[0].selectedIndex = row.find("select.vdata")[0].selectedIndex;
+                } else {
+                    newRow.find(".data input").val(""); // blank all input values
+                    newRow.find("select[name='field']").focus();
+                }
+                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
+                    row.find(".hasDatepicker").each(function() {
+                        var settings = jQuery.data(this, "datepicker").settings;
+                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
+                    });
+                }
+                newRow.find("select[name='field']").change();
+                return false;
+            });
+            jQ.find(".ui-search").click(function(e) {
+                var ui = jQuery(jQ.selector); // pointer to search box wrapper element
+                var ruleGroup;
+                var group_op = ui.find("select[name='groupOp'] :selected").val(); // puls "AND" or "OR"
+                if (!opts.stringResult) {
+                    ruleGroup = {
+                        groupOp: group_op,
+                        rules: []
+                    };
+                } else {
+                    ruleGroup = "{\"groupOp\":\"" + group_op + "\",\"rules\":[";
+                }
+                ui.find(".sf").each(function(i) {
+                    var tField = jQuery(this).find("select[name='field'] :selected").val();
+                    var tOp = jQuery(this).find("select[name='op'] :selected").val();
+                    var tData = jQuery(this).find("input.vdata,select.vdata :selected").val();
+                    tData += "";
+                    tData = tData.replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
+                    if (!opts.stringResult) {
+                        ruleGroup.rules.push({
+                            field: tField,
+                            op: tOp,
+                            data: tData
+                        });
+                    } else {
+                        if (i > 0) ruleGroup += ",";
+                        ruleGroup += "{\"field\":\"" + tField + "\",";
+                        ruleGroup += "\"op\":\"" + tOp + "\",";
+                        ruleGroup += "\"data\":\"" + tData + "\"}";
+                    }
+                });
+                if (opts.stringResult) ruleGroup += "]}";
+                opts.onSearch(ruleGroup);
+                return false;
+            });
+            jQ.find(".ui-reset").click(function(e) {
+                var ui = jQuery(jQ.selector);
+                ui.find(".ui-del").click(); // removes all filters, resets the last one
+                ui.find("select[name='groupOp']")[0].selectedIndex = 0; // changes the op back to the default one
+                opts.onReset();
+                return false;
+            });
+            jQ.find(".ui-add-last").click(function() {
+                var row = jQuery(jQ.selector + " .sf:last");
+                var newRow = row.clone(true).insertAfter(row);
+                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
+                newRow.find(".data input").val(""); // blank all input values
+                newRow.find("select[name='field']").focus();
+                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
+                    row.find(".hasDatepicker").each(function() {
+                        var settings = jQuery.data(this, "datepicker").settings;
+                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
+                    });
+                }
+                newRow.find("select[name='field']").change();
+                return false;
+            });
+
+            this.setGroupOp = function(setting) {
+                /* a "setter" for groupping argument.
+                 *  ("AND" or "OR")
+                 *
+                 * Inputs:
+                 *  setting - a string
+                 *
+                 * Returns:
+                 *  Does not return anything. May add success / failure reporting in future versions.
+                 *
+                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
+                 */
+                selDOMobj = this.$.find("select[name='groupOp']")[0];
+                var indexmap = {}, l = selDOMobj.options.length, i;
+                for (i=0; i<l; i++) {
+                    indexmap[selDOMobj.options[i].value] = i;
+                }
+                selDOMobj.selectedIndex = indexmap[setting];
+                $(selDOMobj).change();
+            };
+
+            this.setFilter = function(settings) {
+                /* a "setter" for an arbitrary SearchFilter's filter line.
+                 * designed to abstract the DOM manipulations required to infer
+                 * a particular filter is a fit to the search box.
+                 *
+                 * Inputs:
+                 *  settings - an "object" (dictionary)
+                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.
+                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.
+                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)
+                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}
+                 *
+                 * * It is mandatory to have either index or sfref defined.
+                 *
+                 * Returns:
+                 *  Does not return anything. May add success / failure reporting in future versions.
+                 *
+                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
+                 */
+
+                var o = settings['sfref'], filter = settings['filter'];
+                
+                // setting up valueindexmap that we will need to manipulate SELECT elements.
+                var fields = [], i, j , l, lj, li,
+                    valueindexmap = {};
+                    // example of valueindexmap:
+                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},
+                    // if data is undefined it's a INPUT field. If defined, it's SELECT
+                selDOMobj = o.find("select[name='field']")[0];
+                for (i=0, l=selDOMobj.options.length; i<l; i++) {
+                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};
+                    fields.push(selDOMobj.options[i].value);
+                }
+                for (i=0, li=fields.length; i < li; i++) {
+                    selDOMobj = o.find(".ops > select[class='field"+i+"']")[0];
+                    if (selDOMobj) {
+                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
+                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;
+                        }
+                    }
+                    selDOMobj = o.find(".data > select[class='field"+i+"']")[0];
+                    if (selDOMobj) {
+                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT
+                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
+                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;
+                        }
+                    }
+                } // done populating valueindexmap
+
+                // preparsing the index values for SELECT elements.
+                var fieldvalue, fieldindex, opindex, datavalue, dataindex;
+                fieldvalue = filter['field'];
+				if (valueindexmap[fieldvalue]) {
+					fieldindex = valueindexmap[fieldvalue]['index'];
+				}
+                if (fieldindex != null) {
+                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];
+                    if(opindex === undefined) {
+                        for(i=0,li=options.operators.length; i<li;i++) {
+                            if(options.operators[i].op == filter.op ){
+                                opindex = i;
+                                break;
+                            }
+                        }
+                    }
+                    datavalue = filter['data'];
+                    if (valueindexmap[fieldvalue]['data'] == null) {
+                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'
+                    } else {
+                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.
+                    }
+                }
+                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...
+                if (fieldindex != null && opindex != null && dataindex != null) {
+                    o.find("select[name='field']")[0].selectedIndex = fieldindex;
+                    o.find("select[name='field']").change();
+                    o.find("select[name='op']")[0].selectedIndex = opindex;
+                    o.find("input.vdata").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT
+                    o = o.find("select.vdata")[0];
+                    if (o) {
+                        o.selectedIndex = dataindex;
+                    }
+					return true
+                } else {
+					return false
+				}
+            }; // end of this.setFilter fn
+        } // end of if fields != null
+    }
+    return new SearchFilter(this, fields, options);
+};
+
+jQuery.fn.searchFilter.version = '1.2.9';
+
+/* This property contains the default options */
+jQuery.fn.searchFilter.defaults = {
+
+    /*
+     * PROPERTY
+     * TYPE:        boolean 
+     * DESCRIPTION: clone a row if it is added from an existing row
+     *              when false, any new added rows will be blank.
+     */
+    clone: true,
+
+    /*
+     * PROPERTY
+     * TYPE:        boolean 
+     * DESCRIPTION: current version of datepicker uses a data store,
+     *              which is incompatible with $().clone(true)
+     */
+    datepickerFix: true,
+
+    /*
+     * FUNCTION
+     * DESCRIPTION: the function that will be called when the user clicks Reset
+     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
+     */
+    onReset: function(data) { alert("Reset Clicked. Data Returned: " + data) },
+
+    /*
+     * FUNCTION
+     * DESCRIPTION: the function that will be called when the user clicks Search
+     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
+     */
+    onSearch: function(data) { alert("Search Clicked. Data Returned: " + data) },
+
+    /*
+     * FUNCTION
+     * DESCRIPTION: the function that will be called when the user clicks the Closer icon
+     *              or the close() function is called
+     *              if left null, it simply does a .hide() on the searchFilter
+     * INPUT TYPE:  a jQuery object for the searchFilter
+     */
+    onClose: function(jElem) { jElem.hide(); },
+
+    /* 
+     * PROPERTY
+     * TYPE:        array of objects, each object has the properties op and text 
+     * DESCRIPTION: the selectable operators that are applied between rules
+     *              e.g. for {op:"AND", text:"all"}
+     *                  the search filter box will say: match all rules
+     *                  the server should interpret this as putting the AND op between each rule:
+     *                      rule1 AND rule2 AND rule3
+     *              text will be the option text, and op will be the option value
+     */
+    groupOps: [
+        { op: "AND", text: "all" },
+        { op: "OR",  text: "any" }
+    ],
+
+
+    /* 
+     * PROPERTY
+     * TYPE:        array of objects, each object has the properties op and text 
+     * DESCRIPTION: the operators that will appear as drop-down options
+     *              text will be the option text, and op will be the option value
+     */
+    operators: [
+        { op: "eq", text: "is equal to" },
+        { op: "ne", text: "is not equal to" },
+        { op: "lt", text: "is less than" },
+        { op: "le", text: "is less or equal to" },
+        { op: "gt", text: "is greater than" },
+        { op: "ge", text: "is greater or equal to" },
+        { op: "in", text: "is in" },
+        { op: "ni", text: "is not in" },
+        { op: "bw", text: "begins with" },
+        { op: "bn", text: "does not begin with" },
+        { op: "ew", text: "ends with" },
+        { op: "en", text: "does not end with" },
+        { op: "cn", text: "contains" },
+        { op: "nc", text: "does not contain" }
+    ],
+
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules
+     */
+    matchText: "match",
+
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_
+     */
+    rulesText: "rules",
+
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: the text that will be displayed in the reset button
+     */
+    resetText: "Reset",
+    
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: the text that will be displayed in the search button
+     */
+    searchText: "Search",
+    
+    /*
+     * PROPERTY
+     * TYPE:        boolean
+     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects
+     */
+    stringResult: true,    
+    
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: the title of the searchFilter window
+     */
+    windowTitle: "Search Rules",
+    /*
+     * PROPERTY
+     * TYPE:        object
+     * DESCRIPTION: options to extend the ajax request
+     */
+    ajaxSelectOptions : {}
+}; /* end of searchFilter */
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js	(revision 178)
@@ -0,0 +1,64 @@
+;(function($){
+/**
+ * jqGrid extension
+ * Paul Tiseo ptiseo@wasteconsultants.com
+ * 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+	getPostData : function(){
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.postData;
+	},
+	setPostData : function( newdata ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		// check if newdata is correct type
+		if ( typeof(newdata) === 'object' ) {
+			$t.p.postData = newdata;
+		}
+		else {
+			alert("Error: cannot add a non-object postData value. postData unchanged.");
+		}
+	},
+	appendPostData : function( newdata ) { 
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		// check if newdata is correct type
+		if ( typeof(newdata) === 'object' ) {
+			$.extend($t.p.postData, newdata);
+		}
+		else {
+			alert("Error: cannot append a non-object postData value. postData unchanged.");
+		}
+	},
+	setPostDataItem : function( key, val ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		$t.p.postData[key] = val;
+	},
+	getPostDataItem : function( key ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.postData[key];
+	},
+	removePostDataItem : function( key ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		delete $t.p.postData[key];
+	},
+	getUserData : function(){
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.userData;
+	},
+	getUserDataItem : function( key ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.userData[key];
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js	(revision 178)
@@ -0,0 +1,47 @@
+// This file should be used if you want to debug
+function jqGridInclude()
+{
+    var pathtojsfiles = "js/"; // need to be ajusted
+    // set include to false if you do not want some modules to be included
+    var modules = [
+        { include: true, incfile:'i18n/grid.locale-en.js'}, // jqGrid translation
+        { include: true, incfile:'grid.base.js'}, // jqGrid base
+        { include: true, incfile:'grid.common.js'}, // jqGrid common for editing
+        { include: true, incfile:'grid.formedit.js'}, // jqGrid Form editing
+        { include: true, incfile:'grid.inlinedit.js'}, // jqGrid inline editing
+        { include: true, incfile:'grid.celledit.js'}, // jqGrid cell editing
+        { include: true, incfile:'grid.subgrid.js'}, //jqGrid subgrid
+        { include: true, incfile:'grid.treegrid.js'}, //jqGrid treegrid
+        { include: true, incfile:'grid.custom.js'}, //jqGrid custom 
+        { include: true, incfile:'grid.postext.js'}, //jqGrid postext
+        { include: true, incfile:'grid.tbltogrid.js'}, //jqGrid table to grid 
+        { include: true, incfile:'grid.setcolumns.js'}, //jqGrid setcolumns
+        { include: true, incfile:'grid.import.js'}, //jqGrid import
+        { include: true, incfile:'jquery.fmatter.js'}, //jqGrid formater
+        { include: true, incfile:'JsonXml.js'}, //xmljson utils
+        { include: true, incfile:'jquery.searchFilter.js'} // search Plugin
+    ];
+    var filename;
+    for(var i=0;i<modules.length; i++)
+    {
+        if(modules[i].include === true) {
+        	
+        	filename = pathtojsfiles+modules[i].incfile;
+       		if(jQuery.browser.safari) {
+       			jQuery.ajax({url:filename,dataType:'script', async:false, cache: true});
+       		} else {
+       			IncludeJavaScript(filename);
+       		}
+        }
+    }
+    function IncludeJavaScript(jsFile)
+    {
+        var oHead = document.getElementsByTagName('head')[0];
+        var oScript = document.createElement('script');
+        oScript.type = 'text/javascript';
+        oScript.charset = 'utf-8';
+        oScript.src = jsFile;
+        oHead.appendChild(oScript);        
+    };
+};
+jqGridInclude();
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js	(revision 178)
@@ -0,0 +1,330 @@
+/*
+	The below work is licensed under Creative Commons GNU LGPL License.
+
+	Original work:
+
+	License:     http://creativecommons.org/licenses/LGPL/2.1/
+	Author:      Stefan Goessner/2006
+	Web:         http://goessner.net/ 
+
+	Modifications made:
+
+	Version:     0.9-p5
+	Description: Restructured code, JSLint validated (no strict whitespaces),
+	             added handling of empty arrays, empty strings, and int/floats values.
+	Author:      Michael Schøler/2008-01-29
+	Web:         http://michael.hinnerup.net/blog/2008/01/26/converting-json-to-xml-and-xml-to-json/
+	
+	Description: json2xml added support to convert functions as CDATA
+	             so it will be easy to write characters that cause some problems when convert
+	Author:      Tony Tomov
+*/
+
+/*global alert */
+var xmlJsonClass = {
+	// Param "xml": Element or document DOM node.
+	// Param "tab": Tab or indent string for pretty output formatting omit or use empty string "" to supress.
+	// Returns:     JSON string
+	xml2json: function(xml, tab) {
+		if (xml.nodeType === 9) {
+			// document node
+			xml = xml.documentElement;
+		}
+		var nws = this.removeWhite(xml);
+		var obj = this.toObj(nws);
+		var json = this.toJson(obj, xml.nodeName, "\t");
+		return "{\n" + tab + (tab ? json.replace(/\t/g, tab) : json.replace(/\t|\n/g, "")) + "\n}";
+	},
+
+	// Param "o":   JavaScript object
+	// Param "tab": tab or indent string for pretty output formatting omit or use empty string "" to supress.
+	// Returns:     XML string
+	json2xml: function(o, tab) {
+		var toXml = function(v, name, ind) {
+			var xml = "";
+			var i, n;
+			if (v instanceof Array) {
+				if (v.length === 0) {
+					xml += ind + "<"+name+">__EMPTY_ARRAY_</"+name+">\n";
+				}
+				else {
+					for (i = 0, n = v.length; i < n; i += 1) {
+						var sXml = ind + toXml(v[i], name, ind+"\t") + "\n";
+						xml += sXml;
+					}
+				}
+			}
+			else if (typeof(v) === "object") {
+				var hasChild = false;
+				xml += ind + "<" + name;
+				var m;
+				for (m in v) if (v.hasOwnProperty(m)) {
+					if (m.charAt(0) === "@") {
+						xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
+					}
+					else {
+						hasChild = true;
+					}
+				}
+				xml += hasChild ? ">" : "/>";
+				if (hasChild) {
+					for (m in v) if (v.hasOwnProperty(m)) {
+						if (m === "#text") {
+							xml += v[m];
+						}
+						else if (m === "#cdata") {
+							xml += "<![CDATA[" + v[m] + "]]>";
+						}
+						else if (m.charAt(0) !== "@") {
+							xml += toXml(v[m], m, ind+"\t");
+						}
+					}
+					xml += (xml.charAt(xml.length - 1) === "\n" ? ind : "") + "</" + name + ">";
+				}
+			}
+			else if (typeof(v) === "function") {
+				xml += ind + "<" + name + ">" + "<![CDATA[" + v + "]]>" + "</" + name + ">";
+			}
+			else {
+				if (v.toString() === "\"\"" || v.toString().length === 0) {
+					xml += ind + "<" + name + ">__EMPTY_STRING_</" + name + ">";
+				} 
+				else {
+					xml += ind + "<" + name + ">" + v.toString() + "</" + name + ">";
+				}
+			}
+			return xml;
+		};
+		var xml = "";
+		var m;
+		for (m in o) if (o.hasOwnProperty(m)) {
+			xml += toXml(o[m], m, "");
+		}
+		return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, "");
+	},
+	// Internal methods
+	toObj: function(xml) {
+		var o = {};
+		var FuncTest = /function/i;
+		if (xml.nodeType === 1) {
+			// element node ..
+			if (xml.attributes.length) {
+				// element with attributes ..
+				var i;
+				for (i = 0; i < xml.attributes.length; i += 1) {
+					o["@" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || "").toString();
+				}
+			}
+			if (xml.firstChild) {
+				// element has child nodes ..
+				var textChild = 0, cdataChild = 0, hasElementChild = false;
+				var n;
+				for (n = xml.firstChild; n; n = n.nextSibling) {
+					if (n.nodeType === 1) {
+						hasElementChild = true;
+					}
+					else if (n.nodeType === 3 && n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
+						// non-whitespace text
+						textChild += 1;
+					}
+					else if (n.nodeType === 4) {
+						// cdata section node
+						cdataChild += 1;
+					}
+				}
+				if (hasElementChild) {
+					if (textChild < 2 && cdataChild < 2) {
+						// structured element with evtl. a single text or/and cdata node ..
+						this.removeWhite(xml);
+						for (n = xml.firstChild; n; n = n.nextSibling) {
+							if (n.nodeType === 3) {
+								// text node
+								o["#text"] = this.escape(n.nodeValue);
+							}
+							else if (n.nodeType === 4) {
+								// cdata node
+								if (FuncTest.test(n.nodeValue)) {
+									o[n.nodeName] = [o[n.nodeName], n.nodeValue];
+								} else {
+									o["#cdata"] = this.escape(n.nodeValue);
+								}
+							}
+							else if (o[n.nodeName]) {
+								// multiple occurence of element ..
+								if (o[n.nodeName] instanceof Array) {
+									o[n.nodeName][o[n.nodeName].length] = this.toObj(n);
+								}
+								else {
+									o[n.nodeName] = [o[n.nodeName], this.toObj(n)];
+								}
+							}
+							else {
+								// first occurence of element ..
+								o[n.nodeName] = this.toObj(n);
+							}
+						}
+					}
+					else {
+						// mixed content
+						if (!xml.attributes.length) {
+							o = this.escape(this.innerXml(xml));
+						}
+						else {
+							o["#text"] = this.escape(this.innerXml(xml));
+						}
+					}
+				}
+				else if (textChild) {
+					// pure text
+					if (!xml.attributes.length) {
+						o = this.escape(this.innerXml(xml));
+						if (o === "__EMPTY_ARRAY_") {
+							o = "[]";
+						} else if (o === "__EMPTY_STRING_") {
+							o = "";
+						}
+					}
+					else {
+						o["#text"] = this.escape(this.innerXml(xml));
+					}
+				}
+				else if (cdataChild) {
+					// cdata
+					if (cdataChild > 1) {
+						o = this.escape(this.innerXml(xml));
+					}
+					else {
+						for (n = xml.firstChild; n; n = n.nextSibling) {
+							if(FuncTest.test(xml.firstChild.nodeValue)) {
+								o = xml.firstChild.nodeValue;
+								break;
+							} else {
+								o["#cdata"] = this.escape(n.nodeValue);
+							}
+						}
+					}
+				}
+			}
+			if (!xml.attributes.length && !xml.firstChild) {
+				o = null;
+			}
+		}
+		else if (xml.nodeType === 9) {
+			// document.node
+			o = this.toObj(xml.documentElement);
+		}
+		else {
+			alert("unhandled node type: " + xml.nodeType);
+		}
+		return o;
+	},
+	toJson: function(o, name, ind) {
+		var json = name ? ("\"" + name + "\"") : "";
+		if (o === "[]") {
+			json += (name ? ":[]" : "[]");
+		}
+		else if (o instanceof Array) {
+			var n, i, ar=[];
+			for (i = 0, n = o.length; i < n; i += 1) {
+				ar[i] = this.toJson(o[i], "", ind + "\t");
+			}
+			json += (name ? ":[" : "[") + (ar.length > 1 ? ("\n" + ind + "\t" + ar.join(",\n" + ind + "\t") + "\n" + ind) : ar.join("")) + "]";
+		}
+		else if (o === null) {
+			json += (name && ":") + "null";
+		}
+		else if (typeof(o) === "object") {
+			var arr = [];
+			var m;
+			for (m in o) if (o.hasOwnProperty(m)) {
+				arr[arr.length] = this.toJson(o[m], m, ind + "\t");
+			}
+			json += (name ? ":{" : "{") + (arr.length > 1 ? ("\n" + ind + "\t" + arr.join(",\n" + ind + "\t") + "\n" + ind) : arr.join("")) + "}";
+		}
+		else if (typeof(o) === "string") {
+			var objRegExp  = /(^-?\d+\.?\d*$)/;
+			var FuncTest = /function/i;
+			var os = o.toString();
+			if (objRegExp.test(os) || FuncTest.test(os) || os==="false" || os==="true") {
+				// int or float
+				json += (name && ":") + os;
+			} 
+			else {
+				json += (name && ":") + "\"" + o + "\"";
+			}
+		}
+		else {
+			json += (name && ":") + o.toString();
+		}
+		return json;
+	},
+	innerXml: function(node) {
+		var s = "";
+		if ("innerHTML" in node) {
+			s = node.innerHTML;
+		}
+		else {
+			var asXml = function(n) {
+				var s = "", i;
+				if (n.nodeType === 1) {
+					s += "<" + n.nodeName;
+					for (i = 0; i < n.attributes.length; i += 1) {
+						s += " " + n.attributes[i].nodeName + "=\"" + (n.attributes[i].nodeValue || "").toString() + "\"";
+					}
+					if (n.firstChild) {
+						s += ">";
+						for (var c = n.firstChild; c; c = c.nextSibling) {
+							s += asXml(c);
+						}
+						s += "</" + n.nodeName + ">";
+					}
+					else {
+						s += "/>";
+					}
+				}
+				else if (n.nodeType === 3) {
+					s += n.nodeValue;
+				}
+				else if (n.nodeType === 4) {
+					s += "<![CDATA[" + n.nodeValue + "]]>";
+				}
+				return s;
+			};
+			for (var c = node.firstChild; c; c = c.nextSibling) {
+				s += asXml(c);
+			}
+		}
+		return s;
+	},
+	escape: function(txt) {
+		return txt.replace(/[\\]/g, "\\\\").replace(/[\"]/g, '\\"').replace(/[\n]/g, '\\n').replace(/[\r]/g, '\\r');
+	},
+	removeWhite: function(e) {
+		e.normalize();
+		var n;
+		for (n = e.firstChild; n; ) {
+			if (n.nodeType === 3) {
+				// text node
+				if (!n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
+					// pure whitespace text node
+					var nxt = n.nextSibling;
+					e.removeChild(n);
+					n = nxt;
+				}
+				else {
+					n = n.nextSibling;
+				}
+			}
+			else if (n.nodeType === 1) {
+				// element node
+				this.removeWhite(n);
+				n = n.nextSibling;
+			}
+			else {
+				// any other node
+				n = n.nextSibling;
+			}
+		}
+		return e;
+	}
+};
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js	(revision 178)
@@ -0,0 +1,1869 @@
+;(function($){
+/**
+ * jqGrid extension for form editing Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+var rp_ge = null;
+$.jgrid.extend({
+	searchGrid : function (p) {
+		p = $.extend({
+			recreateFilter: false,
+			drag: true,
+			sField:'searchField',
+			sValue:'searchString',
+			sOper: 'searchOper',
+			sFilter: 'filters',
+            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
+			beforeShowSearch: null,
+			afterShowSearch : null,
+			onInitializeSearch: null,
+			closeAfterSearch : false,
+			closeAfterReset: false,
+			closeOnEscape : false,
+			multipleSearch : false,
+			cloneSearchRowOnAdd: true,
+			// translation
+			// if you want to change or remove the order change it in sopt
+			// ['bw','eq','ne','lt','le','gt','ge','ew','cn']
+			sopt: null,
+			// Note: stringResult is intentionally declared "undefined by default".
+			//  you are velcome to define stringResult expressly in the options you pass to searchGrid()
+			//  stringResult is a "safeguard" measure to insure we post sensible data when communicated as form-encoded
+			//  see http://github.com/tonytomov/jqGrid/issues/#issue/36
+			//
+			//  If this value is not expressly defined in the incoming options,
+			// lower in the code we will infer the value based on value of multipleSearch
+			stringResult: undefined,
+			onClose : null,
+			// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax
+			// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.
+			// Used for "editGridRow" and "delGridRow" below and automatically flipped to TRUE
+			// when ajax setting's 'url' (grid's 'editurl') property is undefined.
+			// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call
+			// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)
+			//
+			// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.
+			// Normally the following is fed to datatype.call(a, b, c):
+			//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = "load_"+grid's ID
+			// In cases of "edit" and "del" the following is fed:
+			//   a = Pointer to grid's table DOM element (same),
+			//   b = extended Ajax Options including postdata in "data" property. (different object type)
+			//   c = "set_"+grid's ID in case of "edit" and "del_"+grid's ID in case of "del" (same type, different content)
+			// The major difference is that complete ajax options object, with attached "complete" and "error"
+			// callback functions is fed instead of only post data.
+			// This allows you to emulate a $.ajax call (including calling "complete"/"error"),
+			// while retrieving the data locally in the browser.
+			useDataProxy: false,
+			overlay : true
+		}, $.jgrid.search, p || {});
+		return this.each(function() {
+			var $t = this;
+			if(!$t.grid) {return;}
+            function applyDefaultFilters(gridDOMobj, filterSettings) {
+				/*
+                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )
+                What we need from gridDOMobj:
+                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.
+                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to
+                contain default filter settings. We will parse these and will populate the search with defaults.
+                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);
+                */
+
+                // Pulling default filter settings out of postData property of grid's properties.:
+                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];
+                // example of what we might get: {"groupOp":"and","rules":[{"field":"amount","op":"eq","data":"100"}]}
+				// suppose we have imported this with grid import, the this is a string.
+				if(typeof(defaultFilters) == "string") {
+					defaultFilters = $.jgrid.parse(defaultFilters);
+				}
+                if (defaultFilters) {
+                    if (defaultFilters.groupOp) {
+                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);
+                    }
+                    if (defaultFilters.rules) {
+                        var f
+							, i = 0
+							, li = defaultFilters.rules.length
+							, success = false;
+                        for (; i < li; i++) {
+                            f = defaultFilters.rules[i];
+                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.
+                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {
+                                success = gridDOMobj.SearchFilter.setFilter({
+                                    'sfref':gridDOMobj.SearchFilter.$.find(".sf:last"),
+                                    'filter':$.extend({},f)
+                                });
+								if (success) { gridDOMobj.SearchFilter.add(); }
+                            }
+                        }
+                    }
+				}
+            } // end of applyDefaultFilters
+			
+			if($.fn.searchFilter) {
+				var fid = "fbox_"+$t.p.id;
+				if(p.recreateFilter===true) {$("#"+fid).remove();}
+				if( $("#"+fid).html() != null ) {
+					if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
+					showFilter();
+					if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
+				} else {
+					var fields = [],
+					colNames = $("#"+$t.p.id).jqGrid("getGridParam","colNames"),
+					colModel = $("#"+$t.p.id).jqGrid("getGridParam","colModel"),
+					stempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],
+					j,pos,k,oprtr=[];
+					if (p.sopt !==null) {
+						k=0;
+						for(j=0;j<p.sopt.length;j++) {
+							if( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){
+								oprtr[k] = {op:p.sopt[j],text: p.odata[pos]};
+								k++;
+							}
+						}
+					} else {
+						for(j=0;j<stempl.length;j++) {
+							oprtr[j] = {op:stempl[j],text: p.odata[j]};
+						}
+					}
+					var searchable;
+				    $.each(colModel, function(i, v) {
+				        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,
+				        hidden = (v.hidden === true),
+						soptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),
+						ignoreHiding = (soptions.searchhidden === true);
+						if(typeof soptions.sopt !== 'undefined') { 
+							k=0;
+							soptions.ops =[];
+							if(soptions.sopt.length>0) {
+								for(j=0;j<soptions.sopt.length;j++) {
+									if( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){
+										soptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos]};
+										k++;
+									}
+								}
+							}
+						}
+						if(typeof(this.stype) === 'undefined') { this.stype='text'; }
+						if(this.stype == 'select') {
+							if ( soptions.dataUrl !== undefined) {}
+							else {
+								var eov;
+								if(soptions.value) {
+									eov = soptions.value;
+								} else if(this.editoptions) {
+									eov = this.editoptions.value;
+								}
+								if(eov) {
+									soptions.dataValues =[];
+									if(typeof(eov) === 'string') {
+										var so = eov.split(";"),sv;
+										for(j=0;j<so.length;j++) {
+											sv = so[j].split(":");
+											soptions.dataValues[j] ={value:sv[0],text:sv[1]};
+										}
+									} else if (typeof(eov) === 'object') {
+										j=0;
+										for (var key in eov) {
+											if(eov.hasOwnProperty(key)) {
+												soptions.dataValues[j] ={value:key,text:eov[key]};
+												j++;
+											}
+										}
+									}
+								}
+							}
+						}
+				        if ((ignoreHiding && searchable) || (searchable && !hidden)) {
+							fields.push(soptions);
+						}
+					});
+					if(fields.length>0){
+						$("<div id='"+fid+"' role='dialog' tabindex='-1'></div>").insertBefore("#gview_"+$t.p.id);
+						// Before we create searchFilter we need to decide if we want to get back a string or a JS object.
+						//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.
+						// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.
+						if (p.stringResult===undefined) {
+							// to provide backward compatibility, inferring stringResult value from multipleSearch
+							p.stringResult = p.multipleSearch;
+						}
+						// we preserve the return value here to retain access to .add() and other good methods of search form.
+						$t.SearchFilter = $("#"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });
+						$(".ui-widget-overlay","#"+fid).remove();
+						if($t.p.direction=="rtl") { $(".ui-closer","#"+fid).css("float","left"); }
+						if (p.drag===true) {
+							$("#"+fid+" table thead tr:first td:first").css('cursor','move');
+							if(jQuery.fn.jqDrag) {
+								$("#"+fid).jqDrag($("#"+fid+" table thead tr:first td:first"));
+							} else {
+								try {
+									$("#"+fid).draggable({handle: $("#"+fid+" table thead tr:first td:first")});
+								} catch (e) {}
+							}
+						}
+						if(p.multipleSearch === false) {
+							$(".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText", "#"+fid).hide();
+							$("select[name='groupOp']","#"+fid).hide();
+						}
+                        if (p.multipleSearch === true && p.loadDefaults === true) {
+                            applyDefaultFilters($t, p);
+                        }
+						if ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $("#"+fid) ); }
+						if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
+						showFilter();
+						if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
+						if(p.closeOnEscape===true){
+							$("#"+fid).keydown( function( e ) {
+								if( e.which == 27 ) {
+									hideFilter($("#"+fid));
+								}
+							});
+						}
+					}
+				}
+			}
+			function searchFilters(filters) {
+				var hasFilters = (filters !== undefined),
+				grid = $("#"+$t.p.id), sdata={};
+				if(p.multipleSearch===false) {
+					sdata[p.sField] = filters.rules[0].field;
+					sdata[p.sValue] = filters.rules[0].data;
+					sdata[p.sOper] = filters.rules[0].op;
+				} else {
+					sdata[p.sFilter] = filters;
+				}
+				grid[0].p.search = hasFilters;
+				$.extend(grid[0].p.postData,sdata);
+				grid.trigger("reloadGrid",[{page:1}]);
+				if(p.closeAfterSearch) { hideFilter($("#"+fid)); }
+			}
+			function resetFilters(filters) {
+				var hasFilters = (filters !== undefined),
+				grid = $("#"+$t.p.id), sdata=[];
+				grid[0].p.search = hasFilters;
+				if(p.multipleSearch===false) {
+					sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
+				} else {
+					sdata[p.sFilter] = "";
+				}
+				$.extend(grid[0].p.postData,sdata);
+				grid.trigger("reloadGrid",[{page:1}]);
+				if(p.closeAfterReset) { hideFilter($("#"+fid)); }
+			}
+			function hideFilter(selector) {
+				if(p.onClose){
+					var fclm = p.onClose(selector);
+					if(typeof fclm == 'boolean' && !fclm) { return; }
+				}
+				selector.hide();
+				if(p.overlay === true) {
+					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).hide();
+				}
+			}
+			function showFilter(){
+				var fl = $(".ui-searchFilter").length;
+				if(fl > 1) {
+					var zI = $("#"+fid).css("zIndex");
+					$("#"+fid).css({zIndex:parseInt(zI,10)+fl});
+				}
+				$("#"+fid).show();
+				if(p.overlay === true) {
+					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).show();
+				}
+				try{$(':input:visible',"#"+fid)[0].focus();}catch(_){}
+			}
+		});
+	},
+	editGridRow : function(rowid, p){
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 300,
+			height: 'auto',
+			dataheight: 'auto',
+			modal: false,
+			drag: true,
+			resize: true,
+			url: null,
+			mtype : "POST",
+			clearAfterAdd :true,
+			closeAfterEdit : false,
+			reloadAfterSubmit : true,
+			onInitializeForm: null,
+			beforeInitData: null,
+			beforeShowForm: null,
+			afterShowForm: null,
+			beforeSubmit: null,
+			afterSubmit: null,
+			onclickSubmit: null,
+			afterComplete: null,
+			onclickPgButtons : null,
+			afterclickPgButtons: null,
+			editData : {},
+			recreateForm : false,
+			jqModal : true,
+			closeOnEscape : false,
+			addedrow : "first",
+			topinfo : '',
+			bottominfo: '',
+			saveicon : [],
+			closeicon : [],
+			savekey: [false,13],
+			navkeys: [false,38,40],
+			checkOnSubmit : false,
+			checkOnUpdate : false,
+			_savedData : {},
+			processing : false,
+			onClose : null,
+			ajaxEditOptions : {},
+			serializeEditData : null,
+			viewPagerButtons : true
+		}, $.jgrid.edit, p || {});
+		rp_ge = p;
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid || !rowid) { return; }
+			var gID = $t.p.id,
+			frmgr = "FrmGrid_"+gID,frmtb = "TblGrid_"+gID,
+			IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},
+			onBeforeShow = $.isFunction(rp_ge.beforeShowForm) ? rp_ge.beforeShowForm : false,
+			onAfterShow = $.isFunction(rp_ge.afterShowForm) ? rp_ge.afterShowForm : false,
+			onBeforeInit = $.isFunction(rp_ge.beforeInitData) ? rp_ge.beforeInitData : false,
+			onInitializeForm = $.isFunction(rp_ge.onInitializeForm) ? rp_ge.onInitializeForm : false,
+			copydata = null,
+			maxCols = 1, maxRows=0,	gurl, postdata, ret, extpost, newData, diff;
+			if (rowid=="new") {
+				rowid = "_empty";
+				p.caption=p.addCaption;
+			} else {
+				p.caption=p.editCaption;
+			}
+			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
+				$("#"+IDs.themodal).remove();
+			}
+			var closeovrl = true;
+			if(p.checkOnUpdate && p.jqModal && !p.modal) {
+				closeovrl = false;
+			}
+			if ( $("#"+IDs.themodal).html() != null ) {
+				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
+				$("#FormError","#"+frmtb).hide();
+				if(rp_ge.topinfo) {
+					$(".topinfo","#"+frmtb+"_2").html(rp_ge.topinfo);
+					$(".tinfo","#"+frmtb+"_2").show();
+				} else {
+					$(".tinfo","#"+frmtb+"_2").hide();
+				}
+				if(rp_ge.bottominfo) {
+					$(".bottominfo","#"+frmtb+"_2").html(rp_ge.bottominfo);
+					$(".binfo","#"+frmtb+"_2").show();
+				} else {
+					$(".binfo","#"+frmtb+"_2").hide();
+				}
+				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
+				// filldata
+				fillData(rowid,$t,frmgr);
+				///
+				if(rowid=="_empty" || !rp_ge.viewPagerButtons) {
+					$("#pData, #nData","#"+frmtb+"_2").hide();
+				} else { 
+					$("#pData, #nData","#"+frmtb+"_2").show();
+				}
+				if(rp_ge.processing===true) {
+					rp_ge.processing=false;
+					$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
+				}
+				if($("#"+frmgr).data("disabled")===true) {
+					$(".confirm","#"+IDs.themodal).hide();
+					$("#"+frmgr).data("disabled",false);
+				}
+				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
+				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, closeoverlay: closeovrl, modal:p.modal});
+				if(!closeovrl) {
+					$(".jqmOverlay").click(function(){
+						if(!checkUpdates()) { return false; }
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
+			} else {
+				$($t.p.colModel).each( function(i) {
+					var fmto = this.formoptions;
+					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
+					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
+				});
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>").data("disabled",false),
+				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
+				$(frm).append(tbl);
+				flr = $("<tr id='FormError' style='display:none'><td class='ui-state-error' colspan='"+(maxCols*2)+"'></td></tr>");
+				flr[0].rp = 0;
+				$(tbl).append(flr);
+				//topinfo
+				flr = $("<tr style='display:none' class='tinfo'><td class='topinfo' colspan='"+(maxCols*2)+"'>"+rp_ge.topinfo+"</td></tr>");
+				flr[0].rp = 0;
+				$(tbl).append(flr);
+				// set the id.
+				// use carefull only to change here colproperties.
+				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
+				// create data
+				var rtlb = $t.p.direction == "rtl" ? true :false,
+				bp = rtlb ? "nData" : "pData",
+				bn = rtlb ? "pData" : "nData",
+				valref = createData(rowid,$t,tbl,maxCols),
+				// buttons at footer
+				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
+				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
+				bS  ="<a href='javascript:void(0)' id='sData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
+				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
+				var bt = "<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bS+bC+"</td></tr>";
+				bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge.bottominfo+"</td></tr>";
+				bt += "</tbody></table>";
+				if(maxRows >  0) {
+					var sd=[];
+					$.each($(tbl)[0].rows,function(i,r){
+						sd[i] = r;
+					});
+					sd.sort(function(a,b){
+						if(a.rp > b.rp) {return 1;}
+						if(a.rp < b.rp) {return -1;}
+						return 0;
+					});
+					$.each(sd, function(index, row) {
+						$('tbody',tbl).append(row);
+					});
+				}
+				p.gbox = "#gbox_"+gID;
+				var cle = false;
+				if(p.closeOnEscape===true){
+					p.closeOnEscape = false;
+					cle = true;
+				}
+				var tms = $("<span></span>").append(frm).append(bt);
+				createModal(IDs,tms,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				if(rtlb) {
+					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
+					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
+				}
+				if(rp_ge.topinfo) { $(".tinfo","#"+frmtb+"_2").show(); }
+				if(rp_ge.bottominfo) { $(".binfo","#"+frmtb+"_2").show(); } 
+				tms = null; bt=null;
+				$("#"+IDs.themodal).keydown( function( e ) {
+					var wkey = e.target;
+					if ($("#"+frmgr).data("disabled")===true ) { return false; }//??
+					if(rp_ge.savekey[0] === true && e.which == rp_ge.savekey[1]) { // save
+						if(wkey.tagName != "TEXTAREA") {
+							$("#sData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+					}
+					if(e.which === 27) {
+						if(!checkUpdates()) { return false; }
+						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge.onClose}); }
+						return false;
+					}
+					if(rp_ge.navkeys[0]===true) {
+						if($("#id_g","#"+frmtb).val() == "_empty") { return true; }
+						if(e.which == rp_ge.navkeys[1]){ //up
+							$("#pData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+						if(e.which == rp_ge.navkeys[2]){ //down
+							$("#nData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+					}
+				});
+				if(p.checkOnUpdate) {
+					$("a.ui-jqdialog-titlebar-close span","#"+IDs.themodal).removeClass("jqmClose");
+					$("a.ui-jqdialog-titlebar-close","#"+IDs.themodal).unbind("click")
+					.click(function(){
+						if(!checkUpdates()) { return false; }
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				p.saveicon = $.extend([true,"left","ui-icon-disk"],p.saveicon);
+				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
+				// beforeinitdata after creation of the form
+				if(p.saveicon[0]===true) {
+					$("#sData","#"+frmtb+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
+				}
+				if(p.closeicon[0]===true) {
+					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
+				}
+				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
+					bS  ="<a href='javascript:void(0)' id='sNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bYes+"</a>";
+					bN  ="<a href='javascript:void(0)' id='nNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bNo+"</a>";
+					bC  ="<a href='javascript:void(0)' id='cNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bExit+"</a>";
+					var ii, zI = p.zIndex  || 999; zI ++;
+					if ($.browser.msie && $.browser.version ==6) {
+						ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
+					} else { ii="";}
+					$("<div class='ui-widget-overlay jqgrid-overlay confirm' style='z-index:"+zI+";display:none;'>&#160;"+ii+"</div><div class='confirm ui-widget-content ui-jqconfirm' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>").insertAfter("#"+frmgr);
+					$("#sNew","#"+IDs.themodal).click(function(){
+						postIt();
+						$("#"+frmgr).data("disabled",false);
+						$(".confirm","#"+IDs.themodal).hide();
+						return false;
+					});
+					$("#nNew","#"+IDs.themodal).click(function(){
+						$(".confirm","#"+IDs.themodal).hide();
+						$("#"+frmgr).data("disabled",false);
+						setTimeout(function(){$(":input","#"+frmgr)[0].focus();},0);
+						return false;
+					});
+					$("#cNew","#"+IDs.themodal).click(function(){
+						$(".confirm","#"+IDs.themodal).hide();
+						$("#"+frmgr).data("disabled",false);
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				// here initform - only once
+				if(onInitializeForm) { onInitializeForm($("#"+frmgr)); }
+				if(rowid=="_empty" || !rp_ge.viewPagerButtons) { $("#pData,#nData","#"+frmtb+"_2").hide(); } else { $("#pData,#nData","#"+frmtb+"_2").show(); }
+				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
+				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,closeoverlay:closeovrl,modal:p.modal});
+				if(!closeovrl) {
+					$(".jqmOverlay").click(function(){
+						if(!checkUpdates()) { return false; }
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
+				$(".fm-button","#"+IDs.themodal).hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);
+				$("#sData", "#"+frmtb+"_2").click(function(e){
+					postdata = {}; extpost={};
+					$("#FormError","#"+frmtb).hide();
+					// all depend on ret array
+					//ret[0] - succes
+					//ret[1] - msg if not succes
+					//ret[2] - the id  that will be set if reload after submit false
+					getFormData();
+					if(postdata[$t.p.id+"_id"] == "_empty")	{ postIt(); }
+					else if(p.checkOnSubmit===true ) {
+						newData = $.extend({},postdata,extpost);
+						diff = compareData(newData,rp_ge._savedData);
+						if(diff) {
+							$("#"+frmgr).data("disabled",true);
+							$(".confirm","#"+IDs.themodal).show();
+						} else {
+							postIt();
+						}
+					} else {
+						postIt();
+					}
+					return false;
+				});
+				$("#cData", "#"+frmtb+"_2").click(function(e){
+					if(!checkUpdates()) { return false; }
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+					return false;
+				});
+				$("#nData", "#"+frmtb+"_2").click(function(e){
+					if(!checkUpdates()) { return false; }
+					$("#FormError","#"+frmtb).hide();
+					var npos = getCurrPos();
+					npos[0] = parseInt(npos[0],10);
+					if(npos[0] != -1 && npos[1][npos[0]+1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
+						}
+						fillData(npos[1][npos[0]+1],$t,frmgr);
+						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
+						}
+						updateNav(npos[0]+1,npos[1].length-1);
+					}
+					return false;
+				});
+				$("#pData", "#"+frmtb+"_2").click(function(e){
+					if(!checkUpdates()) { return false; }
+					$("#FormError","#"+frmtb).hide();
+					var ppos = getCurrPos();
+					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
+						}
+						fillData(ppos[1][ppos[0]-1],$t,frmgr);
+						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
+						}
+						updateNav(ppos[0]-1,ppos[1].length-1);
+					}
+					return false;
+				});
+			}
+			var posInit =getCurrPos();
+			updateNav(posInit[0],posInit[1].length-1);
+			function updateNav(cr,totr,rid){
+				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+			}
+			function getCurrPos() {
+				var rowsInGrid = $($t).jqGrid("getDataIDs"),
+				selrow = $("#id_g","#"+frmtb).val(),
+				pos = $.inArray(selrow,rowsInGrid);
+				return [pos,rowsInGrid];
+			}
+			function checkUpdates () {
+				var stat = true;
+				$("#FormError","#"+frmtb).hide();
+				if(rp_ge.checkOnUpdate) {
+					postdata = {}; extpost={};
+					getFormData();
+					newData = $.extend({},postdata,extpost);
+					diff = compareData(newData,rp_ge._savedData);
+					if(diff) {
+						$("#"+frmgr).data("disabled",true);
+						$(".confirm","#"+IDs.themodal).show();
+						stat = false;
+					}
+				}
+				return stat;
+			}
+			function getFormData(){
+				$(".FormElement", "#"+frmtb).each(function(i) {
+					var celm = $(".customelement", this);
+					if (celm.length) {
+						var  elem = celm[0], nm = elem.name;
+						$.each($t.p.colModel, function(i,n){
+							if(this.name == nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {
+								try {
+									postdata[nm] = this.editoptions.custom_value($("#"+nm,"#"+frmtb),'get');
+									if (postdata[nm] === undefined) { throw "e1"; }
+								} catch (e) {
+									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
+									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+								}
+								return true;
+							}
+						});
+					} else {
+					switch ($(this).get(0).type) {
+						case "checkbox":
+							if($(this).attr("checked")) {
+								postdata[this.name]= $(this).val();
+							}else {
+								var ofv = $(this).attr("offval");
+								postdata[this.name]= ofv;
+							}
+						break;
+						case "select-one":
+							postdata[this.name]= $("option:selected",this).val();
+							extpost[this.name]= $("option:selected",this).text();
+						break;
+						case "select-multiple":
+							postdata[this.name]= $(this).val();
+							if(postdata[this.name]) { postdata[this.name] = postdata[this.name].join(","); }
+							else { postdata[this.name] =""; }
+							var selectedText = [];
+							$("option:selected",this).each(
+								function(i,selected){
+									selectedText[i] = $(selected).text();
+								}
+							);
+							extpost[this.name]= selectedText.join(",");
+						break;								
+						case "password":
+						case "text":
+						case "textarea":
+						case "button":
+							postdata[this.name] = $(this).val();
+							
+						break;
+					}
+					if($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); }
+					}
+				});
+				return true;
+			}
+			function createData(rowid,obj,tb,maxcols){
+				var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,
+				tdtmpl = "<td class='CaptionTD ui-widget-content'>&#160;</td><td class='DataTD ui-widget-content' style='white-space:pre'>&#160;</td>", tmpl=""; //*2
+				for (var i =1;i<=maxcols;i++) {
+					tmpl += tdtmpl;
+				}
+				if(rowid != '_empty') {
+					ind = $(obj).jqGrid("getInd",rowid);
+				}
+				$(obj.p.colModel).each( function(i) {
+					nm = this.name;
+					// hidden fields are included in the form
+					if(this.editrules && this.editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = this.hidden === true ? true : false;
+					}
+					dc = hc ? "style='display:none'" : "";
+					if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {
+						if(ind === false) {
+							tmp = "";
+						} else {
+							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
+							} else {
+								try {
+									tmp =  $.unformat($("td:eq("+i+")",obj.rows[ind]),{rowId:rowid, colModel:this},i);
+								} catch (_) {
+									tmp = $("td:eq("+i+")",obj.rows[ind]).html();
+								}
+							}
+						}
+						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
+						frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),
+						rp = parseInt(frmopt.rowpos,10) || cnt+1,
+						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
+						if(rowid == "_empty" && opt.defaultValue ) {
+							tmp = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue; 
+						}
+						if(!this.edittype) { this.edittype = "text"; }
+						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+						elc = createEl(this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));
+						if(tmp == "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}
+						if(tmp == "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}
+						if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
+						$(elc).addClass("FormElement");
+						trdata = $(tb).find("tr[rowpos="+rp+"]");
+						if(frmopt.rowabove) {
+							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
+							$(tb).append(newdata);
+							newdata[0].rp = rp;
+						}
+						if ( trdata.length===0 ) {
+							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
+							$(trdata).append(tmpl);
+							$(tb).append(trdata);
+							trdata[0].rp = rp;
+						}
+						$("td:eq("+(cp-2)+")",trdata[0]).html( typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label);
+						$("td:eq("+(cp-1)+")",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);
+						retpos[cnt] = i;
+						cnt++;
+					}
+				});
+				if( cnt > 0) {
+					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>");
+					idrow[0].rp = cnt+999;
+					$(tb).append(idrow);
+					if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[obj.p.id+"_id"] = rowid; }
+				}
+				return retpos;
+			}
+			function fillData(rowid,obj,fmid){
+				var nm,cnt=0,tmp, fld,opt,vl,vlc;
+				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {rp_ge._savedData = {};rp_ge._savedData[obj.p.id+"_id"]=rowid;}
+				var cm = obj.p.colModel;
+				if(rowid == '_empty') {
+					$(cm).each(function(i){
+						nm = this.name;
+						opt = $.extend({}, this.editoptions || {} );
+						fld = $("#"+$.jgrid.jqID(nm),"#"+fmid);
+						if(fld[0] != null) {
+							vl = "";
+							if(opt.defaultValue ) {
+								vl = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;
+								if(fld[0].type=='checkbox') {
+									vlc = vl.toLowerCase();
+									if(vlc.search(/(false|0|no|off|undefined)/i)<0 && vlc!=="") {
+										fld[0].checked = true;
+										fld[0].defaultChecked = true;
+										fld[0].value = vl;
+									} else {
+										fld.attr({checked:"",defaultChecked:""});
+									}
+								} else {fld.val(vl); }
+							} else {
+								if( fld[0].type=='checkbox' ) {
+									fld[0].checked = false;
+									fld[0].defaultChecked = false;
+									vl = $(fld).attr("offval");
+								} else if (fld[0].type.substr(0,6)=='select') {
+									fld[0].selectedIndex = 0; 
+								} else {
+									fld.val(vl);
+								}
+							}
+							if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = vl; }
+						}
+					});
+					$("#id_g","#"+fmid).val(rowid);
+					return;
+				}
+				var tre = $(obj).jqGrid("getInd",rowid,true);
+				if(!tre) { return; }
+				$('td',tre).each( function(i) {
+					nm = cm[i].name;
+					// hidden fields are included in the form
+					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {
+						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+							tmp = $(this).text();
+						} else {
+							try {
+								tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
+							} catch (_) {
+								tmp = $(this).html();
+							}
+						}
+						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+						if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
+						nm = $.jgrid.jqID(nm);
+						switch (cm[i].edittype) {
+							case "password":
+							case "text":
+							case "button" :
+							case "image":
+								$("#"+nm,"#"+fmid).val(tmp);
+								break;
+							case "textarea":
+								if(tmp == "&nbsp;" || tmp == "&#160;" || (tmp.length==1 && tmp.charCodeAt(0)==160) ) {tmp='';}
+								$("#"+nm,"#"+fmid).val(tmp);
+								break;
+							case "select":
+								var opv = tmp.split(",");
+								opv = $.map(opv,function(n){return $.trim(n);});
+								$("#"+nm+" option","#"+fmid).each(function(j){
+									if (!cm[i].editoptions.multiple && (opv[0] == $.trim($(this).text()) || opv[0] == $.trim($(this).val())) ){
+										this.selected= true;
+									} else if (cm[i].editoptions.multiple){
+										if(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){
+											this.selected = true;
+										}else{
+											this.selected = false;
+										}
+									} else {
+										this.selected = false;
+									}
+								});
+								break;
+							case "checkbox":
+								tmp = tmp+"";
+								if(cm[i].editoptions && cm[i].editoptions.value) {
+									var cb = cm[i].editoptions.value.split(":");
+									if(cb[0] == tmp) {
+										$("#"+nm,"#"+fmid).attr("checked",true);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
+									} else {
+										$("#"+nm,"#"+fmid).attr("checked",false);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
+									}
+								} else {
+									tmp = tmp.toLowerCase();
+									if(tmp.search(/(false|0|no|off|undefined)/i)<0 && tmp!=="") {
+										$("#"+nm,"#"+fmid).attr("checked",true);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
+									} else {
+										$("#"+nm,"#"+fmid).attr("checked",false);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
+									}
+								}
+								break;
+							case 'custom' :
+								try {
+									if(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {
+										var dummy = cm[i].editoptions.custom_value($("#"+nm,"#"+fmid),'set',tmp);
+									} else { throw "e1"; }
+								} catch (e) {
+									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose);}
+									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+								}
+								break;
+						}
+						cnt++;
+					}
+				});
+				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
+			}
+			function postIt() {
+				var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper;
+				if($.isFunction(rp_ge.beforeCheckValues)) {
+					var retvals = rp_ge.beforeCheckValues(postdata,$("#"+frmgr),postdata[$t.p.id+"_id"] == "_empty" ? opers.addoper : opers.editoper);
+					if(retvals && typeof(retvals) === 'object') { postdata = retvals; }
+				}
+				for( var key in postdata ){
+					if(postdata.hasOwnProperty(key)) {
+						ret = checkValues(postdata[key],key,$t);
+						if(ret[0] === false) { break; }
+					}
+				}
+				if(ret[0]) {
+					if( $.isFunction( rp_ge.onclickSubmit)) { onCS = rp_ge.onclickSubmit(rp_ge,postdata) || {}; }
+					if( $.isFunction(rp_ge.beforeSubmit))  { ret = rp_ge.beforeSubmit(postdata,$("#"+frmgr)); }
+				}
+
+				if(ret[0] && !rp_ge.processing) {
+					rp_ge.processing = true;
+					$("#sData", "#"+frmtb+"_2").addClass('ui-state-active');
+					oper = opers.oper;
+					idname = opers.id;
+					// we add to pos data array the action - the name is oper
+					postdata[oper] = ($.trim(postdata[$t.p.id+"_id"]) == "_empty") ? opers.addoper : opers.editoper;
+					if(postdata[oper] != opers.addoper) {
+						postdata[idname] = postdata[$t.p.id+"_id"];
+					} else {
+						// check to see if we have allredy this field in the form and if yes lieve it
+						if( postdata[idname] === undefined ) { postdata[idname] = postdata[$t.p.id+"_id"]; }
+					}
+					delete postdata[$t.p.id+"_id"];
+					postdata = $.extend(postdata,rp_ge.editData,onCS);
+
+					var ajaxOptions = $.extend({
+						url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
+						type: rp_ge.mtype,
+						data: $.isFunction(rp_ge.serializeEditData) ? rp_ge.serializeEditData(postdata) :  postdata,
+						complete:function(data,Status){
+							if(Status != "success") {
+							    ret[0] = false;
+							    if ($.isFunction(rp_ge.errorTextFormat)) {
+							        ret[1] = rp_ge.errorTextFormat(data);
+							    } else {
+							        ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
+								}
+							} else {
+								// data is posted successful
+								// execute aftersubmit with the returned data from server
+								if( $.isFunction(rp_ge.afterSubmit) ) {
+									ret = rp_ge.afterSubmit(data,postdata);
+								}
+							}
+							if(ret[0] === false) {
+								$("#FormError>td","#"+frmtb).html(ret[1]);
+								$("#FormError","#"+frmtb).show();
+							} else {
+								// remove some values if formattaer select or checkbox
+								$.each($t.p.colModel, function(i,n){
+									if(extpost[this.name] && this.formatter && this.formatter=='select') {
+										try {delete extpost[this.name];} catch (e) {}
+									}
+								});
+								postdata = $.extend(postdata,extpost);
+								if($t.p.autoencode) {
+									$.each(postdata,function(n,v){
+										postdata[n] = $.jgrid.htmlDecode(v);
+									});
+								}
+								// the action is add
+								if(postdata[oper] == opers.addoper ) {
+									//id processing
+									// user not set the id ret[2]
+									if(!ret[2]) { ret[2] = parseInt($t.p.records,10)+1; }
+									postdata[idname] = ret[2];
+									if(rp_ge.closeAfterAdd) {
+										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
+										else {
+											$($t).jqGrid("addRowData",ret[2],postdata,p.addedrow);
+											$($t).jqGrid("setSelection",ret[2]);
+										}
+										hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+									} else if (rp_ge.clearAfterAdd) {
+										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
+										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
+										fillData("_empty",$t,frmgr);
+									} else {
+										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
+										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
+									}
+								} else {
+									// the action is update
+									if(rp_ge.reloadAfterSubmit) {
+										$($t).trigger("reloadGrid");
+										if( !rp_ge.closeAfterEdit ) { setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000); }
+									} else {
+										if($t.p.treeGrid === true) {
+											$($t).jqGrid("setTreeRow",postdata[idname],postdata);
+										} else {
+											$($t).jqGrid("setRowData",postdata[idname],postdata);
+										}
+									}
+									if(rp_ge.closeAfterEdit) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose}); }
+								}
+								if($.isFunction(rp_ge.afterComplete)) {
+									copydata = data;
+									setTimeout(function(){rp_ge.afterComplete(copydata,postdata,$("#"+frmgr));copydata=null;},500);
+								}
+							}
+							rp_ge.processing=false;
+							if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
+								$("#"+frmgr).data("disabled",false);
+								if(rp_ge._savedData[$t.p.id+"_id"] !="_empty"){
+									for(var key in rp_ge._savedData) {
+										if(postdata[key]) {
+											rp_ge._savedData[key] = postdata[key];
+										}
+									}
+								}
+							}
+							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
+							try{$(':input:visible',"#"+frmgr)[0].focus();} catch (e){}
+						},
+						error:function(xhr,st,err){
+							$("#FormError>td","#"+frmtb).html(st+ " : "+err);
+							$("#FormError","#"+frmtb).show();
+							rp_ge.processing=false;
+							$("#"+frmgr).data("disabled",false);
+							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
+						}
+					}, $.jgrid.ajaxOptions, rp_ge.ajaxEditOptions )
+					
+					if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
+						if ($.isFunction($t.p.dataProxy)) {
+							rp_ge['useDataProxy'] = true;
+						} else {
+							ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
+						}
+					}
+					if (ret[0]) { 
+						if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id) }
+						else { $.ajax(ajaxOptions) }
+					}
+				}
+				if(ret[0] === false) {
+					$("#FormError>td","#"+frmtb).html(ret[1]);
+					$("#FormError","#"+frmtb).show();
+					// return; 
+				}
+			}
+			function compareData(nObj, oObj ) {
+				var ret = false,key;
+				for (key in nObj) {
+					if(nObj[key] != oObj[key]) {
+						ret = true;
+						break;
+					}
+				}
+				return ret;
+			}
+		});
+	},
+	viewGridRow : function(rowid, p){
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 0,
+			height: 'auto',
+			dataheight: 'auto',
+			modal: false,
+			drag: true,
+			resize: true,
+			jqModal: true,
+			closeOnEscape : false,
+			labelswidth: '30%',
+			closeicon: [],
+			navkeys: [false,38,40],
+			onClose: null,
+			beforeShowForm : null,
+			viewPagerButtons : true
+		}, $.jgrid.view, p || {});
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid || !rowid) { return; }
+			if(!p.imgpath) { p.imgpath= $t.p.imgpath; }
+			// I hate to rewrite code, but ...
+			var gID = $t.p.id,
+			frmgr = "ViewGrid_"+gID , frmtb = "ViewTbl_"+gID,
+			IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},
+			maxCols = 1, maxRows=0;
+			if ( $("#"+IDs.themodal).html() != null ) {
+				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
+				$("#FormError","#"+frmtb).hide();
+				fillData(rowid,$t);
+				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, modal:p.modal});
+				focusaref();
+			} else {
+				$($t.p.colModel).each( function(i) {
+					var fmto = this.formoptions;
+					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
+					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
+				});
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>"),
+				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='1' cellpading='2' border='0' style='table-layout:fixed'><tbody></tbody></table>");
+				// set the id.
+				$(frm).append(tbl);
+				var valref = createData(rowid, $t, tbl, maxCols),
+				rtlb = $t.p.direction == "rtl" ? true :false,
+				bp = rtlb ? "nData" : "pData",
+				bn = rtlb ? "pData" : "nData",
+
+				// buttons at footer
+				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
+				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
+				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bClose+"</a>";
+				if(maxRows >  0) {
+					var sd=[];
+					$.each($(tbl)[0].rows,function(i,r){
+						sd[i] = r;
+					});
+					sd.sort(function(a,b){
+						if(a.rp > b.rp) {return 1;}
+						if(a.rp < b.rp) {return -1;}
+						return 0;
+					});
+					$.each(sd, function(index, row) {
+						$('tbody',tbl).append(row);
+					});
+				}
+				p.gbox = "#gbox_"+gID;
+				var cle = false;
+				if(p.closeOnEscape===true){
+					p.closeOnEscape = false;
+					cle = true;
+				}				
+				var bt = $("<span></span>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bC+"</td></tr></tbody></table>");
+				createModal(IDs,bt,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				if(rtlb) {
+					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
+					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
+				}
+				if(!p.viewPagerButtons) { $("#pData, #nData","#"+frmtb+"_2").hide(); }
+				bt = null;
+				$("#"+IDs.themodal).keydown( function( e ) {
+					if(e.which === 27) {
+						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose}); }
+						return false;
+					}
+					if(p.navkeys[0]===true) {
+						if(e.which === p.navkeys[1]){ //up
+							$("#pData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+						if(e.which === p.navkeys[2]){ //down
+							$("#nData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+					}
+				});
+				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
+				if(p.closeicon[0]===true) {
+					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
+				}
+				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, modal:p.modal});
+				$(".fm-button:not(.ui-state-disabled)","#"+frmtb+"_2").hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);
+				focusaref();
+				$("#cData", "#"+frmtb+"_2").click(function(e){
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
+					return false;
+				});
+				$("#nData", "#"+frmtb+"_2").click(function(e){
+					$("#FormError","#"+frmtb).hide();
+					var npos = getCurrPos();
+					npos[0] = parseInt(npos[0],10);
+					if(npos[0] != -1 && npos[1][npos[0]+1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
+						}
+						fillData(npos[1][npos[0]+1],$t);
+						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
+						}
+						updateNav(npos[0]+1,npos[1].length-1);
+					}
+					focusaref();
+					return false;
+				});
+				$("#pData", "#"+frmtb+"_2").click(function(e){
+					$("#FormError","#"+frmtb).hide();
+					var ppos = getCurrPos();
+					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
+						}
+						fillData(ppos[1][ppos[0]-1],$t);
+						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
+						}
+						updateNav(ppos[0]-1,ppos[1].length-1);
+					}
+					focusaref();
+					return false;
+				});
+			}
+			function focusaref(){ //Sfari 3 issues
+				if(p.closeOnEscape===true || p.navkeys[0]===true) {
+					setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
+				}
+			}
+			var posInit =getCurrPos();
+			updateNav(posInit[0],posInit[1].length-1);
+			function updateNav(cr,totr,rid){
+				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+			}
+			function getCurrPos() {
+				var rowsInGrid = $($t).jqGrid("getDataIDs"),
+				selrow = $("#id_g","#"+frmtb).val(),
+				pos = $.inArray(selrow,rowsInGrid);
+				return [pos,rowsInGrid];
+			}
+			function createData(rowid,obj,tb,maxcols){
+				var nm, hc,trdata, tdl, tde, cnt=0,tmp, dc, retpos=[], ind=false,
+				tdtmpl = "<td class='CaptionTD form-view-label ui-widget-content' width='"+p.labelswidth+"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset ui-widget-content'>&#160;</td>", tmpl="",
+				tdtmpl2 = "<td class='CaptionTD form-view-label ui-widget-content'>&#160;</td><td class='DataTD form-view-data ui-widget-content'>&#160;</td>",
+				fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;
+				for (var i =1;i<=maxcols;i++) {
+					tmpl += i == 1 ? tdtmpl : tdtmpl2;
+				}
+				// find max number align rigth with property formatter
+				$(obj.p.colModel).each( function(i) {
+					if(this.editrules && this.editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = this.hidden === true ? true : false;
+					}
+					if(!hc && this.align==='right') {
+						if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {
+							max1 = Math.max(max1,parseInt(this.width,10));
+						} else {
+							max2 = Math.max(max2,parseInt(this.width,10));
+						}
+					}
+				});
+				maxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;
+				ind = $(obj).jqGrid("getInd",rowid);
+				$(obj.p.colModel).each( function(i) {
+					nm = this.name;
+					setme = false;
+					// hidden fields are included in the form
+					if(this.editrules && this.editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = this.hidden === true ? true : false;
+					}
+					dc = hc ? "style='display:none'" : "";
+					viewfld = (typeof this.viewable != 'boolean') ? true : this.viewable;
+					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {
+						if(ind === false) {
+							tmp = "";
+						} else {
+							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
+							} else {
+								tmp = $("td:eq("+i+")",obj.rows[ind]).html();
+							}
+						}
+						setme = this.align === 'right' && maxw !==0 ? true : false;
+						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
+						frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),
+						rp = parseInt(frmopt.rowpos,10) || cnt+1,
+						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
+						if(frmopt.rowabove) {
+							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
+							$(tb).append(newdata);
+							newdata[0].rp = rp;
+						}
+						trdata = $(tb).find("tr[rowpos="+rp+"]");
+						if ( trdata.length===0 ) {
+							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm);
+							$(trdata).append(tmpl);
+							$(tb).append(trdata);
+							trdata[0].rp = rp;
+						}
+						$("td:eq("+(cp-2)+")",trdata[0]).html('<b>'+ (typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label)+'</b>');
+						$("td:eq("+(cp-1)+")",trdata[0]).append("<span>"+tmp+"</span>").attr("id","v_"+nm);
+						if(setme){
+							$("td:eq("+(cp-1)+") span",trdata[0]).css({'text-align':'right',width:maxw+"px"});
+						}
+						retpos[cnt] = i;
+						cnt++;
+					}
+				});
+				if( cnt > 0) {
+					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
+					idrow[0].rp = cnt+99;
+					$(tb).append(idrow);
+				}
+				return retpos;
+			}
+			function fillData(rowid,obj){
+				var nm, hc,cnt=0,tmp, opt,trv;
+				trv = $(obj).jqGrid("getInd",rowid,true);
+				if(!trv) { return; }
+				$('td',trv).each( function(i) {
+					nm = obj.p.colModel[i].name;
+					// hidden fields are included in the form
+					if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = obj.p.colModel[i].hidden === true ? true : false;
+					}
+					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {
+						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+							tmp = $(this).text();
+						} else {
+							tmp = $(this).html();
+						}
+						opt = $.extend({},obj.p.colModel[i].editoptions || {});
+						nm = $.jgrid.jqID("v_"+nm);
+						$("#"+nm+" span","#"+frmtb).html(tmp);
+						if (hc) { $("#"+nm,"#"+frmtb).parents("tr:first").hide(); }
+						cnt++;
+					}
+				});
+				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
+			}
+		});
+	},
+	delGridRow : function(rowids,p) {
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 240,
+			height: 'auto',
+			dataheight : 'auto',
+			modal: false,
+			drag: true,
+			resize: true,
+			url : '',
+			mtype : "POST",
+			reloadAfterSubmit: true,
+			beforeShowForm: null,
+			afterShowForm: null,
+			beforeSubmit: null,
+			onclickSubmit: null,
+			afterSubmit: null,
+			jqModal : true,
+			closeOnEscape : false,
+			delData: {},
+			delicon : [],
+			cancelicon : [],
+			onClose : null,
+			ajaxDelOptions : {},
+			processing : false,
+			serializeDelData : null,
+			useDataProxy : false
+		}, $.jgrid.del, p ||{});
+		rp_ge = p;
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid ) { return; }
+			if(!rowids) { return; }
+			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false,
+			onAfterShow = typeof p.afterShowForm === 'function' ? true: false,
+			gID = $t.p.id, onCS = {},
+			dtbl = "DelTbl_"+gID,postd, idname, opers, oper,
+			IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};
+			if (jQuery.isArray(rowids)) { rowids = rowids.join(); }
+			if ( $("#"+IDs.themodal).html() != null ) {
+				$("#DelData>td","#"+dtbl).text(rowids);
+				$("#DelError","#"+dtbl).hide();
+				if( rp_ge.processing === true) {
+					rp_ge.processing=false;
+					$("#dData", "#"+dtbl).removeClass('ui-state-active');
+				}
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,jqM: false, modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			} else {
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var tbl = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
+				tbl += "<table class='DelTable'><tbody>";
+				// error data 
+				tbl += "<tr id='DelError' style='display:none'><td class='ui-state-error'></td></tr>";
+				tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>";
+				tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+p.msg+"</td></tr><tr><td >&#160;</td></tr>";
+				// buttons at footer
+				tbl += "</tbody></table></div>";
+				var bS  = "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
+				bC  = "<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
+				tbl += "<table cellspacing='0' cellpadding='0' border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr><td class='DataTD ui-widget-content'></td></tr><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DelButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
+				p.gbox = "#gbox_"+gID;
+				createModal(IDs,tbl,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				$(".fm-button","#"+dtbl+"_2").hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);
+				p.delicon = $.extend([true,"left","ui-icon-scissors"],p.delicon);
+				p.cancelicon = $.extend([true,"left","ui-icon-cancel"],p.cancelicon);
+				if(p.delicon[0]===true) {
+					$("#dData","#"+dtbl+"_2").addClass(p.delicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.delicon[2]+"'></span>");
+				}
+				if(p.cancelicon[0]===true) {
+					$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.cancelicon[2]+"'></span>");
+				}				
+				$("#dData","#"+dtbl+"_2").click(function(e){
+					var ret=[true,""]; onCS = {};
+					var postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
+					if( typeof p.onclickSubmit === 'function' ) { onCS = p.onclickSubmit(rp_ge, postdata) || {}; }
+					if( typeof p.beforeSubmit === 'function' ) { ret = p.beforeSubmit(postdata); }
+					if(ret[0] && !rp_ge.processing) {
+						rp_ge.processing = true;
+						$(this).addClass('ui-state-active');
+						opers = $t.p.prmNames;
+						postd = $.extend({},rp_ge.delData, onCS);
+						oper = opers.oper;
+						postd[oper] = opers.deloper;
+						idname = opers.id;
+						postd[idname] = postdata;
+
+						var ajaxOptions = $.extend({
+							url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
+							type: p.mtype,
+							data: $.isFunction(p.serializeDelData) ? p.serializeDelData(postd) : postd,
+							complete:function(data,Status){
+								if(Status != "success") {
+									ret[0] = false;
+									if ($.isFunction(rp_ge.errorTextFormat)) {
+										ret[1] = rp_ge.errorTextFormat(data);
+									} else {
+										ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
+									}
+								} else {
+									// data is posted successful
+									// execute aftersubmit with the returned data from server
+									if( typeof rp_ge.afterSubmit === 'function' ) {
+										ret = rp_ge.afterSubmit(data,postd);
+									}
+								}
+								if(ret[0] === false) {
+									$("#DelError>td","#"+dtbl).html(ret[1]);
+									$("#DelError","#"+dtbl).show();
+								} else {
+									if(rp_ge.reloadAfterSubmit) {
+										$($t).trigger("reloadGrid");
+									} else {
+										var toarr = [];
+										toarr = postdata.split(",");
+										if($t.p.treeGrid===true){
+												try {$($t).jqGrid("delTreeNode",toarr[0]);} catch(e){}
+										} else {
+											for(var i=0;i<toarr.length;i++) {
+												$($t).jqGrid("delRowData",toarr[i]);
+											}
+										}
+										$t.p.selrow = null;
+										$t.p.selarrrow = [];
+									}
+									if($.isFunction(rp_ge.afterComplete)) {
+										setTimeout(function(){rp_ge.afterComplete(data,postdata);},500);
+									}
+								}
+								rp_ge.processing=false;
+								$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
+								if(ret[0]) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose}); }
+							},
+							error:function(xhr,st,err){
+								$("#DelError>td","#"+dtbl).html(st+ " : "+err);
+								$("#DelError","#"+dtbl).show();
+								rp_ge.processing=false;
+									$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
+							}
+						}, $.jgrid.ajaxOptions, p.ajaxDelOptions);
+
+
+						if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
+							if ($.isFunction($t.p.dataProxy)) {
+								rp_ge['useDataProxy'] = true;
+							} else {
+								ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
+							}
+						}
+						if (ret[0]) {
+							if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id) }
+							else { $.ajax(ajaxOptions) }
+						}
+					}
+
+					if(ret[0] === false) {
+						$("#DelError>td","#"+dtbl).html(ret[1]);
+						$("#DelError","#"+dtbl).show();
+					}
+					return false;
+				});
+				$("#eData", "#"+dtbl+"_2").click(function(e){
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
+					return false;
+				});
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			}
+			if(p.closeOnEscape===true) {
+				setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
+			}
+		});
+	},
+	navGrid : function (elem, o, pEdit,pAdd,pDel,pSearch, pView) {
+		o = $.extend({
+			edit: true,
+			editicon: "ui-icon-pencil",
+			add: true,
+			addicon:"ui-icon-plus",
+			del: true,
+			delicon:"ui-icon-trash",
+			search: true,
+			searchicon:"ui-icon-search",
+			refresh: true,
+			refreshicon:"ui-icon-refresh",
+			refreshstate: 'firstpage',
+			view: false,
+			viewicon : "ui-icon-document",
+			position : "left",
+			closeOnEscape : true,
+			beforeRefresh : null,
+			afterRefresh : null,
+			cloneToTop : false
+		}, $.jgrid.nav, o ||{});
+		return this.each(function() {       
+			var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'},
+			$t = this, vwidth, vheight, twd, tdw;
+			if(!$t.grid || typeof elem != 'string') { return; }
+			if ($("#"+alertIDs.themodal).html() === null) {
+				if (typeof window.innerWidth != 'undefined') {
+					vwidth = window.innerWidth;
+					vheight = window.innerHeight;
+				} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth !== 0) {
+					vwidth = document.documentElement.clientWidth;
+					vheight = document.documentElement.clientHeight;
+				} else {
+					vwidth=1024;
+					vheight=768;
+				}
+				createModal(alertIDs,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>",{gbox:"#gbox_"+$t.p.id,jqModal:true,drag:true,resize:true,caption:o.alertcap,top:vheight/2-25,left:vwidth/2-100,width:200,height:'auto',closeOnEscape:o.closeOnEscape},"","",true);
+			}
+			var clone = 1;
+			if(o.cloneToTop && $t.p.toppager) { clone = 2; }
+			for(var i = 0; i<clone; i++) {
+				var tbd,
+				navtbl = $("<table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table navtable' style='float:left;table-layout:auto;'><tbody><tr></tr></tbody></table>"),
+				sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
+				pgid, elemids;
+				if(i===0) {
+					pgid = elem;
+					elemids = $t.p.id;
+					if(pgid == $t.p.toppager) {
+						elemids += "_top";
+						clone = 1;
+					}
+				} else {
+					pgid = $t.p.toppager;
+					elemids = $t.p.id+"_top";
+				}
+				if($t.p.direction == "rtl") { $(navtbl).attr("dir","rtl").css("float","right"); }
+				if (o.add) {
+					pAdd = pAdd || {};
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.addicon+"'></span>"+o.addtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							if (typeof o.addfunc == 'function') {
+								o.addfunc();
+							} else {
+								$($t).jqGrid("editGridRow","new",pAdd);
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.edit) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pEdit = pEdit || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.editicon+"'></span>"+o.edittext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							var sr = $t.p.selrow;
+							if (sr) {
+								if(typeof o.editfunc == 'function') {
+									o.editfunc(sr);
+								} else {
+									$($t).jqGrid("editGridRow",sr,pEdit);
+								}
+							} else {
+								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
+								$("#jqg_alrt").focus();
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.view) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pView = pView || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.viewicon+"'></span>"+o.viewtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							var sr = $t.p.selrow;
+							if (sr) {
+								$($t).jqGrid("viewGridRow",sr,pView);
+							} else {
+								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
+								$("#jqg_alrt").focus();
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.del) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pDel = pDel || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.delicon+"'></span>"+o.deltext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							var dr;
+							if($t.p.multiselect) {
+								dr = $t.p.selarrrow;
+								if(dr.length===0) { dr = null; }
+							} else {
+								dr = $t.p.selrow;
+							}
+							if(dr){
+								if("function" == typeof o.delfunc){
+									o.delfunc(dr);
+								}else{
+									$($t).jqGrid("delGridRow",dr,pDel);
+								}
+							} else  {
+								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true}); $("#jqg_alrt").focus();
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if(o.add || o.edit || o.del || o.view) { $("tr",navtbl).append(sep); }
+				if (o.search) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pSearch = pSearch || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.searchicon+"'></span>"+o.searchtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							$($t).jqGrid("searchGrid",pSearch);
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.refresh) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.refreshicon+"'></span>"+o.refreshtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							if($.isFunction(o.beforeRefresh)) { o.beforeRefresh(); }
+							$t.p.search = false;
+							try {
+								var gID = $t.p.id;
+								$("#fbox_"+gID).searchFilter().reset();
+							    if($.isFunction($t.clearToolbar)) { $t.clearToolbar(false); }
+							} catch (e) {}
+							switch (o.refreshstate) {
+								case 'firstpage':
+								    $($t).trigger("reloadGrid", [{page:1}]);
+									break;
+								case 'current':
+								    $($t).trigger("reloadGrid", [{current:true}]);
+									break;
+							}
+							if($.isFunction(o.afterRefresh)) { o.afterRefresh(); }
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				tdw = $(".ui-jqgrid").css("font-size") || "11px";
+				$('body').append("<div id='testpg2' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
+				twd = $(navtbl).clone().appendTo("#testpg2").width();
+				$("#testpg2").remove();
+				$(pgid+"_"+o.position,pgid).append(navtbl);
+				if($t.p._nvtd) {
+					if(twd > $t.p._nvtd[0] ) {
+						$(pgid+"_"+o.position,pgid).width(twd);
+						$t.p._nvtd[0] = twd;
+					}
+					$t.p._nvtd[1] = twd;
+				}
+				tdw =null; twd=null; navtbl =null;
+			}
+		});
+	},
+	navButtonAdd : function (elem, p) {
+		p = $.extend({
+			caption : "newButton",
+			title: '',
+			buttonicon : 'ui-icon-newwin',
+			onClickButton: null,
+			position : "last",
+			cursor : 'pointer'
+		}, p ||{});
+		return this.each(function() {
+			if( !this.grid)  { return; }
+			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
+			var findnav = $(".navtable",elem)[0], $t = this;
+			if (findnav) {
+				var tbd = $("<td></td>");
+				if(p.buttonicon.toString().toUpperCase() == "NONE") {
+                    $(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'>"+p.caption+"</div>");
+				} else	{
+					$(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'><span class='ui-icon "+p.buttonicon+"'></span>"+p.caption+"</div>");
+				}
+				if(p.id) {$(tbd).attr("id",p.id);}
+				if(p.position=='first'){
+					if(findnav.rows[0].cells.length ===0 ) {
+						$("tr",findnav).append(tbd);
+					} else {
+						$("tr td:eq(0)",findnav).before(tbd);
+					}
+				} else {
+					$("tr",findnav).append(tbd);
+				}
+				$(tbd,findnav)
+				.attr("title",p.title  || "")
+				.click(function(e){
+					if (!$(this).hasClass('ui-state-disabled')) {
+						if ($.isFunction(p.onClickButton) ) { p.onClickButton.call($t,e); }
+					}
+					return false;
+				})
+				.hover(
+					function () {
+						if (!$(this).hasClass('ui-state-disabled')) {
+							$(this).addClass('ui-state-hover');
+						}
+					},
+					function () {$(this).removeClass("ui-state-hover");}
+				);
+			}
+		});
+	},
+	navSeparatorAdd:function (elem,p) {
+		p = $.extend({
+			sepclass : "ui-separator",
+			sepcontent: ''
+		}, p ||{});		
+		return this.each(function() {
+			if( !this.grid)  { return; }
+			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
+			var findnav = $(".navtable",elem)[0];
+			if(findnav) {
+				var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>";
+				$("tr",findnav).append(sep);
+			}
+		});
+	},
+	GridToForm : function( rowid, formid ) {
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid) { return; } 
+			var rowdata = $($t).jqGrid("getRowData",rowid);
+			if (rowdata) {
+				for(var i in rowdata) {
+					if ( $("[name="+i+"]",formid).is("input:radio") || $("[name="+i+"]",formid).is("input:checkbox"))  {
+						$("[name="+i+"]",formid).each( function() {
+							if( $(this).val() == rowdata[i] ) {
+								$(this).attr("checked","checked");
+							} else {
+								$(this).attr("checked","");
+							}
+						});
+					} else {
+					// this is very slow on big table and form.
+						$("[name="+i+"]",formid).val(rowdata[i]);
+					}
+				}
+			}
+		});
+	},
+	FormToGrid : function(rowid, formid, mode, position){
+		return this.each(function() {
+			var $t = this;
+			if(!$t.grid) { return; }
+			if(!mode) { mode = 'set'; }
+			if(!position) { position = 'first'; }
+			var fields = $(formid).serializeArray();
+			var griddata = {};
+			$.each(fields, function(i, field){
+				griddata[field.name] = field.value;
+			});
+			if(mode=='add') { $($t).jqGrid("addRowData",rowid,griddata, position); }
+			else if(mode=='set') { $($t).jqGrid("setRowData",rowid,griddata); }
+		});
+	}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js	(revision 178)
@@ -0,0 +1,2360 @@
+;(function ($) {
+/*
+ * jqGrid  3.6.5 - jQuery Grid
+ * Copyright (c) 2008, Tony Tomov, tony@trirand.com
+ * Dual licensed under the MIT and GPL licenses
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ * Date: 2010-05-05 
+ */
+$.jgrid = $.jgrid || {};
+$.extend($.jgrid,{
+	htmlDecode : function(value){
+		if(value=='&nbsp;' || value=='&#160;' || (value.length==1 && value.charCodeAt(0)==160)) { return "";}
+		return !value ? value : String(value).replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"');
+	},
+	htmlEncode : function (value){
+		return !value ? value : String(value).replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/\"/g, "&quot;");
+	},
+	format : function(format){ //jqgformat
+		var args = $.makeArray(arguments).slice(1);
+		if(format===undefined) { format = ""; }
+		return format.replace(/\{(\d+)\}/g, function(m, i){
+			return args[i];
+		});
+	},
+	getCellIndex : function (cell) {
+		cell = $(cell);
+		cell = (!cell.is('td') && !cell.is('th') ? cell.closest("td,th") : cell)[0];
+		if ($.browser.msie) { return $.inArray(cell, cell.parentNode.cells); }
+		return cell.cellIndex;
+	},
+	stripHtml : function(v) {
+		v = v+"";
+		var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
+		if (v) {
+			v = v.replace(regexp,"");
+			return (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\"/g,"'") : "";
+		} else {
+			return v;
+		}
+	},
+	stringToDoc : function (xmlString) {
+		var xmlDoc;
+		if(typeof xmlString !== 'string') { return xmlString; }
+		try	{
+			var parser = new DOMParser();
+			xmlDoc = parser.parseFromString(xmlString,"text/xml");
+		}
+		catch(e) {
+			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+			xmlDoc.async=false;
+			xmlDoc.loadXML(xmlString);
+		}
+		return (xmlDoc && xmlDoc.documentElement && xmlDoc.documentElement.tagName != 'parsererror') ? xmlDoc : null;
+	},
+	parse : function(jsonString) {
+		var js = jsonString;
+		if (js.substr(0,9) == "while(1);") { js = js.substr(9); }
+		if (js.substr(0,2) == "/*") { js = js.substr(2,js.length-4); }
+		if(!js) { js = "{}"; }
+		return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function') ?
+		    JSON.parse(js) :
+		    eval('(' + js + ')');
+	},
+	jqID : function(sid){
+		sid = sid + "";
+		return sid.replace(/([\.\:\[\]])/g,"\\$1");
+	},
+	ajaxOptions: {},
+	extend : function(methods) {
+		$.extend($.fn.jqGrid,methods);
+		if (!this.no_legacy_api) {
+			$.fn.extend(methods);
+		}
+	}
+});
+
+$.fn.jqGrid = function( pin ) {
+	if (typeof pin == 'string') {
+		var fn = $.fn.jqGrid[pin];
+		if (!fn) {
+			throw ("jqGrid - No such method: " + pin);
+		}
+		var args = $.makeArray(arguments).slice(1);
+		return fn.apply(this,args);
+	}
+	return this.each( function() {
+		if(this.grid) {return;}
+
+		var p = $.extend(true,{
+			url: "",
+			height: 150,
+			page: 1,
+			rowNum: 20,
+			records: 0,
+			pager: "",
+			pgbuttons: true,
+			pginput: true,
+			colModel: [],
+			rowList: [],
+			colNames: [],
+			sortorder: "asc",
+			sortname: "",
+			datatype: "xml",
+			mtype: "GET",
+			altRows: false,
+			selarrrow: [],
+			savedRow: [],
+			shrinkToFit: true,
+			xmlReader: {},
+			jsonReader: {},
+			subGrid: false,
+			subGridModel :[],
+			reccount: 0,
+			lastpage: 0,
+			lastsort: 0,
+			selrow: null,
+			beforeSelectRow: null,
+			onSelectRow: null,
+			onSortCol: null,
+			ondblClickRow: null,
+			onRightClickRow: null,
+			onPaging: null,
+			onSelectAll: null,
+			loadComplete: null,
+			gridComplete: null,
+			loadError: null,
+			loadBeforeSend: null,
+			afterInsertRow: null,
+			beforeRequest: null,
+			onHeaderClick: null,
+			viewrecords: false,
+			loadonce: false,
+			multiselect: false,
+			multikey: false,
+			editurl: null,
+			search: false,
+			caption: "",
+			hidegrid: true,
+			hiddengrid: false,
+			postData: {},
+			userData: {},
+			treeGrid : false,
+			treeGridModel : 'nested',
+			treeReader : {},
+			treeANode : -1,
+			ExpandColumn: null,
+			tree_root_level : 0,
+			prmNames: {page:"page",rows:"rows", sort: "sidx",order: "sord", search:"_search", nd:"nd", id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del", subgridid:"id", npage: null},
+			forceFit : false,
+			gridstate : "visible",
+			cellEdit: false,
+			cellsubmit: "remote",
+			nv:0,
+			loadui: "enable",
+			toolbar: [false,""],
+			scroll: false,
+			multiboxonly : false,
+			deselectAfterSort : true,
+			scrollrows : false,
+			autowidth: false,
+			scrollOffset :18,
+			cellLayout: 5,
+			subGridWidth: 20,
+			multiselectWidth: 20,
+			gridview: false,
+			rownumWidth: 25,
+			rownumbers : false,
+			pagerpos: 'center',
+			recordpos: 'right',
+			footerrow : false,
+			userDataOnFooter : false,
+			hoverrows : true,
+			altclass : 'ui-priority-secondary',
+			viewsortcols : [false,'vertical',true],
+			resizeclass : '',
+			autoencode : false,
+			remapColumns : [],
+			ajaxGridOptions :{},
+			direction : "ltr",
+			toppager: false,
+			headertitles: false,
+			scrollTimeout: 200
+		}, $.jgrid.defaults, pin || {});
+		var grid={
+			headers:[],
+			cols:[],
+			footers: [],
+			dragStart: function(i,x,y) {
+				this.resizing = { idx: i, startX: x.clientX, sOL : y[0]};
+				this.hDiv.style.cursor = "col-resize";
+				this.curGbox = $("#rs_m"+p.id,"#gbox_"+p.id);
+				this.curGbox.css({display:"block",left:y[0],top:y[1],height:y[2]});
+				if($.isFunction(p.resizeStart)) { p.resizeStart.call(this,x,i); }
+				document.onselectstart=function(){return false;};
+			},
+			dragMove: function(x) {
+				if(this.resizing) {
+					var diff = x.clientX-this.resizing.startX,
+					h = this.headers[this.resizing.idx],
+					newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn;
+					if(newWidth > 33) {
+						this.curGbox.css({left:this.resizing.sOL+diff});
+						if(p.forceFit===true ){
+							hn = this.headers[this.resizing.idx+p.nv];
+							nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff;
+							if(nWn >33) {
+								h.newWidth = newWidth;
+								hn.newWidth = nWn;
+							}
+						} else {
+							this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff;
+							h.newWidth = newWidth;
+						}
+					}
+				}
+			},
+			dragEnd: function() {
+				this.hDiv.style.cursor = "default";
+				if(this.resizing) {
+					var idx = this.resizing.idx,
+					nw = this.headers[idx].newWidth || this.headers[idx].width;
+					nw = parseInt(nw,10);
+					this.resizing = false;
+					$("#rs_m"+p.id).css("display","none");
+					p.colModel[idx].width = nw;
+					this.headers[idx].width = nw;
+					this.headers[idx].el.style.width = nw + "px";
+					if(this.cols.length>0) {this.cols[idx].style.width = nw+"px";}
+					if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";}
+					if(p.forceFit===true){
+						nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;
+						this.headers[idx+p.nv].width = nw;
+						this.headers[idx+p.nv].el.style.width = nw + "px";
+						if(this.cols.length>0) { this.cols[idx+p.nv].style.width = nw+"px"; }
+						if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";}
+						p.colModel[idx+p.nv].width = nw;
+					} else {
+						p.tblwidth = this.newWidth || p.tblwidth;
+						$('table:first',this.bDiv).css("width",p.tblwidth+"px");
+						$('table:first',this.hDiv).css("width",p.tblwidth+"px");
+						this.hDiv.scrollLeft = this.bDiv.scrollLeft;
+						if(p.footerrow) {
+							$('table:first',this.sDiv).css("width",p.tblwidth+"px");
+							this.sDiv.scrollLeft = this.bDiv.scrollLeft;
+						}
+					}
+					if($.isFunction(p.resizeStop)) { p.resizeStop.call(this,nw,idx); }
+				}
+				this.curGbox = null;
+				document.onselectstart=function(){return true;};
+			},
+			populateVisible: function() {
+				if (grid.timer) { clearTimeout(grid.timer); }
+				grid.timer = null;
+
+				var dh = $(grid.bDiv).height();
+				if (!dh) { return; }
+				var table = $("table:first", grid.bDiv);
+				var rows = $("> tbody > tr:visible:first", table);
+				var rh = rows.outerHeight() || grid.prevRowHeight;
+				if (!rh) { return; }
+				grid.prevRowHeight = rh;
+				var rn = p.rowNum;
+				var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;
+				var ttop = Math.round(table.position().top) - scrollTop;
+				var tbot = ttop + table.height();
+				var div = rh * rn;
+				var page, npage, empty;
+				// tbot < dh &&
+			    if (ttop <= 0 &&  
+                    (p.lastpage===undefined||parseInt((tbot + scrollTop + div - 1) / div,10) <= p.lastpage))
+                {
+					npage = parseInt((dh - tbot + div - 1) / div,10);
+					if (tbot >= 0 || npage < 2 || p.scroll === true) {
+						page = Math.round((tbot + scrollTop) / div) + 1;
+						ttop = -1;
+					} else {
+						ttop = 1;
+					}
+				}
+				if (ttop > 0) {
+					page = parseInt(scrollTop / div,10) + 1;
+					npage = parseInt((scrollTop + dh) / div,10) + 2 - page;
+					empty = true;
+				}
+				if (npage) {
+					if (p.lastpage && page > p.lastpage) {
+						return;
+					}
+					if (grid.hDiv.loading) {
+						grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
+					} else {
+						p.page = page;
+						if (empty) {
+							grid.selectionPreserver(table[0]);
+							grid.emptyRows(grid.bDiv,false);
+						}
+						grid.populate(npage);
+					}
+				}
+			},
+			scrollGrid: function() {
+				if(p.scroll) {
+					var scrollTop = grid.bDiv.scrollTop;
+					if (scrollTop != grid.scrollTop) {
+						grid.scrollTop = scrollTop;
+						if (grid.timer) { clearTimeout(grid.timer); }
+						grid.timer = setTimeout(grid.populateVisible, 200);
+					}
+				}
+				grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
+				if(p.footerrow) {
+					grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;
+				}
+			},
+			selectionPreserver : function(ts) {
+				var p = ts.p;
+				var sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;
+				var left = ts.grid.bDiv.scrollLeft;
+				var complete = p.gridComplete;
+				p.gridComplete = function() {
+					p.selrow = null;
+					p.selarrrow = [];
+					if(p.multiselect && sra && sra.length>0) {
+						for(var i=0;i<sra.length;i++){
+							if (sra[i] != sr) {
+								$(ts).jqGrid("setSelection",sra[i],false);
+							}
+						}
+					}
+					if (sr) {
+						$(ts).jqGrid("setSelection",sr,false);
+					}
+					ts.grid.bDiv.scrollLeft = left;
+					p.gridComplete = complete;
+					if (p.gridComplete) {
+						complete();
+					}
+				};
+			}
+		};
+		this.p = p ;
+		var i, dir,ts;
+		if(this.p.colNames.length === 0) {
+			for (i=0;i<this.p.colModel.length;i++){
+				this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;
+			}
+		}
+		if( this.p.colNames.length !== this.p.colModel.length ) {
+			alert($.jgrid.errors.model);
+			return;
+		}
+		var gv = $("<div class='ui-jqgrid-view'></div>"), ii,
+		isMSIE = $.browser.msie ? true:false,
+		isSafari = $.browser.safari ? true : false;
+		ts = this;
+		ts.p.direction = $.trim(ts.p.direction.toLowerCase());
+		if($.inArray(ts.p.direction,["ltr","rtl"]) == -1) { ts.p.direction = "ltr"; }
+		dir = ts.p.direction;
+
+		$(gv).insertBefore(this);
+		$(this).appendTo(gv).removeClass("scroll");
+		var eg = $("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");
+		$(eg).insertBefore(gv).attr({"id" : "gbox_"+this.id,"dir":dir});
+		$(gv).appendTo(eg).attr("id","gview_"+this.id);
+		if (isMSIE && $.browser.version <= 6) {
+			ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
+		} else { ii="";}
+		$("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(ii).insertBefore(gv);
+		$("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(gv);
+		$(this).attr({cellSpacing:"0",cellPadding:"0",border:"0","role":"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});
+		var sortkeys = ["shiftKey","altKey","ctrlKey"],
+		intNum = function(val,defval) {
+			val = parseInt(val,10);
+			if (isNaN(val)) { return defval ? defval : 0;}
+			else {return val;}
+		},
+		formatCol = function (pos, rowInd, tv){
+			var cm = ts.p.colModel[pos],
+			ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name;
+			if(ral) { result += "text-align:"+ral+";"; }
+			if(cm.hidden===true) { result += "display:none;"; }
+			if(rowInd===0) {
+				result += "width: "+grid.headers[pos].width+"px;";
+			}
+			result += "\"" + (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :"");
+			result += " aria-describedby=\""+ts.p.id+"_"+nm+"\"";
+			return result;
+		},
+		cellVal =  function (val) {
+			return val === undefined || val === null || val === "" ? "&#160;" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : val+"");
+		},
+		formatter = function (rowId, cellval , colpos, rwdat, _act){
+			var cm = ts.p.colModel[colpos],v;
+			if(typeof cm.formatter !== 'undefined') {
+				var opts= {rowId: rowId, colModel:cm, gid:ts.p.id };
+				if($.isFunction( cm.formatter ) ) {
+					v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
+				} else if($.fmatter){
+					v = $.fn.fmatter(cm.formatter, cellval,opts, rwdat, _act);
+				} else {
+					v = cellVal(cellval);
+				}
+			} else {
+				v = cellVal(cellval);
+			}
+			return v;
+		},
+		addCell = function(rowId,cell,pos,irow, srvr) {
+			var v,prp;
+			v = formatter(rowId,cell,pos,srvr,'add');
+			prp = formatCol( pos,irow, v);
+			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
+		},
+		addMulti = function(rowid,pos,irow){
+			var	v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\" name=\"jqg_"+rowid+"\"/>",
+			prp = formatCol(pos,irow,'');
+			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_cb\" "+prp+">"+v+"</td>";
+		},
+		addRowNum = function (pos,irow,pG,rN) {
+			var v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,
+			prp = formatCol(pos,irow,'');
+			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">"+v+"</td>";
+		},
+		reader = function (datatype) {
+			var field, f=[], j=0, i;
+			for(i =0; i<ts.p.colModel.length; i++){
+				field = ts.p.colModel[i];
+				if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {
+					f[j] = (datatype=="xml") ? field.xmlmap || field.name : field.jsonmap || field.name;
+					j++;
+				}
+			}
+			return f;
+		},
+		orderedCols = function (offset) {
+			var order = ts.p.remapColumns;
+			if (!order || !order.length) {
+				order = $.map(ts.p.colModel, function(v,i) { return i; });
+			}
+			if (offset) {
+				order = $.map(order, function(v) { return v<offset?null:v-offset; });
+			}
+			return order;
+		},
+		emptyRows = function (parent, scroll) {
+			if(ts.p.deepempty) { $("tbody:first tr", parent).remove(); }
+			else { $("tbody:first", parent).empty(); }
+			if (scroll && ts.p.scroll) {
+				$(">div:first", parent).css({height:"auto"}).children("div:first").css({height:0,display:"none"});
+				parent.scrollTop = 0;
+			}
+		},
+		getAccessor = function(obj, expr) {
+			var ret,p,prm, i;
+			if( typeof expr === 'function') { return expr(obj); }
+			ret = obj[expr];
+			if(ret===undefined) {
+			    if ( typeof expr === 'string' ) {
+					prm = expr.split('.');
+				}
+				try {
+					i = prm.length; 
+					if( i ) {
+						ret = obj;
+					    while (ret && i--) {
+							p = prm.shift();
+							ret = ret[p];
+						}
+					}
+				} catch (e) {}
+			}
+			return ret;
+		},
+		addXmlData = function (xml,t, rcnt, more, adjust) {
+			var startReq = new Date();
+			ts.p.reccount = 0;
+			if($.isXMLDoc(xml)) {
+				if(ts.p.treeANode===-1 && !ts.p.scroll) {
+					emptyRows(t,false);
+					rcnt=0;
+				} else { rcnt = rcnt > 0 ? rcnt :0; }
+			} else { return; }
+			var i,fpos,ir=0,v,row,gi=0,si=0,ni=0,idn, getId,f=[],F,rd ={}, rl= ts.rows.length, xmlr,rid, rowData=[],ari=0, cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1;
+			if(!ts.p.xmlReader.repeatitems) {f = reader("xml");}
+			if( ts.p.keyIndex===false) {
+				idn = ts.p.xmlReader.id;
+			} else {
+				idn = ts.p.keyIndex;
+			}
+			if(f.length>0 && !isNaN(idn)) {
+				if (ts.p.remapColumns && ts.p.remapColumns.length) {
+					idn = $.inArray(idn, ts.p.remapColumns);
+				}
+				idn=f[idn];
+			}
+			if( (idn+"").indexOf("[") === -1 ) {
+				if (f.length) {
+					getId = function( trow, k) {return $(idn,trow).text() || k;};
+				} else {
+					getId = function( trow, k) {return $(ts.p.xmlReader.cell,trow).eq(idn).text() || k;};
+				}
+			}
+			else {
+				getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;};
+			}
+			ts.p.userData = {};
+			$(ts.p.xmlReader.page,xml).each(function() {ts.p.page = this.textContent  || this.text || 0; });
+			$(ts.p.xmlReader.total,xml).each(function() {ts.p.lastpage = this.textContent  || this.text; if(ts.p.lastpage===undefined) { ts.p.lastpage=1; } }  );
+			$(ts.p.xmlReader.records,xml).each(function() {ts.p.records = this.textContent  || this.text  || 0; }  );
+			$(ts.p.xmlReader.userdata,xml).each(function() {ts.p.userData[this.getAttribute("name")]=this.textContent || this.text;});
+			var gxml = $(ts.p.xmlReader.root+" "+ts.p.xmlReader.row,xml),gl = gxml.length, j=0;
+			if(gxml && gl){
+			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1,altr;
+			if (adjust) { rn *= adjust+1; }
+			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
+			while (j<gl) {
+				xmlr = gxml[j];
+				rid = getId(xmlr,br+j);
+				altr = rcnt === 0 ? 0 : rcnt+1;
+				cn1 = (altr+j)%2 == 1 ? cn : '';
+				rowData[ari++] = "<tr id=\""+rid+"\" role=\"row\" class =\"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
+				if(ts.p.rownumbers===true) {
+					rowData[ari++] = addRowNum(0,j,ts.p.page,ts.p.rowNum);
+					ni=1;
+				}
+				if(ts.p.multiselect===true) {
+					rowData[ari++] = addMulti(rid,ni,j);
+					gi=1;
+				}
+				if (ts.p.subGrid===true) {
+					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,j+rcnt);
+					si= 1;
+				}
+				if(ts.p.xmlReader.repeatitems){
+					if (!F) { F=orderedCols(gi+si+ni); }
+					var cells = $(ts.p.xmlReader.cell,xmlr);
+					$.each(F, function (k) {
+						var cell = cells[this];
+						if (!cell) { return false; }
+						v = cell.textContent || cell.text;
+						rd[ts.p.colModel[k+gi+si+ni].name] = v;
+						rowData[ari++] = addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr);
+					});
+				} else {
+					for(i = 0; i < f.length;i++) {
+						v = $(f[i],xmlr).text();
+						rd[ts.p.colModel[i+gi+si+ni].name] = v;
+						rowData[ari++] = addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr);
+					}
+				}
+				rowData[ari++] = "</tr>";
+				if(ts.p.gridview === false ) {
+					if( ts.p.treeGrid === true) {
+						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
+						row = $(rowData.join(''))[0]; // speed overhead
+						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
+						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[j+fpos+rcnt]).after(row); }
+					} else {
+						$("tbody:first",t).append(rowData.join(''));
+					}
+					if (ts.p.subGrid===true) {
+						try {$(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
+					}
+					if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}
+					rowData=[];ari=0;
+				}
+				rd={};
+				ir++;
+				j++;
+				if(ir==rn) {break;}
+			}
+			}
+			if(ts.p.gridview === true) {
+				$("tbody:first",t).append(rowData.join(''));
+			}
+			ts.p.totaltime = new Date() - startReq;
+			if(ir>0) { ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=gl;} }
+			rowData =null;
+			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
+			ts.p.reccount=ir;
+			ts.p.treeANode = -1;
+			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
+			if (!more) { updatepager(false,true); }
+		},
+		addJSONData = function(data,t, rcnt, more, adjust) {
+			var startReq = new Date();
+			ts.p.reccount = 0;
+			if(data) {
+				if(ts.p.treeANode === -1 && !ts.p.scroll) {
+					emptyRows(t,false);
+					rcnt=0;
+				} else { rcnt = rcnt > 0 ? rcnt :0; }
+			} else { return; }
+			var ir=0,v,i,j,row,f=[],F,cur,gi=0,si=0,ni=0,len,drows,idn,rd={}, fpos,rl = ts.rows.length,idr,rowData=[],ari=0,cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1,lp;
+			ts.p.page = getAccessor(data,ts.p.jsonReader.page) || 0;
+			lp = getAccessor(data,ts.p.jsonReader.total);
+			ts.p.lastpage= lp === undefined ? 1 : lp;
+			ts.p.records= getAccessor(data,ts.p.jsonReader.records) || 0;
+			ts.p.userData = getAccessor(data,ts.p.jsonReader.userdata) || {};
+			if(!ts.p.jsonReader.repeatitems) {
+				F = f = reader("json");
+			}
+			if( ts.p.keyIndex===false ) {
+				idn = ts.p.jsonReader.id;
+			} else {
+				idn = ts.p.keyIndex;
+			}
+			if(f.length>0 && !isNaN(idn)) {
+				if (ts.p.remapColumns && ts.p.remapColumns.length) {
+					idn = $.inArray(idn, ts.p.remapColumns);
+				}
+				idn=f[idn];
+			}
+			drows = getAccessor(data,ts.p.jsonReader.root);
+			if (drows) {
+			len = drows.length; i=0;
+			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1, altr;
+			if (adjust) { rn *= adjust+1; }
+			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
+			while (i<len) {
+				cur = drows[i];
+				idr = getAccessor(cur,idn);
+				if(idr === undefined) {
+					idr = br+i;
+					if(f.length===0){
+						if(ts.p.jsonReader.cell){
+							var ccur = cur[ts.p.jsonReader.cell];
+							idr = ccur[idn] || idr;
+							ccur=null;
+						}
+					}
+				}
+				altr = rcnt === 0 ? 0 : rcnt+1;
+				cn1 = (altr+i)%2 == 1 ? cn : '';
+				rowData[ari++] = "<tr id=\""+ idr +"\" role=\"row\" class= \"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
+				if(ts.p.rownumbers===true) {
+					rowData[ari++] = addRowNum(0,i,ts.p.page,ts.p.rowNum);
+					ni=1;
+				}
+				if(ts.p.multiselect){
+					rowData[ari++] = addMulti(idr,ni,i);
+					gi = 1;
+				}
+				if (ts.p.subGrid) {
+					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,i+rcnt);
+					si= 1;
+				}
+				if (ts.p.jsonReader.repeatitems) {
+					if(ts.p.jsonReader.cell) {cur = getAccessor(cur,ts.p.jsonReader.cell);}
+					if (!F) { F=orderedCols(gi+si+ni); }
+				}
+				for (j=0;j<F.length;j++) {
+					v = getAccessor(cur,F[j]);
+					rowData[ari++] = addCell(idr,v,j+gi+si+ni,i+rcnt,cur);
+					rd[ts.p.colModel[j+gi+si+ni].name] = v;
+				}
+				rowData[ari++] = "</tr>";
+				if(ts.p.gridview === false ) {
+					if( ts.p.treeGrid === true) {
+						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
+						row = $(rowData.join(''))[0];
+						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
+						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[i+fpos+rcnt]).after(row); }
+					} else {
+						$("tbody:first",t).append(rowData.join(''));
+					}
+					if(ts.p.subGrid === true ) {
+						try { $(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
+					}
+					if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}
+					rowData=[];ari=0;
+				}
+				rd={};
+				ir++;
+				i++;
+				if(ir==rn) { break; }
+			}
+			if(ts.p.gridview === true ) {
+				$("tbody:first",t).append(rowData.join(''));
+			}
+			ts.p.totaltime = new Date() - startReq;
+			if(ir>0) {ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=len; } }
+			}
+			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
+			ts.p.reccount=ir;
+			ts.p.treeANode = -1;
+			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
+			if (!more) { updatepager(false,true); }
+		},
+		updatepager = function(rn, dnd) {
+			var cp, last, base, from,to,tot,fmt, pgboxes = "";
+			base = parseInt(ts.p.page,10)-1;
+			if(base < 0) { base = 0; }
+			base = base*parseInt(ts.p.rowNum,10);
+			to = base + ts.p.reccount;
+			if (ts.p.scroll) {
+				var rows = $("tbody:first > tr", ts.grid.bDiv);
+				base = to - rows.length;
+				var rh = rows.outerHeight();
+				if (rh) {
+					var top = base * rh;
+					var height = parseInt(ts.p.records,10) * rh;
+				    $(">div:first",ts.grid.bDiv).css({height : height}).children("div:first").css({height:top,display:top?"":"none"});
+				}
+			}
+			pgboxes = ts.p.pager ? ts.p.pager : "";
+			pgboxes += ts.p.toppager ?  (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : "";
+			if(pgboxes) {
+				fmt = $.jgrid.formatter.integer || {};
+				if (ts.p.loadonce) {
+					cp = last = 1;
+					ts.p.lastpage = ts.page =1;
+					$(".selbox",pgboxes).attr("disabled",true);
+				} else {
+					cp = intNum(ts.p.page);
+					last = intNum(ts.p.lastpage);
+					$(".selbox",pgboxes).attr("disabled",false);
+				}
+				if(ts.p.pginput===true) {
+					$('.ui-pg-input',pgboxes).val(ts.p.page);
+					$('#sp_1',pgboxes).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);
+					
+				}
+				if (ts.p.viewrecords){
+					if(ts.p.reccount === 0) {
+						$(".ui-paging-info",pgboxes).html(ts.p.emptyrecords);
+					} else {
+						from = base+1;
+						tot=ts.p.records;
+						if($.fmatter) {
+							from = $.fmatter.util.NumberFormat(from,fmt);
+							to = $.fmatter.util.NumberFormat(to,fmt);
+							tot = $.fmatter.util.NumberFormat(tot,fmt);
+						}
+						$(".ui-paging-info",pgboxes).html($.jgrid.format(ts.p.recordtext,from,to,tot));
+					}
+				}
+				if(ts.p.pgbuttons===true) {
+					if(cp<=0) {cp = last = 0;}
+					if(cp==1 || cp === 0) {
+						$("#first, #prev",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
+						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
+					} else {
+						$("#first, #prev",ts.p.pager).removeClass('ui-state-disabled');
+						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).removeClass('ui-state-disabled'); }
+					}
+					if(cp==last || cp === 0) {
+						$("#next, #last",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
+						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
+					} else {
+						$("#next, #last",ts.p.pager).removeClass('ui-state-disabled');
+						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).removeClass('ui-state-disabled'); }
+					}
+				}
+			}
+			if(rn===true && ts.p.rownumbers === true) {
+				$("td.jqgrid-rownum",ts.rows).each(function(i){
+					$(this).html(base+1+i);
+				});
+			}
+			if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}
+			if($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
+		},
+		populate = function (npage) {
+			if(!ts.grid.hDiv.loading) {
+				var pvis = ts.p.scroll && npage === false;
+				var prm = {}, dt, dstr, pN=ts.p.prmNames;
+				if(ts.p.page <=0) { ts.p.page = 1; }
+				if(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}
+				if(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}
+				if(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}
+				var lc = ts.p.loadComplete;
+				var lcf = $.isFunction(lc);
+				if (!lcf) { lc = null; }
+				var adjust = 0;
+				npage = npage || 1;
+				if (npage > 1) {
+					if(pN.npage !== null) {
+						prm[pN.npage] = npage;
+						adjust = npage - 1;
+						npage = 1;
+					} else {
+						lc = function(req) {
+							if (lcf) {
+								ts.p.loadComplete.call(ts,req);
+							}
+							ts.grid.hDiv.loading = false;
+							ts.p.page++;
+							populate(npage-1);
+						};
+					}
+				} else if (pN.npage !== null) {
+					delete ts.p.postData[pN.npage];
+				}
+				$.extend(ts.p.postData,prm);
+				var rcnt = !ts.p.scroll ? 0 : ts.rows.length-1; 
+				if ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id); return;}
+				else if($.isFunction(ts.p.beforeRequest)) {ts.p.beforeRequest.call(ts);}
+				dt = ts.p.datatype.toLowerCase();
+				switch(dt)
+				{
+				case "json":
+				case "jsonp":
+				case "xml":
+				case "script":
+					$.ajax($.extend({
+						url:ts.p.url,
+						type:ts.p.mtype,
+						dataType: dt ,
+						data: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,
+						success:function(req,st) {
+							if(dt === "xml") { addXmlData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
+							else { addJSONData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
+							if(lc) { lc.call(ts,req); }
+							if (pvis) { ts.grid.populateVisible(); }
+							if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
+							req=null;
+							endReq();
+						},
+						error:function(xhr,st,err){
+							if($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }
+							endReq();
+							xhr=null;
+						},
+						beforeSend: function(xhr){
+							beginReq();
+							if($.isFunction(ts.p.loadBeforeSend)) { ts.p.loadBeforeSend.call(ts,xhr); }
+						}
+					},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
+				break;
+				case "xmlstring":
+					beginReq();
+					dstr = $.jgrid.stringToDoc(ts.p.datastr);
+					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
+					addXmlData(dstr,ts.grid.bDiv);
+					ts.p.datatype = "local";
+					ts.p.datastr = null;
+					endReq();
+				break;
+				case "jsonstring":
+					beginReq();
+					if(typeof ts.p.datastr == 'string') { dstr = $.jgrid.parse(ts.p.datastr); }
+					else { dstr = ts.p.datastr; }
+					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
+					addJSONData(dstr,ts.grid.bDiv);
+					ts.p.datatype = "local";
+					ts.p.datastr = null;
+					endReq();
+				break;
+				case "local":
+				case "clientside":
+					beginReq();
+					ts.p.datatype = "local";
+					if(lcf) {ts.p.loadComplete.call(ts,"");}
+					sortArrayData();
+					updatepager(true,true);
+					endReq();
+				break;
+				}
+			}
+		},
+		beginReq = function() {
+			ts.grid.hDiv.loading = true;
+			if(ts.p.hiddengrid) { return;}
+			switch(ts.p.loadui) {
+				case "disable":
+					break;
+				case "enable":
+					$("#load_"+ts.p.id).show();
+					break;
+				case "block":
+					$("#lui_"+ts.p.id).show();
+					$("#load_"+ts.p.id).show();
+					break;
+			}
+		},
+		endReq = function() {
+			ts.grid.hDiv.loading = false;
+			switch(ts.p.loadui) {
+				case "disable":
+					break;
+				case "enable":
+					$("#load_"+ts.p.id).hide();
+					break;
+				case "block":
+					$("#lui_"+ts.p.id).hide();
+					$("#load_"+ts.p.id).hide();
+					break;
+			}
+		},
+		sortArrayData = function() {
+			var stripNum = /[\$,%]/g;
+			var rows=[], col=0, st, sv, findSortKey,newDir = (ts.p.sortorder == "asc") ? 1 :-1, reverse=false, cm;
+			$.each(ts.p.colModel,function(i,v){
+				if(this.index == ts.p.sortname || this.name == ts.p.sortname){
+					if(ts.p.lastsort == i) { reverse = true; }
+					col = i;
+					st = this.sorttype;
+					return false;
+				}
+			});
+			if (st == 'float' || st== 'number' || st== 'currency') {
+				findSortKey = function($cell) {
+					var key = parseFloat($cell.replace(stripNum, ''));
+					return isNaN(key) ? 0 : key;
+				};
+			} else if (st=='int' || st=='integer') {
+				findSortKey = function($cell) {
+					return intNum($cell.replace(stripNum, ''),0);
+				};
+			} else if(st == 'date' || st == 'datetime') {
+				findSortKey = function($cell) {
+					var fd = ts.p.colModel[col].datefmt || "Y-m-d";
+					return parseDate(fd,$cell).getTime();
+				};
+			} else if($.isFunction(st)) {
+				findSortKey = st;
+			} else {
+				findSortKey = function($cell) {
+					return $.trim($cell.toUpperCase());
+				};
+			}
+			cm = ts.p.colModel[col];
+			$.each(ts.rows, function(index, row) {
+				try { sv = $.unformat($(row).children('td').eq(col),{rowId:row.id, colModel:cm},col,true);}
+				catch (_) { sv = $(row).children('td').eq(col).text(); }
+				row.sortKey = findSortKey(sv);
+				rows[index] = this;
+			});
+			if(ts.p.treeGrid) {
+				$(ts).jqGrid("SortTree",newDir);
+			} else {
+				if(reverse) {
+					rows.reverse();
+				} else {
+					rows.sort(function(a, b) {
+						if (a.sortKey < b.sortKey) {return -newDir;}
+						if (a.sortKey > b.sortKey) {return newDir;}
+						return 0;
+					});
+				}
+				if(rows[0]){
+					$("td",rows[0]).each( function( k ) {
+						$(this).css("width",grid.headers[k].width+"px");
+					});
+					ts.grid.cols = rows[0].cells;
+				}
+				var cn = "";
+				if(ts.p.altRows) { cn = ts.p.altclass; }
+				$.each(rows, function(i, row) {
+					if(cn) {
+						if(i%2 ==1) {$(row).addClass(cn);}
+						else {$(row).removeClass(cn);}
+					}
+					$('tbody',ts.grid.bDiv).append(row);
+					row.sortKey = null;
+				});
+			}
+			ts.grid.bDiv.scrollTop = 0;
+		},
+		parseDate = function(format, date) {
+			var tsp = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0},k,hl,dM;
+			date = $.trim(date);
+			if(date){
+				date = date.split(/[\\\/:_;.\t\T\s-]/);
+				format = format.split(/[\\\/:_;.\t\T\s-]/);
+				var dfmt  = $.jgrid.formatter.date.monthNames;
+				var afmt  = $.jgrid.formatter.date.AmPm;
+				var h12to24 = function(ampm, h){
+					if (ampm === 0){ if (h == 12) { h = 0;} }
+					          else { if (h != 12) { h += 12; } }
+					return h;
+				}; 
+				for(k=0,hl=format.length;k<hl;k++){
+					if(format[k] == 'M') {
+						dM = $.inArray(date[k],dfmt);
+						if(dM !== -1 && dM < 12){date[k] = dM+1;}
+					}
+					if(format[k] == 'F') {
+						dM = $.inArray(date[k],dfmt);
+						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
+					}
+					if(format[k] == 'a') {
+						dM = $.inArray(date[k],afmt);
+						if(dM !== -1 && dM < 2 && date[k] == afmt[dM]){
+							date[k] = dM;
+							tsp.h = h12to24(date[k], tsp.h);
+						}
+					}
+					if(format[k] == 'A') {
+						dM = $.inArray(date[k],afmt);
+						if(dM !== -1 && dM > 1 && date[k] == afmt[dM]){
+							date[k] = dM-2;
+							tsp.h = h12to24(date[k], tsp.h);
+						}
+					}
+					tsp[format[k].toLowerCase()] = parseInt(date[k],10);
+				}
+				tsp.m = parseInt(tsp.m,10)-1;
+				var ty = tsp.y;
+				if (ty >= 70 && ty <= 99) {tsp.y = 1900+tsp.y;}
+				else if (ty >=0 && ty <=69) {tsp.y= 2000+tsp.y;}
+			}
+			return new Date(tsp.y, tsp.m, tsp.d, tsp.h, tsp.i, tsp.s,0);
+		},
+		setPager = function (pgid, tp){
+			var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
+			pginp = "",
+			pgl="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",
+			str="", pgcnt, lft, cent, rgt, twd, tdw, i,
+			clearVals = function(onpaging){
+				var ret;
+				if ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging); }
+				ts.p.selrow = null;
+				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
+				ts.p.savedRow = [];
+				if(ret=='stop') {return false;}
+				return true;
+			};
+			//pgid= $(ts.p.pager).attr("id") || 'pager',
+			pgid = pgid.substr(1);
+			pgcnt = "pg_"+pgid;
+			lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right";
+			$("#"+pgid)
+			.append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>")
+			.attr("dir","ltr"); //explicit setting
+			if(ts.p.rowList.length >0){
+				str = "<td dir='"+dir+"'>";
+				str +="<select class='ui-pg-selbox' role='listbox'>";
+				for(i=0;i<ts.p.rowList.length;i++){
+					str +="<option role='option' value='"+ts.p.rowList[i]+"'"+((ts.p.rowNum == ts.p.rowList[i])?' selected':'')+">"+ts.p.rowList[i]+"</option>";
+				}
+				str +="</select></td>";
+			}
+			if(dir=="rtl") { pgl += str; }
+			if(ts.p.pginput===true) { pginp= "<td dir='"+dir+"'>"+$.jgrid.format(ts.p.pgtext || "","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>","<span id='sp_1'></span>")+"</td>";}
+			if(ts.p.pgbuttons===true) {
+				var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp]; if(dir=="rtl") { po.reverse(); }
+				pgl += "<td id='"+po[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";
+				pgl += "<td id='"+po[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";
+				pgl += pginp !="" ? sep+pginp+sep:"";
+				pgl += "<td id='"+po[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";
+				pgl += "<td id='"+po[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>";
+			} else if (pginp !="") { pgl += pginp; }
+			if(dir=="ltr") { pgl += str; }
+			pgl += "</tr></tbody></table>";
+			if(ts.p.viewrecords===true) {$("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' style='text-align:"+ts.p.recordpos+"' class='ui-paging-info'></div>");}
+			$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl);
+			tdw = $(".ui-jqgrid").css("font-size") || "11px";
+			$('body').append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
+			twd = $(pgl).clone().appendTo("#testpg").width();
+			$("#testpg").remove();
+			if(twd > 0) {
+				if(pginp !="") { twd += 50; } //should be param
+				$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd);
+			}
+			ts.p._nvtd = [];
+			ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);
+			ts.p._nvtd[1] = 0;
+			pgl=null;
+			$('.ui-pg-selbox',"#"+pgcnt).bind('change',function() { 
+				ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;
+				ts.p.rowNum = this.value;
+				if(tp) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }
+				else if(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }
+				if(!clearVals('records')) { return false; }
+				populate();
+				return false;
+			});
+			if(ts.p.pgbuttons===true) {
+			$(".ui-pg-button","#"+pgcnt).hover(function(e){
+				if($(this).hasClass('ui-state-disabled')) {
+					this.style.cursor='default';
+				} else {
+					$(this).addClass('ui-state-hover');
+					this.style.cursor='pointer';
+				}
+			},function(e) {
+				if($(this).hasClass('ui-state-disabled')) {
+				} else {
+					$(this).removeClass('ui-state-hover');
+					this.style.cursor= "default";
+				}
+			});
+			$("#first"+tp+", #prev"+tp+", #next"+tp+", #last"+tp,"#"+pgid).click( function(e) {
+				var cp = intNum(ts.p.page,1),
+				last = intNum(ts.p.lastpage,1), selclick = false,
+				fp=true, pp=true, np=true,lp=true;
+				if(last ===0 || last===1) {fp=false;pp=false;np=false;lp=false; }
+				else if( last>1 && cp >=1) {
+					if( cp === 1) { fp=false; pp=false; } 
+					else if( cp>1 && cp <last){ }
+					else if( cp===last){ np=false;lp=false; }
+				} else if( last>1 && cp===0 ) { np=false;lp=false; cp=last-1;}
+				if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;} 
+				if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;} 
+				if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;} 
+				if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}
+				if(selclick) {
+					if(!clearVals(this.id)) { return false; }
+					populate();
+				}
+				return false;
+			});
+			}
+			if(ts.p.pginput===true) {
+			$('input.ui-pg-input',"#"+pgcnt).keypress( function(e) {
+				var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
+				if(key == 13) {
+					ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;
+					if(!clearVals('user')) { return false; }
+					populate();
+					return false;
+				}
+				return this;
+			});
+			}
+		},
+		sortData = function (index, idxcol,reload,sor){
+			if(!ts.p.colModel[idxcol].sortable) { return; }
+			var so;
+			if(ts.p.savedRow.length > 0) {return;}
+			if(!reload) {
+				if( ts.p.lastsort == idxcol ) {
+					if( ts.p.sortorder == 'asc') {
+						ts.p.sortorder = 'desc';
+					} else if(ts.p.sortorder == 'desc') { ts.p.sortorder = 'asc';}
+				} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }
+				ts.p.page = 1;
+			}
+			if(sor) {
+				if(ts.p.lastsort == idxcol && ts.p.sortorder == sor && !reload) { return; }
+				else { ts.p.sortorder = sor; }
+			}
+			var thd= $("thead:first",ts.grid.hDiv).get(0);
+			$("tr th:eq("+ts.p.lastsort+") span.ui-grid-ico-sort",thd).addClass('ui-state-disabled');
+			$("tr th:eq("+ts.p.lastsort+")",thd).attr("aria-selected","false");
+			$("tr th:eq("+idxcol+") span.ui-icon-"+ts.p.sortorder,thd).removeClass('ui-state-disabled');
+			$("tr th:eq("+idxcol+")",thd).attr("aria-selected","true");
+			if(!ts.p.viewsortcols[0]) {
+				if(ts.p.lastsort != idxcol) {
+					$("tr th:eq("+ts.p.lastsort+") span.s-ico",thd).hide();
+					$("tr th:eq("+idxcol+") span.s-ico",thd).show();
+				}
+			}
+			index = index.substring(5);
+			ts.p.sortname = ts.p.colModel[idxcol].index || index;
+			so = ts.p.sortorder;
+			if($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts,index,idxcol,so)=='stop') {ts.p.lastsort = idxcol; return;}}
+			if(ts.p.datatype == "local") {
+				if(ts.p.deselectAfterSort) {$(ts).jqGrid("resetSelection");}
+			} else {
+				ts.p.selrow = null;
+				if(ts.p.multiselect){$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
+				ts.p.selarrrow =[];
+				ts.p.savedRow =[];
+				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
+			}
+			if(ts.p.subGrid && ts.p.datatype=='local') {
+				$("td.sgexpanded","#"+ts.p.id).each(function(){
+					$(this).trigger("click");
+				});
+			}
+			populate();
+			ts.p.lastsort = idxcol;
+			if(ts.p.sortname != index && idxcol) {ts.p.lastsort = idxcol;}
+		},
+		setColWidth = function () {
+			var initwidth = 0, brd=ts.p.cellLayout, vc=0, lvc, scw=ts.p.scrollOffset,cw,hs=false,aw,tw=0,gw=0,
+			cl = 0, cr;
+			if (isSafari) { brd=0; }
+			$.each(ts.p.colModel, function(i) {
+				if(typeof this.hidden === 'undefined') {this.hidden=false;}
+				if(this.hidden===false){
+					initwidth += intNum(this.width,0);
+					if(this.fixed) {
+						tw += this.width;
+						gw += this.width+brd;
+					} else {
+						vc++;
+					}
+					cl++;
+				}
+			});
+			if(isNaN(ts.p.width)) {ts.p.width = grid.width = initwidth;}
+			else { grid.width = ts.p.width;}
+			ts.p.tblwidth = initwidth;
+			if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}
+			if(ts.p.shrinkToFit===true && vc > 0) {
+				aw = grid.width-brd*vc-gw;
+				if(isNaN(ts.p.height)) {
+				} else {
+					aw -= scw;
+					hs = true;
+				}
+				initwidth =0;
+				$.each(ts.p.colModel, function(i) {
+					if(this.hidden === false && !this.fixed){
+						cw = Math.round(aw*this.width/(ts.p.tblwidth-tw));
+						this.width =cw;
+						initwidth += cw;
+						lvc = i;
+					}
+				});
+				cr =0;
+				if (hs) {
+					if(grid.width-gw-(initwidth+brd*vc) !== scw){
+						cr = grid.width-gw-(initwidth+brd*vc)-scw;
+					}
+				} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {
+					cr = grid.width-gw-(initwidth+brd*vc);
+				}
+				ts.p.colModel[lvc].width += cr;
+				ts.p.tblwidth = initwidth+cr+tw+cl*brd;
+				if(ts.p.tblwidth > ts.p.width) {
+					ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));
+					ts.p.tblwidth = ts.p.width;
+				}
+			}
+		},
+		nextVisible= function(iCol) {
+			var ret = iCol, j=iCol, i;
+			for (i = iCol+1;i<ts.p.colModel.length;i++){
+				if(ts.p.colModel[i].hidden !== true ) {
+					j=i; break;
+				}
+			}
+			return j-ret;
+		},
+		getOffset = function (iCol) {
+			var i, ret = {}, brd1 = isSafari ? 0 : ts.p.cellLayout;
+			ret[0] =  ret[1] = ret[2] = 0;
+			for(i=0;i<=iCol;i++){
+				if(ts.p.colModel[i].hidden === false ) {
+					ret[0] += ts.p.colModel[i].width+brd1;
+				}
+			}
+			if(ts.p.direction=="rtl") { ret[0] = ts.p.width - ret[0]; }
+			ret[0] = ret[0] - ts.grid.bDiv.scrollLeft;
+			if($(ts.grid.cDiv).is(":visible")) {ret[1] += $(ts.grid.cDiv).height() +parseInt($(ts.grid.cDiv).css("padding-top"),10)+parseInt($(ts.grid.cDiv).css("padding-bottom"),10);}
+			if(ts.p.toolbar[0]===true && (ts.p.toolbar[1]=='top' || ts.p.toolbar[1]=='both')) {ret[1] += $(ts.grid.uDiv).height()+parseInt($(ts.grid.uDiv).css("border-top-width"),10)+parseInt($(ts.grid.uDiv).css("border-bottom-width"),10);}
+			if(ts.p.toppager) {ret[1] += $(ts.grid.topDiv).height()+parseInt($(ts.grid.topDiv).css("border-bottom-width"),10);}
+			ret[2] += $(ts.grid.bDiv).height() + $(ts.grid.hDiv).height();
+			return ret;
+		};
+		this.p.id = this.id;
+		if ($.inArray(ts.p.multikey,sortkeys) == -1 ) {ts.p.multikey = false;}
+		ts.p.keyIndex=false;
+		for (i=0; i<ts.p.colModel.length;i++) {
+			if (ts.p.colModel[i].key===true) {
+				ts.p.keyIndex = i;
+				break;
+			}
+		}
+		ts.p.sortorder = ts.p.sortorder.toLowerCase();
+		if(this.p.treeGrid === true) {
+			try { $(this).jqGrid("setTreeGrid");} catch (_) {}
+		}
+		if(this.p.subGrid) {
+			try { $(ts).jqGrid("setSubGrid");} catch (_){}
+		}
+		if(this.p.multiselect) {
+			this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");
+			this.p.colModel.unshift({name:'cb',width:isSafari ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
+		}
+		if(this.p.rownumbers) {
+			this.p.colNames.unshift("");
+			this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
+		}
+		ts.p.xmlReader = $.extend(true,{
+			root: "rows",
+			row: "row",
+			page: "rows>page",
+			total: "rows>total",
+			records : "rows>records",
+			repeatitems: true,
+			cell: "cell",
+			id: "[id]",
+			userdata: "userdata",
+			subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"}
+		}, ts.p.xmlReader);
+		ts.p.jsonReader = $.extend(true,{
+			root: "rows",
+			page: "page",
+			total: "total",
+			records: "records",
+			repeatitems: true,
+			cell: "cell",
+			id: "id",
+			userdata: "userdata",
+			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
+		},ts.p.jsonReader);
+		if(ts.p.scroll){
+			ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];
+		}
+		var thead = "<thead><tr class='ui-jqgrid-labels' role='rowheader'>",
+		tdc, idn, w, res, sort,
+		td, ptr, tbody, imgs,iac="",idc="";
+		if(ts.p.shrinkToFit===true && ts.p.forceFit===true) {
+			for (i=ts.p.colModel.length-1;i>=0;i--){
+				if(!ts.p.colModel[i].hidden) {
+					ts.p.colModel[i].resizable=false;
+					break;
+				}
+			}
+		}
+		if(ts.p.viewsortcols[1] == 'horizontal') {iac=" ui-i-asc";idc=" ui-i-desc";}
+		tdc = isMSIE ?  "class='ui-th-div-ie'" :"";
+		imgs = "<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+dir+"'></span>";
+		imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+dir+"'></span></span>";
+		for(i=0;i<this.p.colNames.length;i++){
+			var tooltip = ts.p.headertitles ? (" title=\""+$.jgrid.stripHtml(ts.p.colNames[i])+"\"") :"";
+			thead += "<th id='"+ts.p.id+"_"+ts.p.colModel[i].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+dir+"'"+ tooltip+">";
+			idn = ts.p.colModel[i].index || ts.p.colModel[i].name;
+			thead += "<div id='jqgh_"+ts.p.colModel[i].name+"' "+tdc+">"+ts.p.colNames[i];
+			if(!ts.p.colModel[i].width)  { ts.p.colModel[i].width = 150; }
+			else { ts.p.colModel[i].width = parseInt(ts.p.colModel[i].width,10); }
+			if(typeof(ts.p.colModel[i].title) !== "boolean") { ts.p.colModel[i].title = true; }
+			if (idn == ts.p.sortname) {
+				ts.p.lastsort = i;
+			} 
+			thead += imgs+"</div></th>";
+		}
+		thead += "</tr></thead>";
+		$(this).append(thead);
+		$("thead tr:first th",this).hover(function(){$(this).addClass('ui-state-hover');},function(){$(this).removeClass('ui-state-hover');});
+		if(this.p.multiselect) {
+			var emp=[], chk;
+			$('#cb_'+$.jgrid.jqID(ts.p.id),this).bind('click',function(){
+				if (this.checked) {
+					$("[id^=jqg_]",ts.rows).attr("checked",true);
+					$(ts.rows).each(function(i) {
+						if(!$(this).hasClass("subgrid")){
+						$(this).addClass("ui-state-highlight").attr("aria-selected","true");
+						ts.p.selarrrow[i]= ts.p.selrow = this.id; 
+						}
+					});
+					chk=true;
+					emp=[];
+				}
+				else {
+					$("[id^=jqg_]",ts.rows).attr("checked",false);
+					$(ts.rows).each(function(i) {
+						if(!$(this).hasClass("subgrid")){
+							$(this).removeClass("ui-state-highlight").attr("aria-selected","false");
+							emp[i] = this.id;
+						}
+					});
+					ts.p.selarrrow = []; ts.p.selrow = null;
+					chk=false;
+				}
+				if($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}
+			});
+		}
+		
+		if(ts.p.autowidth===true) {
+			var pw = $(eg).innerWidth();
+			ts.p.width = pw > 0?  pw: 'nw';
+		}
+		setColWidth();
+		$(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'>&#160;</div>");
+		$(gv).css("width",grid.width+"px");
+		thead = $("thead:first",ts).get(0);
+		var	tfoot = "<table role='grid' style='width:"+ts.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+dir+"'>";
+		var thr = $("tr:first",thead);
+		ts.p.disableClick=false;
+		$("th",thr).each(function ( j ) {
+			w = ts.p.colModel[j].width;
+			if(typeof ts.p.colModel[j].resizable === 'undefined') {ts.p.colModel[j].resizable = true;}
+			if(ts.p.colModel[j].resizable){
+				res = document.createElement("span");
+				$(res).html("&#160;").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir);
+				if(!$.browser.opera) { $(res).css("cursor","col-resize"); }
+				$(this).addClass(ts.p.resizeclass);
+			} else {
+				res = "";
+			}
+			$(this).css("width",w+"px").prepend(res);
+			if( ts.p.colModel[j].hidden ) { $(this).css("display","none"); }
+			grid.headers[j] = { width: w, el: this };
+			sort = ts.p.colModel[j].sortable;
+			if( typeof sort !== 'boolean') {ts.p.colModel[j].sortable =  true; sort=true;}
+			var nm = ts.p.colModel[j].name;
+			if( !(nm == 'cb' || nm=='subgrid' || nm=='rn') ) {
+				if(ts.p.viewsortcols[2]){
+					$("div",this).addClass('ui-jqgrid-sortable');
+				}
+			}
+			if(sort) {
+				if(ts.p.viewsortcols[0]) {$("div span.s-ico",this).show(); if(j==ts.p.lastsort){ $("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}}
+				else if( j == ts.p.lastsort) {$("div span.s-ico",this).show();$("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}
+			}
+			tfoot += "<td role='gridcell' "+formatCol(j,0,'')+">&#160;</td>";
+		}).mousedown(function(e) {
+			if ($(e.target).closest("th>span.ui-jqgrid-resize").length != 1) { return; }
+			var ci = $.jgrid.getCellIndex(this);
+			if(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}
+			grid.dragStart(ci, e, getOffset(ci));
+			return false;
+		}).click(function(e) {
+			if (ts.p.disableClick) {
+				ts.p.disableClick = false;
+				return false;
+			}
+			var s = "th>div.ui-jqgrid-sortable",r,d;
+			if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; }
+			var t = $(e.target).closest(s);
+			if (t.length != 1) { return; }
+			var ci = $.jgrid.getCellIndex(this);
+			if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); }
+			sortData($('div',this)[0].id,ci,r,d);
+			return false;
+		});
+		if (ts.p.sortable && $.fn.sortable) {
+			try {
+				$(ts).jqGrid("sortableColumns", thr);
+			} catch (e){}
+		}
+		tfoot += "</tr></tbody></table>";
+		
+		tbody = document.createElement("tbody");
+		this.appendChild(tbody);
+		$(this).addClass('ui-jqgrid-btable');
+		var hTable = $("<table class='ui-jqgrid-htable' style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(thead),
+		hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,
+		hb = $("<div class='ui-jqgrid-hbox" + (dir=="rtl" ? "-rtl" : "" )+"'></div>");
+		grid.hDiv = document.createElement("div");
+		$(grid.hDiv)
+			.css({ width: grid.width+"px"})
+			.addClass("ui-state-default ui-jqgrid-hdiv")
+			.append(hb);
+		$(hb).append(hTable);
+		if(hg) { $(grid.hDiv).hide(); }
+		if(ts.p.pager){
+			if(typeof ts.p.pager == "string") {if(ts.p.pager.substr(0,1) !="#") { ts.p.pager = "#"+ts.p.pager;} }
+			else { ts.p.pager = "#"+ $(ts.p.pager).attr("id");}
+			$(ts.p.pager).css({width: grid.width+"px"}).appendTo(eg).addClass('ui-state-default ui-jqgrid-pager ui-corner-bottom');
+			if(hg) {$(ts.p.pager).hide();}
+			setPager(ts.p.pager,'');
+		}
+		if( ts.p.cellEdit === false && ts.p.hoverrows === true) {
+		$(ts).bind('mouseover',function(e) {
+			ptr = $(e.target).closest("tr.jqgrow");
+			if($(ptr).attr("class") !== "subgrid") {
+				$(ptr).addClass("ui-state-hover");
+			}
+			return false;
+		}).bind('mouseout',function(e) {
+			ptr = $(e.target).closest("tr.jqgrow");
+			$(ptr).removeClass("ui-state-hover");
+			return false;
+		});
+		}
+		var ri,ci;
+		$(ts).before(grid.hDiv).click(function(e) {
+			td = e.target;
+			var scb = $(td).hasClass("cbox");
+			ptr = $(td,ts.rows).closest("tr.jqgrow");
+			if($(ptr).length === 0 ) {
+				return this;
+			}
+			var cSel = true;
+			if($.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts,ptr[0].id, e); }
+			if (td.tagName == 'A' || ((td.tagName == 'INPUT' || td.tagName == 'TEXTAREA' || td.tagName == 'OPTION' || td.tagName == 'SELECT' ) && !scb) ) { return this; }
+			if(cSel === true) {
+				if(ts.p.cellEdit === true) {
+					if(ts.p.multiselect && scb){
+						$(ts).jqGrid("setSelection",ptr[0].id,true);
+					} else {
+						ri = ptr[0].rowIndex;
+						ci = $.jgrid.getCellIndex(td);
+						try {$(ts).jqGrid("editCell",ri,ci,true);} catch (_) {}
+					}
+				} else if ( !ts.p.multikey ) {
+					if(ts.p.multiselect && ts.p.multiboxonly) {
+						if(scb){$(ts).jqGrid("setSelection",ptr[0].id,true);}
+						else {
+							$(ts.p.selarrrow).each(function(i,n){
+								var ind = ts.rows.namedItem(n);
+								$(ind).removeClass("ui-state-highlight");
+								$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
+							});
+							ts.p.selarrrow = [];
+							$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);
+							$(ts).jqGrid("setSelection",ptr[0].id,true);
+						}
+					} else {
+						$(ts).jqGrid("setSelection",ptr[0].id,true);
+					}
+				} else {
+					if(e[ts.p.multikey]) {
+						$(ts).jqGrid("setSelection",ptr[0].id,true);
+					} else if(ts.p.multiselect && scb) {
+						scb = $("[id^=jqg_]",ptr).attr("checked");
+						$("[id^=jqg_]",ptr).attr("checked",!scb);
+					}
+				}
+				if($.isFunction(ts.p.onCellSelect)) {
+					ri = ptr[0].id;
+					ci = $.jgrid.getCellIndex(td);
+					ts.p.onCellSelect.call(ts,ri,ci,$(td).html(),e);
+				}
+				e.stopPropagation();
+			} else {
+				return this;
+			}
+		}).bind('reloadGrid', function(e,opts) {
+			if(ts.p.treeGrid ===true) {	ts.p.datatype = ts.p.treedatatype;}
+			if (opts && opts.current) {
+				ts.grid.selectionPreserver(ts);
+			}
+			if(ts.p.datatype=="local"){ $(ts).jqGrid("resetSelection");}
+			else if(!ts.p.treeGrid) {
+				ts.p.selrow=null;
+				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
+				ts.p.savedRow = [];
+				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
+			}
+			if (opts && opts.page) {
+				var page = opts.page;
+				if (page > ts.p.lastpage) { page = ts.p.lastpage; }
+				if (page < 1) { page = 1; }
+				ts.p.page = page;
+				if (ts.grid.prevRowHeight) {
+					ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;
+				} else {
+					ts.grid.bDiv.scrollTop = 0;
+				}
+			}
+			if (ts.grid.prevRowHeight && ts.p.scroll) {
+                delete ts.p.lastpage;
+				ts.grid.populateVisible();
+			} else {
+				ts.grid.populate();
+			}
+			return false;
+		});
+		if( $.isFunction(this.p.ondblClickRow) ) {
+			$(this).dblclick(function(e) {
+				td = e.target;
+				ptr = $(td,ts.rows).closest("tr.jqgrow");
+				if($(ptr).length === 0 ){return false;}
+				ri = ptr[0].rowIndex;
+				ci = $.jgrid.getCellIndex(td);
+				ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
+				return false;
+			});
+		}
+		if ($.isFunction(this.p.onRightClickRow)) {
+			$(this).bind('contextmenu', function(e) {
+				td = e.target;
+				ptr = $(td,ts.rows).closest("tr.jqgrow");
+				if($(ptr).length === 0 ){return false;}
+				if(!ts.p.multiselect) {	$(ts).jqGrid("setSelection",ptr[0].id,true);	}
+				ri = ptr[0].rowIndex;
+				ci = $.jgrid.getCellIndex(td);
+				ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
+				return false;
+			});
+		}
+		grid.bDiv = document.createElement("div");
+		$(grid.bDiv)
+			.append($('<div style="position:relative;'+(isMSIE && $.browser.version < 8 ? "height:0.01%;" : "")+'"></div>').append('<div></div>').append(this))
+			.addClass("ui-jqgrid-bdiv")
+			.css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width)+"px"})
+			.scroll(grid.scrollGrid);
+		$("table:first",grid.bDiv).css({width:ts.p.tblwidth+"px"});
+		if( isMSIE ) {
+			if( $("tbody",this).size() == 2 ) { $("tbody:first",this).remove();}
+			if( ts.p.multikey) {$(grid.bDiv).bind("selectstart",function(){return false;});}
+		} else {
+			if( ts.p.multikey) {$(grid.bDiv).bind("mousedown",function(){return false;});}
+		}
+		if(hg) {$(grid.bDiv).hide();}
+		grid.cDiv = document.createElement("div");
+		var arf = ts.p.hidegrid===true ? $("<a role='link' href='javascript:void(0)'/>").addClass('ui-jqgrid-titlebar-close HeaderButton').hover(
+			function(){ arf.addClass('ui-state-hover');},
+			function() {arf.removeClass('ui-state-hover');})
+		.append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css((dir=="rtl"?"left":"right"),"0px") : "";
+		$(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title"+(dir=="rtl" ? "-rtl" :"" )+"'>"+ts.p.caption+"</span>")
+		.addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");
+		$(grid.cDiv).insertBefore(grid.hDiv);
+		if( ts.p.toolbar[0] ) {
+			grid.uDiv = document.createElement("div");
+			if(ts.p.toolbar[1] == "top") {$(grid.uDiv).insertBefore(grid.hDiv);}
+			else if (ts.p.toolbar[1]=="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);}
+			if(ts.p.toolbar[1]=="both") {
+				grid.ubDiv = document.createElement("div");
+				$(grid.uDiv).insertBefore(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
+				$(grid.ubDiv).insertAfter(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);
+				if(hg)  {$(grid.ubDiv).hide();}
+			} else {
+				$(grid.uDiv).width(grid.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
+			}
+			if(hg) {$(grid.uDiv).hide();}
+		}
+		if(ts.p.toppager) {
+			ts.p.toppager = ts.p.id+"_toppager";
+			grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0];
+			ts.p.toppager = "#"+ts.p.toppager;
+			$(grid.topDiv).insertBefore(grid.hDiv).addClass('ui-state-default ui-jqgrid-toppager').width(grid.width);
+			setPager(ts.p.toppager,'_t');
+		}
+		if(ts.p.footerrow) {
+			grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0];
+			hb = $("<div class='ui-jqgrid-hbox"+(dir=="rtl"?"-rtl":"")+"'></div>");
+			$(grid.sDiv).append(hb).insertAfter(grid.hDiv).width(grid.width);
+			$(hb).append(tfoot);
+			grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells;
+			if(ts.p.rownumbers) { grid.footers[0].className = 'ui-state-default jqgrid-rownum'; }
+			if(hg) {$(grid.sDiv).hide();}
+		}
+		if(ts.p.caption) {
+			var tdt = ts.p.datatype;
+			if(ts.p.hidegrid===true) {
+				$(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
+					var onHdCl = $.isFunction(ts.p.onHeaderClick);
+					if(ts.p.gridstate == 'visible') {
+						$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+ts.p.id).slideUp("fast");
+						if(ts.p.pager) {$(ts.p.pager).slideUp("fast");}
+						if(ts.p.toppager) {$(ts.p.toppager).slideUp("fast");}
+						if(ts.p.toolbar[0]===true) {
+							if( ts.p.toolbar[1]=='both') {
+								$(grid.ubDiv).slideUp("fast");
+							}
+							$(grid.uDiv).slideUp("fast");
+						}
+						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideUp("fast"); }
+						$("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
+						ts.p.gridstate = 'hidden';
+						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).hide(); }
+						if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
+					} else if(ts.p.gridstate == 'hidden'){
+						$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+ts.p.id).slideDown("fast");
+						if(ts.p.pager) {$(ts.p.pager).slideDown("fast");}
+						if(ts.p.toppager) {$(ts.p.toppager).slideDown("fast");}
+						if(ts.p.toolbar[0]===true) {
+							if( ts.p.toolbar[1]=='both') {
+								$(grid.ubDiv).slideDown("fast");
+							}
+							$(grid.uDiv).slideDown("fast");
+						}
+						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideDown("fast"); }
+						$("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
+						if(hg) {ts.p.datatype = tdt;populate();hg=false;}
+						ts.p.gridstate = 'visible';
+						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).show(); }
+						if(onHdCl) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}
+					}
+					return false;
+				});
+				if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");}
+			}
+		} else {$(grid.cDiv).hide();}
+		$(grid.hDiv).after(grid.bDiv)
+		.mousemove(function (e) {
+			if(grid.resizing){grid.dragMove(e);return false;}
+		});
+		$(".ui-jqgrid-labels",grid.hDiv).bind("selectstart", function () { return false; });
+		$(document).mouseup(function (e) {
+			if(grid.resizing) {	grid.dragEnd(); return false;}
+			return true;
+		});
+		this.updateColumns = function () {
+			var r = this.rows[0], self =this;
+			if(r) {
+				$("td",r).each( function( k ) {
+					$(this).css("width",self.grid.headers[k].width+"px");
+				});
+				this.grid.cols = r.cells;
+			}
+			return this;
+		};
+		ts.formatCol = formatCol;
+		ts.sortData = sortData;
+		ts.updatepager = updatepager;
+		ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};
+		$.extend(grid,{populate : populate, emptyRows: emptyRows});
+		this.grid = grid;
+		ts.addXmlData = function(d) {addXmlData(d,ts.grid.bDiv);};
+		ts.addJSONData = function(d) {addJSONData(d,ts.grid.bDiv);};
+		populate();ts.p.hiddengrid=false;
+		$(window).unload(function () {
+			ts = null;
+		});
+	});
+};
+$.jgrid.extend({
+	getGridParam : function(pName) {
+		var $t = this[0];
+		if (!$t.grid) {return;}
+		if (!pName) { return $t.p; }
+		else {return typeof($t.p[pName]) != "undefined" ? $t.p[pName] : null;}
+	},
+	setGridParam : function (newParams){
+		return this.each(function(){
+			if (this.grid && typeof(newParams) === 'object') {$.extend(true,this.p,newParams);}
+		});
+	},
+	getDataIDs : function () {
+		var ids=[], i=0, len;
+		this.each(function(){
+			len = this.rows.length;
+			if(len && len>0){
+				while(i<len) {
+					ids[i] = this.rows[i].id;
+					i++;
+				}
+			}
+		});
+		return ids;
+	},
+	setSelection : function(selection,onsr) {
+		return this.each(function(){
+			var $t = this, stat,pt, ner, ia, tpsr;
+			if(selection === undefined) { return; }
+			onsr = onsr === false ? false : true;
+			pt=$t.rows.namedItem(selection+"");
+			if(!pt) { return; }
+			function scrGrid(iR){
+				var ch = $($t.grid.bDiv)[0].clientHeight,
+				st = $($t.grid.bDiv)[0].scrollTop,
+				rpos = $t.rows[iR].offsetTop,
+				rh = $t.rows[iR].clientHeight;
+				if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }
+				else if(rpos < ch+st) {
+					if(rpos < st) {
+						$($t.grid.bDiv)[0].scrollTop = rpos;
+					}
+				}
+			}
+			if($t.p.scrollrows===true) {
+				ner = $t.rows.namedItem(selection).rowIndex;
+				if(ner >=0 ){
+					scrGrid(ner);
+				}
+			}
+			if(!$t.p.multiselect) {
+				if(pt.className !== "ui-subgrid") {
+				if( $t.p.selrow ) { $($t.rows.namedItem($t.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected","false"); }
+				$t.p.selrow = pt.id;
+				$(pt).addClass("ui-state-highlight").attr("aria-selected","true");
+				if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, true); }
+				}
+			} else {
+				$t.p.selrow = pt.id;
+				ia = $.inArray($t.p.selrow,$t.p.selarrrow);
+				if (  ia === -1 ){ 
+					if(pt.className !== "ui-subgrid") { $(pt).addClass("ui-state-highlight").attr("aria-selected","true");}
+					stat = true;
+					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
+					$t.p.selarrrow.push($t.p.selrow);
+					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
+				} else {
+					if(pt.className !== "ui-subgrid") { $(pt).removeClass("ui-state-highlight").attr("aria-selected","false");}
+					stat = false;
+					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
+					$t.p.selarrrow.splice(ia,1);
+					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
+					tpsr = $t.p.selarrrow[0];
+					$t.p.selrow = (tpsr === undefined) ? null : tpsr;
+				}
+			}
+		});
+	},
+	resetSelection : function(){
+		return this.each(function(){
+			var t = this, ind;
+			if(!t.p.multiselect) {
+				if(t.p.selrow) {
+					$("tr#"+$.jgrid.jqID(t.p.selrow),t.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");
+					t.p.selrow = null;
+				}
+			} else {
+				$(t.p.selarrrow).each(function(i,n){
+					ind = t.rows.namedItem(n);
+					$(ind).removeClass("ui-state-highlight").attr("aria-selected","false");
+					$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
+				});
+				$("#cb_"+$.jgrid.jqID(t.p.id),t.grid.hDiv).attr("checked",false);
+				t.p.selarrrow = [];
+			}
+			t.p.savedRow = [];
+		});
+	},
+	getRowData : function( rowid ) {
+		var res = {}, resall, getall=false, len, j=0;
+		this.each(function(){
+			var $t = this,nm,ind;
+			if(typeof(rowid) == 'undefined') {
+				getall = true;
+				resall = [];
+				len = $t.rows.length;
+			} else {
+				ind = $t.rows.namedItem(rowid);
+				if(!ind) { return res; }
+				len = 1;
+			}
+			while(j<len){
+				if(getall) { ind = $t.rows[j]; }
+				$('td',ind).each( function(i) {
+					nm = $t.p.colModel[i].name; 
+					if ( nm !== 'cb' && nm !== 'subgrid') {
+						if($t.p.treeGrid===true && nm == $t.p.ExpandColumn) {
+							res[nm] = $.jgrid.htmlDecode($("span:first",this).html());
+						} else {
+							try {
+								res[nm] = $.unformat(this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
+							} catch (e){
+								res[nm] = $.jgrid.htmlDecode($(this).html());
+							}
+						}
+					}
+				});
+				j++;
+				if(getall) { resall.push(res); res={}; }
+			}
+		});
+		return resall ? resall: res;
+	},
+	delRowData : function(rowid) {
+		var success = false, rowInd, ia, ri;
+		this.each(function() {
+			var $t = this;
+			rowInd = $t.rows.namedItem(rowid);
+			if(!rowInd) {return false;}
+			else {
+				ri = rowInd.rowIndex;
+				$(rowInd).remove();
+				$t.p.records--;
+				$t.p.reccount--;
+				$t.updatepager(true,false);
+				success=true;
+				if($t.p.multiselect) {
+					ia = $.inArray(rowid,$t.p.selarrrow);
+					if(ia != -1) { $t.p.selarrrow.splice(ia,1);}
+				}  
+				if(rowid == $t.p.selrow) {$t.p.selrow=null;}
+			}
+			if( ri === 0 && success ) {
+				$t.updateColumns();
+			}
+			if( $t.p.altRows === true && success ) {
+				var cn = $t.p.altclass;
+				$($t.rows).each(function(i){
+					if(i % 2 ==1) { $(this).addClass(cn); }
+					else { $(this).removeClass(cn); }
+				});
+			}
+		});
+		return success;
+	},
+	setRowData : function(rowid, data, cssp) {
+		var nm, success=false, title;
+		this.each(function(){
+			var t = this, vl, ind, cp = typeof cssp;
+			if(!t.grid) {return false;}
+			ind = t.rows.namedItem(rowid);
+			if(!ind) { return false; }
+			if( data ) {
+				$(this.p.colModel).each(function(i){
+					nm = this.name;
+					if( data[nm] !== undefined) {
+						vl = t.formatter( rowid, data[nm], i, data, 'edit');
+						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
+						if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
+							$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
+						} else {
+							$("td:eq("+i+")",ind).html(vl).attr(title); 
+						}
+						success = true;
+					}
+				});
+			}
+			if(cp === 'string') {$(ind).addClass(cssp);} else if(cp === 'object') {$(ind).css(cssp);}
+		});
+		return success;
+	},
+	addRowData : function(rowid,rdata,pos,src) {
+		if(!pos) {pos = "last";}
+		var success = false, nm, row, gi, si, ni,sind, i, v, prp="", aradd, cnm, cn, data;
+		if(rdata) {
+			if($.isArray(rdata)) {
+				aradd=true;
+				pos = "last";
+				cnm = rowid;
+			} else {
+				rdata = [rdata];
+				aradd = false;
+			}
+			this.each(function() {
+				var t = this, datalen = rdata.length;
+				ni = t.p.rownumbers===true ? 1 :0;
+				gi = t.p.multiselect ===true ? 1 :0;
+				si = t.p.subGrid===true ? 1 :0;
+				if(!aradd) {
+					if(typeof(rowid) != 'undefined') { rowid = rowid+"";}
+					else {
+						rowid = (t.p.records+1)+"";
+						if(t.p.keyIndex !== false) {
+							cnm = t.p.colModel[t.p.keyIndex+gi+si+ni].name;
+							if(typeof rdata[0][cnm] != "undefined") { rowid = rdata[0][cnm]; }
+						}
+					}
+				}
+				cn = t.p.altclass;
+				var k = 0, cna ="",
+				air = $.isFunction(t.p.afterInsertRow) ? true : false;
+				while(k < datalen) {
+					data = rdata[k];
+					row="";
+					if(aradd) {
+						try {rowid = data[cnm];}
+						catch (e) {rowid = t.p.records+1;}
+						cna = t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? cn : "" : "";
+					}
+					if(ni){
+						prp = t.formatCol(ni,1,'');
+						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">0</td>";
+					}
+					if(gi) {
+						v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\"/>";
+						prp = t.formatCol(ni,1,'');
+						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_cb\" "+prp+">"+v+"</td>";
+					}
+					if(si) {
+						row += $(t).jqGrid("addSubGridCell",gi+ni,1);
+					}
+					for(i = gi+si+ni; i < this.p.colModel.length;i++){
+						nm = this.p.colModel[i].name;
+						v = t.formatter( rowid, data[nm], i, data, 'add');
+						prp = t.formatCol(i,1,v);
+						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_"+nm+"\" "+prp+">"+v+"</td>";
+					}
+					row = "<tr id=\""+rowid+"\" role=\"row\" class=\"ui-widget-content jqgrow ui-row-"+t.p.direction+" "+cna+"\">" + row+"</tr>";
+					if(t.p.subGrid===true) {
+						row = $(row)[0]; 
+						$(t).jqGrid("addSubGrid",row,gi+ni);
+					}
+					if(t.rows.length === 0){
+						$("table:first",t.grid.bDiv).append(row);
+					} else {
+					switch (pos) {
+						case 'last':
+							$(t.rows[t.rows.length-1]).after(row);
+							break;
+						case 'first':
+							$(t.rows[0]).before(row);
+							break;
+						case 'after':
+							sind = t.rows.namedItem(src);
+							if (sind) {
+								if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }
+								else { $(sind).after(row); }
+							}
+							break;
+						case 'before':
+							sind = t.rows.namedItem(src);
+							if(sind) {$(sind).before(row);sind=sind.rowIndex;}
+							break;
+					}
+					}
+					t.p.records++;
+					t.p.reccount++;
+					if(!t.grid.cols || !t.grid.cols.length) { t.grid.cols = t.rows[0].cells; }
+					if(pos==='first' || (pos==='before' && sind <= 1) ||  t.rows.length === 1 ){
+						t.updateColumns();
+					}
+					if(air) { t.p.afterInsertRow.call(t,rowid,data,data); }
+					k++;
+				}
+				if( t.p.altRows === true && !aradd) {
+					if (pos == "last") {
+						if ((t.rows.length-1)%2 == 1)  {$(t.rows[t.rows.length-1]).addClass(cn);}
+					} else {
+						$(t.rows).each(function(i){
+							if(i % 2 ==1) { $(this).addClass(cn); }
+							else { $(this).removeClass(cn); }
+						});
+					}
+				}
+				t.updatepager(true,true);
+				success = true;
+			});
+		}
+		return success;
+	},
+	footerData : function(action,data, format) {
+		var nm, success=false, res={}, title;
+		function isEmpty(obj) {
+			for(var i in obj) {
+				if (obj.hasOwnProperty(i)) { return false; }
+			}
+			return true;
+		}
+		if(typeof(action) == "undefined") { action = "get"; }
+		if(typeof(format) != "boolean") { format  = true; }
+		action = action.toLowerCase();
+		this.each(function(){
+			var t = this, vl;
+			if(!t.grid || !t.p.footerrow) {return false;}
+			if(action == "set") { if(isEmpty(data)) { return false; } }
+			success=true;
+			$(this.p.colModel).each(function(i){
+				nm = this.name;
+				if(action == "set") {
+					if( data[nm] !== undefined) {
+						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
+						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
+						$("tr.footrow td:eq("+i+")",t.grid.sDiv).html(vl).attr(title); 
+						success = true;
+					}
+				} else if(action == "get") {
+					res[nm] = $("tr.footrow td:eq("+i+")",t.grid.sDiv).html();
+				}
+			});
+		});
+		return action == "get" ? res : success;
+	},
+	ShowHideCol : function(colname,show) {
+		return this.each(function() {
+			var $t = this, fndh=false;
+			if (!$t.grid ) {return;}
+			if( typeof colname === 'string') {colname=[colname];}
+			show = show !="none" ? "" : "none";
+			var sw = show == "" ? true :false;
+			$(this.p.colModel).each(function(i) {
+				if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {
+					$("tr",$t.grid.hDiv).each(function(){
+						$("th:eq("+i+")",this).css("display",show);
+					});
+					$($t.rows).each(function(j){
+						$("td:eq("+i+")",$t.rows[j]).css("display",show);
+					});
+					if($t.p.footerrow) { $("td:eq("+i+")",$t.grid.sDiv).css("display", show); }
+					if(show == "none") { $t.p.tblwidth -= this.width;} else {$t.p.tblwidth += this.width;}
+					this.hidden = !sw;
+					fndh=true;
+				}
+			});
+			if(fndh===true) {
+				$("table:first",$t.grid.hDiv).width($t.p.tblwidth);
+				$("table:first",$t.grid.bDiv).width($t.p.tblwidth);
+				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
+				if($t.p.footerrow) {
+					$("table:first",$t.grid.sDiv).width($t.p.tblwidth);
+					$t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
+				}
+			}
+		});
+	},
+	hideCol : function (colname) {
+		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"none");});
+	},
+	showCol : function(colname) {
+		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"");});
+	},
+	remapColumns : function(permutation, updateCells, keepHeader)
+	{
+		function resortArray(a) {
+			var ac;
+			if (a.length) {
+				ac = $.makeArray(a);
+			} else {
+				ac = $.extend({}, a);
+			}
+			$.each(permutation, function(i) {
+				a[i] = ac[this];
+			});
+		}
+		var ts = this.get(0);
+		function resortRows(parent, clobj) {
+			$(">tr"+(clobj||""), parent).each(function() {
+				var row = this;
+				var elems = $.makeArray(row.cells);
+				$.each(permutation, function() {
+					var e = elems[this];
+					if (e) {
+						row.appendChild(e);
+					}
+				});
+			});
+		}
+		resortArray(ts.p.colModel);
+		resortArray(ts.p.colNames);
+		resortArray(ts.grid.headers);
+		resortRows($("thead:first", ts.grid.hDiv), keepHeader && ":not(.ui-jqgrid-labels)");
+		if (updateCells) {
+			resortRows($("tbody:first", ts.grid.bDiv), ".jqgrow");
+		}
+		if (ts.p.footerrow) {
+			resortRows($("tbody:first", ts.grid.sDiv));
+		}
+		if (ts.p.remapColumns) {
+			if (!ts.p.remapColumns.length){
+				ts.p.remapColumns = $.makeArray(permutation);
+			} else {
+				resortArray(ts.p.remapColumns);
+			}
+		}
+		ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);
+		if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }
+	},
+	setGridWidth : function(nwidth, shrink) {
+		return this.each(function(){
+			var $t = this, cw,
+			initwidth = 0, brd=$t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, tw=0,
+			cl = 0,cr;
+			if (!$t.grid ) {return;}
+			if(typeof shrink != 'boolean') {
+				shrink=$t.p.shrinkToFit;
+			}
+			if(isNaN(nwidth)) {return;}
+			else { nwidth = parseInt(nwidth,10); $t.grid.width = $t.p.width = nwidth;}
+			$("#gbox_"+$t.p.id).css("width",nwidth+"px");
+			$("#gview_"+$t.p.id).css("width",nwidth+"px");
+			$($t.grid.bDiv).css("width",nwidth+"px");
+			$($t.grid.hDiv).css("width",nwidth+"px");
+			if($t.p.pager ) {$($t.p.pager).css("width",nwidth+"px");}
+			if($t.p.toppager ) {$($t.p.toppager).css("width",nwidth+"px");}
+			if($t.p.toolbar[0] === true){
+				$($t.grid.uDiv).css("width",nwidth+"px");
+				if($t.p.toolbar[1]=="both") {$($t.grid.ubDiv).css("width",nwidth+"px");}
+			}
+			if($t.p.footerrow) { $($t.grid.sDiv).css("width",nwidth+"px"); }
+			if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}			
+			if(shrink===true) {
+				if ($.browser.safari) { brd=0;}
+				$.each($t.p.colModel, function(i) {
+					if(this.hidden===false){
+						initwidth += parseInt(this.width,10);
+						if(this.fixed) {
+							tw += this.width;
+							gw += this.width+brd;
+						} else {
+							vc++;
+						}
+						cl++;
+					}
+				});
+				if(vc  === 0) { return; }
+				$t.p.tblwidth = initwidth;
+				aw = nwidth-brd*vc-gw;
+				if(!isNaN($t.p.height)) {
+					if($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight){
+						hs = true;
+						aw -= scw;
+					}
+				}
+				initwidth =0;
+				var cle = $t.grid.cols.length >0;
+				$.each($t.p.colModel, function(i) {
+					if(this.hidden === false && !this.fixed){
+						cw = Math.round(aw*this.width/($t.p.tblwidth-tw));
+						if (cw < 0) { return; }
+						this.width =cw;
+						initwidth += cw;
+						$t.grid.headers[i].width=cw;
+						$t.grid.headers[i].el.style.width=cw+"px";
+						if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; }
+						if(cle) { $t.grid.cols[i].style.width = cw+"px"; }
+						lvc = i;
+					}
+				});
+				cr =0;
+				if (hs) {
+					if(nwidth-gw-(initwidth+brd*vc) !== scw){
+						cr = nwidth-gw-(initwidth+brd*vc)-scw;
+					}
+				} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {
+					cr = nwidth-gw-(initwidth+brd*vc);
+				}
+				$t.p.colModel[lvc].width += cr;
+				$t.p.tblwidth = initwidth+cr+tw+brd*cl;
+				if($t.p.tblwidth > nwidth) {
+					var delta = $t.p.tblwidth - parseInt(nwidth,10);
+					$t.p.tblwidth = nwidth;
+					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;
+				} else {
+					cw= $t.p.colModel[lvc].width;
+				}
+				$t.grid.headers[lvc].width = cw;
+				$t.grid.headers[lvc].el.style.width=cw+"px";
+				if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; }
+				$('table:first',$t.grid.bDiv).css("width",$t.p.tblwidth+"px");
+				$('table:first',$t.grid.hDiv).css("width",$t.p.tblwidth+"px");
+				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
+				if($t.p.footerrow) {
+					$t.grid.footers[lvc].style.width = cw+"px";
+					$('table:first',$t.grid.sDiv).css("width",$t.p.tblwidth+"px");
+				}
+			}
+		});
+	},
+	setGridHeight : function (nh) {
+		return this.each(function (){
+			var $t = this;
+			if(!$t.grid) {return;}
+			$($t.grid.bDiv).css({height: nh+(isNaN(nh)?"":"px")});
+			$t.p.height = nh;
+			if ($t.p.scroll) { $t.grid.populateVisible(); }
+		});
+	},
+	setCaption : function (newcap){
+		return this.each(function(){
+			this.p.caption=newcap;
+			$("span.ui-jqgrid-title",this.grid.cDiv).html(newcap);
+			$(this.grid.cDiv).show();
+		});
+	},
+	setLabel : function(colname, nData, prop, attrp ){
+		return this.each(function(){
+			var $t = this, pos=-1;
+			if(!$t.grid) {return;}
+			if(isNaN(colname)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name == colname) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(colname,10);}
+			if(pos>=0) {
+				var thecol = $("tr.ui-jqgrid-labels th:eq("+pos+")",$t.grid.hDiv);
+				if (nData){
+					var ico = $(".s-ico",thecol);
+					$("[id^=jqgh_]",thecol).empty().html(nData).append(ico);
+					$t.p.colNames[pos] = nData;
+				}
+				if (prop) {
+					if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}
+				}
+				if(typeof attrp === 'object') {$(thecol).attr(attrp);}
+			}
+		});
+	},
+	setCell : function(rowid,colname,nData,cssp,attrp, forceupd) {
+		return this.each(function(){
+			var $t = this, pos =-1,v, title;
+			if(!$t.grid) {return;}
+			if(isNaN(colname)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name == colname) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(colname,10);}
+			if(pos>=0) {
+				var ind = $t.rows.namedItem(rowid);
+				if (ind){
+					var tcell = $("td:eq("+pos+")",ind);
+					if(nData !== "" || forceupd === true) {
+						v = $t.formatter(rowid, nData, pos,ind,'edit');
+						title = $t.p.colModel[pos].title ? {"title":$.jgrid.stripHtml(v)} : {};
+						if($t.p.treeGrid && $(".tree-wrap",$(tcell)).length>0) {
+							$("span",$(tcell)).html(v).attr(title);
+						} else {
+							$(tcell).html(v).attr(title);
+						}
+					}
+					if(typeof cssp === 'string'){
+						$(tcell).addClass(cssp);
+					} else if(cssp) {
+						$(tcell).css(cssp);
+					}
+					if(typeof attrp === 'object') {$(tcell).attr(attrp);}
+				}
+			}
+		});
+	},
+	getCell : function(rowid,col) {
+		var ret = false;
+		this.each(function(){
+			var $t=this, pos=-1;
+			if(!$t.grid) {return;}
+			if(isNaN(col)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name === col) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(col,10);}
+			if(pos>=0) {
+				var ind = $t.rows.namedItem(rowid);
+				if(ind) {
+					try {
+						ret = $.unformat($("td:eq("+pos+")",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);
+					} catch (e){
+						ret = $.jgrid.htmlDecode($("td:eq("+pos+")",ind).html());
+					}
+				}
+			}
+		});
+		return ret;
+	},
+	getCol : function (col, obj, mathopr) {
+		var ret = [], val, sum=0;
+		obj = typeof (obj) != 'boolean' ? false : obj;
+		if(typeof mathopr == 'undefined') { mathopr = false; }
+		this.each(function(){
+			var $t=this, pos=-1;
+			if(!$t.grid) {return;}
+			if(isNaN(col)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name === col) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(col,10);}
+			if(pos>=0) {
+				var ln = $t.rows.length, i =0;
+				if (ln && ln>0){
+					while(i<ln){
+						try {
+							val = $.unformat($($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);
+						} catch (e) {
+							val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);
+						}
+						if(mathopr) { sum += parseFloat(val); }
+						else if(obj) { ret.push({id:$t.rows[i].id,value:val}); }
+						else { ret[i]=val; }
+						i++;
+					}
+					if(mathopr) {
+						switch(mathopr.toLowerCase()){
+							case 'sum': ret =sum; break;
+							case 'avg': ret = sum/ln; break;
+							case 'count': ret = ln; break;
+						}
+					}
+				}
+			}
+		});
+		return ret;
+	},
+	clearGridData : function(clearfooter) {
+		return this.each(function(){
+			var $t = this;
+			if(!$t.grid) {return;}
+			if(typeof clearfooter != 'boolean') { clearfooter = false; }
+			$("tbody:first tr", $t.grid.bDiv).remove();
+			if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html("&#160;"); }
+			$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];
+			$t.p.records = 0;$t.p.page='0';$t.p.lastpage='0';$t.p.reccount=0;
+			$t.updatepager(true,false);
+		});
+	},
+	getInd : function(rowid,rc){
+		var ret =false,rw;
+		this.each(function(){
+			rw = this.rows.namedItem(rowid);
+			if(rw) {
+				ret = rc===true ? rw: rw.rowIndex;
+			}
+		});
+		return ret;
+	}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js	(revision 178)
@@ -0,0 +1,816 @@
+;(function($){
+/**
+ * jqGrid extension for custom methods
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+	getColProp : function(colname){
+		var ret ={}, $t = this[0];
+		if ( !$t.grid ) { return; }
+		var cM = $t.p.colModel;
+		for ( var i =0;i<cM.length;i++ ) {
+			if ( cM[i].name == colname ) {
+				ret = cM[i];
+				break;
+			}
+		}
+		return ret;
+	},
+	setColProp : function(colname, obj){
+		//do not set width will not work
+		return this.each(function(){
+			if ( this.grid ) {
+				if ( obj ) {
+					var cM = this.p.colModel;
+					for ( var i =0;i<cM.length;i++ ) {
+						if ( cM[i].name == colname ) {
+							$.extend(this.p.colModel[i],obj);
+							break;
+						}
+					}
+				}
+			}
+		});
+	},
+	sortGrid : function(colname,reload, sor){
+		return this.each(function(){
+			var $t=this,idx=-1;
+			if ( !$t.grid ) { return;}
+			if ( !colname ) { colname = $t.p.sortname; }
+			for ( var i=0;i<$t.p.colModel.length;i++ ) {
+				if ( $t.p.colModel[i].index == colname || $t.p.colModel[i].name==colname ) {
+					idx = i;
+					break;
+				}
+			}
+			if ( idx!=-1 ){
+				var sort = $t.p.colModel[idx].sortable;
+				if ( typeof sort !== 'boolean' ) { sort =  true; }
+				if ( typeof reload !=='boolean' ) { reload = false; }
+				if ( sort ) { $t.sortData("jqgh_"+colname, idx, reload, sor); }
+			}
+		});
+	},
+	GridDestroy : function () {
+		return this.each(function(){
+			if ( this.grid ) { 
+				if ( this.p.pager ) { // if not part of grid
+					$(this.p.pager).remove();
+				}
+				var gid = this.id;
+				try {
+					$("#gbox_"+gid).remove();
+				} catch (_) {}
+			}
+		});
+	},
+	GridUnload : function(){
+		return this.each(function(){
+			if ( !this.grid ) {return;}
+			var defgrid = {id: $(this).attr('id'),cl: $(this).attr('class')};
+			if (this.p.pager) {
+				$(this.p.pager).empty().removeClass("ui-state-default ui-jqgrid-pager corner-bottom");
+			}
+			var newtable = document.createElement('table');
+			$(newtable).attr({id:defgrid.id});
+			newtable.className = defgrid.cl;
+			var gid = this.id;
+			$(newtable).removeClass("ui-jqgrid-btable");
+			if( $(this.p.pager).parents("#gbox_"+gid).length === 1 ) {
+				$(newtable).insertBefore("#gbox_"+gid).show();
+				$(this.p.pager).insertBefore("#gbox_"+gid);
+			} else {
+				$(newtable).insertBefore("#gbox_"+gid).show();
+			}
+			$("#gbox_"+gid).remove();
+		});
+	},
+    setGridState : function(state) {
+		return this.each(function(){
+			if ( !this.grid ) {return;}
+            var $t = this;
+            if(state == 'hidden'){
+				$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$t.p.id).slideUp("fast");
+				if($t.p.pager) {$($t.p.pager).slideUp("fast");}
+				if($t.p.toppager) {$($t.p.toppager).slideUp("fast");}
+				if($t.p.toolbar[0]===true) {
+					if( $t.p.toolbar[1]=='both') {
+						$($t.grid.ubDiv).slideUp("fast");
+					}
+					$($t.grid.uDiv).slideUp("fast");
+				}
+				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideUp("fast"); }
+				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
+				$t.p.gridstate = 'hidden';
+            } else if(state=='visible') {
+				$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$t.p.id).slideDown("fast");
+				if($t.p.pager) {$($t.p.pager).slideDown("fast");}
+				if($t.p.toppager) {$($t.p.toppager).slideDown("fast");}
+				if($t.p.toolbar[0]===true) {
+					if( $t.p.toolbar[1]=='both') {
+						$($t.grid.ubDiv).slideDown("fast");
+					}
+					$($t.grid.uDiv).slideDown("fast");
+				}
+				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideDown("fast"); }
+				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
+				$t.p.gridstate = 'visible';
+            }
+            
+        });
+    },
+	updateGridRows : function (data, rowidname, jsonreader) {
+		var nm, success=false, title;
+		this.each(function(){
+			var t = this, vl, ind, srow, sid;
+			if(!t.grid) {return false;}
+			if(!rowidname) { rowidname = "id"; }
+			if( data  && data.length >0 ) {
+				$(data).each(function(j){
+					srow = this;
+					ind = t.rows.namedItem(srow[rowidname]);
+					if(ind) {
+						sid = srow[rowidname];
+						if(jsonreader === true){
+							if(t.p.jsonReader.repeatitems === true) {
+								if(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}
+								for (var k=0;k<srow.length;k++) {
+									vl = t.formatter( sid, srow[k], k, srow, 'edit');
+									title = t.p.colModel[k].title ? {"title":$.jgrid.stripHtml(vl)} : {};
+									if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
+										$("td:eq("+k+") > span:first",ind).html(vl).attr(title);
+									} else {
+										$("td:eq("+k+")",ind).html(vl).attr(title); 
+									}
+								}
+								success = true;
+								return true;
+							}
+						} 
+						$(t.p.colModel).each(function(i){
+							nm = jsonreader===true ? this.jsonmap || this.name :this.name;
+							if( srow[nm] !== undefined) {
+								vl = t.formatter( sid, srow[nm], i, srow, 'edit');
+								title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
+								if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
+									$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
+								} else {
+									$("td:eq("+i+")",ind).html(vl).attr(title); 
+								}
+								success = true;
+							}
+						});
+					}
+				});
+			}
+		});
+		return success;
+	},
+	filterGrid : function(gridid,p){
+		p = $.extend({
+			gridModel : false,
+			gridNames : false,
+			gridToolbar : false,
+			filterModel: [], // label/name/stype/defval/surl/sopt
+			formtype : "horizontal", // horizontal/vertical
+			autosearch: true, // if set to false a serch button should be enabled.
+			formclass: "filterform",
+			tableclass: "filtertable",
+			buttonclass: "filterbutton",
+			searchButton: "Search",
+			clearButton: "Clear",
+			enableSearch : false,
+			enableClear: false,
+			beforeSearch: null,
+			afterSearch: null,
+			beforeClear: null,
+			afterClear: null,
+			url : '',
+			marksearched: true
+		},p  || {});
+		return this.each(function(){
+			var self = this;
+			this.p = p;
+			if(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert("No filter is set"); return;}
+			if( !gridid) {alert("No target grid is set!"); return;}
+			this.p.gridid = gridid.indexOf("#") != -1 ? gridid : "#"+gridid;
+			var gcolMod = $(this.p.gridid).jqGrid("getGridParam",'colModel');
+			if(gcolMod) {
+				if( this.p.gridModel === true) {
+					var thegrid = $(this.p.gridid)[0];
+					var sh;
+					// we should use the options search, edittype, editoptions
+					// additionally surl and defval can be added in grid colModel
+					$.each(gcolMod, function (i,n) {
+						var tmpFil = [];
+						this.search = this.search === false ? false : true;
+						if(this.editrules && this.editrules.searchhidden === true) {
+							sh = true;
+						} else {
+							if(this.hidden === true ) {
+								sh = false;
+							} else {
+								sh = true;
+							}
+						}
+						if( this.search === true && sh === true) {
+							if(self.p.gridNames===true) {
+								tmpFil.label = thegrid.p.colNames[i];
+							} else {
+								tmpFil.label = '';
+							}
+							tmpFil.name = this.name;
+							tmpFil.index = this.index || this.name;
+							// we support only text and selects, so all other to text
+							tmpFil.stype = this.edittype || 'text';
+							if(tmpFil.stype != 'select' ) {
+								tmpFil.stype = 'text';
+							}
+							tmpFil.defval = this.defval || '';
+							tmpFil.surl = this.surl || '';
+							tmpFil.sopt = this.editoptions || {};
+							tmpFil.width = this.width;
+							self.p.filterModel.push(tmpFil);
+						}
+					});
+				} else {
+					$.each(self.p.filterModel,function(i,n) {
+						for(var j=0;j<gcolMod.length;j++) {
+							if(this.name == gcolMod[j].name) {
+								this.index = gcolMod[j].index || this.name;
+								break;
+							}
+						}
+						if(!this.index) {
+							this.index = this.name;
+						}
+					});
+				}
+			} else {
+				alert("Could not get grid colModel"); return;
+			}
+			var triggerSearch = function() {
+				var sdata={}, j=0, v;
+				var gr = $(self.p.gridid)[0], nm;
+                gr.p.searchdata = {};
+				if($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}
+				$.each(self.p.filterModel,function(i,n){
+                    nm = this.index;
+					switch (this.stype) {
+						case 'select' :
+							v = $("select[name="+nm+"]",self).val();
+							if(v) {
+								sdata[nm] = v;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch (e) {}
+							}
+							break;
+						default:
+							v = $("input[name="+nm+"]",self).val();
+							if(v) {
+								sdata[nm] = v;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch(e) {}
+							}
+					}
+				});
+				var sd =  j>0 ? true : false;
+                $.extend(gr.p.postData,sdata);
+				var saveurl;
+				if(self.p.url) {
+					saveurl = $(gr).jqGrid("getGridParam",'url');
+					$(gr).jqGrid("setGridParam",{url:self.p.url});
+				}
+			    $(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
+				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(self.p.afterSearch)){self.p.afterSearch();}
+			};
+			var clearSearch = function(){
+				var sdata={}, v, j=0;
+				var gr = $(self.p.gridid)[0], nm;
+				if($.isFunction(self.p.beforeClear)){self.p.beforeClear();}
+				$.each(self.p.filterModel,function(i,n){
+                    nm = this.index;
+					v = (this.defval) ? this.defval : "";
+					if(!this.stype){this.stype='text';}
+					switch (this.stype) {
+						case 'select' :
+							var v1;
+							$("select[name="+nm+"] option",self).each(function (i){
+                                if(i===0) { this.selected = true; }
+								if ($(this).text() == v) {
+									this.selected = true;
+									v1 = $(this).val();
+									return false;
+								}
+							});
+							if(v1) {
+								// post the key and not the text
+								sdata[nm] = v1;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch (e) {}
+							}
+							break;
+						case 'text':
+							$("input[name="+nm+"]",self).val(v);
+							if(v) {
+								sdata[nm] = v;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch (e) {}
+							}
+                            break;
+					}
+				});
+				var sd =  j>0 ? true : false;
+                $.extend(gr.p.postData,sdata);
+				var saveurl;
+				if(self.p.url) {
+					saveurl = $(gr).jqGrid("getGridParam",'url');
+					$(gr).jqGrid("setGridParam",{url:self.p.url});
+				}
+				$(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
+				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(self.p.afterClear)){self.p.afterClear();}
+			};
+			var formFill = function(){
+				var tr = document.createElement("tr");
+				var tr1, sb, cb,tl,td;
+				if(self.p.formtype=='horizontal'){
+					$(tbl).append(tr);
+				}
+				$.each(self.p.filterModel,function(i,n){
+					tl = document.createElement("td");
+					$(tl).append("<label for='"+this.name+"'>"+this.label+"</label>");
+					td = document.createElement("td");
+					var $t=this;
+					if(!this.stype) { this.stype='text';}
+					switch (this.stype)
+					{
+					case "select":
+						if(this.surl) {
+							// data returned should have already constructed html select
+							$(td).load(this.surl,function(){
+								if($t.defval) { $("select",this).val($t.defval); }
+								$("select",this).attr({name:$t.index || $t.name, id: "sg_"+$t.name});
+								if($t.sopt) { $("select",this).attr($t.sopt); }
+								if(self.p.gridToolbar===true && $t.width) {
+									$("select",this).width($t.width);
+								}
+								if(self.p.autosearch===true){
+									$("select",this).change(function(e){
+										triggerSearch();
+										return false;
+									});
+								}
+							});
+						} else {
+							// sopt to construct the values
+							if($t.sopt.value) {
+								var oSv = $t.sopt.value;
+								var elem = document.createElement("select");
+								$(elem).attr({name:$t.index || $t.name, id: "sg_"+$t.name}).attr($t.sopt);
+								var so, sv, ov;
+								if(typeof oSv === "string") {
+									so = oSv.split(";");
+									for(var k=0; k<so.length;k++){
+										sv = so[k].split(":");
+										ov = document.createElement("option");
+										ov.value = sv[0]; ov.innerHTML = sv[1];
+										if (sv[1]==$t.defval) { ov.selected ="selected"; }
+										elem.appendChild(ov);
+									}
+								} else if(typeof oSv === "object" ) {
+									for ( var key in oSv) {
+										if(oSv.hasOwnProperty(key)) {
+											i++;
+											ov = document.createElement("option");
+											ov.value = key; ov.innerHTML = oSv[key];
+											if (oSv[key]==$t.defval) { ov.selected ="selected"; }
+											elem.appendChild(ov);
+										}
+									}
+								}
+								if(self.p.gridToolbar===true && $t.width) {
+									$(elem).width($t.width);
+								}
+								$(td).append(elem);
+								if(self.p.autosearch===true){
+									$(elem).change(function(e){
+										triggerSearch();
+										return false;
+									});
+								}
+							}
+						}
+						break;
+					case 'text':
+						var df = this.defval ? this.defval: "";
+						$(td).append("<input type='text' name='"+(this.index || this.name)+"' id='sg_"+this.name+"' value='"+df+"'/>");
+						if($t.sopt) { $("input",td).attr($t.sopt); }
+						if(self.p.gridToolbar===true && $t.width) {
+							if($.browser.msie) {
+								$("input",td).width($t.width-4);
+							} else {
+								$("input",td).width($t.width-2);
+							}
+						}
+						if(self.p.autosearch===true){
+							$("input",td).keypress(function(e){
+								var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
+								if(key == 13){
+									triggerSearch();
+									return false;
+								}
+								return this;
+							});
+						}
+						break;
+					}
+					if(self.p.formtype=='horizontal'){
+						if(self.p.gridToolbar===true && self.p.gridNames===false) {
+							$(tr).append(td);
+						} else {
+							$(tr).append(tl).append(td);
+						}
+						$(tr).append(td);
+					} else {
+						tr1 = document.createElement("tr");
+						$(tr1).append(tl).append(td);
+						$(tbl).append(tr1);
+					}
+				});
+				td = document.createElement("td");
+				if(self.p.enableSearch === true){
+					sb = "<input type='button' id='sButton' class='"+self.p.buttonclass+"' value='"+self.p.searchButton+"'/>";
+					$(td).append(sb);
+					$("input#sButton",td).click(function(){
+						triggerSearch();
+						return false;
+					});
+				}
+				if(self.p.enableClear === true) {
+					cb = "<input type='button' id='cButton' class='"+self.p.buttonclass+"' value='"+self.p.clearButton+"'/>";
+					$(td).append(cb);
+					$("input#cButton",td).click(function(){
+						clearSearch();
+						return false;
+					});
+				}
+				if(self.p.enableClear === true || self.p.enableSearch === true) {
+					if(self.p.formtype=='horizontal') {
+						$(tr).append(td);
+					} else {
+						tr1 = document.createElement("tr");
+						$(tr1).append("<td>&#160;</td>").append(td);
+						$(tbl).append(tr1);
+					}
+				}
+			};
+			var frm = $("<form name='SearchForm' style=display:inline;' class='"+this.p.formclass+"'></form>");
+			var tbl =$("<table class='"+this.p.tableclass+"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
+			$(frm).append(tbl);
+			formFill();
+			$(this).append(frm);
+			this.triggerSearch = triggerSearch;
+			this.clearSearch = clearSearch;
+		});
+	},
+	filterToolbar : function(p){
+		p = $.extend({
+			autosearch: true,
+			searchOnEnter : true,
+			beforeSearch: null,
+			afterSearch: null,
+			beforeClear: null,
+			afterClear: null,
+			searchurl : '',
+			stringResult: false,
+			groupOp: 'AND'
+		},p  || {});
+		return this.each(function(){
+			var $t = this;
+			var triggerToolbar = function() {
+				var sdata={}, j=0, v, nm, sopt={};
+				$.each($t.p.colModel,function(i,n){
+                    nm = this.index || this.name;
+                    var so = (this.searchoptions && this.searchoptions.sopt) ? this.searchoptions.sopt[0] : "bw";
+					switch (this.stype) {
+						case 'select' :
+							v = $("select[name="+nm+"]",$t.grid.hDiv).val();
+							if(v) {
+								sdata[nm] = v;
+                                sopt[nm] = so;
+								j++;
+							} else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch (e) {}
+                            }
+							break;
+						case 'text':
+							v = $("input[name="+nm+"]",$t.grid.hDiv).val();
+							if(v) {
+								sdata[nm] = v;
+                                sopt[nm] = so;
+								j++;
+							} else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch (e) {}
+                            }
+                            break;
+					}
+				});
+				var sd =  j>0 ? true : false;
+                if(!p.stringResult) {
+                    $.extend($t.p.postData,sdata);
+                } else {
+                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
+                    var gi=0;
+                    $.each(sdata,function(i,n){
+                        if (gi > 0) {ruleGroup += ",";}
+                        ruleGroup += "{\"field\":\"" + i + "\",";
+                        ruleGroup += "\"op\":\"" + sopt[i] + "\",";
+                        ruleGroup += "\"data\":\"" + n + "\"}";
+                        gi++;
+                    });
+                    ruleGroup += "]}";
+                    $.extend($t.p.postData,{filters:ruleGroup});
+                }
+				var saveurl;
+				if($t.p.searchurl) {
+					saveurl = $t.p.url;
+					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
+				}
+				var bsr = false;
+				if($.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
+				if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); }
+				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(p.afterSearch)){p.afterSearch();}
+			};
+			var clearToolbar = function(trigger){
+				var sdata={}, v, j=0, nm;
+                trigger = (typeof trigger != 'boolean') ? true : trigger;
+				$.each($t.p.colModel,function(i,n){
+					v = (this.searchoptions && this.searchoptions.defaultValue) ? this.searchoptions.defaultValue : "";
+                    nm = this.index || this.name;
+					switch (this.stype) {
+						case 'select' :
+							var v1;
+							$("select[name="+nm+"] option",$t.grid.hDiv).each(function (i){
+                                if(i===0) { this.selected = true; }
+								if ($(this).text() == v) {
+									this.selected = true;
+									v1 = $(this).val();
+									return false;
+								}
+							});
+                            if (v1) {
+                                // post the key and not the text
+                                sdata[nm] = v1;
+                                j++;
+                            } else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch(e) {}
+                            }
+							break;
+						case 'text':
+							$("input[name="+nm+"]",$t.grid.hDiv).val(v);
+							if(v) {
+								sdata[nm] = v;
+								j++;
+							} else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch (e){}
+                            }
+                            break;
+					}
+				});
+				var sd =  j>0 ? true : false;
+                if(!p.stringResult) {
+                    $.extend($t.p.postData,sdata);
+                } else {
+                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
+                    var gi=0;
+                    $.each(sdata,function(i,n){
+                        if (gi > 0) {ruleGroup += ",";}
+                        ruleGroup += "{\"field\":\"" + i + "\",";
+                        ruleGroup += "\"op\":\"" + "eq" + "\",";
+                        ruleGroup += "\"data\":\"" + n + "\"}";
+                        gi++;
+                    });
+                    ruleGroup += "]}";
+                    $.extend($t.p.postData,{filters:ruleGroup});
+                }
+				var saveurl;
+				if($t.p.searchurl) {
+					saveurl = $t.p.url;
+					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
+				}
+				var bcv = false;
+				if($.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}
+				if(!bcv) {
+                    if(trigger) {
+                        $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
+                    }
+                }
+				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(p.afterClear)){p.afterClear();}
+			};
+			var toggleToolbar = function(){
+                var trow = $("tr.ui-search-toolbar",$t.grid.hDiv);
+                if(trow.css("display")=='none') { trow.show(); }
+                else { trow.hide(); }
+			};
+			// create the row
+			function bindEvents(selector, events) {
+				var jElem = $(selector);
+				if (jElem[0]) {
+				    jQuery.each(events, function() {
+				        if (this.data !== undefined) {
+				            jElem.bind(this.type, this.data, this.fn);
+				        } else {
+				            jElem.bind(this.type, this.fn);
+				        }
+				    });
+				}
+			}
+			var tr = $("<tr class='ui-search-toolbar' role='rowheader'></tr>");
+            var timeoutHnd;
+			$.each($t.p.colModel,function(i,n){
+				var cm=this, thd , th, soptions,surl,self;
+				th = $("<th role='columnheader' class='ui-state-default ui-th-column ui-th-"+$t.p.direction+"'></th>");
+				thd = $("<div style='width:100%;position:relative;height:100%;padding-right:0.3em;'></div>");
+				if(this.hidden===true) { $(th).css("display","none");}
+				this.search = this.search === false ? false : true;
+				if(typeof this.stype == 'undefined' ) {this.stype='text';}
+				soptions = $.extend({},this.searchoptions || {});
+				if(this.search){
+					switch (this.stype)
+					{
+					case "select":
+						surl = this.surl || soptions.dataUrl;
+						if(surl) {
+							// data returned should have already constructed html select
+							// primitive jQuery load
+							self = thd;
+							$.ajax($.extend({
+								url: surl,
+								dataType: "html",
+								complete: function(res,status) {
+									if(soptions.buildSelect !== undefined) {
+										var d = soptions.buildSelect(res);
+										if (d) { $(self).append(d); }
+									} else {
+										$(self).append(res.responseText);
+									}
+									if(soptions.defaultValue) { $("select",self).val(soptions.defaultValue); }
+									$("select",self).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
+									if(soptions.attr) {$("select",self).attr(soptions.attr);}
+									$("select",self).css({width: "100%"});
+									// preserve autoserch
+									if(soptions.dataInit !== undefined) { soptions.dataInit($("select",self)[0]); }
+									if(soptions.dataEvents !== undefined) { bindEvents($("select",self)[0],soptions.dataEvents); }
+									if(p.autosearch===true){
+										$("select",self).change(function(e){
+											triggerToolbar();
+											return false;
+										});
+									}
+									res=null;
+								}
+							}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {} ));
+						} else {
+							var oSv;
+							if(cm.searchoptions && cm.searchoptions.value) {
+								oSv = cm.searchoptions.value;
+							} else if(cm.editoptions && cm.editoptions.value) {
+								oSv = cm.editoptions.value;
+							}
+							if (oSv) {	
+								var elem = document.createElement("select");
+								elem.style.width = "100%";
+								$(elem).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
+								var so, sv, ov;
+								if(typeof oSv === "string") {
+									so = oSv.split(";");
+									for(var k=0; k<so.length;k++){
+										sv = so[k].split(":");
+										ov = document.createElement("option");
+										ov.value = sv[0]; ov.innerHTML = sv[1];
+										elem.appendChild(ov);
+									}
+								} else if(typeof oSv === "object" ) {
+									for ( var key in oSv) {
+										if(oSv.hasOwnProperty(key)) {
+											ov = document.createElement("option");
+											ov.value = key; ov.innerHTML = oSv[key];
+											elem.appendChild(ov);
+										}
+									}
+								}
+								if(soptions.defaultValue) { $(elem).val(soptions.defaultValue); }
+								if(soptions.attr) {$(elem).attr(soptions.attr);}
+								if(soptions.dataInit !== undefined) { soptions.dataInit(elem); }
+								if(soptions.dataEvents !== undefined) { bindEvents(elem, soptions.dataEvents); }
+								$(thd).append(elem);
+								if(p.autosearch===true){
+									$(elem).change(function(e){
+										triggerToolbar();
+										return false;
+									});
+								}
+							}
+						}
+						break;
+					case 'text':
+						var df = soptions.defaultValue ? soptions.defaultValue: "";
+						$(thd).append("<input type='text' style='width:95%;padding:0px;' name='"+(cm.index || cm.name)+"' id='gs_"+cm.name+"' value='"+df+"'/>");
+						if(soptions.attr) {$("input",thd).attr(soptions.attr);}
+						if(soptions.dataInit !== undefined) { soptions.dataInit($("input",thd)[0]); }
+						if(soptions.dataEvents !== undefined) { bindEvents($("input",thd)[0], soptions.dataEvents); }
+						if(p.autosearch===true){
+                            if(p.searchOnEnter) {
+                                $("input",thd).keypress(function(e){
+                                    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
+                                    if(key == 13){
+                                        triggerToolbar();
+                                        return false;
+                                    }
+                                    return this;
+                                });
+                            } else {
+                                $("input",thd).keydown(function(e){
+                                    var key = e.which;
+									switch (key) {
+										case 9 :
+										case 16:
+										case 37:
+										case 38:
+										case 39:
+										case 40:
+										case 27:
+											break;
+										default :
+	                                        if(timeoutHnd) { clearTimeout(timeoutHnd); }
+	                                        timeoutHnd = setTimeout(function(){triggerToolbar();},500);
+									}
+                                });
+                            }
+						}
+						break;
+					}
+				}
+				$(th).append(thd);
+				$(tr).append(th);
+			});
+			$("table thead",$t.grid.hDiv).append(tr);
+			this.triggerToolbar = triggerToolbar;
+			this.clearToolbar = clearToolbar;
+			this.toggleToolbar = toggleToolbar;
+		});
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js	(revision 178)
@@ -0,0 +1,199 @@
+;(function($){
+/*
+ * jqGrid extension for constructing Grid Data from external file
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+    $.jgrid.extend({
+        jqGridImport : function(o) {
+            o = $.extend({
+                imptype : "xml", // xml, json, xmlstring, jsonstring
+                impstring: "",
+                impurl: "",
+                mtype: "GET",
+                impData : {},
+                xmlGrid :{
+                    config : "roots>grid",
+                    data: "roots>rows"
+                },
+                jsonGrid :{
+                    config : "grid",
+                    data: "data"
+                },
+                ajaxOptions :{}
+            }, o || {});
+            return this.each(function(){
+                var $t = this;
+                var XmlConvert = function (xml,o) {
+                    var cnfg = $(o.xmlGrid.config,xml)[0];
+                    var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1;
+                    if(xmlJsonClass.xml2json && $.jgrid.parse) {
+                        jstr = xmlJsonClass.xml2json(cnfg," ");
+                        jstr = $.jgrid.parse(jstr);
+                        for(var key in jstr) {
+                            if(jstr.hasOwnProperty(key)) {
+                                jstr1=jstr[key];
+                            }
+                        }
+                        if(xmldata) {
+                        // save the datatype
+                            var svdatatype = jstr.grid.datatype;
+                            jstr.grid.datatype = 'xmlstring';
+                            jstr.grid.datastr = xml;
+                            $($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
+                        } else {
+                            $($t).jqGrid( jstr1 );
+                        }
+                        jstr = null;jstr1=null;
+                    } else {
+                        alert("xml2json or parse are not present");
+                    }
+                };
+                var JsonConvert = function (jsonstr,o){
+                    if (jsonstr && typeof jsonstr == 'string') {
+                        var json = $.jgrid.parse(jsonstr);
+                        var gprm = json[o.jsonGrid.config];
+                        var jdata = json[o.jsonGrid.data];
+                        if(jdata) {
+                            var svdatatype = gprm.datatype;
+                            gprm.datatype = 'jsonstring';
+                            gprm.datastr = jdata;
+                            $($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype});
+                        } else {
+                            $($t).jqGrid( gprm );
+                        }
+                    }
+                };
+                switch (o.imptype){
+                    case 'xml':
+                        $.ajax($.extend({
+                            url:o.impurl,
+                            type:o.mtype,
+                            data: o.impData,
+                            dataType:"xml",
+                            complete: function(xml,stat) {
+                                if(stat == 'success') {
+                                    XmlConvert(xml.responseXML,o);
+                                    if($.isFunction(o.importComplete)) {
+                                        o.importComplete(xml);
+                                    }
+                                }
+                                xml=null;
+                            }
+                        }, o.ajaxOptions));
+                        break;
+                    case 'xmlstring' :
+                        // we need to make just the conversion and use the same code as xml
+                        if(o.impstring && typeof o.impstring == 'string') {
+                            var xmld = $.jgrid.stringToDoc(o.impstring);
+                            if(xmld) {
+                                XmlConvert(xmld,o);
+                                if($.isFunction(o.importComplete)) {
+                                    o.importComplete(xmld);
+                                }
+                                o.impstring = null;
+                            }
+                            xmld = null;
+                        }
+                        break;
+                    case 'json':
+                        $.ajax($.extend({
+                            url:o.impurl,
+                            type:o.mtype,
+                            data: o.impData,
+                            dataType:"json",
+                            complete: function(json,stat) {
+                                if(stat == 'success') {
+                                    JsonConvert(json.responseText,o );
+                                    if($.isFunction(o.importComplete)) {
+                                        o.importComplete(json);
+                                    }
+                                }
+                                json=null;
+                            }
+                        }, o.ajaxOptions ));
+                        break;
+                    case 'jsonstring' :
+                        if(o.impstring && typeof o.impstring == 'string') {
+                            JsonConvert(o.impstring,o );
+                            if($.isFunction(o.importComplete)) {
+                                o.importComplete(o.impstring);
+                            }
+                            o.impstring = null;
+                        }
+                        break;
+                }
+            });
+        },
+        jqGridExport : function(o) {
+            o = $.extend({
+                exptype : "xmlstring",
+                root: "grid",
+                ident: "\t"
+            }, o || {});
+            var ret = null;
+            this.each(function () {
+                if(!this.grid) { return;}
+                var gprm = $.extend({},$(this).jqGrid("getGridParam"));
+                // we need to check for:
+                // 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames
+                if(gprm.rownumbers) {
+                    gprm.colNames.splice(0,1);
+                    gprm.colModel.splice(0,1);
+                }
+                if(gprm.multiselect) {
+                    gprm.colNames.splice(0,1);
+                    gprm.colModel.splice(0,1);
+                }
+                if(gprm.subGrid) {
+                    gprm.colNames.splice(0,1);
+                    gprm.colModel.splice(0,1);
+                }
+                gprm.knv = null;
+                if(gprm.treeGrid) {
+                    for (var key in gprm.treeReader) {
+                        if(gprm.treeReader.hasOwnProperty(key)) {
+                            gprm.colNames.splice(gprm.colNames.length-1);
+                            gprm.colModel.splice(gprm.colModel.length-1);
+                        }
+                    }
+                }
+                switch (o.exptype) {
+                    case 'xmlstring' :
+                        ret = "<"+o.root+">"+xmlJsonClass.json2xml(gprm,o.ident)+"</"+o.root+">";
+                        break;
+                    case 'jsonstring' :
+                        ret = "{"+ xmlJsonClass.toJson(gprm,o.root,o.ident)+"}";
+                        if(gprm.postData.filters !== undefined) {
+                            ret=ret.replace(/filters":"/,'filters":');
+                            ret=ret.replace(/}]}"/,'}]}');
+                        }
+                        break;
+                }
+            });
+            return ret;
+        },
+        excelExport : function(o) {
+            o = $.extend({
+                exptype : "remote",
+                url : null,
+                oper: "oper",
+                tag: "excel",
+                exportOptions : {}
+            }, o || {});
+            return this.each(function(){
+                $t = this;
+                if(!this.grid) { return;}
+                if(o.exptype == "remote") {
+                    var pdata = $.extend({},this.p.postData);
+                    pdata[o.oper] = o.tag;
+                    var params = jQuery.param(pdata);
+                    window.location = o.url+"?"+params;
+                }
+            });
+        }
+    });
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js	(revision 178)
@@ -0,0 +1,503 @@
+;(function($){
+/*
+**
+ * jqGrid addons using jQuery UI 
+ * Author: Mark Williams
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ * depends on jQuery UI 
+**/
+if ($.browser.msie && $.browser.version==8) {
+	$.expr[":"].hidden = function(elem) {
+		return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||
+			elem.style.display == "none";
+	};
+}
+// requiere load multiselect before grid
+$.jgrid._multiselect = false;
+if($.ui) {
+	if ($.ui.multiselect ) {
+		if($.ui.multiselect.prototype._setSelected) {
+			var setSelected = $.ui.multiselect.prototype._setSelected;
+		    $.ui.multiselect.prototype._setSelected = function(item,selected) {
+		        var ret = setSelected.call(this,item,selected);
+		        if (selected && this.selectedList) {
+		            var elt = this.element;
+				    this.selectedList.find('li').each(function() {
+					    if ($(this).data('optionLink')) {
+						    $(this).data('optionLink').remove().appendTo(elt);
+					    }
+				    });
+		        }
+		        return ret;
+			};
+		}
+		if($.ui.multiselect.prototype.destroy) {
+			$.ui.multiselect.prototype.destroy = function() {
+				this.element.show();
+				this.container.remove();
+				if ($.Widget === undefined) {
+					$.widget.prototype.destroy.apply(this, arguments);
+				} else {
+					$.Widget.prototype.destroy.apply(this, arguments);
+	            }
+			};
+		}
+		$.jgrid._multiselect = true;
+	}
+}
+        
+$.jgrid.extend({
+	sortableColumns : function (tblrow)
+	{
+		return this.each(function (){
+			var ts = this;
+			function start() {ts.p.disableClick = true;}
+			var sortable_opts = {
+				"tolerance" : "pointer",
+				"axis" : "x",
+				"scrollSensitivity": "1",
+				"items": '>th:not(:has(#jqgh_cb,#jqgh_rn,#jqgh_subgrid),:hidden)',
+				"placeholder": {
+					element: function(item) {
+						var el = $(document.createElement(item[0].nodeName))
+						.addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight")
+						.removeClass("ui-sortable-helper")[0];
+						return el;
+					},
+					update: function(self, p) {
+						p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));
+						p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));
+					}
+				},
+				"update": function(event, ui) {
+					var p = $(ui.item).parent();
+					var th = $(">th", p);
+					var colModel = ts.p.colModel;
+					var cmMap = {};
+					$.each(colModel, function(i) { cmMap[this.name]=i; });
+					var permutation = [];
+					th.each(function(i) {
+						var id = $(">div", this).get(0).id.replace(/^jqgh_/, "");
+							if (id in cmMap) {
+								permutation.push(cmMap[id]);
+							}
+					});
+	
+					$(ts).jqGrid("remapColumns",permutation, true, true);
+					if ($.isFunction(ts.p.sortable.update)) {
+						ts.p.sortable.update(permutation);
+					}
+					setTimeout(function(){ts.p.disableClick=false;}, 50);
+				}
+			};
+			if (ts.p.sortable.options) {
+				$.extend(sortable_opts, ts.p.sortable.options);
+			} else if ($.isFunction(ts.p.sortable)) {
+				ts.p.sortable = { "update" : ts.p.sortable };
+			}
+			if (sortable_opts.start) {
+				var s = sortable_opts.start;
+				sortable_opts.start = function(e,ui) {
+					start();
+					s.call(this,e,ui);
+				};
+			} else {
+				sortable_opts.start = start;
+			}
+			if (ts.p.sortable.exclude) {
+				sortable_opts.items += ":not("+ts.p.sortable.exclude+")";
+			}
+			tblrow.sortable(sortable_opts).data("sortable").floating = true;
+		});
+	},
+    columnChooser : function(opts) {
+        var self = this;
+		if($("#colchooser_"+self[0].p.id).length ) { return; }
+        var selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
+        var select = $('select', selector);
+
+        opts = $.extend({
+            "width" : 420,
+            "height" : 240,
+            "classname" : null,
+            "done" : function(perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } },
+            /* msel is either the name of a ui widget class that
+               extends a multiselect, or a function that supports
+               creating a multiselect object (with no argument,
+               or when passed an object), and destroying it (when
+               passed the string "destroy"). */
+            "msel" : "multiselect",
+            /* "msel_opts" : {}, */
+
+            /* dlog is either the name of a ui widget class that 
+               behaves in a dialog-like way, or a function, that
+               supports creating a dialog (when passed dlog_opts)
+               or destroying a dialog (when passed the string
+               "destroy")
+               */
+            "dlog" : "dialog",
+
+            /* dlog_opts is either an option object to be passed 
+               to "dlog", or (more likely) a function that creates
+               the options object.
+               The default produces a suitable options object for
+               ui.dialog */
+            "dlog_opts" : function(opts) {
+                var buttons = {};
+                buttons[opts.bSubmit] = function() {
+                    opts.apply_perm();
+                    opts.cleanup(false);
+                };
+                buttons[opts.bCancel] = function() {
+                    opts.cleanup(true);
+                };
+                return {
+                    "buttons": buttons,
+                    "close": function() {
+                        opts.cleanup(true);
+                    },
+					"modal" : false,
+                    "resizable": false,
+                    "width": opts.width+20
+                };
+            },
+            /* Function to get the permutation array, and pass it to the
+               "done" function */
+            "apply_perm" : function() {
+                $('option',select).each(function(i) {
+                    if (this.selected) {
+                        self.jqGrid("showCol", colModel[this.value].name);
+                    } else {
+                        self.jqGrid("hideCol", colModel[this.value].name);
+                    }
+                });
+                
+                var perm = [];
+				//fixedCols.slice(0);
+                $('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });
+                $.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });
+                $.each(colMap, function() {
+					var ti = parseInt(this,10);
+					perm = insert(perm,ti,ti);
+				});
+                if (opts.done) {
+                    opts.done.call(self, perm);
+                }
+            },
+            /* Function to cleanup the dialog, and select. Also calls the
+               done function with no permutation (to indicate that the
+               columnChooser was aborted */
+            "cleanup" : function(calldone) {
+                call(opts.dlog, selector, 'destroy');
+                call(opts.msel, select, 'destroy');
+                selector.remove();
+                if (calldone && opts.done) {
+                    opts.done.call(self);
+                }
+            },
+			"msel_opts" : {}
+        }, $.jgrid.col, opts || {});
+		if($.ui) {
+			if ($.ui.multiselect ) {
+				if(opts.msel == "multiselect") {
+					if(!$.jgrid._multiselect) {
+						// should be in language file
+						alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");
+						return;
+					}
+					opts.msel_opts = $.extend($.ui.multiselect.defaults,opts.msel_opts);
+				}
+			}
+		}
+        if (opts.caption) {
+            selector.attr("title", opts.caption);
+        }
+        if (opts.classname) {
+            selector.addClass(opts.classname);
+            select.addClass(opts.classname);
+        }
+        if (opts.width) {
+            $(">div",selector).css({"width": opts.width,"margin":"0 auto"});
+            select.css("width", opts.width);
+        }
+        if (opts.height) {
+            $(">div",selector).css("height", opts.height);
+            select.css("height", opts.height - 10);
+        }
+        var colModel = self.jqGrid("getGridParam", "colModel");
+        var colNames = self.jqGrid("getGridParam", "colNames");
+        var colMap = {}, fixedCols = [];
+
+        select.empty();
+        $.each(colModel, function(i) {
+            colMap[this.name] = i;
+            if (this.hidedlg) {
+                if (!this.hidden) {
+                    fixedCols.push(i);
+                }
+                return;
+            }
+
+            select.append("<option value='"+i+"' "+
+                          (this.hidden?"":"selected='selected'")+">"+colNames[i]+"</option>");
+        });
+		function insert(perm,i,v) {
+			if(i>=0){
+				var a = perm.slice();
+				var b = a.splice(i,Math.max(perm.length-i,i));
+				if(i>perm.length) { i = perm.length; }
+				a[i] = v;
+				return a.concat(b);
+			}
+		}
+        function call(fn, obj) {
+            if (!fn) { return; }
+            if (typeof fn == 'string') {
+                if ($.fn[fn]) {
+                    $.fn[fn].apply(obj, $.makeArray(arguments).slice(2));
+                }
+            } else if ($.isFunction(fn)) {
+                fn.apply(obj, $.makeArray(arguments).slice(2));
+            }
+        }
+
+        var dopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;
+        call(opts.dlog, selector, dopts);
+        var mopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;
+        call(opts.msel, select, mopts);
+    },
+	sortableRows : function (opts) {
+		// Can accept all sortable options and events
+		return this.each(function(){
+			var $t = this;
+			if(!$t.grid) { return; }
+			// Currently we disable a treeGrid sortable
+			if($t.p.treeGrid) { return; }
+			if($.fn.sortable) {
+				opts = $.extend({
+					"cursor":"move",
+					"axis" : "y",
+					"items": ".jqgrow"
+					},
+				opts || {});
+				if(opts.start && $.isFunction(opts.start)) {
+					opts._start_ = opts.start;
+					delete opts.start;
+				} else {opts._start_=false;}
+				if(opts.update && $.isFunction(opts.update)) {
+					opts._update_ = opts.update;
+					delete opts.update;
+				} else {opts._update_ = false;}
+				opts.start = function(ev,ui) {
+					$(ui.item).css("border-width","0px");
+					$("td",ui.item).each(function(i){
+						this.style.width = $t.grid.cols[i].style.width;
+					});
+					if($t.p.subGrid) {
+						var subgid = $(ui.item).attr("id");
+						try {
+							$($t).jqGrid('collapseSubGridRow',subgid);
+						} catch (e) {}
+					}
+					if(opts._start_) {
+						opts._start_.apply(this,[ev,ui]);
+					}
+				};
+				opts.update = function (ev,ui) {
+					$(ui.item).css("border-width","");
+					$t.updateColumns();
+					if($t.p.rownumbers === true) {
+						$("td.jqgrid-rownum",$t.rows).each(function(i){
+							$(this).html(i+1);
+						});
+					}
+					if(opts._update_) {
+						opts._update_.apply(this,[ev,ui]);
+					}
+				};
+				$("tbody:first",$t).sortable(opts);
+				$("tbody:first",$t).disableSelection();
+			}
+		});
+	},
+	gridDnD : function(opts) {
+		return this.each(function(){
+		var $t = this;
+		if(!$t.grid) { return; }
+		// Currently we disable a treeGrid drag and drop
+		if($t.p.treeGrid) { return; }
+		if(!$.fn.draggable || !$.fn.droppable) { return; }
+		function updateDnD ()
+		{
+			var datadnd = $.data($t,"dnd");
+		    $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);
+		}
+		var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>";
+		if($("#jqgrid_dnd").html() === null) {
+			$('body').append(appender);
+		}
+
+		if(typeof opts == 'string' && opts == 'updateDnD' && $t.p.jqgdnd===true) {
+			updateDnD();
+			return;
+		}
+		opts = $.extend({
+			"drag" : function (opts) {
+				return $.extend({
+					start : function (ev, ui) {
+						// if we are in subgrid mode try to collapse the node
+						if($t.p.subGrid) {
+							var subgid = $(ui.helper).attr("id");
+							try {
+								$($t).jqGrid('collapseSubGridRow',subgid);
+							} catch (e) {}
+						}
+						// hack
+						// drag and drop does not insert tr in table, when the table has no rows
+						// we try to insert new empty row on the target(s)
+						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
+							if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') == "0" ){
+								$($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});
+							}
+						}
+						ui.helper.addClass("ui-state-highlight");
+						$("td",ui.helper).each(function(i) {
+							this.style.width = $t.grid.headers[i].width+"px";
+						});
+						if(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }
+					},
+					stop :function(ev,ui) {
+						if(ui.helper.dropped) {
+							var ids = $(ui.helper).attr("id");
+							$($t).jqGrid('delRowData',ids );
+						}
+						// if we have a empty row inserted from start event try to delete it
+						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
+							$($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row');
+						}
+						if(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }
+					}
+				},opts.drag_opts || {});
+			},
+			"drop" : function (opts) {
+				return $.extend({
+					accept: function(d) {
+						var tid = $(d).closest("table.ui-jqgrid-btable");
+						if($.data(tid[0],"dnd") !== undefined) {
+						    var cn = $.data(tid[0],"dnd").connectWith;
+						    return $.inArray('#'+this.id,cn) != -1 ? true : false;
+						}
+						return d;
+					},
+					drop: function(ev, ui) {
+						var accept = $(ui.draggable).attr("id");
+						var getdata = $('#'+$t.id).jqGrid('getRowData',accept);
+						if(!opts.dropbyname) {
+							var j =0, tmpdata = {}, dropname;
+							var dropmodel = $("#"+this.id).jqGrid('getGridParam','colModel');
+							try {
+								for (var key in getdata) {
+									if(getdata.hasOwnProperty(key) && dropmodel[j]) {
+										dropname = dropmodel[j].name;
+										tmpdata[dropname] = getdata[key];
+									}
+									j++;
+								}
+								getdata = tmpdata;
+							} catch (e) {}
+						}
+						ui.helper.dropped = true;
+						if(opts.beforedrop && $.isFunction(opts.beforedrop) ) {
+							//parameters to this callback - event, element, data to be inserted, sender, reciever
+							// should return object which will be inserted into the reciever
+							var datatoinsert = opts.beforedrop.call(this,ev,ui,getdata,$('#'+$t.id),$(this));
+							if (typeof datatoinsert != "undefined" && datatoinsert !== null && typeof datatoinsert == "object") { getdata = datatoinsert; }
+						}
+						if(ui.helper.dropped) {
+							var grid;
+							if(opts.autoid) {
+								if($.isFunction(opts.autoid)) {
+									grid = opts.autoid.call(this,getdata);
+								} else {
+									grid = Math.ceil(Math.random()*1000);
+									grid = opts.autoidprefix+grid;
+								}
+							}
+							// NULL is interpreted as undefined while null as object
+							$("#"+this.id).jqGrid('addRowData',grid,getdata,opts.droppos);
+						}
+						if(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }
+					}}, opts.drop_opts || {});
+			},
+			"onstart" : null,
+			"onstop" : null,
+			"beforedrop": null,
+			"ondrop" : null,
+			"drop_opts" : {
+				"activeClass": "ui-state-active",
+				"hoverClass": "ui-state-hover"
+			},
+			"drag_opts" : {
+				"revert": "invalid",
+				"helper": "clone",
+				"cursor": "move",
+				"appendTo" : "#jqgrid_dnd",
+				"zIndex": 5000
+			},
+			"dropbyname" : false,
+			"droppos" : "first",
+			"autoid" : true,
+			"autoidprefix" : "dnd_"
+		}, opts || {});
+		
+		if(!opts.connectWith) { return; }
+		opts.connectWith = opts.connectWith.split(",");
+		opts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});
+		$.data($t,"dnd",opts);
+		
+		if($t.p.reccount != "0" && !$t.p.jqgdnd) {
+			updateDnD();
+		}
+		$t.p.jqgdnd = true;
+		for (var i=0;i<opts.connectWith.length;i++){
+			var cn =opts.connectWith[i];
+			$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);
+		}
+		});
+	},
+	gridResize : function(opts) {
+		return this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$.fn.resizable) { return; }
+			opts = $.extend({}, opts || {});
+			if(opts.alsoResize ) {
+				opts._alsoResize_ = opts.alsoResize;
+				delete opts.alsoResize;
+			} else {
+				opts._alsoResize_ = false;
+			}
+			if(opts.stop && $.isFunction(opts.stop)) {
+				opts._stop_ = opts.stop;
+				delete opts.stop;
+			} else {
+				opts._stop_ = false;
+			}
+			opts.stop = function (ev, ui) {
+				$($t).jqGrid('setGridParam',{height:$("#gview_"+$t.p.id+" .ui-jqgrid-bdiv").height()});
+				$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);
+				if(opts._stop_) { opts._stop_.call($t,ev,ui); }
+			};
+			if(opts._alsoResize_) {
+				var optstest = "{\'#gview_"+$t.p.id+" .ui-jqgrid-bdiv\':true,'" +opts._alsoResize_+"':true}";
+				opts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this
+			} else {
+				opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+$t.p.id);
+			}
+			delete opts._alsoResize_;
+			$("#gbox_"+$t.p.id).resizable(opts);
+		});
+	}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js	(revision 178)
@@ -0,0 +1,249 @@
+;(function($){
+/**
+ * jqGrid extension for manipulating Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+//Editing
+	editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
+		return this.each(function(){
+			var $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm;
+			if (!$t.grid ) { return; }
+			ind = $($t).jqGrid("getInd",rowid,true);
+			if( ind === false ) {return;}
+			editable = $(ind).attr("editable") || "0";
+			if (editable == "0" && !$(ind).hasClass("not-editable-row")) {
+				cm = $t.p.colModel;
+				$('td',ind).each( function(i) {
+					nm = cm[i].name;
+					var treeg = $t.p.treeGrid===true && nm == $t.p.ExpandColumn;
+					if(treeg) { tmp = $("span:first",this).html();}
+					else {
+						try {
+							tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
+						} catch (_) {
+							tmp = $(this).html();
+						}
+					}
+					if ( nm != 'cb' && nm != 'subgrid' && nm != 'rn') {
+						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+						svr[nm]=tmp;
+						if(cm[i].editable===true) {
+							if(focus===null) { focus = i; }
+							if (treeg) { $("span:first",this).html(""); }
+							else { $(this).html(""); }
+							var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm});
+							if(!cm[i].edittype) { cm[i].edittype = "text"; }
+							var elc = createEl(cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
+							$(elc).addClass("editable");
+							if(treeg) { $("span:first",this).append(elc); }
+							else { $(this).append(elc); }
+							//Again IE
+							if(cm[i].edittype == "select" && cm[i].editoptions.multiple===true && $.browser.msie) {
+								$(elc).width($(elc).width());
+							}
+							cnt++;
+						}
+					}
+				});
+				if(cnt > 0) {
+					svr.id = rowid; $t.p.savedRow.push(svr);
+					$(ind).attr("editable","1");
+					$("td:eq("+focus+") input",ind).focus();
+					if(keys===true) {
+						$(ind).bind("keydown",function(e) {
+							if (e.keyCode === 27) {$($t).jqGrid("restoreRow",rowid, afterrestorefunc);}
+							if (e.keyCode === 13) {
+								var ta = e.target;
+								if(ta.tagName == 'TEXTAREA') { return true; }
+								$($t).jqGrid("saveRow",rowid,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc );
+								return false;
+							}
+							e.stopPropagation();
+						});
+					}
+					if( $.isFunction(oneditfunc)) { oneditfunc(rowid); }
+				}
+			}
+		});
+	},
+	saveRow : function(rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
+		return this.each(function(){
+		var $t = this, nm, tmp={}, tmp2={}, editable, fr, cv, ind;
+		if (!$t.grid ) { return; }
+		ind = $($t).jqGrid("getInd",rowid,true);
+		if(ind === false) {return;}
+		editable = $(ind).attr("editable");
+		url = url ? url : $t.p.editurl;
+		if (editable==="1") {
+			var cm;
+			$("td",ind).each(function(i) {
+				cm = $t.p.colModel[i];
+				nm = cm.name;
+				if ( nm != 'cb' && nm != 'subgrid' && cm.editable===true && nm != 'rn') {
+					switch (cm.edittype) {
+						case "checkbox":
+							var cbv = ["Yes","No"];
+							if(cm.editoptions ) {
+								cbv = cm.editoptions.value.split(":");
+							}
+							tmp[nm]=  $("input",this).attr("checked") ? cbv[0] : cbv[1]; 
+							break;
+						case 'text':
+						case 'password':
+						case 'textarea':
+						case "button" :
+							tmp[nm]=$("input, textarea",this).val();
+							break;
+						case 'select':
+							if(!cm.editoptions.multiple) {
+								tmp[nm] = $("select>option:selected",this).val();
+								tmp2[nm] = $("select>option:selected", this).text();
+							} else {
+								var sel = $("select",this), selectedText = [];
+								tmp[nm] = $(sel).val();
+								if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; }
+								$("select > option:selected",this).each(
+									function(i,selected){
+										selectedText[i] = $(selected).text();
+									}
+								);
+								tmp2[nm] = selectedText.join(",");
+							}
+							if(cm.formatter && cm.formatter == 'select') { tmp2={}; }
+							break;
+						case 'custom' :
+							try {
+								if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
+									tmp[nm] = cm.editoptions.custom_value($(".customelement",this),'get');
+									if (tmp[nm] === undefined) { throw "e2"; }
+								} else { throw "e1"; }
+							} catch (e) {
+								if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
+								if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
+								else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+							}
+							break;
+					}
+					cv = checkValues(tmp[nm],i,$t);
+					if(cv[0] === false) {
+						cv[1] = tmp[nm] + " " + cv[1];
+						return false;
+					}
+					if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }
+				}
+			});
+			if (cv[0] === false){
+				try {
+					var positions = findPos($("#"+rowid)[0]);
+					info_dialog($.jgrid.errors.errcap,cv[1],$.jgrid.edit.bClose,{left:positions[0],top:positions[1]});
+				} catch (e) {
+					alert(cv[1]);
+				}
+				return;
+			}
+			if(tmp) {
+				var idname, opers, oper;
+				opers = $t.p.prmNames;
+				oper = opers.oper;
+				idname = opers.id;
+				tmp[oper] = opers.editoper;
+				tmp[idname] = rowid;
+				if(typeof($t.p.inlineData) == 'undefined') { $t.p.inlineData ={}; }
+				if(typeof(extraparam) == 'undefined') { extraparam ={}; }
+				tmp = $.extend({},tmp,$t.p.inlineData,extraparam);
+			}
+			if (url == 'clientArray') {
+				tmp = $.extend({},tmp, tmp2);
+				if($t.p.autoencode) {
+					$.each(tmp,function(n,v){
+						tmp[n] = $.jgrid.htmlDecode(v);
+					});
+				}
+				var resp = $($t).jqGrid("setRowData",rowid,tmp);
+				$(ind).attr("editable","0");
+				for( var k=0;k<$t.p.savedRow.length;k++) {
+					if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
+				}
+				if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
+				if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,resp); }
+			} else {
+				$("#lui_"+$t.p.id).show();
+				$.ajax($.extend({
+					url:url,
+					data: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData(tmp) : tmp,
+					type: "POST",
+					complete: function(res,stat){
+						$("#lui_"+$t.p.id).hide();
+						if (stat === "success"){
+							var ret;
+							if( $.isFunction(succesfunc)) { ret = succesfunc(res);}
+							else { ret = true; }
+							if (ret===true) {
+								if($t.p.autoencode) {
+									$.each(tmp,function(n,v){
+										tmp[n] = $.jgrid.htmlDecode(v);
+									});
+								}
+								tmp = $.extend({},tmp, tmp2);
+								$($t).jqGrid("setRowData",rowid,tmp);
+								$(ind).attr("editable","0");
+								for( var k=0;k<$t.p.savedRow.length;k++) {
+									if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
+								}
+								if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
+								if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,res); }
+							} else { $($t).jqGrid("restoreRow",rowid, afterrestorefunc); }
+						}
+					},
+					error:function(res,stat){
+						$("#lui_"+$t.p.id).hide();
+						if($.isFunction(errorfunc) ) {
+							errorfunc(rowid, res, stat);
+						} else {
+							alert("Error Row: "+rowid+" Result: " +res.status+":"+res.statusText+" Status: "+stat);
+						}
+					}
+				}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));
+			}
+			$(ind).unbind("keydown");
+		}
+		});
+	},
+	restoreRow : function(rowid, afterrestorefunc) {
+		return this.each(function(){
+			var $t= this, fr, ind, ares={};
+			if (!$t.grid ) { return; }
+			ind = $($t).jqGrid("getInd",rowid,true);
+			if(ind === false) {return;}
+			for( var k=0;k<$t.p.savedRow.length;k++) {
+				if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
+			}
+			if(fr >= 0) {
+				if($.isFunction($.fn.datepicker)) {
+					try {
+						$("input.hasDatepicker","#"+ind.id).datepicker('hide');
+					} catch (e) {}
+				}
+				$.each($t.p.colModel, function(i,n){
+					if(this.editable === true && this.name in $t.p.savedRow[fr]) {
+						ares[this.name] = $t.p.savedRow[fr][this.name];
+					}
+				});
+				$($t).jqGrid("setRowData",rowid,ares);
+				$(ind).attr("editable","0").unbind("keydown");
+				$t.p.savedRow.splice(fr,1);
+			}
+			if ($.isFunction(afterrestorefunc))
+			{
+				afterrestorefunc(rowid);
+			}
+		});
+	}
+//end inline edit
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Danish Translation
+ * Kaare Rasmussen kjs@jasonic.dk
+ * http://jasonic.dk/blog 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Loading...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Søg...",
+	    Find: "Find",
+	    Reset: "Nulstil",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Tilføj",
+	    editCaption: "Ret",
+	    bSubmit: "Send",
+	    bCancel: "Annuller",
+		bClose: "Luk",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Felt er nødvendigt",
+	        number:"Indtast venligst et validt tal",
+	        minValue:"værdi skal være større end eller lig med",
+	        maxValue:"værdi skal være mindre end eller lig med",
+	        email: "er ikke en valid email",
+	        integer: "Indtast venligst et validt heltalt",
+			date: "Indtast venligst en valid datoværdi",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Slet",
+	    msg: "Slet valgte række(r)?",
+	    bSubmit: "Slet",
+	    bCancel: "Annuller"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Rediger valgte række",
+		addtext:" ",
+	    addtitle: "Tilføj ny række",
+	    deltext: " ",
+	    deltitle: "Slet valgte række",
+	    searchtext: " ",
+	    searchtitle: "Find poster",
+	    refreshtext: "",
+	    refreshtitle: "Indlæs igen",
+	    alertcap: "Advarsel",
+	    alerttext: "Vælg venligst række",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Vis/skjul kolonner",
+	    bSubmit: "Send",
+	    bCancel: "Annuller"
+	},
+	errors : {
+		errcap : "Fejl",
+		nourl : "Ingel url valgt",
+		norecords: "Ingen poster at behandle",
+	    model : "colNames og colModel har ikke samme længde!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør",
+				"Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
+				"Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {return '.'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "j/n/Y",
+	            LongDate: "l d. F Y",
+	            FullDateTime: "l d F Y G:i:s",
+	            MonthDay: "d. F",
+	            ShortTime: "G:i",
+	            LongTime: "G:i:s",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+// DK
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid (fi) Finnish Translation
+ * Jukka Inkeri  awot.fi
+ * http://awot.fi
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Haetaan...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Etsi...",
+	    Find: "Etsi",
+	    Reset: "Tyhj&auml;&auml;",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Uusi rivi",
+	    editCaption: "Muokkaa rivi",
+	    bSubmit: "OK",
+	    bCancel: "Peru",
+		bClose: "Sulje",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"pakollinen",
+	        number:"Anna kelvollinen nro",
+	        minValue:"arvo oltava >= ",
+	        maxValue:"arvo oltava  <= ",
+	        email: "virheellinen sposti ",
+	        integer: "Anna kelvollinen kokonaisluku",
+			date: "Anna kelvollinen pvm",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Poista",
+	    msg: "Poista valitut  rivi(t)?",
+	    bSubmit: "Poista",
+	    bCancel: "Peru"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Muokkaa valittu rivi",
+		addtext:" ",
+	    addtitle: "Uusi rivi",
+	    deltext: " ",
+	    deltitle: "Poista valittu rivi",
+	    searchtext: " ",
+	    searchtitle: "Etsi tietoja",
+	    refreshtext: "",
+	    refreshtitle: "Lataa uudelleen",
+	    alertcap: "Varoitus",
+	    alerttext: "Valitse rivi",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Nayta/Piilota sarakkeet",
+	    bSubmit: "OK",
+	    bCancel: "Peru"	
+	},
+	errors : {
+		errcap : "Virhe",
+		nourl : "url asettamatta",
+		norecords: "Ei muokattavia tietoja",
+	    model : "Pituus colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: "", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Su", "Ma", "Ti", "Ke", "To", "Pe", "La",
+				"Sunnuntai", "Maanantai", "Tiista", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"
+			],
+			monthNames: [
+				"Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou",
+				"Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "d.m.Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+// FI
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js	(revision 178)
@@ -0,0 +1,132 @@
+;(function($){
+/**
+ * jqGrid Chinese Translation for v3.6
+ * waiting 2010.01.18
+ * http://waiting.javaeye.com/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ * 
+ * update 2010.05.04
+ *		add double u3000 SPACE for search:odata to fix SEARCH box display err when narrow width from only use of eq/ne/cn/in/lt/gt operator under IE6/7
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1}\u3000共 {2} 条",	// 共字前是全角空格
+		emptyrecords: "无数据显示",
+		loadtext: "读取中...",
+		pgtext : " {0} 共 {1} 页"
+	},
+	search : {
+		caption: "搜索...",
+		Find: "查找",
+		Reset: "重置",
+		odata : ['等于\u3000\u3000', '不等\u3000\u3000', '小于\u3000\u3000', '小于等于','大于\u3000\u3000','大于等于', 
+			'开始于','不开始于','属于\u3000\u3000','不属于','结束于','不结束于','包含\u3000\u3000','不包含'],
+		groupOps: [	{ op: "AND", text: "所有" },	{ op: "OR",  text: "任一" }	],
+		matchText: " 匹配",
+		rulesText: " 规则"
+	},
+	edit : {
+		addCaption: "添加记录",
+		editCaption: "编辑记录",
+		bSubmit: "提交",
+		bCancel: "取消",
+		bClose: "关闭",
+		saveData: "数据已改变，是否保存？",
+		bYes : "是",
+		bNo : "否",
+		bExit : "取消",
+		msg: {
+			required:"此字段必需",
+			number:"请输入有效数字",
+			minValue:"输值必须大于等于 ",
+			maxValue:"输值必须小于等于 ",
+			email: "这不是有效的e-mail地址",
+			integer: "请输入有效整数",
+			date: "请输入有效时间",
+			url: "无效网址。前缀必须为 ('http://' 或 'https://')",
+			nodefined : " 未定义！",
+			novalue : " 需要返回值！",
+			customarray : "自定义函数需要返回数组！",
+			customfcheck : "Custom function should be present in case of custom checking!"
+			
+		}
+	},
+	view : {
+		caption: "查看记录",
+		bClose: "关闭"
+	},
+	del : {
+		caption: "删除",
+		msg: "删除所选记录？",
+		bSubmit: "删除",
+		bCancel: "取消"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "编辑所选记录",
+		addtext:"",
+		addtitle: "添加新记录",
+		deltext: "",
+		deltitle: "删除所选记录",
+		searchtext: "",
+		searchtitle: "查找",
+		refreshtext: "",
+		refreshtitle: "刷新表格",
+		alertcap: "注意",
+		alerttext: "请选择记录",
+		viewtext: "",
+		viewtitle: "查看所选记录"
+	},
+	col : {
+		caption: "选择列",
+		bSubmit: "确定",
+		bCancel: "取消"
+	},
+	errors : {
+		errcap : "错误",
+		nourl : "没有设置url",
+		norecords: "没有要处理的记录",
+		model : "colNames 和 colModel 长度不等！"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+		         "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'm-d-Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "Y/j/n",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid Greek (el) Translation
+ * Alex Cicovic
+ * http://www.alexcicovic.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Φόρτωση...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Αναζήτηση...",
+	    Find: "Εύρεση",
+	    Reset: "Επαναφορά",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Εισαγωγή Εγγραφής",
+	    editCaption: "Επεξεργασία Εγγραφής",
+	    bSubmit: "Καταχώρηση",
+	    bCancel: "Άκυρο",
+		bClose: "Κλείσιμο",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Το πεδίο είναι απαραίτητο",
+	        number:"Το πεδίο δέχεται μόνο αριθμούς",
+	        minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",
+	        maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",
+	        email: "Η διεύθυνση e-mail δεν είναι έγκυρη",
+	        integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Διαγραφή",
+	    msg: "Διαγραφή των επιλεγμένων εγγραφών;",
+	    bSubmit: "Ναι",
+	    bCancel: "Άκυρο"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Επεξεργασία επιλεγμένης εγγραφής",
+		addtext:" ",
+	    addtitle: "Εισαγωγή νέας εγγραφής",
+	    deltext: " ",
+	    deltitle: "Διαγραφή επιλεγμένης εγγραφής",
+	    searchtext: " ",
+	    searchtitle: "Εύρεση Εγγραφών",
+	    refreshtext: "",
+	    refreshtitle: "Ανανέωση Πίνακα",
+	    alertcap: "Προσοχή",
+	    alerttext: "Δεν έχετε επιλέξει εγγραφή",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Εμφάνιση / Απόκρυψη Στηλών",
+	    bSubmit: "ΟΚ",
+	    bCancel: "Άκυρο"
+	},
+	errors : {
+		errcap : "Σφάλμα",
+		nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",
+		norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία",
+		model : "Άνισος αριθμός πεδίων colNames/colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ",
+				"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"
+			],
+			monthNames: [
+				"Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ",
+				"Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
+			],
+			AmPm : ["πμ","μμ","ΠΜ","ΜΜ"],
+			S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js	(revision 178)
@@ -0,0 +1,132 @@
+;(function($){
+/**
+ * jqGrid Bulgarian Translation 
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1} �� {2}",
+		emptyrecords: "���� �����(�)",
+		loadtext: "��������...",
+		pgtext : "���. {0} �� {1}"
+	},
+	search : {
+		caption: "�������...",
+		Find: "������",
+		Reset: "�������",
+		odata : ['�����', '��������', '��-�����', '��-����� ���=','��-������','��-������ ��� =', '������� �','�� ������� �','�� ������ �','�� �� ������ �','�������� �','�� ��������� �','�������', '�� �������' ],
+	    groupOps: [	{ op: "AND", text: " � " },	{ op: "OR",  text: "���" }	],
+		matchText: " ������",
+		rulesText: " ������"
+	},
+	edit : {
+		addCaption: "��� �����",
+		editCaption: "�������� �����",
+		bSubmit: "������",
+		bCancel: "�����",
+		bClose: "�������",
+		saveData: "������� �� ���������! �� ������� �� ���������?",
+		bYes : "��",
+		bNo : "��",
+		bExit : "�����",
+		msg: {
+		    required:"������ � ������������",
+		    number:"�������� ������� �����!",
+		    minValue:"���������� ������ �� � ��-������ ��� ����� ��",
+		    maxValue:"���������� ������ �� � ��-����� ��� ����� ��",
+		    email: "�� � ������� ��. �����",
+		    integer: "�������� ������� ���� �����",
+			date: "�������� ������� ����",
+			url: "e ��������� URL. �������� �� �������('http://' ��� 'https://')",
+			nodefined : " � ������������!",
+			novalue : " ������� ������� �� ��������!",
+			customarray : "������. ������� ������ �� ����� �����!",
+			customfcheck : "������������� ������� � ������������ ��� ���� ��� �������!"
+		}
+	},
+	view : {
+	    caption: "������� �����",
+	    bClose: "�������"
+	},
+	del : {
+		caption: "���������",
+		msg: "�� ������ �� ��������� �����?",
+		bSubmit: "������",
+		bCancel: "�����"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "�������� ������ �����",
+		addtext:" ",
+		addtitle: "�������� ��� �����",
+		deltext: " ",
+		deltitle: "��������� ������ �����",
+		searchtext: " ",
+		searchtitle: "������� �����(�)",
+		refreshtext: "",
+		refreshtitle: "������ �������",
+		alertcap: "��������������",
+		alerttext: "����, �������� �����",
+		viewtext: "",
+		viewtitle: "������� ������ �����"
+	},
+	col : {
+		caption: "����� ������",
+		bSubmit: "��",
+		bCancel: "�����"	
+	},
+	errors : {
+		errcap : "������",
+		nourl : "���� ������� url �����",
+		norecords: "���� ����� �� ���������",
+		model : "������ �� ����������� �� �������!"	
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" ��.", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"���", "���", "��", "��", "���", "���", "���",
+				"������", "����������", "�������", "�����", "���������", "�����", "������"
+			],
+			monthNames: [
+				"���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���",
+				"������", "��������", "����", "�����", "���", "���", "���", "������", "���������", "��������", "�������", "��������"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {
+				if(j==7 || j==8 || j== 27 || j== 28) {
+					return '��';
+				}
+				return ['��', '��', '��'][Math.min((j - 1) % 10, 2)];
+			},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid English Translation
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+		emptyrecords: "No records to view",
+		loadtext: "Loading...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+		caption: "Search...",
+		Find: "Find",
+		Reset: "Reset",
+		odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+		groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+		addCaption: "Add Record",
+		editCaption: "Edit Record",
+		bSubmit: "Submit",
+		bCancel: "Cancel",
+		bClose: "Close",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+		msg: {
+			required:"Field is required",
+			number:"Please, enter valid number",
+			minValue:"value must be greater than or equal to ",
+			maxValue:"value must be less than or equal to",
+			email: "is not a valid e-mail",
+			integer: "Please, enter valid integer value",
+			date: "Please, enter valid date value",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+			
+		}
+	},
+	view : {
+		caption: "View Record",
+		bClose: "Close"
+	},
+	del : {
+		caption: "Delete",
+		msg: "Delete selected record(s)?",
+		bSubmit: "Delete",
+		bCancel: "Cancel"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "Edit selected row",
+		addtext:"",
+		addtitle: "Add new row",
+		deltext: "",
+		deltitle: "Delete selected row",
+		searchtext: "",
+		searchtitle: "Find records",
+		refreshtext: "",
+		refreshtitle: "Reload Grid",
+		alertcap: "Warning",
+		alerttext: "Please, select row",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+		caption: "Select columns",
+		bSubmit: "Ok",
+		bCancel: "Cancel"
+	},
+	errors : {
+		errcap : "Error",
+		nourl : "No url is set",
+		norecords: "No records to process",
+		model : "Length of colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Ukrainian Translation v1.0 02.07.2009
+ * Sergey Dyagovchenko
+ * http://d.sumy.ua
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Перегляд {0} - {1} з {2}",
+	  emptyrecords: "Немає записів для перегляду",
+		loadtext: "Завантаження...",
+		pgtext : "Стор. {0} з {1}"
+	},
+	search : {
+    caption: "Пошук...",
+    Find: "Знайти",
+    Reset: "Скидання",
+    odata : ['рівно', 'не рівно', 'менше', 'менше або рівне','більше','більше або рівне', 'починається з','не починається з','знаходиться в','не знаходиться в','закінчується на','не закінчується на','містить','не містить'],
+    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "будь-який" }	],
+    matchText: " збігається",
+    rulesText: " правила"
+	},
+	edit : {
+    addCaption: "Додати запис",
+    editCaption: "Змінити запис",
+    bSubmit: "Зберегти",
+    bCancel: "Відміна",
+		bClose: "Закрити",
+		saveData: "До данних були внесені зміни! Зберегти зміни?",
+		bYes : "Так",
+		bNo : "Ні",
+		bExit : "Відміна",
+	    msg: {
+        required:"Поле є обов'язковим",
+        number:"Будь ласка, введіть правильне число",
+        minValue:"значення повинне бути більше або дорівнює",
+        maxValue:"значення повинно бути менше або дорівнює",
+        email: "некоректна адреса електронної пошти",
+        integer: "Будь ласка, введення дійсне ціле значення",
+        date: "Будь ласка, введення дійсне значення дати",
+        url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')",
+		nodefined : " is not defined!",
+		novalue : " return value is required!",
+		customarray : "Custom function should return array!",
+		customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Переглянути запис",
+	    bClose: "Закрити"
+	},
+	del : {
+	    caption: "Видалити",
+	    msg: "Видалити обраний запис(и)?",
+	    bSubmit: "Видалити",
+	    bCancel: "Відміна"
+	},
+	nav : {
+  		edittext: " ",
+	    edittitle: "Змінити вибраний запис",
+  		addtext:" ",
+	    addtitle: "Додати новий запис",
+	    deltext: " ",
+	    deltitle: "Видалити вибраний запис",
+	    searchtext: " ",
+	    searchtitle: "Знайти записи",
+	    refreshtext: "",
+	    refreshtitle: "Оновити таблицю",
+	    alertcap: "Попередження",
+	    alerttext: "Будь ласка, виберіть запис",
+  		viewtext: "",
+  		viewtitle: "Переглянути обраний запис"
+	},
+	col : {
+	    caption: "Показати/Приховати стовпці",
+	    bSubmit: "Зберегти",
+	    bCancel: "Відміна"
+	},
+	errors : {
+		errcap : "Помилка",
+		nourl : "URL не задан",
+		norecords: "Немає записів для обробки",
+    model : "Число полів не відповідає числу стовпців таблиці!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
+				"Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"
+			],
+			monthNames: [
+				"Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру",
+				"Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd.m.Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n.j.Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y G:i:s",
+	            MonthDay: "F d",
+	            ShortTime: "G:i",
+	            LongTime: "G:i:s",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	  target: '',
+	  checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Czech Translation
+ * Pavel Jirak pavel.jirak@jipas.cz
+ * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Zobrazeno {0} - {1} z {2} záznamů",
+	    emptyrecords: "Nenalezeny žádné záznamy",
+		loadtext: "Načítám...",
+		pgtext : "Strana {0} z {1}"
+	},
+	search : {
+		caption: "Vyhledávám...",
+		Find: "Hledat",
+		Reset: "Reset",
+	    odata : ['rovno', 'nerovono', 'menší', 'menší nebo rovno','větší', 'větší nebo rovno', 'začíná s', 'nezačíná s', 'je v', 'není v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
+	    groupOps: [	{ op: "AND", text: "všech" },	{ op: "OR",  text: "některého z" }	],
+		matchText: " hledat podle",
+		rulesText: " pravidel"
+	},
+	edit : {
+		addCaption: "Přidat záznam",
+		editCaption: "Editace záznamu",
+		bSubmit: "Uložit",
+		bCancel: "Storno",
+		bClose: "Zavřít",
+		saveData: "Data byla změněna! Uložit změny?",
+		bYes : "Ano",
+		bNo : "Ne",
+		bExit : "Zrušit",
+		msg: {
+		    required:"Pole je vyžadováno",
+		    number:"Prosím, vložte validní číslo",
+		    minValue:"hodnota musí být větší než nebo rovná ",
+		    maxValue:"hodnota musí být menší než nebo rovná ",
+		    email: "není validní e-mail",
+		    integer: "Prosím, vložte celé číslo",
+			date: "Prosím, vložte validní datum",
+			url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')",
+			nodefined : " není definován!",
+			novalue : " je vyžadována návratová hodnota!",
+			customarray : "Custom function mělá vrátit pole!",
+			customfcheck : "Custom function by měla být přítomna v případě custom checking!"
+		}
+	},
+	view : {
+	    caption: "Zobrazit záznam",
+	    bClose: "Zavřít"
+	},
+	del : {
+		caption: "Smazat",
+		msg: "Smazat vybraný(é) záznam(y)?",
+		bSubmit: "Smazat",
+		bCancel: "Storno"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Editovat vybraný řádek",
+		addtext:" ",
+		addtitle: "Přidat nový řádek",
+		deltext: " ",
+		deltitle: "Smazat vybraný záznam ",
+		searchtext: " ",
+		searchtitle: "Najít záznamy",
+		refreshtext: "",
+		refreshtitle: "Obnovit tabulku",
+		alertcap: "Varování",
+		alerttext: "Prosím, vyberte řádek",
+		viewtext: "",
+		viewtitle: "Zobrazit vybraný řádek"
+	},
+	col : {
+		caption: "Zobrazit/Skrýt sloupce",
+		bSubmit: "Uložit",
+		bCancel: "Storno"	
+	},
+	errors : {
+		errcap : "Chyba",
+		nourl : "Není nastavena url",
+		norecords: "Žádné záznamy ke zpracování",
+		model : "Délka colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Ne", "Po", "Út", "St", "Čt", "Pá", "So",
+				"Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"
+			],
+			monthNames: [
+				"Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro",
+				"Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
+			],
+			AmPm : ["do","od","DO","OD"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Catalan Translation
+ * Traducció jqGrid en Catatà per Faserline, S.L.
+ * http://www.faserline.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Mostrant {0} - {1} de {2}",
+	    emptyrecords: "Sense registres que mostrar",
+		loadtext: "Carregant...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+		caption: "Cerca...",
+		Find: "Cercar",
+		Reset: "Buidar",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "tot" },	{ op: "OR",  text: "qualsevol" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+		addCaption: "Afegir registre",
+		editCaption: "Modificar registre",
+		bSubmit: "Guardar",
+		bCancel: "Cancelar",
+		bClose: "Tancar",
+		saveData: "Les dades han canviat. Guardar canvis?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+		msg: {
+		    required:"Camp obligatori",
+		    number:"Introdueixi un nombre",
+		    minValue:"El valor ha de ser major o igual que ",
+		    maxValue:"El valor ha de ser menor o igual a ",
+		    email: "no és una direcció de correu vàlida",
+		    integer: "Introdueixi un valor enter",
+			date: "Introdueixi una data correcta ",
+			url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+		caption: "Veure registre",
+		bClose: "Tancar"
+	},
+	del : {
+		caption: "Eliminar",
+		msg: "¿Desitja eliminar els registres seleccionats?",
+		bSubmit: "Eliminar",
+		bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Modificar fila seleccionada",
+		addtext:" ",
+		addtitle: "Agregar nova fila",
+		deltext: " ",
+		deltitle: "Eliminar fila seleccionada",
+		searchtext: " ",
+		searchtitle: "Cercar informació",
+		refreshtext: "",
+		refreshtitle: "Refrescar taula",
+		alertcap: "Avís",
+		alerttext: "Seleccioni una fila",
+		viewtext: " ",
+		viewtitle: "Veure fila seleccionada"
+	},
+// setcolumns module
+	col : {
+		caption: "Mostrar/ocultar columnes",
+		bSubmit: "Enviar",
+		bCancel: "Cancelar"	
+	},
+	errors : {
+		errcap : "Error",
+		nourl : "No s'ha especificat una URL",
+		norecords: "No hi ha dades per processar",
+		model : "Les columnes de noms són diferents de les columnes del model"
+	},
+	formatter : {
+		integer : {thousandsSeparator: ".", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds",
+				"Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"
+			],
+			monthNames: [
+				"Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des",
+				"Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd-m-Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: 'show',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid French Translation
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Enregistrements {0} - {1} sur {2}",
+		emptyrecords: "Aucun enregistrement à afficher",
+		loadtext: "Chargement...",
+		pgtext : "Page {0} sur {1}"
+	},
+	search : {
+		caption: "Recherche...",
+		Find: "Chercher",
+		Reset: "Annuler",
+		odata : ['égal', 'différent', 'inférieur', 'inférieur ou égal','supérieur','supérieur ou égal', 'commence par','ne commence pas par','est dans',"n'est pas dans",'finit par','ne finit pas par','contient','ne contient pas'],
+		groupOps: [	{ op: "AND", text: "tous" },	{ op: "OR",  text: "aucun" }	],
+		matchText: " correspondance",
+		rulesText: " règles"
+	},
+	edit : {
+		addCaption: "Ajouter",
+		editCaption: "Editer",
+		bSubmit: "Valider",
+		bCancel: "Annuler",
+		bClose: "Fermer",
+		saveData: "Les données ont changé ! Enregistrer les modifications ?",
+		bYes: "Oui",
+		bNo: "Non",
+		bExit: "Annuler",
+		msg: {
+			required: "Champ obligatoire",
+			number: "Saisissez un nombre correct",
+			minValue: "La valeur doit être supérieure ou égale à 0",
+			maxValue: "La valeur doit être inférieure ou égale à 0",
+			email: "n'est pas un email correct",
+			integer: "Saisissez un entier correct",
+			url: "n'est pas une adresse correcte. Préfixe requis ('http://' or 'https://')",
+			nodefined : " n'est pas défini!",
+			novalue : " la valeur de retour est requise!",
+			customarray : "Une fonction personnalisée devrait retourner un tableau (array)!",
+			customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"
+		}
+	},
+	view : {
+		caption: "Voir les enregistrement",
+		bClose: "Fermer"
+	},
+	del : {
+		caption: "Supprimer",
+		msg: "Supprimer les enregistrements sélectionnés ?",
+		bSubmit: "Supprimer",
+		bCancel: "Annuler"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Editer la ligne sélectionnée",
+		addtext:" ",
+		addtitle: "Ajouter une ligne",
+		deltext: " ",
+		deltitle: "Supprimer la ligne sélectionnée",
+		searchtext: " ",
+		searchtitle: "Chercher un enregistrement",
+		refreshtext: "",
+		refreshtitle: "Recharger le tableau",
+		alertcap: "Avertissement",
+		alerttext: "Veuillez sélectionner une ligne",
+		viewtext: "",
+		viewtitle: "Afficher la ligne sélectionnée"
+	},
+	col : {
+		caption: "Afficher/Masquer les colonnes",
+		bSubmit: "Valider",
+		bCancel: "Annuler"
+	},
+	errors : {
+		errcap : "Erreur",
+		nourl : "Aucune adresse n'est paramétrée",
+		norecords: "Aucun enregistrement à traiter",
+		model : "Nombre de titres (colNames) <> Nombre de données (colModel)!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam",
+				"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
+			],
+			monthNames: [
+				"Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc",
+				"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j == 1 ? 'er' : 'e';},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js	(revision 178)
@@ -0,0 +1,149 @@
+(function(a) {
+    a.jgrid =
+    {
+        defaults:
+        {
+            recordtext: "regels {0} - {1} van {2}",
+            emptyrecords: "Geen data gevonden.",
+            loadtext: "laden...",
+            pgtext: "pagina  {0}  van {1}"
+        },
+        search:
+        {
+            caption: "Zoeken...",
+            Find: "Zoek",
+            Reset: "Herstellen",
+            odata: ["gelijk aan", "niet gelijk aan", "kleiner dan", "kleiner dan of gelijk aan", "groter dan", "groter dan of gelijk aan", "begint met", "begint niet met", "is in", "is niet in", "eindigd met", "eindigd niet met", "bevat", "bevat niet"],
+            groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}],
+            matchText: " match",
+            rulesText: " regels"
+        },
+        edit:
+        {
+            addCaption: "Nieuw",
+            editCaption: "Bewerken",
+            bSubmit: "Opslaan",
+            bCancel: "Annuleren",
+            bClose: "Sluiten",
+            saveData: "Er is data aangepast! Wijzigingen opslaan?",
+            bYes: "Ja",
+            bNo: "Nee",
+            bExit: "Sluiten",
+            msg:
+            {
+                required: "Veld is verplicht",
+                number: "Voer a.u.b. geldig nummer in",
+                minValue: "Waarde moet groter of gelijk zijn aan ",
+                maxValue: "Waarde moet kleiner of gelijks zijn aan",
+                email: "is geen geldig e-mailadres",
+                integer: "Voer a.u.b. een geldig getal in",
+                date: "Voer a.u.b. een geldige waarde in",
+                url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",
+                nodefined : " is not defined!",
+                novalue : " return value is required!",
+                customarray : "Custom function should return array!",
+                customfcheck : "Custom function should be present in case of custom checking!"
+            }
+        },
+        view:
+        {
+            caption: "Tonen",
+            bClose: "Sluiten"
+        },
+        del:
+        {
+            caption: "Verwijderen",
+            msg: "Verwijder geselecteerde regel(s)?",
+            bSubmit: "Verwijderen",
+            bCancel: "Annuleren"
+        },
+        nav:
+        {
+            edittext: "",
+            edittitle: "Bewerken",
+            addtext: "",
+            addtitle: "Nieuw",
+            deltext: "",
+            deltitle: "Verwijderen",
+            searchtext: "",
+            searchtitle: "Zoeken",
+            refreshtext: "",
+            refreshtitle: "Vernieuwen",
+            alertcap: "Waarschuwing",
+            alerttext: "Selecteer a.u.b. een regel",
+            viewtext: "",
+            viewtitle: "Openen"
+        },
+        col:
+        {
+            caption: "Tonen/verbergen kolommen",
+            bSubmit: "OK",
+            bCancel: "Annuleren"
+        },
+        errors:
+        {
+            errcap: "Fout",
+            nourl: "Er is geen URL gedefinieerd",
+            norecords: "Geen data om te verwerken",
+            model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!"
+        },
+        formatter:
+        {
+            integer:
+            {
+                thousandsSeparator: ".",
+                defaultValue: "0"
+            },
+            number:
+            {
+                decimalSeparator: ",",
+                thousandsSeparator: ".",
+                decimalPlaces: 2,
+                defaultValue: "0.00"
+            },
+            currency:
+            {
+                decimalSeparator: ",",
+                thousandsSeparator: ".",
+                decimalPlaces: 2,
+                prefix: "EUR ",
+                suffix: "",
+                defaultValue: "0.00"
+            },
+            date:
+            {
+                dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
+                monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"],
+                AmPm: ["am", "pm", "AM", "PM"],
+                S: function(b) {
+                    return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th"
+                },
+                srcformat: "Y-m-d",
+                newformat: "d/m/Y",
+                masks:
+                {
+                    ISO8601Long: "Y-m-d H:i:s",
+                    ISO8601Short: "Y-m-d",
+                    ShortDate: "n/j/Y",
+                    LongDate: "l, F d, Y",
+                    FullDateTime: "l d F Y G:i:s",
+                    MonthDay: "d F",
+                    ShortTime: "G:i",
+                    LongTime: "G:i:s",
+                    SortableDateTime: "Y-m-d\\TH:i:s",
+                    UniversalSortableDateTime: "Y-m-d H:i:sO",
+                    YearMonth: "F, Y"
+                },
+                reformatAfterEdit: false
+            },
+            baseLinkUrl: "",
+            showAction: "",
+            target: "",
+            checkbox:
+            {
+                disabled: true
+            },
+            idName: "id"
+        }
+    }
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Polish Translation
+ * Łukasz Schab
+ * http://FreeTree.pl
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Pokaż {0} - {1} z {2}",
+	    emptyrecords: "Brak rekordów do pokazania",
+		loadtext: "\u0142adowanie...",
+		pgtext : "Strona {0} z {1}"
+	},
+	search : {
+	    caption: "Wyszukiwanie...",
+	    Find: "Szukaj",
+	    Reset: "Czyść",
+	    odata : ['dok\u0142adnie', 'różne od', 'mniejsze od', 'mniejsze lub równe','większe od','większe lub równe', 'zaczyna się od','nie zaczyna się od','zawiera','nie zawiera','kończy się na','nie kończy się na','zawiera','nie zawiera'],
+	    groupOps: [	{ op: "ORAZ", text: "wszystkie" },	{ op: "LUB",  text: "każdy" }	],
+		matchText: " pasuje",
+		rulesText: " regu\u0142y"
+	},
+	edit : {
+	    addCaption: "Dodaj rekord",
+	    editCaption: "Edytuj rekord",
+	    bSubmit: "Zapisz",
+	    bCancel: "Anuluj",
+		bClose: "Zamknij",
+		saveData: "Dane zosta\u0142y zmienione! Zapisać zmiany?",
+		bYes : "Tak",
+		bNo : "Nie",
+		bExit : "Anuluj",
+	    msg: {
+	        required:"Pole jest wymagane",
+	        number:"Proszę wpisać poprawną liczbę",
+	        minValue:"wartość musi być większa lub równa",
+	        maxValue:"wartość musi być mniejsza od",
+	        email: "nie jest adresem e-mail",
+	        integer: "Proszę wpisać poprawną liczbę",
+			date: "Proszę podaj poprawną datę",
+			url: "jest niew\u0142aściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Pokaż rekord",
+	    bClose: "Zamknij"
+	},
+	del : {
+	    caption: "Usuwanie",
+	    msg: "Czy usunąć wybrany rekord(y)?",
+	    bSubmit: "Usuń",
+	    bCancel: "Anuluj"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Edytuj wybrany wiersz",
+		addtext:" ",
+	    addtitle: "Dodaj nowy wiersz",
+	    deltext: " ",
+	    deltitle: "Usuń wybrany wiersz",
+	    searchtext: " ",
+	    searchtitle: "Wyszukaj rekord",
+	    refreshtext: "",
+	    refreshtitle: "Prze\u0142aduj",
+	    alertcap: "Uwaga",
+	    alerttext: "Proszę wybrać wiersz",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Pokaż/Ukryj kolumny",
+	    bSubmit: "Zatwierdź",
+	    bCancel: "Anuluj"	
+	},
+	errors : {
+		errcap : "B\u0142ąd",
+		nourl : "Brak adresu url",
+		norecords: "Brak danych",
+	    model : "D\u0142ugość colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Nie", "Pon", "Wt", "Śr", "Cz", "Pi", "So",
+				"Niedziela", "Poniedzia\u0142ek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"
+			],
+			monthNames: [
+				"Sty", "Lu", "Mar", "Kwie", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru",
+				"Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"
+				],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+			    ISO8601Long:"Y-m-d H:i:s",
+			    ISO8601Short:"Y-m-d",
+			    ShortDate: "n/j/Y",
+			    LongDate: "l, F d, Y",
+			    FullDateTime: "l, F d, Y g:i:s A",
+			    MonthDay: "F d",
+			    ShortTime: "g:i A",
+			    LongTime: "g:i:s A",
+			    SortableDateTime: "Y-m-d\\TH:i:s",
+			    UniversalSortableDateTime: "Y-m-d H:i:sO",
+			    YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},	
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid Icelandic Translation
+ * jtm@hi.is Univercity of Iceland
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Hleður...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Leita...",
+	    Find: "Leita",
+	    Reset: "Endursetja",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Add Record",
+	    editCaption: "Edit Record",
+	    bSubmit: "Vista",
+	    bCancel: "Hætta við",
+		bClose: "Loka",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Reitur er nauðsynlegur",
+	        number:"Vinsamlega settu inn tölu",
+	        minValue:"gildi verður að vera meira en eða jafnt og ",
+	        maxValue:"gildi verður að vera minna en eða jafnt og ",
+	        email: "er ekki löglegt email",
+	        integer: "Vinsamlega settu inn tölu",
+			date: "Please, enter valid date value",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Eyða",
+	    msg: "Eyða völdum færslum ?",
+	    bSubmit: "Eyða",
+	    bCancel: "Hætta við"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Breyta færslu",
+		addtext:" ",
+	    addtitle: "Ný færsla",
+	    deltext: " ",
+	    deltitle: "Eyða færslu",
+	    searchtext: " ",
+	    searchtitle: "Leita",
+	    refreshtext: "",
+	    refreshtitle: "Endurhlaða",
+	    alertcap: "Viðvörun",
+	    alerttext: "Vinsamlega veldu færslu",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Sýna / fela dálka",
+	    bSubmit: "Vista",
+	    bCancel: "Hætta við"	
+	},
+	errors : {
+		errcap : "Villa",
+		nourl : "Vantar slóð",
+		norecords: "Engar færslur valdar",
+	    model : "Length of colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js	(revision 178)
@@ -0,0 +1 @@
+(function(a){a.jgrid={};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:["lik","forskjellig fra","mindre enn","mindre eller lik","st�rre enn"," st�rre eller lik","starter med","slutter med","inneholder"]};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaulValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js	(revision 178)
@@ -0,0 +1 @@
+(function(a){a.jgrid={defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci",odata:["uguale","diverso","minore","minore o uguale","maggiore","maggiore o uguale","inizia con","non inizia con","in","non in","termina con","non termina con","contiene","non contiene"],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}],matchText:" corrisponde",rulesText:" regole"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames &lt;&gt; colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Slovak Translation
+ * Milan Cibulka
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Zobrazených {0} - {1} z {2} záznamov",
+	    emptyrecords: "Neboli nájdené žiadne záznamy",
+		loadtext: "Načítám...",
+		pgtext : "Strana {0} z {1}"
+	},
+	search : {
+		caption: "Vyhľadávam...",
+		Find: "Hľadať",
+		Reset: "Reset",
+	    odata : ['rovná sa', 'nerovná sa', 'menšie', 'menšie alebo rovnajúce sa','väčšie', 'väčšie alebo rovnajúce sa', 'začína s', 'nezačína s', 'je v', 'nie je v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
+	    groupOps: [	{ op: "AND", text: "všetkých" },	{ op: "OR",  text: "niektorého z" }	],
+		matchText: " hľadať podla",
+		rulesText: " pravidiel"
+	},
+	edit : {
+		addCaption: "Pridať záznam",
+		editCaption: "Editácia záznamov",
+		bSubmit: "Uložiť",
+		bCancel: "Storno",
+		bClose: "Zavrieť",
+		saveData: "Údaje boli zmenené! Uložiť zmeny?",
+		bYes : "Ano",
+		bNo : "Nie",
+		bExit : "Zrušiť",
+		msg: {
+		    required:"Pole je požadované",
+		    number:"Prosím, vložte valídne číslo",
+		    minValue:"hodnota musí býť väčšia ako alebo rovná ",
+		    maxValue:"hodnota musí býť menšia ako alebo rovná ",
+		    email: "nie je valídny e-mail",
+		    integer: "Prosím, vložte celé číslo",
+			date: "Prosím, vložte valídny dátum",
+			url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",
+			nodefined : " nie je definovaný!",
+			novalue : " je vyžadovaná návratová hodnota!",
+			customarray : "Custom function mala vrátiť pole!",
+			customfcheck : "Custom function by mala byť prítomná v prípade custom checking!"
+		}
+	},
+	view : {
+	    caption: "Zobraziť záznam",
+	    bClose: "Zavrieť"
+	},
+	del : {
+		caption: "Zmazať",
+		msg: "Zmazať vybraný(é) záznam(y)?",
+		bSubmit: "Zmazať",
+		bCancel: "Storno"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Editovať vybraný riadok",
+		addtext:" ",
+		addtitle: "Pridať nový riadek",
+		deltext: " ",
+		deltitle: "Zmazať vybraný záznam ",
+		searchtext: " ",
+		searchtitle: "Nájsť záznamy",
+		refreshtext: "",
+		refreshtitle: "Obnoviť tabuľku",
+		alertcap: "Varovanie",
+		alerttext: "Prosím, vyberte riadok",
+		viewtext: "",
+		viewtitle: "Zobraziť vybraný riadok"
+	},
+	col : {
+		caption: "Zobrazit/Skrýť stĺpce",
+		bSubmit: "Uložiť",
+		bCancel: "Storno"	
+	},
+	errors : {
+		errcap : "Chyba",
+		nourl : "Nie je nastavená url",
+		norecords: "Žiadne záznamy k spracovaniu",
+		model : "Dĺžka colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Ne", "Po", "Ut", "St", "Št", "Pi", "So",
+				"Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec",
+				"Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
+			],
+			AmPm : ["do","od","DO","OD"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js	(revision 178)
@@ -0,0 +1,139 @@
+;(function($){
+/**
+ * jqGrid Romanian Translation
+ * Alexandru Emil Lupu contact@alecslupu.ro
+ * http://www.alecslupu.ro/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Vizualizare {0} - {1} din {2}",
+		emptyrecords: "Nu există înregistrări de vizualizat",
+		loadtext: "Încărcare...",
+		pgtext : "Pagina {0} din {1}"
+	},
+	search : {
+		caption: "Caută...",
+		Find: "Caută",
+		Reset: "Resetare",
+		odata : ['egal', 'diferit', 'mai mic', 'mai mic sau egal','mai mare','mai mare sau egal', 'începe cu','nu începe cu','se găsește în','nu se găsește în','se termină cu','nu se termină cu','conține',''],
+		groupOps: [	{ op: "AND", text: "toate" },	{ op: "OR",  text: "oricare" }	],
+		matchText: " găsite",
+		rulesText: " reguli"
+	},
+	edit : {
+		addCaption: "Adăugare înregistrare",
+		editCaption: "Modificare înregistrare",
+		bSubmit: "Salvează",
+		bCancel: "Anulare",
+		bClose: "Închide",
+		saveData: "Informațiile au fost modificate! Salvați modificările?",
+		bYes : "Da",
+		bNo : "Nu",
+		bExit : "Anulare",
+		msg: {
+			required:"Câmpul este obligatoriu",
+			number:"Vă rugăm introduceți un număr valid",
+			minValue:"valoarea trebuie sa fie mai mare sau egală cu",
+			maxValue:"valoarea trebuie sa fie mai mică sau egală cu",
+			email: "nu este o adresă de e-mail validă",
+			integer: "Vă rugăm introduceți un număr valid",
+			date: "Vă rugăm să introduceți o dată validă",
+			url: "Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+		caption: "Vizualizare înregistrare",
+		bClose: "Închidere"
+	},
+	del : {
+		caption: "Ștegere",
+		msg: "Ștergeți înregistrarea (înregistrările) selectate?",
+		bSubmit: "Șterge",
+		bCancel: "Anulare"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "Modifică rândul selectat",
+		addtext:"",
+		addtitle: "Adaugă rând nou",
+		deltext: "",
+		deltitle: "Șterge rândul selectat",
+		searchtext: "",
+		searchtitle: "Căutare înregistrări",
+		refreshtext: "",
+		refreshtitle: "Reîncarcare Grid",
+		alertcap: "Avertisment",
+		alerttext: "Vă rugăm să selectați un rând",
+		viewtext: "",
+		viewtitle: "Vizualizează rândul selectat"
+	},
+	col : {
+		caption: "Arată/Ascunde coloanele",
+		bSubmit: "Salvează",
+		bCancel: "Anulare"
+	},
+	errors : {
+		errcap : "Eroare",
+		nourl : "Niciun url nu este setat",
+		norecords: "Nu sunt înregistrări de procesat",
+		model : "Lungimea colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm",
+				"Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"
+			],
+			monthNames: [
+				"Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec",
+				"Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			/*
+			 Here is a problem in romanian: 
+					M	/	F
+			 1st = primul / prima
+			 2nd = Al doilea / A doua
+			 3rd = Al treilea / A treia 
+			 4th = Al patrulea/ A patra
+			 5th = Al cincilea / A cincea 
+			 6th = Al șaselea / A șasea
+			 7th = Al șaptelea / A șaptea
+			 .... 
+			 */
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Spanish Translation
+ * Traduccion jqGrid en Español por Yamil Bracho
+ * Traduccion corregida y ampliada por Faserline, S.L. 
+ * http://www.faserline.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Mostrando {0} - {1} de {2}",
+	    emptyrecords: "Sin registros que mostrar",
+		loadtext: "Cargando...",
+		pgtext : "Página {0} de {1}"
+	},
+	search : {
+	    caption: "Búsqueda...",
+	    Find: "Buscar",
+	    Reset: "Limpiar",
+	    odata : ['igual ', 'no igual a', 'menor que', 'menor o igual que','mayor que','mayor o igual a', 'empiece por','no empiece por','está en','no está en','termina por','no termina por','contiene','no contiene'],
+	    groupOps: [	{ op: "AND", text: "todo" },	{ op: "OR",  text: "cualquier" }	],
+		matchText: " match",
+		rulesText: " reglas"
+	},
+	edit : {
+	    addCaption: "Agregar registro",
+	    editCaption: "Modificar registro",
+	    bSubmit: "Guardar",
+	    bCancel: "Cancelar",
+		bClose: "Cerrar",
+		saveData: "Se han modificado los datos, ¿guardar cambios?",
+		bYes : "Si",
+		bNo : "No",
+		bExit : "Cancelar",
+	    msg: {
+	        required:"Campo obligatorio",
+	        number:"Introduzca un número",
+	        minValue:"El valor debe ser mayor o igual a ",
+	        maxValue:"El valor debe ser menor o igual a ",
+	        email: "no es una dirección de correo válida",
+	        integer: "Introduzca un valor entero",
+			date: "Introduza una fecha correcta ",
+			url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')",
+			nodefined : " no está definido.",
+			novalue : " valor de retorno es requerido.",
+			customarray : "La función personalizada debe devolver un array.",
+			customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada."
+		}
+	},
+	view : {
+	    caption: "Consultar registro",
+	    bClose: "Cerrar"
+	},
+	del : {
+	    caption: "Eliminar",
+	    msg: "¿Desea eliminar los registros seleccionados?",
+	    bSubmit: "Eliminar",
+	    bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Modificar fila seleccionada",
+		addtext:" ",
+	    addtitle: "Agregar nueva fila",
+	    deltext: " ",
+	    deltitle: "Eliminar fila seleccionada",
+	    searchtext: " ",
+	    searchtitle: "Buscar información",
+	    refreshtext: "",
+	    refreshtitle: "Recargar datos",
+	    alertcap: "Aviso",
+	    alerttext: "Seleccione una fila",
+		viewtext: "",
+		viewtitle: "Ver fila seleccionada"
+	},
+	col : {
+	    caption: "Mostrar/ocultar columnas",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar"	
+	},
+	errors : {
+		errcap : "Error",
+		nourl : "No se ha especificado una URL",
+		norecords: "No hay datos para procesar",
+	    model : "Las columnas de nombres son diferentes de las columnas de modelo"
+	},
+	formatter : {
+		integer : {thousandsSeparator: ".", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa",
+				"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"
+			],
+			monthNames: [
+				"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic",
+				"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd-m-Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js	(revision 178)
@@ -0,0 +1,125 @@
+;(function($){
+/**
+ * jqGrid Portuguese Translation
+* Tradu��o da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "A carregar...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Busca...",
+	    Find: "Procurar",
+	    Reset: "Limpar",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Adicionar Registo",
+	    editCaption: "Modificar Registo",
+	    bSubmit: "Submeter",
+	    bCancel: "Cancelar",
+		bClose: "Fechar",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Campo obrigat�rio",
+	        number:"Por favor, introduza um numero",
+	        minValue:"O valor deve ser maior ou igual que",
+	        maxValue:"O valor deve ser menor ou igual a",
+	        email: "N�o � um endere�o de email v�lido",
+	        integer: "Por favor, introduza um numero inteiro",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Eliminar",
+	    msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?",
+	    bSubmit: "Eliminar",
+	    bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Modificar registo seleccionado",
+		addtext:" ",
+	    addtitle: "Adicionar novo registo",
+	    deltext: " ",
+	    deltitle: "Eliminar registo seleccionado",
+	    searchtext: " ",
+	    searchtitle: "Procurar",
+	    refreshtext: "",
+	    refreshtitle: "Actualizar",
+	    alertcap: "Aviso",
+	    alerttext: "Por favor, seleccione um registo",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Mostrar/Ocultar Colunas",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar"	
+	},
+	errors : {
+		errcap : "Erro",
+		nourl : "N�o especificou um url",
+		norecords: "N�o existem dados para processar",
+	    model : "Tamanho do colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab",
+				"Domingo", "Segunda-Feira", "Ter�a-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "S�bado"
+			],
+			monthNames: [
+				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
+				"Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Brazilian-Portuguese Translation
+ * Sergio Righi sergio.righi@gmail.com
+ * http://curve.com.br
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Ver {0} - {1} of {2}",
+	    emptyrecords: "Nenhum registro para visualizar",
+		loadtext: "Carregando...",
+		pgtext : "Página {0} de {1}"
+	},
+	search : {
+	    caption: "Procurar...",
+	    Find: "Procurar",
+	    Reset: "Resetar",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " iguala",
+		rulesText: " regras"
+	},
+	edit : {
+	    addCaption: "Incluir",
+	    editCaption: "Alterar",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar",
+		bClose: "Fechar",
+		saveData: "Os dados foram alterados! Salvar alterações?",
+		bYes : "Sim",
+		bNo : "Não",
+		bExit : "Cancelar",
+	    msg: {
+	        required:"Campo obrigatório",
+	        number:"Por favor, informe um número válido",
+	        minValue:"valor deve ser igual ou maior que ",
+	        maxValue:"valor deve ser menor ou igual a",
+	        email: "este e-mail não é válido",
+	        integer: "Por favor, informe um valor inteiro",
+			date: "Por favor, informe uma data válida",
+			url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",
+			nodefined : " não está definido!",
+			novalue : " um valor de retorno é obrigatório!",
+			customarray : "Função customizada deve retornar um array!",
+			customfcheck : "Função customizada deve estar presente em caso de validação customizada!"
+		}
+	},
+	view : {
+	    caption: "Ver Registro",
+	    bClose: "Fechar"
+	},
+	del : {
+    caption: "Apagar",
+	    msg: "Apagar registros selecionado(s)?",
+	    bSubmit: "Apagar",
+	    bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Alterar registro selecionado",
+		addtext:" ",
+	    addtitle: "Incluir novo registro",
+	    deltext: " ",
+	    deltitle: "Apagar registro selecionado",
+	    searchtext: " ",
+	    searchtitle: "Procurar registros",
+	    refreshtext: "",
+	    refreshtitle: "Recarrgando Tabela",
+	    alertcap: "Aviso",
+	    alerttext: "Por favor, selecione um registro",
+		viewtext: "",
+		viewtitle: "Ver linha selecionada"
+	},
+	col : {
+	    caption: "Mostrar/Esconder Colunas",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar"
+	},
+	errors : {
+		errcap : "Erro",
+		nourl : "Nenhuma URL defenida",
+		norecords: "Sem registros para exibir",
+	    model : "Comprimento de colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb",
+				"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"
+			],
+			monthNames: [
+				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
+				"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid Turkish Translation
+ * Erhan Gündoğan (erhan@trposta.net)
+ * http://blog.zakkum.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0}-{1} listeleniyor. Toplam:{2}",
+	    emptyrecords: "Kayıt bulunamadı",
+		loadtext: "Yükleniyor...",
+		pgtext : "{0}/{1}. Sayfa"
+	},
+	search : {
+	    caption: "Arama...",
+	    Find: "Bul",
+	    Reset: "Temizle",	    
+	    odata : ['eşit', 'eşit değil', 'daha az', 'daha az veya eşit', 'daha fazla', 'daha fazla veya eşit', 'ile başlayan', 'ile başlamayan', 'içinde', 'içinde değil', 'ile biten', 'ile bitmeyen', 'içeren', 'içermeyen'],
+	    groupOps: [	{ op: "VE", text: "tüm" },	{ op: "VEYA",  text: "herhangi" }	],
+		matchText: " uyan",
+		rulesText: " kurallar"
+	},
+	edit : {
+	    addCaption: "Kayıt Ekle",
+	    editCaption: "Kayıt Düzenle",
+	    bSubmit: "Gönder",
+	    bCancel: "İptal",
+		bClose: "Kapat",
+		saveData: "Veriler değişti! Kayıt edilsin mi?",
+		bYes : "Evet",
+		bNo : "Hayıt",
+		bExit : "İptal",
+	    msg: {
+	        required:"Alan gerekli",
+	        number:"Lütfen bir numara giriniz",
+	        minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",
+	        maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",
+	        email: "geçerli bir e-posta adresi değildir",
+	        integer: "Lütfen bir tamsayı giriniz",
+			url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Kayıt Görüntüle",
+	    bClose: "Kapat"
+	},
+	del : {
+	    caption: "Sil",
+	    msg: "Seçilen kayıtlar silinsin mi?",
+	    bSubmit: "Sil",
+	    bCancel: "İptal"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Seçili satırı düzenle",
+		addtext:" ",
+	    addtitle: "Yeni satır ekle",
+	    deltext: " ",
+	    deltitle: "Seçili satırı sil",
+	    searchtext: " ",
+	    searchtitle: "Kayıtları bul",
+	    refreshtext: "",
+	    refreshtitle: "Tabloyu yenile",
+	    alertcap: "Uyarı",
+	    alerttext: "Lütfen bir satır seçiniz",
+		viewtext: "",
+		viewtitle: "Seçilen satırı görüntüle"
+	},
+	col : {
+	    caption: "Sütunları göster/gizle",
+	    bSubmit: "Gönder",
+	    bCancel: "İptal"	
+	},
+	errors : {
+		errcap : "Hata",
+		nourl : "Bir url yapılandırılmamış",
+		norecords: "İşlem yapılacak bir kayıt yok",
+	    model : "colNames uzunluğu <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts",
+				"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"
+			],
+			monthNames: [
+				"Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara",
+				"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js	(revision 178)
@@ -0,0 +1,125 @@
+﻿;(function($){
+/**
+ * jqGrid Persian Translation
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "بارگزاري...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "جستجو...",
+	    Find: "يافته ها",
+	    Reset: "نتايج",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "اضافه کردن رکورد",
+	    editCaption: "ويرايش رکورد",
+	    bSubmit: "ثبت",
+	    bCancel: "انصراف",
+		bClose: "بستن",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"فيلدها بايد ختما پر شوند",
+	        number:"لطفا عدد وعتبر وارد کنيد",
+	        minValue:"مقدار وارد شده بايد بزرگتر يا مساوي با",
+	        maxValue:"مقدار وارد شده بايد کوچکتر يا مساوي",
+	        email: "پست الکترونيک وارد شده معتبر نيست",
+	        integer: "لطفا يک عدد صحيح وارد کنيد",
+			date: "لطفا يک تاريخ معتبر وارد کنيد",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "حذف",
+	    msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",
+	    bSubmit: "حذف",
+	    bCancel: "ابطال"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "ويرايش رديف هاي انتخاب شده",
+		addtext:" ",
+	    addtitle: "افزودن رديف جديد",
+	    deltext: " ",
+	    deltitle: "حذف ردبف هاي انتخاب شده",
+	    searchtext: " ",
+	    searchtitle: "جستجوي رديف",
+	    refreshtext: "",
+	    refreshtitle: "بازيابي مجدد صفحه",
+	    alertcap: "اخطار",
+	    alerttext: "لطفا يک رديف انتخاب کنيد",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "نمايش/عدم نمايش ستون",
+	    bSubmit: "ثبت",
+	    bCancel: "انصراف"	
+	},
+	errors : {
+		errcap : "خطا",
+		nourl : "هيچ آدرسي تنظيم نشده است",
+		norecords: "هيچ رکوردي براي پردازش موجود نيست",
+	    model : "طول نام ستون ها محالف ستون هاي مدل مي باشد!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب",
+				"يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"
+			],
+			AmPm : ["ب.ظ","ب.ظ","ق.ظ","ق.ظ"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: 'نمايش',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)
+ * Sergey Dyagovchenko
+ * http://d.sumy.ua
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Просмотр {0} - {1} из {2}",
+	  emptyrecords: "Нет записей для просмотра",
+		loadtext: "Загрузка...",
+		pgtext : "Стр. {0} из {1}"
+	},
+	search : {
+    caption: "Поиск...",
+    Find: "Найти",
+    Reset: "Сброс",
+    odata : ['равно', 'не равно', 'меньше', 'меньше или равно','больше','больше или равно', 'начинается с','не начинается с','находится в','не находится в','заканчивается на','не заканчивается на','содержит','не содержит'],
+    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "любой" }	],
+    matchText: " совпадает",
+    rulesText: " правила"
+	},
+	edit : {
+    addCaption: "Добавить запись",
+    editCaption: "Редактировать запись",
+    bSubmit: "Сохранить",
+    bCancel: "Отмена",
+		bClose: "Закрыть",
+		saveData: "Данные были измененны! Сохранить изменения?",
+		bYes : "Да",
+		bNo : "Нет",
+		bExit : "Отмена",
+	    msg: {
+        required:"Поле является обязательным",
+        number:"Пожалуйста, введите правильное число",
+        minValue:"значение должно быть больше либо равно",
+        maxValue:"значение должно быть меньше либо равно",
+        email: "некорректное значение e-mail",
+        integer: "Пожалуйста, введите целое число",
+        date: "Пожалуйста, введите правильную дату",
+        url: "неверная ссылка. Необходимо ввести префикс ('http://' or 'https://')",
+		nodefined : " is not defined!",
+		novalue : " return value is required!",
+		customarray : "Custom function should return array!",
+		customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Просмотр записи",
+	    bClose: "Закрыть"
+	},
+	del : {
+	    caption: "Удалить",
+	    msg: "Удалить выбранную запись(и)?",
+	    bSubmit: "Удалить",
+	    bCancel: "Отмена"
+	},
+	nav : {
+  		edittext: " ",
+	    edittitle: "Редактировать выбранную запись",
+  		addtext:" ",
+	    addtitle: "Добавить новую запись",
+	    deltext: " ",
+	    deltitle: "Удалить выбранную запись",
+	    searchtext: " ",
+	    searchtitle: "Найти записи",
+	    refreshtext: "",
+	    refreshtitle: "Обновить таблицу",
+	    alertcap: "Внимание",
+	    alerttext: "Пожалуйста, выберите запись",
+  		viewtext: "",
+  		viewtitle: "Просмотреть выбранную запись"
+	},
+	col : {
+	    caption: "Показать/скрыть столбцы",
+	    bSubmit: "Сохранить",
+	    bCancel: "Отмена"	
+	},
+	errors : {
+		errcap : "Ошибка",
+		nourl : "URL не установлен",
+		norecords: "Нет записей для обработки",
+    model : "Число полей не соответствует числу столбцов таблицы!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
+				"Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"
+			],
+			monthNames: [
+				"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек",
+				"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd.m.Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n.j.Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y G:i:s",
+	            MonthDay: "F d",
+	            ShortTime: "G:i",
+	            LongTime: "G:i:s",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	  target: '',
+	  checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid German Translation
+ * Version 1.0.0 (developed for jQuery Grid 3.3.1)
+ * Olaf Klöppel opensource@blue-hit.de
+ * http://blue-hit.de/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Zeige {0} - {1} von {2}",
+	    emptyrecords: "Keine Datensätze vorhanden",
+		loadtext: "Lädt...",
+		pgtext : "Seite {0} von {1}"
+	},
+	search : {
+		caption: "Suche...",
+		Find: "Finden",
+		Reset: "Zurücksetzen",
+	    odata : ['gleich', 'ungleich', 'kleiner', 'kleiner gleich','größer','größer gleich', 'beginnt mit','beginnt nicht mit','ist in','ist nicht in','endet mit','endet nicht mit','enthält','enthält nicht'],
+	    groupOps: [	{ op: "AND", text: "alle" },	{ op: "OR",  text: "mindestens eins" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+		addCaption: "Datensatz hinzufügen",
+		editCaption: "Datensatz bearbeiten",
+		bSubmit: "Speichern",
+		bCancel: "Abbrechen",
+		bClose: "Schließen",
+		saveData: "Daten wurden geändert! Änderungen speichern?",
+		bYes : "ja",
+		bNo : "nein",
+		bExit : "abbrechen",
+		msg: {
+		    required:"Feld ist erforderlich",
+		    number: "Bitte geben Sie eine Zahl ein",
+		    minValue:"Wert muss größer oder gleich sein, als ",
+		    maxValue:"Wert muss kleiner oder gleich sein, als ",
+		    email: "ist keine valide E-Mail Adresse",
+		    integer: "Bitte geben Sie eine Ganzzahl ein",
+			date: "Bitte geben Sie ein gültiges Datum ein",
+			url: "ist keine gültige URL. Prefix muss eingegeben werden ('http://' oder 'https://')",
+			nodefined : " ist nicht definiert!",
+			novalue : " Rückgabewert ist erforderlich!",
+			customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!",
+			customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"
+		}
+	},
+	view : {
+	    caption: "Datensatz anschauen",
+	    bClose: "Schließen"
+	},
+	del : {
+		caption: "Löschen",
+		msg: "Ausgewählte Datensätze löschen?",
+		bSubmit: "Löschen",
+		bCancel: "Abbrechen"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Ausgewählten Zeile editieren",
+		addtext:" ",
+	    addtitle: "Neuen Zeile einfügen",
+	    deltext: " ",
+	    deltitle: "Ausgewählte Zeile löschen",
+	    searchtext: " ",
+	    searchtitle: "Datensatz finden",
+	    refreshtext: "",
+	    refreshtitle: "Tabelle neu laden",
+	    alertcap: "Warnung",
+	    alerttext: "Bitte Zeile auswählen",
+		viewtext: "",
+		viewtitle: "Ausgewählte Zeile anzeigen"
+	},
+	col : {
+		caption: "Spalten anzeigen/verbergen",
+		bSubmit: "Speichern",
+		bCancel: "Abbrechen"	
+	},
+	errors : {
+		errcap : "Fehler",
+		nourl : "Keine URL angegeben",
+		norecords: "Keine Datensätze zum verarbeiten",
+		model : "colNames und colModel sind unterschiedlich lang!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa",
+				"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez",
+				"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"d.m.Y H:i:s",
+		        ISO8601Short:"d.m.Y",
+		        ShortDate: "j.n.Y",
+		        LongDate: "l, d. F Y",
+		        FullDateTime: "l, d. F Y G:i:s",
+		        MonthDay: "d. F",
+		        ShortTime: "G:i",
+		        LongTime: "G:i:s",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js	(revision 178)
@@ -0,0 +1,132 @@
+;(function($){
+/**
+ * jqGrid Bulgarian Translation 
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1} от {2}",
+		emptyrecords: "Няма запис(и)",
+		loadtext: "Зареждам...",
+		pgtext : "Стр. {0} от {1}"
+	},
+	search : {
+		caption: "Търсене...",
+		Find: "Намери",
+		Reset: "Изчисти",
+		odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ],
+	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
+		matchText: " включи",
+		rulesText: " клауза"
+	},
+	edit : {
+		addCaption: "Нов Запис",
+		editCaption: "Редакция Запис",
+		bSubmit: "Запиши",
+		bCancel: "Изход",
+		bClose: "Затвори",
+		saveData: "Данните са променени! Да съхраня ли промените?",
+		bYes : "Да",
+		bNo : "Не",
+		bExit : "Отказ",
+		msg: {
+			required:"Полето е задължително",
+			number:"Въведете валидно число!",
+			minValue:"стойността трябва да е по-голяма или равна от",
+			maxValue:"стойността трябва да е по-малка или равна от",
+			email: "не е валиден ел. адрес",
+			integer: "Въведете валидно цяло число",
+			date: "Въведете валидна дата",
+			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
+			nodefined : " е недефинирана!",
+			novalue : " изисква връщане на стойност!",
+			customarray : "Потреб. Функция трябва да върне масив!",
+			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
+		}
+	},
+	view : {
+		caption: "Преглед запис",
+		bClose: "Затвори"
+	},
+	del : {
+		caption: "Изтриване",
+		msg: "Да изтрия ли избраният запис?",
+		bSubmit: "Изтрий",
+		bCancel: "Отказ"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Редакция избран запис",
+		addtext:" ",
+		addtitle: "Добавяне нов запис",
+		deltext: " ",
+		deltitle: "Изтриване избран запис",
+		searchtext: " ",
+		searchtitle: "Търсене запис(и)",
+		refreshtext: "",
+		refreshtitle: "Обнови таблица",
+		alertcap: "Предупреждение",
+		alerttext: "Моля, изберете запис",
+		viewtext: "",
+		viewtitle: "Преглед избран запис"
+	},
+	col : {
+		caption: "Избери колони",
+		bSubmit: "Ок",
+		bCancel: "Изход"	
+	},
+	errors : {
+		errcap : "Грешка",
+		nourl : "Няма посочен url адрес",
+		norecords: "Няма запис за обработка",
+		model : "Модела не съответства на имената!"	
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
+				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
+			],
+			monthNames: [
+				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
+				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {
+				if(j==7 || j==8 || j== 27 || j== 28) {
+					return 'ми';
+				}
+				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
+			},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Swedish Translation
+ * Harald Normann harald.normann@wts.se, harald.normann@gmail.com
+ * http://www.worldteamsoftware.com 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Visar {0} - {1} av {2}",
+		emptyrecords: "Det finns inga poster att visa",
+		loadtext: "Laddar...",
+		pgtext : "Sida {0} av {1}"
+	},
+	search : {
+		caption: "Sök Poster - Ange sökvillkor",
+		Find: "Sök",
+		Reset: "Nollställ Villkor",
+		odata : ['lika', 'ej lika', 'mindre', 'mindre eller lika','större','större eller lika', 'börjar med','börjar inte med','tillhör','tillhör inte','slutar med','slutar inte med','innehåller','innehåller inte'],
+		groupOps: [	{ op: "AND", text: "alla" },	{ op: "OR",  text: "eller" }	],
+		matchText: " träff",
+		rulesText: " regler"
+	},
+	edit : {
+		addCaption: "Ny Post",
+		editCaption: "Redigera Post",
+		bSubmit: "Spara",
+		bCancel: "Avbryt",
+		bClose: "Stäng",
+		saveData: "Data har ändrats! Spara förändringar?",
+		bYes : "Ja",
+		bNo : "Nej",
+		bExit : "Avbryt",
+		msg: {
+	        required:"Fältet är obligatoriskt",
+	        number:"Välj korrekt nummer",
+	        minValue:"värdet måste vara större än eller lika med",
+	        maxValue:"värdet måste vara mindre än eller lika med",
+	        email: "är inte korrekt e-post adress",
+	        integer: "Var god ange korrekt heltal",
+	        date: "Var god ange korrekt datum",
+	        url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",
+	        nodefined : " är inte definierad!",
+	        novalue : " returvärde måste anges!",
+	        customarray : "Custom funktion måste returnera en vektor!",
+			customfcheck : "Custom funktion måste finnas om Custom kontroll sker!"
+		}
+	},
+	view : {
+		caption: "Visa Post",
+		bClose: "Stäng"
+	},
+	del : {
+		caption: "Radera",
+		msg: "Radera markerad(e) post(er)?",
+		bSubmit: "Radera",
+		bCancel: "Avbryt"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "Redigera markerad rad",
+		addtext:"",
+		addtitle: "Skapa ny post",
+		deltext: "",
+		deltitle: "Radera markerad rad",
+		searchtext: "",
+		searchtitle: "Sök poster",
+		refreshtext: "",
+		refreshtitle: "Uppdatera data",
+		alertcap: "Varning",
+		alerttext: "Ingen rad är markerad",
+		viewtext: "",
+		viewtitle: "Visa markerad rad"
+	},
+	col : {
+		caption: "Välj Kolumner",
+		bSubmit: "OK",
+		bCancel: "Avbryt"
+	},
+	errors : {
+		errcap : "Fel",
+		nourl : "URL saknas",
+		norecords: "Det finns inga poster att bearbeta",
+		model : "Antal colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör",
+				"Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
+				"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
+			],
+			AmPm : ["fm","em","FM","EM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'Y-m-d',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate:  "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js	(revision 178)
@@ -0,0 +1,155 @@
+;(function($){
+/**
+ * jqGrid Japanese Translation
+ * OKADA Yoshitada okada.dev@sth.jp
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ",
+	    emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
+		loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...",
+		pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE "
+	},
+	search : {
+	    caption: "\u691c\u7d22...",
+	    Find: "\u691c\u7d22",
+	    Reset: "\u30ea\u30bb\u30c3\u30c8",
+	    odata: ["\u6B21\u306B\u7B49\u3057\u3044", "\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044",
+            "\u6B21\u3088\u308A\u5C0F\u3055\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044",
+            "\u6B21\u3088\u308A\u5927\u304D\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044",
+            "\u6B21\u3067\u59CB\u307E\u308B", "\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044",
+            "\u6B21\u306B\u542B\u307E\u308C\u308B", "\u6B21\u306B\u542B\u307E\u308C\u306A\u3044",
+            "\u6B21\u3067\u7D42\u308F\u308B", "\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044",
+            "\u6B21\u3092\u542B\u3080", "\u6B21\u3092\u542B\u307E\u306A\u3044"],
+	    groupOps: [{
+                op: "AND",
+                text: "\u3059\u3079\u3066\u306E"
+            },
+            {
+                op: "OR",
+                text: "\u3044\u305A\u308C\u304B\u306E"
+            }],
+      matchText: " \u6B21\u306E",
+      rulesText: " \u6761\u4EF6\u3092\u6E80\u305F\u3059"
+	},
+	edit : {
+	    addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
+	    editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6",
+	    bSubmit: "\u9001\u4fe1",
+	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb",
+  		bClose: "\u9589\u3058\u308b",
+      saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
+      bYes: "\u306F\u3044",
+      bNo: "\u3044\u3044\u3048",
+      bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB",
+	    msg: {
+	        required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002",
+	        number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+	        minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+	        maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+	        email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
+	        integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+    			date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+          url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\20\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')",
+          nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
+          novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059",
+          customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
+          customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059"
+		}
+	},
+	view : {
+      caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A",
+      bClose: "\u9589\u3058\u308B"
+	},
+	del : {
+	    caption: "\u524a\u9664",
+	    msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f",
+	    bSubmit: "\u524a\u9664",
+	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
+	},
+	nav : {
+    	edittext: " ",
+	    edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6",
+      addtext:" ",
+	    addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0",
+	    deltext: " ",
+	    deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664",
+	    searchtext: " ",
+	    searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22",
+	    refreshtext: "",
+	    refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9",
+	    alertcap: "\u8b66\u544a",
+	    alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002",
+      viewtext: "",
+      viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A"
+	},
+	col : {
+	    caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059",
+	    bSubmit: "\u9001\u4fe1",
+	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"	
+	},
+	errors : {
+		errcap : "\u30a8\u30e9\u30fc",
+		nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
+		norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002",
+	    model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"
+	},
+	formatter : {
+            integer: {
+                thousandsSeparator: ",",
+                defaultValue: '0'
+            },
+            number: {
+                decimalSeparator: ".",
+                thousandsSeparator: ",",
+                decimalPlaces: 2,
+                defaultValue: '0.00'
+            },
+            currency: {
+                decimalSeparator: ".",
+                thousandsSeparator: ",",
+                decimalPlaces: 0,
+                prefix: "",
+                suffix: "",
+                defaultValue: '0'
+            },
+		date : {
+			dayNames:   [
+				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f",
+				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"
+			],
+			monthNames: [
+				"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
+				"1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: "\u756a\u76ee",
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Hebrew Translation
+ * Shuki Shukrun shukrun.shuki@gmail.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "מציג {0} - {1} מתוך {2}",
+		emptyrecords: "אין רשומות להציג",
+		loadtext: "טוען...",
+		pgtext : "דף {0} מתוך {1}"
+	},
+	search : {
+		caption: "מחפש...",
+		Find: "חפש",
+		Reset: "התחל",
+		odata : ['שווה', 'לא שווה', 'קטן', 'קטן או שווה','גדול','גדול או שווה', 'מתחיל ב','לא מתחיל ב','נמצא ב','לא נמצא ב','מסתיים ב','לא מסתיים ב','מכיל','לא מכיל'],
+		groupOps: [	{ op: "AND", text: "הכל" },	{ op: "OR",  text: "אחד מ" }	],
+		matchText: " תואם",
+		rulesText: " חוקים"
+	},
+	edit : {
+		addCaption: "הוסף רשומה",
+		editCaption: "ערוך רשומה",
+		bSubmit: "שלח",
+		bCancel: "בטל",
+		bClose: "סגור",
+		saveData: "נתונים השתנו! לשמור?",
+		bYes : "כן",
+		bNo : "לא",
+		bExit : "בטל",
+		msg: {
+			required:"שדה חובה",
+			number:"אנא, הכנס מספר תקין",
+			minValue:"ערך צריך להיות גדול או שווה ל ",
+			maxValue:"ערך צריך להיות קטן או שווה ל ",
+			email: "היא לא כתובת איימל תקינה",
+			integer: "אנא, הכנס מספר שלם",
+			date: "אנא, הכנס תאריך תקין",
+			url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+		caption: "הצג רשומה",
+		bClose: "סגור"
+	},
+	del : {
+		caption: "מחק",
+		msg: "האם למחוק את הרשומה/ות המסומנות?",
+		bSubmit: "מחק",
+		bCancel: "בטל"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "ערוך שורה מסומנת",
+		addtext:"",
+		addtitle: "הוסף שורה חדשה",
+		deltext: "",
+		deltitle: "מחק שורה מסומנת",
+		searchtext: "",
+		searchtitle: "חפש רשומות",
+		refreshtext: "",
+		refreshtitle: "טען גריד מחדש",
+		alertcap: "אזהרה",
+		alerttext: "אנא, בחר שורה",
+		viewtext: "",
+		viewtitle: "הצג שורה מסומנת"
+	},
+	col : {
+		caption: "הצג/הסתר עמודות",
+		bSubmit: "שלח",
+		bCancel: "בטל"
+	},
+	errors : {
+		errcap : "שגיאה",
+		nourl : "לא הוגדרה כתובת url",
+		norecords: "אין רשומות לעבד",
+		model : "אורך של colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"א", "ב", "ג", "ד", "ה", "ו", "ש",
+				"ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"
+			],
+			monthNames: [
+				"ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ",
+				"ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"
+			],
+			AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],
+			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js	(revision 178)
@@ -0,0 +1,314 @@
+/*
+ * jQuery UI Multiselect
+ *
+ * Authors:
+ *  Michael Aufreiter (quasipartikel.at)
+ *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
+ * 
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ * 
+ * http://www.quasipartikel.at/multiselect/
+ *
+ * 
+ * Depends:
+ *	ui.core.js
+ *	ui.sortable.js
+ *
+ * Optional:
+ * localization (http://plugins.jquery.com/project/localisation)
+ * scrollTo (http://plugins.jquery.com/project/ScrollTo)
+ * 
+ * Todo:
+ *  Make batch actions faster
+ *  Implement dynamic insertion through remote calls
+ */
+
+
+(function($) {
+
+$.widget("ui.multiselect", {
+	_init: function() {
+		this.element.hide();
+		this.id = this.element.attr("id");
+		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
+		this.count = 0; // number of currently selected options
+		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
+		this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
+		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
+		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
+		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
+		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
+		
+		var that = this;
+
+		// set dimensions
+		this.container.width(this.element.width()+1);
+		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
+		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
+
+		// fix list height to match <option> depending on their individual header's heights
+		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
+		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
+		
+		if ( !this.options.animated ) {
+			this.options.show = 'show';
+			this.options.hide = 'hide';
+		}
+		
+		// init lists
+		this._populateLists(this.element.find('option'));
+		
+		// make selection sortable
+		if (this.options.sortable) {
+			$("ul.selected").sortable({
+				placeholder: 'ui-state-highlight',
+				axis: 'y',
+				update: function(event, ui) {
+					// apply the new sort order to the original selectbox
+					that.selectedList.find('li').each(function() {
+						if ($(this).data('optionLink'))
+							$(this).data('optionLink').remove().appendTo(that.element);
+					});
+				},
+				receive: function(event, ui) {
+					ui.item.data('optionLink').attr('selected', true);
+					// increment count
+					that.count += 1;
+					that._updateCount();
+					// workaround, because there's no way to reference 
+					// the new element, see http://dev.jqueryui.com/ticket/4303
+					that.selectedList.children('.ui-draggable').each(function() {
+						$(this).removeClass('ui-draggable');
+						$(this).data('optionLink', ui.item.data('optionLink'));
+						$(this).data('idx', ui.item.data('idx'));
+						that._applyItemState($(this), true);
+					});
+			
+					// workaround according to http://dev.jqueryui.com/ticket/4088
+					setTimeout(function() { ui.item.remove(); }, 1);
+				}
+			});
+		}
+		
+		// set up livesearch
+		if (this.options.searchable) {
+			this._registerSearchEvents(this.availableContainer.find('input.search'));
+		} else {
+			$('.search').hide();
+		}
+		
+		// batch actions
+		$(".remove-all").click(function() {
+			that._populateLists(that.element.find('option').removeAttr('selected'));
+			return false;
+		});
+		$(".add-all").click(function() {
+			that._populateLists(that.element.find('option').attr('selected', 'selected'));
+			return false;
+		});
+	},
+	destroy: function() {
+		this.element.show();
+		this.container.remove();
+
+		$.widget.prototype.destroy.apply(this, arguments);
+	},
+	_populateLists: function(options) {
+		this.selectedList.children('.ui-element').remove();
+		this.availableList.children('.ui-element').remove();
+		this.count = 0;
+
+		var that = this;
+		var items = $(options.map(function(i) {
+	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();
+
+			if (this.selected) that.count += 1;
+			that._applyItemState(item, this.selected);
+			item.data('idx', i);
+			return item[0];
+    }));
+		
+		// update count
+		this._updateCount();
+  },
+	_updateCount: function() {
+		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
+	},
+	_getOptionNode: function(option) {
+		option = $(option);
+		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
+		node.data('optionLink', option);
+		return node;
+	},
+	// clones an item with associated data
+	// didn't find a smarter away around this
+	_cloneWithData: function(clonee) {
+		var clone = clonee.clone();
+		clone.data('optionLink', clonee.data('optionLink'));
+		clone.data('idx', clonee.data('idx'));
+		return clone;
+	},
+	_setSelected: function(item, selected) {
+		item.data('optionLink').attr('selected', selected);
+
+		if (selected) {
+			var selectedItem = this._cloneWithData(item);
+			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
+			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
+			
+			this._applyItemState(selectedItem, true);
+			return selectedItem;
+		} else {
+			
+			// look for successor based on initial option index
+			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
+			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
+
+			// TODO: test needed for dynamic list populating
+			if ( direction ) {
+				while (i>=0 && i<items.length) {
+					direction > 0 ? i++ : i--;
+					if ( direction != comparator(item, $(items[i])) ) {
+						// going up, go back one item down, otherwise leave as is
+						succ = items[direction > 0 ? i : i+1];
+						break;
+					}
+				}
+			} else {
+				succ = items[i];
+			}
+			
+			var availableItem = this._cloneWithData(item);
+			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
+			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
+			availableItem.hide()[this.options.show](this.options.animated);
+			
+			this._applyItemState(availableItem, false);
+			return availableItem;
+		}
+	},
+	_applyItemState: function(item, selected) {
+		if (selected) {
+			if (this.options.sortable)
+				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
+			else
+				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
+			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
+			this._registerRemoveEvents(item.find('a.action'));
+			
+		} else {
+			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
+			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
+			this._registerAddEvents(item.find('a.action'));
+		}
+		
+		this._registerHoverEvents(item);
+	},
+	// taken from John Resig's liveUpdate script
+	_filter: function(list) {
+		var input = $(this);
+		var rows = list.children('li'),
+			cache = rows.map(function(){
+				
+				return $(this).text().toLowerCase();
+			});
+		
+		var term = $.trim(input.val().toLowerCase()), scores = [];
+		
+		if (!term) {
+			rows.show();
+		} else {
+			rows.hide();
+
+			cache.each(function(i) {
+				if (this.indexOf(term)>-1) { scores.push(i); }
+			});
+
+			$.each(scores, function() {
+				$(rows[this]).show();
+			});
+		}
+	},
+	_registerHoverEvents: function(elements) {
+		elements.removeClass('ui-state-hover');
+		elements.mouseover(function() {
+			$(this).addClass('ui-state-hover');
+		});
+		elements.mouseout(function() {
+			$(this).removeClass('ui-state-hover');
+		});
+	},
+	_registerAddEvents: function(elements) {
+		var that = this;
+		elements.click(function() {
+			var item = that._setSelected($(this).parent(), true);
+			that.count += 1;
+			that._updateCount();
+			return false;
+		})
+		// make draggable
+		.each(function() {
+			$(this).parent().draggable({
+	      connectToSortable: 'ul.selected',
+				helper: function() {
+					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
+					selectedItem.width($(this).width());
+					return selectedItem;
+				},
+				appendTo: '.ui-multiselect',
+				containment: '.ui-multiselect',
+				revert: 'invalid'
+	    });
+		});
+	},
+	_registerRemoveEvents: function(elements) {
+		var that = this;
+		elements.click(function() {
+			that._setSelected($(this).parent(), false);
+			that.count -= 1;
+			that._updateCount();
+			return false;
+		});
+ 	},
+	_registerSearchEvents: function(input) {
+		var that = this;
+
+		input.focus(function() {
+			$(this).addClass('ui-state-active');
+		})
+		.blur(function() {
+			$(this).removeClass('ui-state-active');
+		})
+		.keypress(function(e) {
+			if (e.keyCode == 13)
+				return false;
+		})
+		.keyup(function() {
+			that._filter.apply(this, [that.availableList]);
+		});
+	}
+});
+		
+$.extend($.ui.multiselect, {
+	defaults: {
+		sortable: true,
+		searchable: true,
+		animated: 'fast',
+		show: 'slideDown',
+		hide: 'slideUp',
+		dividerLocation: 0.6,
+		nodeComparator: function(node1,node2) {
+			var text1 = node1.text(),
+			    text2 = node2.text();
+			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
+		}
+	},
+	locale: {
+		addAll:'Add all',
+		removeAll:'Remove all',
+		itemsCount:'items selected'
+	}
+});
+
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js	(revision 178)
@@ -0,0 +1,483 @@
+;(function($){
+/*
+**
+ * jqGrid extension for cellediting Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+/**
+ * all events and options here are aded anonynous and not in the base grid
+ * since the array is to big. Here is the order of execution.
+ * From this point we use jQuery isFunction
+ * formatCell
+ * beforeEditCell,
+ * onSelectCell (used only for noneditable cels)
+ * afterEditCell,
+ * beforeSaveCell, (called before validation of values if any)
+ * beforeSubmitCell (if cellsubmit remote (ajax))
+ * afterSubmitCell(if cellsubmit remote (ajax)),
+ * afterSaveCell,
+ * errorCell,
+ * serializeCellData - new
+ * Options
+ * cellsubmit (remote,clientArray) (added in grid options)
+ * cellurl
+ * ajaxCellOptions
+* */
+$.jgrid.extend({
+	editCell : function (iRow,iCol, ed){
+		return this.each(function (){
+			var $t = this, nm, tmp,cc;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			iCol = parseInt(iCol,10);
+			// select the row that can be used for other methods
+			$t.p.selrow = $t.rows[iRow].id;
+			if (!$t.p.knv) {$($t).jqGrid("GridNav");}
+			// check to see if we have already edited cell
+			if ($t.p.savedRow.length>0) {
+				// prevent second click on that field and enable selects
+				if (ed===true ) {
+					if(iRow == $t.p.iRow && iCol == $t.p.iCol){
+						return;
+					}
+				}
+				// save the cell
+				$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
+			} else {
+				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
+			}
+			nm = $t.p.colModel[iCol].name;
+			if (nm=='subgrid' || nm=='cb' || nm=='rn') {return;}
+			cc = $("td:eq("+iCol+")",$t.rows[iRow]);
+			if ($t.p.colModel[iCol].editable===true && ed===true && !cc.hasClass("not-editable-cell")) {
+				if(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
+					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
+					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
+				}
+				$(cc).addClass("edit-cell ui-state-highlight");
+				$($t.rows[iRow]).addClass("selected-row ui-state-hover");
+				try {
+					tmp =  $.unformat(cc,{rowId: $t.rows[iRow].id, colModel:$t.p.colModel[iCol]},iCol);
+				} catch (_) {
+					tmp = $(cc).html();
+				}
+				if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+				if (!$t.p.colModel[iCol].edittype) {$t.p.colModel[iCol].edittype = "text";}
+				$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});
+				if($.isFunction($t.p.formatCell)) {
+					var tmp2 = $t.p.formatCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+					if(tmp2 !== undefined ) {tmp = tmp2;}
+				}
+				var opt = $.extend({}, $t.p.colModel[iCol].editoptions || {} ,{id:iRow+"_"+nm,name:nm});
+				var elc = createEl($t.p.colModel[iCol].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
+				if ($.isFunction($t.p.beforeEditCell)) {
+					$t.p.beforeEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+				}
+				$(cc).html("").append(elc).attr("tabindex","0");
+				window.setTimeout(function () { $(elc).focus();},0);
+				$("input, select, textarea",cc).bind("keydown",function(e) { 
+					if (e.keyCode === 27) {
+						if($("input.hasDatepicker",cc).length >0) {
+							if( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }
+							else { $("input.hasDatepicker",cc).datepicker('hide'); }
+						} else {
+							$($t).jqGrid("restoreCell",iRow,iCol);
+						}
+					} //ESC
+					if (e.keyCode === 13) {$($t).jqGrid("saveCell",iRow,iCol);}//Enter
+					if (e.keyCode == 9)  {
+						if(!$t.grid.hDiv.loading ) {
+							if (e.shiftKey) {$($t).jqGrid("prevCell",iRow,iCol);} //Shift TAb
+							else {$($t).jqGrid("nextCell",iRow,iCol);} //Tab
+						} else {
+							return false;
+						}
+					}
+					e.stopPropagation();
+				});
+				if ($.isFunction($t.p.afterEditCell)) {
+					$t.p.afterEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+				}
+			} else {
+				if (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
+					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
+					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
+				}
+				cc.addClass("edit-cell ui-state-highlight");
+				$($t.rows[iRow]).addClass("selected-row ui-state-hover"); 
+				if ($.isFunction($t.p.onSelectCell)) {
+					tmp = cc.html().replace(/\&#160\;/ig,'');
+					$t.p.onSelectCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+				}
+			}
+			$t.p.iCol = iCol; $t.p.iRow = iRow;
+		});
+	},
+	saveCell : function (iRow, iCol){
+		return this.each(function(){
+			var $t= this, fr;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} 
+			if(fr !== null) {
+				var cc = $("td:eq("+iCol+")",$t.rows[iRow]),v,v2,
+				cm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm) ;
+				switch (cm.edittype) {
+					case "select":
+						if(!cm.editoptions.multiple) {
+							v = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).val();
+							v2 = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).text();
+						} else {
+							var sel = $("#"+iRow+"_"+nmjq,$t.rows[iRow]), selectedText = [];
+							v = $(sel).val();
+							if(v) { v.join(",");} else { v=""; }
+							$("option:selected",sel).each(
+								function(i,selected){
+									selectedText[i] = $(selected).text();
+								}
+							);
+							v2 = selectedText.join(",");
+						}
+						if(cm.formatter) { v2 = v; }
+						break;
+					case "checkbox":
+						var cbv  = ["Yes","No"];
+						if(cm.editoptions){
+							cbv = cm.editoptions.value.split(":");
+						}
+						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).attr("checked") ? cbv[0] : cbv[1];
+						v2=v;
+						break;
+					case "password":
+					case "text":
+					case "textarea":
+					case "button" :
+						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).val();
+						v2=v;
+						break;
+					case 'custom' :
+						try {
+							if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
+								v = cm.editoptions.custom_value($(".customelement",cc),'get');
+								if (v===undefined) { throw "e2";} else { v2=v; }
+							} else { throw "e1"; }
+						} catch (e) {
+							if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
+							if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
+							else {info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+						}
+						break;
+				}
+				// The common approach is if nothing changed do not do anything
+				if (v2 != $t.p.savedRow[fr].v){
+					if ($.isFunction($t.p.beforeSaveCell)) {
+						var vv = $t.p.beforeSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+						if (vv) {v = vv;}
+					}
+					var cv = checkValues(v,iCol,$t);
+					if(cv[0] === true) {
+						var addpost = {};
+						if ($.isFunction($t.p.beforeSubmitCell)) {
+							addpost = $t.p.beforeSubmitCell($t.rows[iRow].id,nm, v, iRow,iCol);
+							if (!addpost) {addpost={};}
+						}
+						if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); }
+						if ($t.p.cellsubmit == 'remote') {
+							if ($t.p.cellurl) {
+								var postdata = {};
+								if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }
+								postdata[nm] = v;
+								var idname,oper, opers;
+								opers = $t.p.prmNames;
+								idname = opers.id;
+								oper = opers.oper;
+								postdata[idname] = $t.rows[iRow].id;
+								postdata[oper] = opers.editoper;
+								postdata = $.extend(addpost,postdata);
+								$("#lui_"+$t.p.id).show();
+								$t.grid.hDiv.loading = true;
+								$.ajax( $.extend( {
+									url: $t.p.cellurl,
+									data :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData(postdata) : postdata,
+									type: "POST",
+									complete: function (result, stat) {
+										$("#lui_"+$t.p.id).hide();
+										$t.grid.hDiv.loading = false;
+										if (stat == 'success') {
+											if ($.isFunction($t.p.afterSubmitCell)) {
+												var ret = $t.p.afterSubmitCell(result,postdata.id,nm,v,iRow,iCol);
+												if(ret[0] === true) {
+													$(cc).empty();
+													$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
+													$(cc).addClass("dirty-cell");
+													$($t.rows[iRow]).addClass("edited");
+													if ($.isFunction($t.p.afterSaveCell)) {
+														$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+													}
+													$t.p.savedRow.splice(0,1);
+												} else {
+													info_dialog($.jgrid.errors.errcap,ret[1],$.jgrid.edit.bClose);
+													$($t).jqGrid("restoreCell",iRow,iCol);
+												}
+											} else {
+												$(cc).empty();
+												$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
+												$(cc).addClass("dirty-cell");
+												$($t.rows[iRow]).addClass("edited");
+												if ($.isFunction($t.p.afterSaveCell)) {
+													$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+												}
+												$t.p.savedRow.splice(0,1);
+											}
+										}
+									},
+									error:function(res,stat) {
+										$("#lui_"+$t.p.id).hide();
+										$t.grid.hDiv.loading = false;
+										if ($.isFunction($t.p.errorCell)) {
+											$t.p.errorCell(res,stat);
+											$($t).jqGrid("restoreCell",iRow,iCol);
+										} else {
+											info_dialog($.jgrid.errors.errcap,res.status+" : "+res.statusText+"<br/>"+stat,$.jgrid.edit.bClose);
+											$($t).jqGrid("restoreCell",iRow,iCol);
+										}
+									}
+								}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));
+							} else {
+								try {
+									info_dialog($.jgrid.errors.errcap,$.jgrid.errors.nourl,$.jgrid.edit.bClose);
+									$($t).jqGrid("restoreCell",iRow,iCol);
+								} catch (e) {}
+							}
+						}
+						if ($t.p.cellsubmit == 'clientArray') {
+							$(cc).empty();
+							$($t).jqGrid("setCell",$t.rows[iRow].id,iCol, v2, false, false, true);
+							$(cc).addClass("dirty-cell");
+							$($t.rows[iRow]).addClass("edited");
+							if ($.isFunction($t.p.afterSaveCell)) {
+								$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+							}
+							$t.p.savedRow.splice(0,1);
+						}
+					} else {
+						try {
+							window.setTimeout(function(){info_dialog($.jgrid.errors.errcap,v+" "+cv[1],$.jgrid.edit.bClose);},100);
+							$($t).jqGrid("restoreCell",iRow,iCol);
+						} catch (e) {}
+					}
+				} else {
+					$($t).jqGrid("restoreCell",iRow,iCol);
+				}
+			}
+			if ($.browser.opera) {
+				$("#"+$t.p.knv).attr("tabindex","-1").focus();
+			} else {
+				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
+			}
+		});
+	},
+	restoreCell : function(iRow, iCol) {
+		return this.each(function(){
+			var $t= this, fr;
+			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
+			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}
+			if(fr !== null) {
+				var cc = $("td:eq("+iCol+")",$t.rows[iRow]);
+				// datepicker fix
+				if($.isFunction($.fn.datepicker)) {
+					try {
+						$("input.hasDatepicker",cc).datepicker('hide');
+					} catch (e) {}
+				}
+				$(cc).empty().attr("tabindex","-1");
+				$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);
+				$t.p.savedRow.splice(0,1);
+			}
+			window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
+		});
+	},
+	nextCell : function (iRow,iCol) {
+		return this.each(function (){
+			var $t = this, nCol=false;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			// try to find next editable cell
+			for (var i=iCol+1; i<$t.p.colModel.length; i++) {
+				if ( $t.p.colModel[i].editable ===true) {
+					nCol = i; break;
+				}
+			}
+			if(nCol !== false) {
+				$($t).jqGrid("editCell",iRow,nCol,true);
+			} else {
+				if ($t.p.savedRow.length >0) {
+					$($t).jqGrid("saveCell",iRow,iCol);
+				}
+			}
+		});
+	},
+	prevCell : function (iRow,iCol) {
+		return this.each(function (){
+			var $t = this, nCol=false;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			// try to find next editable cell
+			for (var i=iCol-1; i>=0; i--) {
+				if ( $t.p.colModel[i].editable ===true) {
+					nCol = i; break;
+				}
+			}
+			if(nCol !== false) {
+				$($t).jqGrid("editCell",iRow,nCol,true);
+			} else {
+				if ($t.p.savedRow.length >0) {
+					$($t).jqGrid("saveCell",iRow,iCol);
+				}
+			}
+		});
+	},
+	GridNav : function() {
+		return this.each(function () {
+			var  $t = this;
+			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
+			// trick to process keydown on non input elements
+			$t.p.knv = $t.p.id + "_kn";
+			var selection = $("<span style='width:0px;height:0px;background-color:black;' tabindex='0'><span tabindex='-1' style='width:0px;height:0px;background-color:grey' id='"+$t.p.knv+"'></span></span>"),
+			i, kdir;
+			$(selection).insertBefore($t.grid.cDiv);
+			$("#"+$t.p.knv)
+			.focus()
+			.keydown(function (e){
+				kdir = e.keyCode;
+				if($t.p.direction == "rtl") {
+					if(kdir==37) { kdir = 39;}
+					else if (kdir==39) { kdir = 37; }
+				}
+				switch (kdir) {
+					case 38:
+						if ($t.p.iRow-1 >=0 ) {
+							scrollGrid($t.p.iRow-1,$t.p.iCol,'vu');
+							$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false);
+						}
+					break;
+					case 40 :
+						if ($t.p.iRow+1 <=  $t.rows.length-1) {
+							scrollGrid($t.p.iRow+1,$t.p.iCol,'vd');
+							$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false);
+						}
+					break;
+					case 37 :
+						if ($t.p.iCol -1 >=  0) {
+							i = findNextVisible($t.p.iCol-1,'lft');
+							scrollGrid($t.p.iRow, i,'h');
+							$($t).jqGrid("editCell",$t.p.iRow, i,false);
+						}
+					break;
+					case 39 :
+						if ($t.p.iCol +1 <=  $t.p.colModel.length-1) {
+							i = findNextVisible($t.p.iCol+1,'rgt');
+							scrollGrid($t.p.iRow,i,'h');
+							$($t).jqGrid("editCell",$t.p.iRow,i,false);
+						}
+					break;
+					case 13:
+						if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {
+							$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true);
+						}
+					break;
+				}
+				return false;
+			});
+			function scrollGrid(iR, iC, tp){
+				if (tp.substr(0,1)=='v') {
+					var ch = $($t.grid.bDiv)[0].clientHeight,
+					st = $($t.grid.bDiv)[0].scrollTop,
+					nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,
+					pROT = $t.rows[iR].offsetTop;
+					if(tp == 'vd') {
+						if(nROT >= ch) {
+							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;
+						}
+					}
+					if(tp == 'vu'){					
+						if (pROT < st) {
+							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;
+						}
+					}
+				}
+				if(tp=='h') {
+					var cw = $($t.grid.bDiv)[0].clientWidth,
+					sl = $($t.grid.bDiv)[0].scrollLeft,
+					nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,
+					pCOL = $t.rows[iR].cells[iC].offsetLeft;
+					if(nCOL >= cw+parseInt(sl,10)) {
+						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;
+					} else if (pCOL < sl) {
+						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;
+					}
+				}
+			}
+			function findNextVisible(iC,act){
+				var ind, i;
+				if(act == 'lft') {
+					ind = iC+1;
+					for (i=iC;i>=0;i--){
+						if ($t.p.colModel[i].hidden !== true) {
+							ind = i;
+							break;
+						}
+					}
+				}
+				if(act == 'rgt') {
+					ind = iC-1;
+					for (i=iC; i<$t.p.colModel.length;i++){
+						if ($t.p.colModel[i].hidden !== true) {
+							ind = i;
+							break;
+						}						
+					}
+				}
+				return ind;
+			}
+		});
+	},
+	getChangedCells : function (mthd) {
+		var ret=[];
+		if (!mthd) {mthd='all';}
+		this.each(function(){
+			var $t= this,nm;
+			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
+			$($t.rows).each(function(j){
+				var res = {};
+				if ($(this).hasClass("edited")) {
+					$('td',this).each( function(i) {
+						nm = $t.p.colModel[i].name;
+						if ( nm !== 'cb' && nm !== 'subgrid') {
+							if (mthd=='dirty') {
+								if ($(this).hasClass('dirty-cell')) {
+									try {
+										res[nm] = $.unformat(this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);
+									} catch (e){
+										res[nm] = $.jgrid.htmlDecode($(this).html());
+									}
+								}
+							} else {
+								try {
+									res[nm] = $.unformat(this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);
+								} catch (e) {
+									res[nm] = $.jgrid.htmlDecode($(this).html());
+								}
+							}
+						}
+					});
+					res.id = this.id;
+					ret.push(res);
+				}
+			});
+		});
+		return ret;
+	}
+/// end  cell editing
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js	(revision 178)
@@ -0,0 +1,629 @@
+/*
+ * jqGrid common function
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+*/ 
+// Modal functions
+var showModal = function(h) {
+	h.w.show();
+};
+var closeModal = function(h) {
+	h.w.hide().attr("aria-hidden","true");
+	if(h.o) { h.o.remove(); }
+};
+var hideModal = function (selector,o) {
+	o = jQuery.extend({jqm : true, gb :''}, o || {});
+    if(o.onClose) {
+		var oncret =  o.onClose(selector);
+		if (typeof oncret == 'boolean'  && !oncret ) { return; }
+    }	
+	if (jQuery.fn.jqm && o.jqm === true) {
+		jQuery(selector).attr("aria-hidden","true").jqmHide();
+	} else {
+		if(o.gb != '') {
+			try {jQuery(".jqgrid-overlay:first",o.gb).hide();} catch (e){}
+		}
+		jQuery(selector).hide().attr("aria-hidden","true");
+	}
+};
+//Helper functions
+function findPos(obj) {
+	var curleft = 0, curtop = 0;
+	if (obj.offsetParent) {
+		do {
+			curleft += obj.offsetLeft;
+			curtop += obj.offsetTop; 
+		} while (obj = obj.offsetParent);
+		//do not change obj == obj.offsetParent 
+	}
+	return [curleft,curtop];
+}
+var createModal = function(aIDs, content, p, insertSelector, posSelector, appendsel) {
+	var mw  = document.createElement('div'), rtlsup;
+	rtlsup = jQuery(p.gbox).attr("dir") == "rtl" ? true : false;
+	mw.className= "ui-widget ui-widget-content ui-corner-all ui-jqdialog";
+	mw.id = aIDs.themodal; 
+	var mh = document.createElement('div');
+	mh.className = "ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix";
+	mh.id = aIDs.modalhead;
+	jQuery(mh).append("<span class='ui-jqdialog-title'>"+p.caption+"</span>");
+	var ahr= jQuery("<a href='javascript:void(0)' class='ui-jqdialog-titlebar-close ui-corner-all'></a>")
+	.hover(function(){ahr.addClass('ui-state-hover');},
+		   function(){ahr.removeClass('ui-state-hover');})
+	.append("<span class='ui-icon ui-icon-closethick'></span>");
+	jQuery(mh).append(ahr);
+	if(rtlsup) {
+		mw.dir = "rtl";
+		jQuery(".ui-jqdialog-title",mh).css("float","right");
+		jQuery(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em");
+	} else {
+		mw.dir = "ltr";
+		jQuery(".ui-jqdialog-title",mh).css("float","left");
+		jQuery(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em");
+	}
+	var mc = document.createElement('div');
+	jQuery(mc).addClass("ui-jqdialog-content ui-widget-content").attr("id",aIDs.modalcontent);
+	jQuery(mc).append(content);
+	mw.appendChild(mc);
+	jQuery(mw).prepend(mh);
+	if(appendsel===true) { jQuery('body').append(mw); } //append as first child in body -for alert dialog
+	else {jQuery(mw).insertBefore(insertSelector);}
+	if(typeof p.jqModal === 'undefined') {p.jqModal = true;} // internal use
+	var coord = {};
+	if ( jQuery.fn.jqm && p.jqModal === true) {
+		if(p.left ===0 && p.top===0) {
+			var pos = [];
+			pos = findPos(posSelector);
+			p.left = pos[0] + 4;
+			p.top = pos[1] + 4;
+		}
+		coord.top = p.top+"px";
+		coord.left = p.left;
+	} else if(p.left !==0 || p.top!==0) {
+		coord.left = p.left;
+		coord.top = p.top+"px";
+	}
+	jQuery("a.ui-jqdialog-titlebar-close",mh).click(function(e){
+		var oncm = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
+		var gboxclose = jQuery("#"+aIDs.themodal).data("gbox") || p.gbox;
+		hideModal("#"+aIDs.themodal,{gb:gboxclose,jqm:p.jqModal,onClose:oncm});
+		return false;
+	});
+	if (p.width === 0 || !p.width) {p.width = 300;}
+	if(p.height === 0 || !p.height) {p.height =200;}
+	if(!p.zIndex) {p.zIndex = 950;}
+	var rtlt = 0;
+	if( rtlsup && coord.left && !appendsel) {
+		rtlt = jQuery(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do
+		// just in case
+		coord.left = parseInt(coord.left,10) + parseInt(rtlt,10);
+	}
+	if(coord.left) { coord.left += "px"; }
+	jQuery(mw).css(jQuery.extend({
+		width: isNaN(p.width) ? "auto": p.width+"px",
+		height:isNaN(p.height) ? "auto" : p.height + "px",
+		zIndex:p.zIndex,
+		overflow: 'hidden'
+	},coord))
+	.attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"});
+	if(typeof p.drag == 'undefined') { p.drag=true;}
+	if(typeof p.resize == 'undefined') {p.resize=true;}
+	if (p.drag) {
+		jQuery(mh).css('cursor','move');
+		if(jQuery.fn.jqDrag) {
+			jQuery(mw).jqDrag(mh);
+		} else {
+			try {
+				jQuery(mw).draggable({handle: jQuery("#"+mh.id)});
+			} catch (e) {}
+		}
+	}
+	if(p.resize) {
+		if(jQuery.fn.jqResize) {
+			jQuery(mw).append("<div class='jqResize ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se'></div>");
+			jQuery("#"+aIDs.themodal).jqResize(".jqResize",aIDs.scrollelm ? "#"+aIDs.scrollelm : false);
+		} else {
+			try {
+				jQuery(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+aIDs.scrollelm : false});
+			} catch (e) {}
+		}
+	}
+	if(p.closeOnEscape === true){
+		jQuery(mw).keydown( function( e ) {
+			if( e.which == 27 ) {
+				var cone = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
+				hideModal(this,{gb:p.gbox,jqm:p.jqModal,onClose: cone});
+			}
+		});
+	}
+};
+var viewModal = function (selector,o){
+	o = jQuery.extend({
+		toTop: true,
+		overlay: 10,
+		modal: false,
+		onShow: showModal,
+		onHide: closeModal,
+		gbox: '',
+		jqm : true,
+		jqM : true
+	}, o || {});
+	if (jQuery.fn.jqm && o.jqm === true) {
+		if(o.jqM) { jQuery(selector).attr("aria-hidden","false").jqm(o).jqmShow(); }
+		else {jQuery(selector).attr("aria-hidden","false").jqmShow();}
+	} else {
+		if(o.gbox != '') {
+			jQuery(".jqgrid-overlay:first",o.gbox).show();
+			jQuery(selector).data("gbox",o.gbox);
+		}
+		jQuery(selector).show().attr("aria-hidden","false");
+		try{jQuery(':input:visible',selector)[0].focus();}catch(_){}
+	}
+};
+
+function info_dialog(caption, content,c_b, modalopt) {
+	var mopt = {
+		width:290,
+		height:'auto',
+		dataheight: 'auto',
+		drag: true,
+		resize: false,
+		caption:"<b>"+caption+"</b>",
+		left:250,
+		top:170,
+		zIndex : 1000,
+		jqModal : true,
+		modal : false,
+		closeOnEscape : true,
+		align: 'center',
+		buttonalign : 'center',
+		buttons : []
+		// {text:'textbutt', id:"buttid", onClick : function(){...}}
+		// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...
+	};
+	jQuery.extend(mopt,modalopt || {});
+	var jm = mopt.jqModal;
+	if(jQuery.fn.jqm && !jm) { jm = false; }
+	// in case there is no jqModal
+	var buttstr ="";
+	if(mopt.buttons.length > 0) {
+		for(var i=0;i<mopt.buttons.length;i++) {
+			if(typeof mopt.buttons[i].id == "undefined") { mopt.buttons[i].id = "info_button_"+i; }
+			buttstr += "<a href='javascript:void(0)' id='"+mopt.buttons[i].id+"' class='fm-button ui-state-default ui-corner-all'>"+mopt.buttons[i].text+"</a>";
+		}
+	}
+	var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px",
+	cn = "text-align:"+mopt.align+";";
+	var cnt = "<div id='info_id'>";
+	cnt += "<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>";
+	cnt += c_b ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a href='javascript:void(0)' id='closedialog' class='fm-button ui-state-default ui-corner-all'>"+c_b+"</a>"+buttstr+"</div>" :
+		buttstr != ""  ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : "";
+	cnt += "</div>";
+
+	try {
+		if(jQuery("#info_dialog").attr("aria-hidden") == "false") {
+			hideModal("#info_dialog",{jqm:jm});
+		}
+		jQuery("#info_dialog").remove();
+	} catch (e){}
+	createModal({
+		themodal:'info_dialog',
+		modalhead:'info_head',
+		modalcontent:'info_content',
+		scrollelm: 'infocnt'},
+		cnt,
+		mopt,
+		'','',true
+	);
+	// attach onclick after inserting into the dom
+	if(buttstr) {
+		jQuery.each(mopt.buttons,function(i){
+			jQuery("#"+this.id,"#info_id").bind('click',function(){mopt.buttons[i].onClick.call(jQuery("#info_dialog")); return false;});
+		});
+	}
+	jQuery("#closedialog", "#info_id").click(function(e){
+		hideModal("#info_dialog",{jqm:jm});
+		return false;
+	});
+	jQuery(".fm-button","#info_dialog").hover(
+		function(){jQuery(this).addClass('ui-state-hover');}, 
+		function(){jQuery(this).removeClass('ui-state-hover');}
+	);
+	viewModal("#info_dialog",{
+		onHide: function(h) {
+			h.w.hide().remove();
+			if(h.o) { h.o.remove(); }
+		},
+		modal :mopt.modal,
+		jqm:jm
+	});
+	try{$("#info_dialog").focus();} catch (e){}
+}
+// Form Functions
+function createEl(eltype,options,vl,autowidth, ajaxso) {
+	var elem = "";
+	if(options.defaultValue) { delete options.defaultValue; }
+	function bindEv (el, opt) {
+		if(jQuery.isFunction(opt.dataInit)) {
+			// datepicker fix 
+			el.id = opt.id;
+			opt.dataInit(el);
+			delete opt.id;
+			delete opt.dataInit;
+		}
+		if(opt.dataEvents) {
+		    jQuery.each(opt.dataEvents, function() {
+		        if (this.data !== undefined) {
+			        jQuery(el).bind(this.type, this.data, this.fn);
+		        } else {
+		            jQuery(el).bind(this.type, this.fn);
+		        }
+		    });
+			delete opt.dataEvents;
+		}
+		return opt;
+	}
+	switch (eltype)
+	{
+		case "textarea" :
+				elem = document.createElement("textarea");
+				if(autowidth) {
+					if(!options.cols) { jQuery(elem).css({width:"98%"});}
+				} else if (!options.cols) { options.cols = 20; }
+				if(!options.rows) { options.rows = 2; }
+				if(vl=='&nbsp;' || vl=='&#160;' || (vl.length==1 && vl.charCodeAt(0)==160)) {vl="";}
+				elem.value = vl;
+				options = bindEv(elem,options);
+				jQuery(elem).attr(options).attr({"role":"textbox","multiline":"true"});
+				break;
+		case "checkbox" : //what code for simple checkbox
+			elem = document.createElement("input");
+			elem.type = "checkbox";
+			if( !options.value ) {
+				var vl1 = vl.toLowerCase();
+				if(vl1.search(/(false|0|no|off|undefined)/i)<0 && vl1!=="") {
+					elem.checked=true;
+					elem.defaultChecked=true;
+					elem.value = vl;
+				} else {
+					elem.value = "on";
+				}
+				jQuery(elem).attr("offval","off");
+			} else {
+				var cbval = options.value.split(":");
+				if(vl === cbval[0]) {
+					elem.checked=true;
+					elem.defaultChecked=true;
+				}
+				elem.value = cbval[0];
+				jQuery(elem).attr("offval",cbval[1]);
+				try {delete options.value;} catch (e){}
+			}
+			options = bindEv(elem,options);
+			jQuery(elem).attr(options).attr("role","checkbox");
+			break;
+		case "select" :
+			elem = document.createElement("select");
+			elem.setAttribute("role","select");
+			var msl, ovm = [];
+			if(options.multiple===true) {
+				msl = true;
+				elem.multiple="multiple";
+				$(elem).attr("aria-multiselectable","true");
+			} else { msl = false; }
+			if(typeof(options.dataUrl) != "undefined") {
+				jQuery.ajax(jQuery.extend({
+					url: options.dataUrl,
+					type : "GET",
+					complete: function(data,status){
+						try {delete options.dataUrl; delete options.value;} catch (e){}
+						var a;
+						if(typeof(options.buildSelect) != "undefined") {
+							var b = options.buildSelect(data);
+							a = jQuery(b).html();
+							delete options.buildSelect;
+						} else {
+							a = jQuery(data.responseText).html();
+						}
+						if(a) {
+							jQuery(elem).append(a);
+							options = bindEv(elem,options);
+							if(typeof options.size === 'undefined') { options.size =  msl ? 3 : 1;}
+							if(msl) {
+								ovm = vl.split(",");
+								ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
+							} else {
+								ovm[0] = jQuery.trim(vl);
+							}
+							jQuery(elem).attr(options);
+							setTimeout(function(){
+								jQuery("option",elem).each(function(i){
+									if(i===0) { this.selected = ""; }
+									$(this).attr("role","option");
+									if(jQuery.inArray(jQuery.trim(jQuery(this).text()),ovm) > -1 || jQuery.inArray(jQuery.trim(jQuery(this).val()),ovm) > -1 ) {
+										this.selected= "selected";
+										if(!msl) { return false; }
+									}
+								});
+							},0);
+						}
+					}
+				},ajaxso || {}));
+			} else if(options.value) {
+				var i;
+				if(msl) {
+					ovm = vl.split(",");
+					ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
+					if(typeof options.size === 'undefined') {options.size = 3;}
+				} else {
+					options.size = 1;
+				}
+				if(typeof options.value === 'function') { options.value = options.value(); }
+				var so,sv, ov;
+				if(typeof options.value === 'string') {
+					so = options.value.split(";");
+					for(i=0; i<so.length;i++){
+						sv = so[i].split(":");
+						if(sv.length > 2 ) {
+							sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n;} }).join(":");
+						}
+						ov = document.createElement("option");
+						ov.setAttribute("role","option");
+						ov.value = sv[0]; ov.innerHTML = sv[1];
+						if (!msl &&  (jQuery.trim(sv[0]) == jQuery.trim(vl) || jQuery.trim(sv[1]) == jQuery.trim(vl))) { ov.selected ="selected"; }
+						if (msl && (jQuery.inArray(jQuery.trim(sv[1]), ovm)>-1 || jQuery.inArray(jQuery.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
+						elem.appendChild(ov);
+					}
+				} else if (typeof options.value === 'object') {
+					var oSv = options.value;
+					for ( var key in oSv) {
+						if (oSv.hasOwnProperty(key ) ){
+							ov = document.createElement("option");
+							ov.setAttribute("role","option");
+							ov.value = key; ov.innerHTML = oSv[key];
+							if (!msl &&  ( jQuery.trim(key) == jQuery.trim(vl) || jQuery.trim(oSv[key]) == jQuery.trim(vl)) ) { ov.selected ="selected"; }
+							if (msl && (jQuery.inArray(jQuery.trim(oSv[key]),ovm)>-1 || jQuery.inArray(jQuery.trim(key),ovm)>-1)) { ov.selected ="selected"; }
+							elem.appendChild(ov);
+						}
+					}
+				}
+				options = bindEv(elem,options);
+				try {delete options.value;} catch (e){}
+				jQuery(elem).attr(options);
+			}
+			break;
+		case "text" :
+		case "password" :
+		case "button" :
+			var role;
+			if(eltype=="button") { role = "button"; }
+			else { role = "textbox"; }
+			elem = document.createElement("input");
+			elem.type = eltype;
+			elem.value = vl;
+			options = bindEv(elem,options);
+			if(eltype != "button"){
+				if(autowidth) {
+					if(!options.size) { jQuery(elem).css({width:"98%"}); }
+				} else if (!options.size) { options.size = 20; }
+			}
+			jQuery(elem).attr(options).attr("role",role);
+			break;
+		case "image" :
+		case "file" :
+			elem = document.createElement("input");
+			elem.type = eltype;
+			options = bindEv(elem,options);
+			jQuery(elem).attr(options);
+			break;
+		case "custom" :
+			elem = document.createElement("span");
+			try {
+				if(jQuery.isFunction(options.custom_element)) {
+					var celm = options.custom_element.call(this,vl,options);
+					if(celm) {
+						celm = jQuery(celm).addClass("customelement").attr({id:options.id,name:options.name});
+						jQuery(elem).empty().append(celm);
+					} else {
+						throw "e2";
+					}
+				} else {
+					throw "e1";
+				}
+			} catch (e) {
+				if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose);}
+				if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
+				else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+			}
+			break;
+	}
+	return elem;
+}
+// Date Validation Javascript
+function daysInFebruary (year){
+	// February has 29 days in any year evenly divisible by four,
+    // EXCEPT for centurial years which are not also divisible by 400.
+    return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );
+}
+function DaysArray(n) {
+	for (var i = 1; i <= n; i++) {
+		this[i] = 31;
+		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
+		if (i==2) {this[i] = 29;}
+	} 
+	return this;
+}
+function checkDate (format, date) {
+	var tsp = {}, sep;
+	format = format.toLowerCase();
+	//we search for /,-,. for the date separator
+	if(format.indexOf("/") != -1) {
+		sep = "/";
+	} else if(format.indexOf("-") != -1) {
+		sep = "-";
+	} else if(format.indexOf(".") != -1) {
+		sep = ".";
+	} else {
+		sep = "/";
+	}
+	format = format.split(sep);
+	date = date.split(sep);
+	if (date.length != 3) { return false; }
+	var j=-1,yln, dln=-1, mln=-1;
+	for(var i=0;i<format.length;i++){
+		var dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10); 
+		tsp[format[i]] = dv;
+		yln = format[i];
+		if(yln.indexOf("y") != -1) { j=i; }
+		if(yln.indexOf("m") != -1) { mln=i; }
+		if(yln.indexOf("d") != -1) { dln=i; }
+	}
+	if (format[j] == "y" || format[j] == "yyyy") {
+		yln=4;
+	} else if(format[j] =="yy"){
+		yln = 2;
+	} else {
+		yln = -1;
+	}
+	var daysInMonth = DaysArray(12);
+	var strDate;
+	if (j === -1) {
+		return false;
+	} else {
+		strDate = tsp[format[j]].toString();
+		if(yln == 2 && strDate.length == 1) {yln = 1;}
+		if (strDate.length != yln || (tsp[format[j]]===0 && date[j]!="00")){
+			return false;
+		}
+	}
+	if(mln === -1) {
+		return false;
+	} else {
+		strDate = tsp[format[mln]].toString();
+		if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){
+			return false;
+		}
+	}
+	if(dln === -1) {
+		return false;
+	} else {
+		strDate = tsp[format[dln]].toString();
+		if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]==2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){
+			return false;
+		}
+	}
+	return true;
+}
+
+function isEmpty(val)
+{
+	if (val.match(/^s+$/) || val == "")	{
+		return true;
+	} else {
+		return false;
+	} 
+}
+function checkTime(time){
+	// checks only hh:ss (and optional am/pm)
+	var re = /^(\d{1,2}):(\d{2})([ap]m)?$/,regs;
+	if(!isEmpty(time))
+	{
+		regs = time.match(re);
+		if(regs) {
+			if(regs[3]) {
+				if(regs[1] < 1 || regs[1] > 12) { return false; }
+			} else {
+				if(regs[1] > 23) { return false; }
+			}
+			if(regs[2] > 59) {
+				return false;
+			}
+		} else {
+			return false;
+		}
+	}
+	return true;
+}
+function checkValues(val, valref,g) {
+	var edtrul,i, nm;
+	if(typeof(valref)=='string'){
+		for( i =0, len=g.p.colModel.length;i<len; i++){
+			if(g.p.colModel[i].name==valref) {
+				edtrul = g.p.colModel[i].editrules;
+				valref = i;
+				try { nm = g.p.colModel[i].formoptions.label; } catch (e) {}
+				break;
+			}
+		}
+	} else if(valref >=0) {
+		edtrul = g.p.colModel[valref].editrules;
+	}
+	if(edtrul) {
+		if(!nm) { nm = g.p.colNames[valref]; }
+		if(edtrul.required === true) {
+			if( val.match(/^s+$/) || val == "" )  { return [false,nm+": "+jQuery.jgrid.edit.msg.required,""]; }
+		}
+		// force required
+		var rqfield = edtrul.required === false ? false : true;
+		if(edtrul.number === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.number,""]; }
+			}
+		}
+		if(typeof edtrul.minValue != 'undefined' && !isNaN(edtrul.minValue)) {
+			if (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.minValue+" "+edtrul.minValue,""];}
+		}
+		if(typeof edtrul.maxValue != 'undefined' && !isNaN(edtrul.maxValue)) {
+			if (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.maxValue+" "+edtrul.maxValue,""];}
+		}
+		var filter;
+		if(edtrul.email === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+			// taken from jquery Validate plugin
+				filter = /^((([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;
+				if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.email,""];}
+			}
+		}
+		if(edtrul.integer === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""]; }
+				if ((val % 1 !== 0) || (val.indexOf('.') != -1)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""];}
+			}
+		}
+		if(edtrul.date === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				var dft = g.p.colModel[valref].datefmt || "Y-m-d";
+				if(!checkDate (dft, val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - "+dft,""]; }
+			}
+		}
+		if(edtrul.time === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				if(!checkTime (val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - hh:mm (am/pm)",""]; }
+			}
+		}
+        if(edtrul.url === true) {
+            if( !(rqfield === false && isEmpty(val)) ) {
+                filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
+                if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.url,""];}
+            }
+        }
+		if(edtrul.custom === true) {
+            if( !(rqfield === false && isEmpty(val)) ) {
+				if(jQuery.isFunction(edtrul.custom_func)) {
+					var ret = edtrul.custom_func.call(g,val,nm);
+					if(jQuery.isArray(ret)) {
+						return ret;
+					} else {
+						return [false,jQuery.jgrid.edit.msg.customarray,""];
+					}
+				} else {
+					return [false,jQuery.jgrid.edit.msg.customfcheck,""];
+				}
+			}
+		}
+	}
+	return [true,"",""];
+}

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml	(revision 178)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<bindings
+    xmlns="http://www.mozilla.org/xbl"
+    xmlns:xbl="http://www.mozilla.org/xbl"
+    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+    <binding id="ellipsis">
+        <content>
+            <xul:window><!-- xul:window tag required for FF2 -->
+                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
+            </xul:window>
+        </content>
+    </binding>
+</bindings>

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css	(revision 178)
@@ -0,0 +1,2 @@
+.ui-jqgrid{position:relative;font-size:11px;}.ui-jqgrid .ui-jqgrid-view{position:relative;left:0;top:0;padding:.0em;}.ui-jqgrid .ui-jqgrid-titlebar{padding:.3em .2em .2em .3em;position:relative;border-left:0 none;border-right:0 none;border-top:0 none;}.ui-jqgrid .ui-jqgrid-title{float:left;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span{display:block;margin:1px;}.ui-jqgrid .ui-jqgrid-titlebar-close:hover{padding:0;}.ui-jqgrid .ui-jqgrid-hdiv{position:relative;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-hbox{float:left;padding-right:20px;}.ui-jqgrid .ui-jqgrid-htable{table-layout:fixed;margin:0;}.ui-jqgrid .ui-jqgrid-htable th{height:22px;padding:0 2px 0 2px;}.ui-jqgrid .ui-jqgrid-htable th div{overflow:hidden;position:relative;height:17px;}.ui-th-column,.ui-jqgrid .ui-jqgrid-htable th.ui-th-column{overflow:hidden;white-space:nowrap;text-align:center;border-top:0 none;border-bottom:0 none;}.ui-th-ltr,.ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr{border-left:0 none;}.ui-th-rtl,.ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl{border-right:0 none;}.ui-jqgrid .ui-th-div-ie{white-space:nowrap;zoom:1;height:17px;}.ui-jqgrid .ui-jqgrid-resize{height:20px!important;position:relative;cursor:e-resize;display:inline;overflow:hidden;}.ui-jqgrid .ui-grid-ico-sort{overflow:hidden;position:absolute;display:inline;cursor:pointer!important;}.ui-jqgrid .ui-icon-asc{margin-top:-3px;height:12px;}.ui-jqgrid .ui-icon-desc{margin-top:3px;height:12px;}.ui-jqgrid .ui-i-asc{margin-top:0;height:16px;}.ui-jqgrid .ui-i-desc{margin-top:0;margin-left:13px;height:16px;}.ui-jqgrid .ui-jqgrid-sortable{cursor:pointer;}.ui-jqgrid tr.ui-search-toolbar th{border-top-width:1px!important;border-top-color:inherit!important;border-top-style:ridge!important;}tr.ui-search-toolbar input{margin:1px 0 0 0;}tr.ui-search-toolbar select{margin:1px 0 0 0;}.ui-jqgrid .ui-jqgrid-bdiv{position:relative;margin:0;padding:0;overflow:auto;text-align:left;}.ui-jqgrid .ui-jqgrid-btable{table-layout:fixed;margin:0;}.ui-jqgrid tr.jqgrow td{font-weight:normal;overflow:hidden;white-space:pre;height:22px;padding:0 2px 0 2px;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid tr.ui-row-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.ui-row-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid td.jqgrid-rownum{padding:0 2px 0 2px;margin:0;border:0 none;}.ui-jqgrid .ui-jqgrid-resize-mark{width:2px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;display:none;border:0 none;}.ui-jqgrid .ui-jqgrid-sdiv{position:relative;margin:0;padding:0;overflow:hidden;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-ftable{table-layout:fixed;margin-bottom:0;}.ui-jqgrid tr.footrow td{font-weight:bold;overflow:hidden;white-space:nowrap;height:21px;padding:0 2px 0 2px;border-top-width:1px;border-top-color:inherit;border-top-style:solid;}.ui-jqgrid tr.footrow-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.footrow-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid .ui-jqgrid-pager{border-left:0 none!important;border-right:0 none!important;border-bottom:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-pager-control{position:relative;}.ui-jqgrid .ui-pg-table{position:relative;padding-bottom:2px;width:auto;margin:0;}.ui-jqgrid .ui-pg-table td{font-weight:normal;vertical-align:middle;padding:1px;}.ui-jqgrid .ui-pg-button{height:19px!important;}.ui-jqgrid .ui-pg-button span{display:block;margin:1px;float:left;}.ui-jqgrid .ui-pg-button:hover{padding:0;}.ui-jqgrid .ui-state-disabled:hover{padding:1px;}.ui-jqgrid .ui-pg-input{height:13px;font-size:.8em;margin:0;}.ui-jqgrid .ui-pg-selbox{font-size:.8em;line-height:18px;display:block;height:18px;margin:0;}.ui-jqgrid .ui-separator{height:18px;border-left:1px solid #ccc;border-right:1px solid #ccc;margin:1px;float:right;}.ui-jqgrid .ui-paging-info{font-weight:normal;height:19px;margin-top:3px;margin-right:4px;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div{padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-button{cursor:pointer;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div span.ui-icon{float:left;margin:0 2px;}.ui-jqgrid td input,.ui-jqgrid td select .ui-jqgrid td textarea{margin:0;}.ui-jqgrid td textarea{width:auto;height:auto;}.ui-jqgrid .ui-jqgrid-toppager{border-left:0 none!important;border-right:0 none!important;border-top:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px!important;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span{display:block;}.ui-jqgrid .ui-subgrid{margin:0;padding:0;width:100%;}.ui-jqgrid .ui-subgrid table{table-layout:fixed;}.ui-jqgrid .ui-subgrid tr.ui-subtblcell td{height:18px;border-right-width:1px;border-right-color:inherit;border-right-style:solid;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid .ui-subgrid td.subgrid-data{border-top:0 none!important;}.ui-jqgrid .ui-subgrid td.subgrid-cell{border-width:0 0 1px 0;}.ui-jqgrid .ui-th-subgrid{height:20px;}.ui-jqgrid .loading{position:absolute;top:45%;left:45%;width:auto;z-index:101;padding:6px;margin:5px;text-align:center;font-weight:bold;display:none;border-width:2px!important;}.ui-jqgrid .jqgrid-overlay{display:none;z-index:100;}* html .jqgrid-overlay{width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}* .jqgrid-overlay iframe{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid .ui-userdata{border-left:0 none;border-right:0 none;height:21px;overflow:hidden;}.ui-jqdialog{display:none;width:300px;position:absolute;padding:.2em;font-size:11px;overflow:visible;}.ui-jqdialog .ui-jqdialog-titlebar{padding:.3em .2em;position:relative;}.ui-jqdialog .ui-jqdialog-title{margin:.1em 0 .2em;}.ui-jqdialog .ui-jqdialog-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqdialog .ui-jqdialog-titlebar-close span{display:block;margin:1px;}.ui-jqdialog .ui-jqdialog-titlebar-close:hover,.ui-jqdialog .ui-jqdialog-titlebar-close:focus{padding:0;}.ui-jqdialog-content,.ui-jqdialog .ui-jqdialog-content{border:0;padding:.3em .2em;background:none;height:auto;}.ui-jqdialog .ui-jqconfirm{padding:.4em 1em;border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}.ui-jqdialog-content .FormGrid{margin:0;}.ui-jqdialog-content .EditTable{width:100%;margin-bottom:0;}.ui-jqdialog-content .DelTable{width:100%;margin-bottom:0;}.EditTable td input,.EditTable td select,.EditTable td textarea{margin:0;}.EditTable td textarea{width:auto;height:auto;}.ui-jqdialog-content td.EditButton{text-align:right;border-top:0 none;border-left:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content td.navButton{text-align:center;border-left:0 none;border-top:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content .CaptionTD{text-align:left;vertical-align:top;border-left:0 none;border-right:0 none;border-bottom:0 none;padding:1px;white-space:nowrap;}.ui-jqdialog-content .DataTD{padding:1px;border-left:0 none;border-right:0 none;border-bottom:0 none;vertical-align:top;}.ui-jqdialog-content .form-view-data{white-space:pre;}.fm-button{display:inline-block;margin:0 4px 0 0;padding:.4em .5em;text-decoration:none!important;cursor:pointer;position:relative;text-align:center;zoom:1;}.fm-button-icon-left{padding-left:1.9em;}.fm-button-icon-right{padding-right:1.9em;}.fm-button-icon-left .ui-icon{right:auto;left:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}.fm-button-icon-right .ui-icon{left:auto;right:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}#nData,#pData{float:left;margin:3px;padding:0;width:15px;}.ui-jqgrid .selected-row,div.ui-jqgrid .selected-row td{font-style:normal;border-left:0 none;}.ui-jqgrid .tree-wrap{float:left;position:relative;height:18px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .tree-minus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-plus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-leaf{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .treeclick{cursor:pointer;}.jqmOverlay{background-color:#000;}* iframe.jqm{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid-dnd tr td{border-right-width:1px;border-right-color:inherit;border-right-style:solid;height:20px;}.ui-jqgrid .ui-jqgrid-title-rtl{float:right;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-hbox-rtl{float:right;padding-left:20px;}.ui-jqgrid .ui-jqgrid-resize-ltr{float:right;margin:-2px -2px -2px 0;}.ui-jqgrid .ui-jqgrid-resize-rtl{float:left;margin:-2px 0 -1px -3px;}.ui-jqgrid .ui-sort-rtl{left:0;}.ui-jqgrid .tree-wrap-ltr{float:left;}.ui-jqgrid .tree-wrap-rtl{float:right;}.ui-jqgrid .ui-ellipsis{text-overflow:ellipsis;-moz-binding:url('ellipsis-xbl.xml#ellipsis');}
+.ui-searchFilter{display:none;position:absolute;z-index:770;overflow:visible;}.ui-searchFilter table{position:relative;margin:0;width:auto;}.ui-searchFilter table td{margin:0;padding:1px;}.ui-searchFilter table td input,.ui-searchFilter table td select{margin:.1em;}.ui-searchFilter .ui-state-default{cursor:pointer;}.ui-searchFilter .divider{height:1px;}.ui-searchFilter .divider div{background-color:black;height:1px;}
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery/jquery.dropdown.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery/jquery.dropdown.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery/jquery.dropdown.js	(revision 178)
@@ -0,0 +1,19 @@
+$(document).ready(function(){
+
+	$("ul.dropdown li").dropdown();
+
+});
+
+$.fn.dropdown = function() {
+
+	$(this).hover(function(){
+		$(this).addClass("hover");
+		$('> .dir',this).addClass("open");
+		$('ul:first',this).css('visibility', 'visible');
+	},function(){
+		$(this).removeClass("hover");
+		$('.open',this).removeClass("open");
+		$('ul:first',this).css('visibility', 'hidden');
+	});
+
+}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/autocomplete/GrowingInput.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/autocomplete/GrowingInput.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/autocomplete/GrowingInput.js	(revision 178)
@@ -0,0 +1,80 @@
+/*
+Script: GrowingInput.js
+	Alters the size of an input depending on its content
+
+	License:
+		MIT-style license.
+
+	Authors:
+		Guillermo Rauch
+*/
+
+(function($){
+
+$.GrowingInput = function(element, options){
+	
+	var value, lastValue, calc;
+	
+	options = $.extend({
+		min: 0,
+		max: null,
+		startWidth: 15,
+		correction: 15
+	}, options);
+	
+	element = $(element).data('growing', this);
+	
+	var self = this;
+	var init = function(){
+		calc = $('<span></span>').css({
+			'float': 'left',
+			'display': 'inline-block',
+			'position': 'absolute',
+			'left': -1000
+		}).insertAfter(element);
+		$.each(['font-size', 'font-family', 'padding-left', 'padding-top', 'padding-bottom', 
+		 'padding-right', 'border-left', 'border-right', 'border-top', 'border-bottom', 
+		 'word-spacing', 'letter-spacing', 'text-indent', 'text-transform'], function(i, p){				
+				calc.css(p, element.css(p));
+		});
+		element.blur(resize).keyup(resize).keydown(resize).keypress(resize);
+		resize();
+	};
+	
+	var calculate = function(chars){
+		calc.text(chars);
+		var width = calc.width();
+		return (width ? width : options.startWidth) + options.correction;
+	};
+	
+	var resize = function(){
+		lastValue = value;
+		value = element.val();
+		var retValue = value;		
+		if(chk(options.min) && value.length < options.min){
+			if(chk(lastValue) && (lastValue.length <= options.min)) return;
+			retValue = str_pad(value, options.min, '-');
+		} else if(chk(options.max) && value.length > options.max){
+			if(chk(lastValue) && (lastValue.length >= options.max)) return;
+			retValue = value.substr(0, options.max);
+		}
+		element.width(calculate(retValue));
+		return self;
+	};
+	
+	this.resize = resize;
+	init();
+};
+
+var chk = function(v){ return !!(v || v === 0); };
+var str_repeat = function(str, times){ return new Array(times + 1).join(str); };
+var str_pad = function(self, length, str, dir){
+	if (self.length >= length) return this;
+	str = str || ' ';
+	var pad = str_repeat(str, length - self.length).substr(0, length - self.length);
+	if (!dir || dir == 'right') return self + pad;
+	if (dir == 'left') return pad + self;
+	return pad.substr(0, (pad.length / 2).floor()) + self + pad.substr(0, (pad.length / 2).ceil());
+};
+
+})(jQuery);
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.Binary.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.Binary.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.Binary.js	(revision 178)
@@ -0,0 +1,45 @@
+/*
+Script: TextboxList.Autocomplete.Binary.js
+	TextboxList Autocomplete binary search extension
+
+	Authors:
+		Guillermo Rauch
+	
+	Note:
+		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/>
+		Purchase to remove this message.
+*/
+
+$.TextboxList.Autocomplete.Methods.binary = {
+	filter: function(values, search, insensitive, max){
+		var method = insensitive ? 'toLowerCase' : 'toString', low = 0, high = values.length - 1, lastTry;
+		search = search[method]();
+		while (high >= low){
+			var mid = parseInt((low + high) / 2);
+			var curr = values[mid][1].substr(0, search.length)[method]();			
+			var result = ((search == curr) ? 0 : ((search > curr) ? 1 : -1));
+			if (result < 0) { high = mid - 1; continue; }
+			if (result > 0) { low = mid + 1; continue; }
+			if (result === 0) break;
+		}				
+		if (high < low) return [];
+		var newvalues = [values[mid]], checkNext = true, checkPrev = true, v1, v2;
+		for (var i = 1; i <= values.length - mid; i++){			
+			if (newvalues.length === max) break;
+			if (checkNext) v1 = values[mid + i] ? values[mid + i][1].substr(0, search.length)[method]() : false;
+			if (checkPrev) v2 = values[mid - i] ? values[mid - i][1].substr(0, search.length)[method]() : false;
+			checkNext = checkPrev = false;
+			if (v1 === search) { newvalues.push(values[mid + i]); checkNext = true; }
+			if (v2 === search) { newvalues.unshift(values[mid - i]); checkPrev = true; }
+			if (! (checkNext || checkPrev)) break;
+		}
+		return newvalues;
+	},
+	
+	highlight: function(element, search, insensitive, klass){
+		var regex = new RegExp('(<[^>]*>)|(\\b'+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +')', insensitive ? 'ig' : 'g');
+		return element.html(element.html().replace(regex, function(a, b, c, d){
+			return (a.charAt(0) == '<') ? a : '<strong class="'+ klass +'">' + c + '</strong>'; 
+		}));
+	}
+};
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/autocomplete/close.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/autocomplete/close.gif
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.css	(revision 178)
@@ -0,0 +1,19 @@
+/* 
+		This stylesheet belongs to TextboxList - Copyright Guillermo Rauch <http://devthought.com> 2009 
+		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/> 
+		Purchase to remove copyright
+*/
+
+.textboxlist-autocomplete { position: absolute; }
+.textboxlist-autocomplete-placeholder, .textboxlist-autocomplete-results { opacity: 0.9; filter: alpha(opacity=90); background: #eee; -webkit-box-shadow: 0 3px 3px #ccc; -moz-box-shadow: 0 3px 3px #ccc; box-shadow: 0 3px 3px #ccc; border: 1px solid #999; border-top: none; display: none; }
+.textboxlist-autocomplete-placeholder { padding: 5px 7px; }
+.textboxlist-autocomplete-results { margin: 0; padding: 0; }
+.textboxlist-autocomplete-result { margin: 0; padding: 5px; list-style-type: none; background: #fff; }
+.textboxlist-autocomplete-result-focus { background: #C6D9E4; }
+.textboxlist-autocomplete-highlight { background: #54D6F4; font-weight: bold; }
+
+/*  TextboxList.Autocomplete Style guidelines 
+			Try to keep .textboxlist-autocomplete {} as it is now
+			If you apply custom styles to placeholder, also apply them to results, like it is now.
+			.textboxlist-autocomplete-result {} needs a background for IE.
+*/
Index: controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.css	(revision 178)
@@ -0,0 +1,30 @@
+/* 
+		This stylesheet belongs to TextboxList - Copyright Guillermo Rauch <http://devthought.com> 2009 
+		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/> 
+		Purchase to remove copyright
+*/
+
+.textboxlist { font: 11px "Lucida Grande", Verdana; cursor: text; }
+.textboxlist-bits { zoom: 1; overflow: hidden; margin: 0; padding: 3px 4px 0; border: 1px solid #999; *padding-bottom: 3px; }
+.textboxlist-bit { list-style-type: none; float: left; display: block; padding: 0; margin: 0 5px 3px 0; cursor: default; }
+.textboxlist-bit-editable { border: 1px solid #fff; }
+.textboxlist-bit-editable-input { border: 0; padding: 2px 0; *padding-bottom: 0; height: 14px; font: 11px "Lucida Grande", Verdana; }
+.textboxlist-bit-editable-input:focus { outline: 0; }
+.textboxlist-bit-box { position: relative; line-height: 18px; padding: 0 5px; -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; border: 1px solid #E78F08; background: #F6AF39; cursor: default; color:white; font-weight:bold; }
+.textboxlist-bit-box-deletable { padding-right: 15px; }
+.textboxlist-bit-box-deletebutton { position: absolute; right: 4px; top: 6px; display: block; width: 7px; height: 7px; font-size: 1px; background: url('close.gif'); }
+.textboxlist-bit-box-deletebutton:hover { border: none; background-position: 7px; text-decoration: none; }
+.textboxlist-bit-box-hover { background: #BBCEF1; border: 1px solid #6D95E0; }
+.textboxlist-bit-box-focus { border-color: #598BEC; background: #598BEC; color: #fff; }
+.textboxlist-bit-box-focus .textboxlist-bit-box-deletebutton { background-position: bottom; }
+
+/*  TextboxList Style guidelines 
+			This style doesn't necessarily have to be in a separate file. 
+			It's advisable not to set widths and margins from here, but instead apply it to a particular object or class (#id .textboxlist { width: xxx } or .class .textboxlist { width: xxx })
+			The padding-top + padding-left + height of ".textboxlist-bit-editable-input {}" has to match the line-height of ".textboxlist-bit-box {}" for UI consistency. 
+			The font configuration has to be present in .textboxlist and .textboxlist-bit-editable-input (for IE reasons)
+			The *padding-bottom (notice the *) property of .textboxlist-bits {} has to be equal to the margin-bottom of .textboxlist-bit {} for IE reasons.
+			The padding-top of .textboxlist ul {} has to match the margin-bottom of .textboxlist-bit, and the padding-bottom has to be null.
+			Make sure the border-width of the .textboxlist-bit-editable {} is equal to the border-width of the box (a border that matches the background is advisable for the input)
+			Feel free to edit the borders, fonts, backgrounds and radius.		
+*/
Index: controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.js	(revision 178)
@@ -0,0 +1,234 @@
+/*
+Script: TextboxList.Autocomplete.js
+	TextboxList Autocomplete plugin
+
+	Authors:
+		Guillermo Rauch
+	
+	Note:
+		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/>
+		Purchase to remove this message.
+*/
+
+(function(){
+	
+$.TextboxList.Autocomplete = function(textboxlist, _options){
+	
+  var index, prefix, method, container, list, values = [], searchValues = [], results = [], placeholder = false, current, currentInput, hidetimer, doAdd, currentSearch, currentRequest;
+	var options = $.extend(true, {
+		minLength: 1,
+		maxResults: 10,
+		insensitive: true,
+		highlight: true,
+		highlightSelector: null,
+		mouseInteraction: true,
+		onlyFromValues: false,
+		queryRemote: false,
+    remote: {
+			url: '',
+			param: 'search',
+			extraParams: {},
+			loadPlaceholder: 'Por favor espere...'
+    },
+		method: 'standard',
+		placeholder: 'Escribe para obtener resultados'
+	}, _options);
+	
+	var init = function(){
+		textboxlist.addEvent('bitEditableAdd', setupBit)
+			.addEvent('bitEditableFocus', search)
+			.addEvent('bitEditableBlur', hide)
+			.setOptions({bitsOptions: {editable: {addKeys: false, stopEnter: false}}});
+		if ($.browser.msie) textboxlist.setOptions({bitsOptions: {editable: {addOnBlur: false}}});
+		prefix = textboxlist.getOptions().prefix + '-autocomplete';
+		method = $.TextboxList.Autocomplete.Methods[options.method];
+		container = $('<div class="'+ prefix +'" />').width(textboxlist.getContainer().width()).appendTo(textboxlist.getContainer());
+		if (chk(options.placeholder)) placeholder = $('<div class="'+ prefix +'-placeholder" />').html(options.placeholder).appendTo(container);		
+		list = $('<ul class="'+ prefix +'-results" />').appendTo(container).click(function(ev){
+			ev.stopPropagation(); ev.preventDefault();
+		});
+	};
+	
+	var setupBit = function(bit){
+		bit.toElement().keydown(navigate).keyup(function(){ search(); });
+	};
+	
+	var search = function(bit){
+		if (bit) currentInput = bit;
+		if (!options.queryRemote && !values.length) return;
+		var search = $.trim(currentInput.getValue()[1]);
+		if (search.length < options.minLength) showPlaceholder();
+		if (search == currentSearch) return;
+		currentSearch = search;
+		list.css('display', 'none');
+		if (search.length < options.minLength) return;
+		if (options.queryRemote){
+			if (searchValues[search]){
+				values = searchValues[search];
+			} else {
+				var data = options.remote.extraParams;
+				data[options.remote.param] = search;
+				if (currentRequest) currentRequest.abort();
+				currentRequest = $.ajax({
+					url: options.remote.url,
+					data: data,
+					type: "POST",
+					dataType: 'json',
+					success: function(r){
+						searchValues[search] = r;
+						values = r;
+						showResults(search);
+					}
+				});
+			}
+		}
+		showResults(search);
+	};
+	
+	var showResults = function(search){
+		var results = method.filter(values, search, options.insensitive, options.maxResults);
+		if (textboxlist.getOptions().unique){
+			results = $.grep(results, function(v){ return textboxlist.isDuplicate(v) == -1; });		
+		}
+		hidePlaceholder();
+		if (!results.length) return;
+		blur();
+		list.empty().css('display', 'block');
+		$.each(results, function(i, r){ addResult(r, search); });
+		if (options.onlyFromValues) focusFirst();
+		results = results;
+	};
+	
+	var addResult = function(r, searched){
+		var element = $('<li class="'+ prefix +'-result" />').html(r[3] ? r[3] : r[1]).data('textboxlist:auto:value', r);		
+		element.appendTo(list);
+		if (options.highlight) $(options.highlightSelector ? element.find(options.highlightSelector) : element).each(function(){
+			if ($(this).html()) method.highlight($(this), searched, options.insensitive, prefix + '-highlight');
+		});
+		if (options.mouseInteraction){
+			element.css('cursor', 'pointer').hover(function(){ focus(element); }).mousedown(function(ev){
+				ev.stopPropagation(); 
+				ev.preventDefault();
+				clearTimeout(hidetimer);
+				doAdd = true;
+			}).mouseup(function(){
+				if (doAdd){
+					addCurrent();
+					currentInput.focus();
+					search();
+					doAdd = false;
+				}
+			});
+			if (!options.onlyFromValues) element.mouseleave(function(){ if (current && (current.get(0) == element.get(0))) blur(); });	
+		}
+	};
+	
+	var hide = function(){
+		hidetimer = setTimeout(function(){
+			hidePlaceholder();
+			list.css('display', 'none');
+			currentSearch = null;			
+		}, $.browser.msie ? 150 : 0);
+	};
+	
+	var showPlaceholder = function(){
+		if (placeholder) placeholder.css('display', 'block');		
+	};
+	
+	var hidePlaceholder = function(){
+		if (placeholder) placeholder.css('display', 'none');
+	};
+	
+	var focus = function(element){
+		if (!element || !element.length) return;
+		blur();
+		current = element.addClass(prefix + '-result-focus');
+	};
+	
+	var blur = function(){
+		if (current && current.length){
+			current.removeClass(prefix + '-result-focus');
+			current = null;
+		}
+	};
+	
+	var focusFirst = function(){
+		return focus(list.find(':first'));
+	};
+	
+	var focusRelative = function(dir){
+		if (!current || !current.length) return self;
+		return focus(current[dir]());
+	};
+	
+	var addCurrent = function(){
+		var value = current.data('textboxlist:auto:value');
+		var b = textboxlist.create('box', value.slice(0, 3));
+		if (b){
+			b.autoValue = value;
+			if ($.isArray(index)) index.push(value);
+			currentInput.setValue([null, '', null]);
+			b.inject(currentInput.toElement(), 'before');
+		}
+		blur();
+		return self;
+	};
+	
+	var navigate = function(ev){
+		var evStop = function(){ ev.stopPropagation(); ev.preventDefault(); };
+		switch (ev.which){
+			case 38:			
+				evStop();
+				(!options.onlyFromValues && current && current.get(0) === list.find(':first').get(0)) ? blur() : focusRelative('prev');
+				break;
+			case 40:			
+				evStop();
+				(current && current.length) ? focusRelative('next') : focusFirst();
+				break;
+			case 13:
+				evStop();
+				if (current && current.length) addCurrent();
+				else if (!options.onlyFromValues){
+					var value = currentInput.getValue();				
+					var b = textboxlist.create('box', value);
+					if (b){
+						b.inject(currentInput.toElement(), 'before');
+						currentInput.setValue([null, '', null]);
+					}
+				}
+		}
+	};
+	
+	this.setValues = function(v){
+		values = v;
+	};
+	
+	init();
+};
+
+$.TextboxList.Autocomplete.Methods = {
+	
+	standard: {
+		filter: function(values, search, insensitive, max){
+			var newvals = [], regexp = new RegExp('\\b' + escapeRegExp(search), insensitive ? 'i' : '');
+			for (var i = 0; i < values.length; i++){
+				if (newvals.length === max) break;
+				if (regexp.test(values[i][1])) newvals.push(values[i]);
+			}
+			return newvals;
+		},
+		
+		highlight: function(element, search, insensitive, klass){
+			var regex = new RegExp('(<[^>]*>)|(\\b'+ escapeRegExp(search) +')', insensitive ? 'ig' : 'g');
+			return element.html(element.html().replace(regex, function(a, b, c){
+				return (a.charAt(0) == '<') ? a : '<strong class="'+ klass +'">' + c + '</strong>'; 
+			}));
+		}
+	}
+	
+};
+
+var chk = function(v){ return !!(v || v === 0); };
+var escapeRegExp = function(str){ return str.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1"); };
+
+})();
Index: controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/autocomplete/TextboxList.js	(revision 178)
@@ -0,0 +1,473 @@
+/*
+Script: TextboxList.js
+	Displays a textbox as a combination of boxes an inputs (eg: facebook tokenizer)
+
+	Authors:
+		Guillermo Rauch
+		
+	Note:
+		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/>. 
+		Purchase to remove this message.
+*/
+
+(function($){
+	
+$.TextboxList = function(element, _options){
+	
+	var original, container, list, current, focused = false, index = [], blurtimer, events = {};
+	var options = $.extend(true, {
+    prefix: 'textboxlist',
+    max: null,
+		unique: false,
+		uniqueInsensitive: true,
+    endEditableBit: true,
+		startEditableBit: true,
+		hideEditableBits: true,
+    inBetweenEditableBits: true,
+		keys: {previous: 37, next: 39},
+		bitsOptions: {editable: {}, box: {}},
+    plugins: {},
+		// tip: you can change encode/decode with JSON.stringify and JSON.parse
+		encode: function(o){ 
+			return $.grep($.map(o, function(v){		
+				v = (chk(v[0]) ? v[0] : v[1]);
+				return chk(v) ? v.toString().replace(/,/, '') : null;
+			}), function(o){ return o != undefined; }).join(','); 
+		},
+		decode: function(o){ return o.split(','); }
+  }, _options);
+	
+	element = $(element);
+	
+	var self = this;
+	var init = function(){		
+		original = element.css('display', 'none').attr('autocomplete', 'off').focus(focusLast);
+		container = $('<div class="'+options.prefix+'" />')
+			.insertAfter(element)
+			.click(function(e){ 
+				if ((e.target == list.get(0) || e.target == container.get(0)) && (!focused || (current && current.toElement().get(0) != list.find(':last-child').get(0)))) focusLast(); 			
+			});			
+		list = $('<ul class="'+ options.prefix +'-bits" />').appendTo(container);
+		for (var name in options.plugins) enablePlugin(name, options.plugins[name]);		
+		afterInit();
+	};
+	
+	var enablePlugin = function(name, options){
+		self.plugins[name] = new $.TextboxList[camelCase(capitalize(name))](self, options);
+	};
+	
+	var afterInit = function(){
+		if (options.endEditableBit) create('editable', null, {tabIndex: original.tabIndex}).inject(list);
+		addEvent('bitAdd', update, true);
+		addEvent('bitRemove', update, true);
+		$(document).click(function(e){
+			if (!focused) return;
+			if (e.target.className.indexOf(options.prefix) != -1){				
+				if (e.target == $(container).get(0)) return;				
+				var parent = $(e.target).parents('div.' + options.prefix);
+				if (parent.get(0) == container.get(0)) return;
+			}
+			blur();
+		}).keydown(function(ev){
+			if (!focused || !current) return;
+			var caret = current.is('editable') ? current.getCaret() : null;
+			var value = current.getValue()[1];
+			var special = !!$.map(['shift', 'alt', 'meta', 'ctrl'], function(e){ return ev[e]; }).length;
+			var custom = special || (current.is('editable') && current.isSelected());
+			var evStop = function(){ ev.stopPropagation(); ev.preventDefault(); };
+			switch (ev.which){
+				case 8:
+					if (current.is('box')){ 
+						evStop();
+						return current.remove(); 
+					}
+				case options.keys.previous:
+					if (current.is('box') || ((caret == 0 || !value.length) && !custom)){
+						evStop();
+						focusRelative('prev');
+					}
+					break;
+				case 46:
+					if (current.is('box')){ 
+						evStop();
+						return current.remove(); 
+					}
+				case options.keys.next: 
+					if (current.is('box') || (caret == value.length && !custom)){
+						evStop();
+						focusRelative('next');
+					}
+			}
+		});
+		setValues(options.decode(original.val()));
+	};
+	
+	var create = function(klass, value, opt){
+		if (klass == 'box'){
+			if (chk(options.max) && list.children('.' + options.prefix + '-bit-box').length + 1 > options.max) return false;
+			if (options.unique && $.inArray(uniqueValue(value), index) != -1) return false;		
+		}		
+		return new $.TextboxListBit(klass, value, self, $.extend(true, options.bitsOptions[klass], opt));
+	};
+	
+	var uniqueValue = function(value){
+		return chk(value[0]) ? value[0] : (options.uniqueInsensitive ? value[1].toLowerCase() : value[1]);
+	}
+	
+	var add = function(plain, id, html, afterEl){
+		var b = create('box', [id, plain, html]);
+		if (b){
+			if (!afterEl || !afterEl.length) afterEl = list.find('.' + options.prefix + '-bit-box').filter(':last');
+			b.inject(afterEl.length ? afterEl : list, afterEl.length ? 'after' : 'top');
+		} 
+		return self;
+	};
+	
+	var focusRelative = function(dir, to){
+		var el = getBit(to && $(to).length ? to : current).toElement();
+		var b = getBit(el[dir]());
+		if (b) b.focus();
+		return self;
+	};
+	
+	var focusLast = function(){
+		var lastElement = list.children().filter(':last');
+		if (lastElement) getBit(lastElement).focus();
+		return self;
+	};
+	
+	var blur = function(){	
+		if (! focused) return self;
+		if (current) current.blur();
+		focused = false;
+		return fireEvent('blur');
+	};
+	
+	var getBit = function(obj){				
+		return (obj.type && (obj.type == 'editable' || obj.type == 'box')) ? obj : $(obj).data('textboxlist:bit');
+	};
+	
+	var getValues = function(){
+		var values = [];
+		list.children().each(function(){
+			var bit = getBit(this);
+			if (!bit.is('editable')) values.push(bit.getValue());
+		});
+		return values;
+	};
+	
+	var setValues = function(values){
+		if (!values) return;
+		$.each(values, function(i, v){
+			if (v) add.apply(self, $.isArray(v) ? [v[1], v[0], v[2]] : [v]);
+		});		
+	};
+	
+	var update = function(){
+		original.val(options.encode(getValues()));
+	};
+	
+	var addEvent = function(type, fn){
+		if (events[type] == undefined) events[type] = [];
+		var exists = false;
+		$.each(events[type], function(f){
+			if (f === fn){
+				exists = true;
+				return;
+			};
+		});
+		if (!exists) events[type].push(fn);
+		return self;
+	};
+	
+	var fireEvent = function(type, args, delay){
+		if (!events || !events[type]) return self;
+		$.each(events[type], function(i, fn){		
+			(function(){
+				args = (args != undefined) ? splat(args) : Array.prototype.slice.call(arguments);
+				var returns = function(){
+					return fn.apply(self || null, args);
+				};
+				if (delay) return setTimeout(returns, delay);
+				return returns();
+			})();
+		});
+		return self;
+	};
+	
+	var removeEvent = function(type, fn){
+		if (events[type]){
+			for (var i = events[type].length; i--; i){
+				if (events[type][i] === fn) events[type].splice(i, 1);
+			}
+		} 
+		return self;
+	};
+	
+	var isDuplicate = function(v){
+		return $.inArray(uniqueValue(v), index);
+	};
+	
+	this.onFocus = function(bit){
+		if (current) current.blur();
+		clearTimeout(blurtimer);
+		current = bit;
+		container.addClass(options.prefix + '-focus');		
+		if (!focused){
+			focused = true;
+			fireEvent('focus', bit);
+		}
+	};
+	
+	this.onAdd = function(bit){
+		if (options.unique && bit.is('box')) index.push(uniqueValue(bit.getValue()));
+		if (bit.is('box')){
+			var prior = getBit(bit.toElement().prev());
+			if ((prior && prior.is('box') && options.inBetweenEditableBits) || (!prior && options.startEditableBit)){				
+				var priorEl = prior && prior.toElement().length ? prior.toElement() : false;
+				var b = create('editable').inject(priorEl || list, priorEl ? 'after' : 'top');
+				if (options.hideEditableBits) b.hide();
+			}
+		}
+	};
+	
+	this.onRemove = function(bit){
+		if (!focused) return;
+		if (options.unique && bit.is('box')){
+			var i = isDuplicate(bit.getValue());
+			if (i != -1) index = index.splice(i + 1, 1);
+		} 
+		var prior = getBit(bit.toElement().prev());
+		if (prior && prior.is('editable')) prior.remove();
+		focusRelative('next', bit);
+	};
+	
+	this.onBlur = function(bit, all){
+		current = null;
+		container.removeClass(options.prefix + '-focus');		
+		blurtimer = setTimeout(blur, all ? 0 : 200);
+	};
+	
+	this.setOptions = function(opt){
+		options = $.extend(true, options, opt);
+	};
+	
+	this.getOptions = function(){
+		return options;
+	};
+	
+	this.getContainer = function(){
+		return container;
+	};
+	
+	this.isDuplicate = isDuplicate;
+	this.addEvent = addEvent;
+	this.removeEvent = removeEvent;
+	this.fireEvent = fireEvent;
+	this.create = create;
+	this.add = add;
+	this.getValues = getValues;
+	this.plugins = [];
+	init();
+};
+
+$.TextboxListBit = function(type, value, textboxlist, _options){
+	
+	var element, bit, prefix, typeprefix, close, hidden, focused = false, name = capitalize(type); 
+	var options = $.extend(true, type == 'box' ? {
+		deleteButton: true
+  } : {
+		tabIndex: null,
+		growing: true,
+		growingOptions: {},
+		stopEnter: true,
+		addOnBlur: false,
+		addKeys: [13]
+	}, _options);
+	
+	this.type = type;
+	this.value = value;
+	
+	var self = this;
+	var init = function(){
+		prefix = textboxlist.getOptions().prefix + '-bit';
+		typeprefix = prefix + '-' + type;
+		bit = $('<li />').addClass(prefix).addClass(typeprefix)
+			.data('textboxlist:bit', self)
+			.hover(function(){ 
+				bit.addClass(prefix + '-hover').addClass(typeprefix + '-hover'); 
+			}, function(){
+				bit.removeClass(prefix + '-hover').removeClass(typeprefix + '-hover'); 
+			});
+		if (type == 'box'){
+			bit.html(chk(self.value[2]) ? self.value[2] : self.value[1]).click(focus);
+			if (options.deleteButton){
+				bit.addClass(typeprefix + '-deletable');
+				close = $('<a href="#" class="'+ typeprefix +'-deletebutton" />').click(remove).appendTo(bit);
+			}
+			bit.children().click(function(e){ e.stopPropagation(); e.preventDefault(); });
+		} else {
+			element = $('<input type="text" class="'+ typeprefix +'-input" autocomplete="off" />').val(self.value ? self.value[1] : '').appendTo(bit);
+			if (chk(options.tabIndex)) element.tabIndex = options.tabIndex;
+			if (options.growing) new $.GrowingInput(element, options.growingOptions);		
+			element.focus(function(){ focus(true); }).blur(function(){
+				blur(true);
+				if (options.addOnBlur) toBox(); 
+			});				
+			if (options.addKeys || options.stopEnter){
+				element.keydown(function(ev){
+					if (!focused) return;
+					var evStop = function(){ ev.stopPropagation(); ev.preventDefault(); };
+					if (options.stopEnter && ev.which === 13) evStop();
+					if ($.inArray(ev.which, splat(options.addKeys)) != -1){
+						evStop();
+						toBox();
+					}
+				});
+			}
+		}
+	};
+	
+	var inject = function(el, where){
+		switch(where || 'bottom'){
+			case 'top': bit.prependTo(el); break;
+			case 'bottom': bit.appendTo(el); break;
+			case 'before': bit.insertBefore(el); break;			
+			case 'after': bit.insertAfter(el); break;						
+		}
+		textboxlist.onAdd(self);	
+		return fireBitEvent('add');
+	};
+	
+	var focus = function(noReal){
+		if (focused) return self;
+		show();
+		focused = true;
+		textboxlist.onFocus(self);
+		bit.addClass(prefix + '-focus').addClass(prefix + '-' + type + '-focus');
+		fireBitEvent('focus');		
+		if (type == 'editable' && !noReal) element.focus();
+		return self;
+	};
+	
+	var blur = function(noReal){
+		if (!focused) return self;
+		focused = false;
+		textboxlist.onBlur(self);
+		bit.removeClass(prefix + '-focus').removeClass(prefix + '-' + type + '-focus');
+		fireBitEvent('blur');
+		if (type == 'editable'){
+			if (!noReal) element.blur();
+			if (hidden && !element.val().length) hide();
+		}
+		return self;
+	};
+	
+	var remove = function(){
+		blur();		
+		textboxlist.onRemove(self);
+		bit.remove();
+		return fireBitEvent('remove');
+	};
+	
+	var show = function(){
+		bit.css('display', 'block');
+		return self;
+	};
+	
+	var hide = function(){
+		bit.css('display', 'none');		
+		hidden = true;
+		return self;
+	};
+	
+	var fireBitEvent = function(type){
+		type = capitalize(type);
+		textboxlist.fireEvent('bit' + type, self).fireEvent('bit' + name + type, self);
+		return self;
+	};
+	
+  this.is = function(t){
+    return type == t;
+  };
+
+	this.setValue = function(v){
+		if (type == 'editable'){
+			element.val(chk(v[0]) ? v[0] : v[1]);
+			if (options.growing) element.data('growing').resize();
+		} else value = v;
+		return self;
+	};
+
+ 	this.getValue = function(){
+		return type == 'editable' ? [null, element.val(), null] : value;
+	};
+	
+	if (type == 'editable'){
+		this.getCaret = function(){
+ 			var el = element.get(0);
+			if (el.createTextRange){
+		    var r = document.selection.createRange().duplicate();		
+		  	r.moveEnd('character', el.value.length);
+		  	if (r.text === '') return el.value.length;
+		  	return el.value.lastIndexOf(r.text);
+		  } else return el.selectionStart;
+		};
+
+		this.getCaretEnd = function(){
+ 			var el = element.get(0);			
+			if (el.createTextRange){
+				var r = document.selection.createRange().duplicate();
+				r.moveStart('character', -el.value.length);
+				return r.text.length;
+			} else return el.selectionEnd;
+		};
+		
+		this.isSelected = function(){
+			return focused && (self.getCaret() !== self.getCaretEnd());
+		};
+		
+		var toBox = function(){
+			var value = self.getValue();				
+			var b = textboxlist.create('box', value);
+			if (b){
+				b.inject(bit, 'before');
+				self.setValue([null, '', null]);
+				return b;
+			}
+			return null;
+		};
+		
+		this.toBox = toBox;
+	}
+	
+	this.toElement = function(){
+		return bit;
+	};
+	
+	this.focus = focus;
+	this.blur = blur;
+	this.remove = remove;
+	this.inject = inject;
+	this.show = show;
+	this.hide = hide;
+	this.fireBitEvent = fireBitEvent;
+	init();
+};
+
+var chk = function(v){ return !!(v || v === 0); };
+var splat = function(a){ return $.isArray(a) ? a : [a]; };
+var camelCase = function(str){ return str.replace(/-\D/g, function(match){ return match.charAt(1).toUpperCase(); }); };
+var capitalize = function(str){ return str.replace(/\b[a-z]/g, function(A){ return A.toUpperCase(); }); };
+
+$.fn.extend({
+	
+	textboxlist: function(options){
+		return this.each(function(){
+			new $.TextboxList(this, options);
+		});
+	}
+	
+});
+
+})(jQuery);
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css	(revision 178)
@@ -0,0 +1,2 @@
+.ui-jqgrid{position:relative;font-size:11px;}.ui-jqgrid .ui-jqgrid-view{position:relative;left:0;top:0;padding:.0em;}.ui-jqgrid .ui-jqgrid-titlebar{padding:.3em .2em .2em .3em;position:relative;border-left:0 none;border-right:0 none;border-top:0 none;}.ui-jqgrid .ui-jqgrid-title{float:left;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span{display:block;margin:1px;}.ui-jqgrid .ui-jqgrid-titlebar-close:hover{padding:0;}.ui-jqgrid .ui-jqgrid-hdiv{position:relative;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-hbox{float:left;padding-right:20px;}.ui-jqgrid .ui-jqgrid-htable{table-layout:fixed;margin:0;}.ui-jqgrid .ui-jqgrid-htable th{height:22px;padding:0 2px 0 2px;}.ui-jqgrid .ui-jqgrid-htable th div{overflow:hidden;position:relative;height:17px;}.ui-th-column,.ui-jqgrid .ui-jqgrid-htable th.ui-th-column{overflow:hidden;white-space:nowrap;text-align:center;border-top:0 none;border-bottom:0 none;}.ui-th-ltr,.ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr{border-left:0 none;}.ui-th-rtl,.ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl{border-right:0 none;}.ui-jqgrid .ui-th-div-ie{white-space:nowrap;zoom:1;height:17px;}.ui-jqgrid .ui-jqgrid-resize{height:20px!important;position:relative;cursor:e-resize;display:inline;overflow:hidden;}.ui-jqgrid .ui-grid-ico-sort{overflow:hidden;position:absolute;display:inline;cursor:pointer!important;}.ui-jqgrid .ui-icon-asc{margin-top:-3px;height:12px;}.ui-jqgrid .ui-icon-desc{margin-top:3px;height:12px;}.ui-jqgrid .ui-i-asc{margin-top:0;height:16px;}.ui-jqgrid .ui-i-desc{margin-top:0;margin-left:13px;height:16px;}.ui-jqgrid .ui-jqgrid-sortable{cursor:pointer;}.ui-jqgrid tr.ui-search-toolbar th{border-top-width:1px!important;border-top-color:inherit!important;border-top-style:ridge!important;}tr.ui-search-toolbar input{margin:1px 0 0 0;}tr.ui-search-toolbar select{margin:1px 0 0 0;}.ui-jqgrid .ui-jqgrid-bdiv{position:relative;margin:0;padding:0;overflow:auto;text-align:left;}.ui-jqgrid .ui-jqgrid-btable{table-layout:fixed;margin:0;}.ui-jqgrid tr.jqgrow td{font-weight:normal;overflow:hidden;white-space:pre;height:22px;padding:0 2px 0 2px;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid tr.ui-row-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.ui-row-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid td.jqgrid-rownum{padding:0 2px 0 2px;margin:0;border:0 none;}.ui-jqgrid .ui-jqgrid-resize-mark{width:2px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;display:none;border:0 none;}.ui-jqgrid .ui-jqgrid-sdiv{position:relative;margin:0;padding:0;overflow:hidden;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-ftable{table-layout:fixed;margin-bottom:0;}.ui-jqgrid tr.footrow td{font-weight:bold;overflow:hidden;white-space:nowrap;height:21px;padding:0 2px 0 2px;border-top-width:1px;border-top-color:inherit;border-top-style:solid;}.ui-jqgrid tr.footrow-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.footrow-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid .ui-jqgrid-pager{border-left:0 none!important;border-right:0 none!important;border-bottom:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-pager-control{position:relative;}.ui-jqgrid .ui-pg-table{position:relative;padding-bottom:2px;width:auto;margin:0;}.ui-jqgrid .ui-pg-table td{font-weight:normal;vertical-align:middle;padding:1px;}.ui-jqgrid .ui-pg-button{height:19px!important;}.ui-jqgrid .ui-pg-button span{display:block;margin:1px;float:left;}.ui-jqgrid .ui-pg-button:hover{padding:0;}.ui-jqgrid .ui-state-disabled:hover{padding:1px;}.ui-jqgrid .ui-pg-input{height:13px;font-size:.8em;margin:0;}.ui-jqgrid .ui-pg-selbox{font-size:.8em;line-height:18px;display:block;height:18px;margin:0;}.ui-jqgrid .ui-separator{height:18px;border-left:1px solid #ccc;border-right:1px solid #ccc;margin:1px;float:right;}.ui-jqgrid .ui-paging-info{font-weight:normal;height:19px;margin-top:3px;margin-right:4px;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div{padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-button{cursor:pointer;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div span.ui-icon{float:left;margin:0 2px;}.ui-jqgrid td input,.ui-jqgrid td select .ui-jqgrid td textarea{margin:0;}.ui-jqgrid td textarea{width:auto;height:auto;}.ui-jqgrid .ui-jqgrid-toppager{border-left:0 none!important;border-right:0 none!important;border-top:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px!important;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span{display:block;}.ui-jqgrid .ui-subgrid{margin:0;padding:0;width:100%;}.ui-jqgrid .ui-subgrid table{table-layout:fixed;}.ui-jqgrid .ui-subgrid tr.ui-subtblcell td{height:18px;border-right-width:1px;border-right-color:inherit;border-right-style:solid;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid .ui-subgrid td.subgrid-data{border-top:0 none!important;}.ui-jqgrid .ui-subgrid td.subgrid-cell{border-width:0 0 1px 0;}.ui-jqgrid .ui-th-subgrid{height:20px;}.ui-jqgrid .loading{position:absolute;top:45%;left:45%;width:auto;z-index:101;padding:6px;margin:5px;text-align:center;font-weight:bold;display:none;border-width:2px!important;}.ui-jqgrid .jqgrid-overlay{display:none;z-index:100;}* html .jqgrid-overlay{width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}* .jqgrid-overlay iframe{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid .ui-userdata{border-left:0 none;border-right:0 none;height:21px;overflow:hidden;}.ui-jqdialog{display:none;width:300px;position:absolute;padding:.2em;font-size:11px;overflow:visible;}.ui-jqdialog .ui-jqdialog-titlebar{padding:.3em .2em;position:relative;}.ui-jqdialog .ui-jqdialog-title{margin:.1em 0 .2em;}.ui-jqdialog .ui-jqdialog-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqdialog .ui-jqdialog-titlebar-close span{display:block;margin:1px;}.ui-jqdialog .ui-jqdialog-titlebar-close:hover,.ui-jqdialog .ui-jqdialog-titlebar-close:focus{padding:0;}.ui-jqdialog-content,.ui-jqdialog .ui-jqdialog-content{border:0;padding:.3em .2em;background:none;height:auto;}.ui-jqdialog .ui-jqconfirm{padding:.4em 1em;border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}.ui-jqdialog-content .FormGrid{margin:0;}.ui-jqdialog-content .EditTable{width:100%;margin-bottom:0;}.ui-jqdialog-content .DelTable{width:100%;margin-bottom:0;}.EditTable td input,.EditTable td select,.EditTable td textarea{margin:0;}.EditTable td textarea{width:auto;height:auto;}.ui-jqdialog-content td.EditButton{text-align:right;border-top:0 none;border-left:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content td.navButton{text-align:center;border-left:0 none;border-top:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content .CaptionTD{text-align:left;vertical-align:top;border-left:0 none;border-right:0 none;border-bottom:0 none;padding:1px;white-space:nowrap;}.ui-jqdialog-content .DataTD{padding:1px;border-left:0 none;border-right:0 none;border-bottom:0 none;vertical-align:top;}.ui-jqdialog-content .form-view-data{white-space:pre;}.fm-button{display:inline-block;margin:0 4px 0 0;padding:.4em .5em;text-decoration:none!important;cursor:pointer;position:relative;text-align:center;zoom:1;}.fm-button-icon-left{padding-left:1.9em;}.fm-button-icon-right{padding-right:1.9em;}.fm-button-icon-left .ui-icon{right:auto;left:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}.fm-button-icon-right .ui-icon{left:auto;right:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}#nData,#pData{float:left;margin:3px;padding:0;width:15px;}.ui-jqgrid .selected-row,div.ui-jqgrid .selected-row td{font-style:normal;border-left:0 none;}.ui-jqgrid .tree-wrap{float:left;position:relative;height:18px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .tree-minus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-plus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-leaf{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .treeclick{cursor:pointer;}.jqmOverlay{background-color:#000;}* iframe.jqm{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid-dnd tr td{border-right-width:1px;border-right-color:inherit;border-right-style:solid;height:20px;}.ui-jqgrid .ui-jqgrid-title-rtl{float:right;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-hbox-rtl{float:right;padding-left:20px;}.ui-jqgrid .ui-jqgrid-resize-ltr{float:right;margin:-2px -2px -2px 0;}.ui-jqgrid .ui-jqgrid-resize-rtl{float:left;margin:-2px 0 -1px -3px;}.ui-jqgrid .ui-sort-rtl{left:0;}.ui-jqgrid .tree-wrap-ltr{float:left;}.ui-jqgrid .tree-wrap-rtl{float:right;}.ui-jqgrid .ui-ellipsis{text-overflow:ellipsis;-moz-binding:url('ellipsis-xbl.xml#ellipsis');}
+.ui-searchFilter{display:none;position:absolute;z-index:770;overflow:visible;}.ui-searchFilter table{position:relative;margin:0;width:auto;}.ui-searchFilter table td{margin:0;padding:1px;}.ui-searchFilter table td input,.ui-searchFilter table td select{margin:.1em;}.ui-searchFilter .ui-state-default{cursor:pointer;}.ui-searchFilter .divider{height:1px;}.ui-searchFilter .divider div{background-color:black;height:1px;}
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml	(revision 178)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<bindings
+    xmlns="http://www.mozilla.org/xbl"
+    xmlns:xbl="http://www.mozilla.org/xbl"
+    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+    <binding id="ellipsis">
+        <content>
+            <xul:window><!-- xul:window tag required for FF2 -->
+                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
+            </xul:window>
+        </content>
+    </binding>
+</bindings>

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js	(revision 178)
@@ -0,0 +1,117 @@
+/* 
+* jqGrid  3.6.5 - jQuery Grid 
+* Copyright (c) 2008, Tony Tomov, tony@trirand.com 
+* Dual licensed under the MIT and GPL licenses 
+* http://www.opensource.org/licenses/mit-license.php 
+* http://www.gnu.org/licenses/gpl-2.0.html 
+* Date:2010-05-05 
+* Modules: grid.base.js; 
+*/
+(function(b){b.jgrid=b.jgrid||{};b.extend(b.jgrid,{htmlDecode:function(f){if(f=="&nbsp;"||f=="&#160;"||f.length==1&&f.charCodeAt(0)==160)return"";return!f?f:String(f).replace(/&amp;/g,"&").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"')},htmlEncode:function(f){return!f?f:String(f).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\"/g,"&quot;")},format:function(f){var k=b.makeArray(arguments).slice(1);if(f===undefined)f="";return f.replace(/\{(\d+)\}/g,function(i,
+h){return k[h]})},getCellIndex:function(f){f=b(f);f=(!f.is("td")&&!f.is("th")?f.closest("td,th"):f)[0];if(b.browser.msie)return b.inArray(f,f.parentNode.cells);return f.cellIndex},stripHtml:function(f){f+="";var k=/<("[^"]*"|'[^']*'|[^'">])*>/gi;if(f)return(f=f.replace(k,""))&&f!=="&nbsp;"&&f!=="&#160;"?f.replace(/\"/g,"'"):"";else return f},stringToDoc:function(f){var k;if(typeof f!=="string")return f;try{k=(new DOMParser).parseFromString(f,"text/xml")}catch(i){k=new ActiveXObject("Microsoft.XMLDOM");
+k.async=false;k.loadXML(f)}return k&&k.documentElement&&k.documentElement.tagName!="parsererror"?k:null},parse:function(f){f=f;if(f.substr(0,9)=="while(1);")f=f.substr(9);if(f.substr(0,2)=="/*")f=f.substr(2,f.length-4);f||(f="{}");return b.jgrid.useJSON===true&&typeof JSON==="object"&&typeof JSON.parse==="function"?JSON.parse(f):eval("("+f+")")},jqID:function(f){f+="";return f.replace(/([\.\:\[\]])/g,"\\$1")},ajaxOptions:{},extend:function(f){b.extend(b.fn.jqGrid,f);this.no_legacy_api||b.fn.extend(f)}});
+b.fn.jqGrid=function(f){if(typeof f=="string"){var k=b.fn.jqGrid[f];if(!k)throw"jqGrid - No such method: "+f;var i=b.makeArray(arguments).slice(1);return k.apply(this,i)}return this.each(function(){if(!this.grid){var h=b.extend(true,{url:"",height:150,page:1,rowNum:20,records:0,pager:"",pgbuttons:true,pginput:true,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:false,selarrrow:[],savedRow:[],shrinkToFit:true,xmlReader:{},jsonReader:{},subGrid:false,
+subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,onHeaderClick:null,viewrecords:false,loadonce:false,multiselect:false,multikey:false,editurl:null,search:false,caption:"",hidegrid:true,hiddengrid:false,postData:{},userData:{},treeGrid:false,treeGridModel:"nested",
+treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null},forceFit:false,gridstate:"visible",cellEdit:false,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[false,""],scroll:false,multiboxonly:false,deselectAfterSort:true,scrollrows:false,autowidth:false,scrollOffset:18,cellLayout:5,subGridWidth:20,multiselectWidth:20,
+gridview:false,rownumWidth:25,rownumbers:false,pagerpos:"center",recordpos:"right",footerrow:false,userDataOnFooter:false,hoverrows:true,altclass:"ui-priority-secondary",viewsortcols:[false,"vertical",true],resizeclass:"",autoencode:false,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:false,headertitles:false,scrollTimeout:200},b.jgrid.defaults,f||{}),g={headers:[],cols:[],footers:[],dragStart:function(c,d,e){this.resizing={idx:c,startX:d.clientX,sOL:e[0]};this.hDiv.style.cursor="col-resize";
+this.curGbox=b("#rs_m"+h.id,"#gbox_"+h.id);this.curGbox.css({display:"block",left:e[0],top:e[1],height:e[2]});b.isFunction(h.resizeStart)&&h.resizeStart.call(this,d,c);document.onselectstart=function(){return false}},dragMove:function(c){if(this.resizing){var d=c.clientX-this.resizing.startX;c=this.headers[this.resizing.idx];var e=h.direction==="ltr"?c.width+d:c.width-d,l;if(e>33){this.curGbox.css({left:this.resizing.sOL+d});if(h.forceFit===true){l=this.headers[this.resizing.idx+h.nv];d=h.direction===
+"ltr"?l.width-d:l.width+d;if(d>33){c.newWidth=e;l.newWidth=d}}else{this.newWidth=h.direction==="ltr"?h.tblwidth+d:h.tblwidth-d;c.newWidth=e}}}},dragEnd:function(){this.hDiv.style.cursor="default";if(this.resizing){var c=this.resizing.idx,d=this.headers[c].newWidth||this.headers[c].width;d=parseInt(d,10);this.resizing=false;b("#rs_m"+h.id).css("display","none");h.colModel[c].width=d;this.headers[c].width=d;this.headers[c].el.style.width=d+"px";if(this.cols.length>0)this.cols[c].style.width=d+"px";
+if(this.footers.length>0)this.footers[c].style.width=d+"px";if(h.forceFit===true){d=this.headers[c+h.nv].newWidth||this.headers[c+h.nv].width;this.headers[c+h.nv].width=d;this.headers[c+h.nv].el.style.width=d+"px";if(this.cols.length>0)this.cols[c+h.nv].style.width=d+"px";if(this.footers.length>0)this.footers[c+h.nv].style.width=d+"px";h.colModel[c+h.nv].width=d}else{h.tblwidth=this.newWidth||h.tblwidth;b("table:first",this.bDiv).css("width",h.tblwidth+"px");b("table:first",this.hDiv).css("width",
+h.tblwidth+"px");this.hDiv.scrollLeft=this.bDiv.scrollLeft;if(h.footerrow){b("table:first",this.sDiv).css("width",h.tblwidth+"px");this.sDiv.scrollLeft=this.bDiv.scrollLeft}}b.isFunction(h.resizeStop)&&h.resizeStop.call(this,d,c)}this.curGbox=null;document.onselectstart=function(){return true}},populateVisible:function(){g.timer&&clearTimeout(g.timer);g.timer=null;var c=b(g.bDiv).height();if(c){var d=b("table:first",g.bDiv),e=b("> tbody > tr:visible:first",d).outerHeight()||g.prevRowHeight;if(e){g.prevRowHeight=
+e;var l=h.rowNum,n=g.scrollTop=g.bDiv.scrollTop,o=Math.round(d.position().top)-n,p=o+d.height();e=e*l;var w,y,s;if(o<=0&&(h.lastpage===undefined||parseInt((p+n+e-1)/e,10)<=h.lastpage)){y=parseInt((c-p+e-1)/e,10);if(p>=0||y<2||h.scroll===true){w=Math.round((p+n)/e)+1;o=-1}else o=1}if(o>0){w=parseInt(n/e,10)+1;y=parseInt((n+c)/e,10)+2-w;s=true}if(y)if(!(h.lastpage&&w>h.lastpage))if(g.hDiv.loading)g.timer=setTimeout(g.populateVisible,h.scrollTimeout);else{h.page=w;if(s){g.selectionPreserver(d[0]);g.emptyRows(g.bDiv,
+false)}g.populate(y)}}}},scrollGrid:function(){if(h.scroll){var c=g.bDiv.scrollTop;if(c!=g.scrollTop){g.scrollTop=c;g.timer&&clearTimeout(g.timer);g.timer=setTimeout(g.populateVisible,200)}}g.hDiv.scrollLeft=g.bDiv.scrollLeft;if(h.footerrow)g.sDiv.scrollLeft=g.bDiv.scrollLeft},selectionPreserver:function(c){var d=c.p,e=d.selrow,l=d.selarrrow?b.makeArray(d.selarrrow):null,n=c.grid.bDiv.scrollLeft,o=d.gridComplete;d.gridComplete=function(){d.selrow=null;d.selarrrow=[];if(d.multiselect&&l&&l.length>
+0)for(var p=0;p<l.length;p++)l[p]!=e&&b(c).jqGrid("setSelection",l[p],false);e&&b(c).jqGrid("setSelection",e,false);c.grid.bDiv.scrollLeft=n;d.gridComplete=o;d.gridComplete&&o()}}};this.p=h;var j,m,a;if(this.p.colNames.length===0)for(j=0;j<this.p.colModel.length;j++)this.p.colNames[j]=this.p.colModel[j].label||this.p.colModel[j].name;if(this.p.colNames.length!==this.p.colModel.length)alert(b.jgrid.errors.model);else{var q=b("<div class='ui-jqgrid-view'></div>"),t,x=b.browser.msie?true:false,C=b.browser.safari?
+true:false;a=this;a.p.direction=b.trim(a.p.direction.toLowerCase());if(b.inArray(a.p.direction,["ltr","rtl"])==-1)a.p.direction="ltr";m=a.p.direction;b(q).insertBefore(this);b(this).appendTo(q).removeClass("scroll");var K=b("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");b(K).insertBefore(q).attr({id:"gbox_"+this.id,dir:m});b(q).appendTo(K).attr("id","gview_"+this.id);t=x&&b.browser.version<=6?'<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>':
+"";b("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(t).insertBefore(q);b("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(q);b(this).attr({cellSpacing:"0",cellPadding:"0",border:"0",role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});var J=function(c,d){c=parseInt(c,10);return isNaN(c)?d?d:0:c},F=function(c,d,e){var l=a.p.colModel[c],n=l.align,o='style="',
+p=l.classes,w=l.name;if(n)o+="text-align:"+n+";";if(l.hidden===true)o+="display:none;";if(d===0)o+="width: "+g.headers[c].width+"px;";o+='"'+(p!==undefined?' class="'+p+'"':"")+(l.title&&e?' title="'+b.jgrid.stripHtml(e)+'"':"");o+=' aria-describedby="'+a.p.id+"_"+w+'"';return o},Q=function(c){return c===undefined||c===null||c===""?"&#160;":a.p.autoencode?b.jgrid.htmlEncode(c):c+""},M=function(c,d,e,l,n){e=a.p.colModel[e];if(typeof e.formatter!=="undefined"){c={rowId:c,colModel:e,gid:a.p.id};d=b.isFunction(e.formatter)?
+e.formatter.call(a,d,c,l,n):b.fmatter?b.fn.fmatter(e.formatter,d,c,l,n):Q(d)}else d=Q(d);return d},R=function(c,d,e,l,n){c=M(c,d,e,n,"add");return'<td role="gridcell" '+F(e,l,c)+">"+c+"</td>"},u=function(c,d,e){c='<input role="checkbox" type="checkbox" id="jqg_'+c+'" class="cbox" name="jqg_'+c+'"/>';d=F(d,e,"");return'<td role="gridcell" aria-describedby="'+a.p.id+'_cb" '+d+">"+c+"</td>"},la=function(c,d,e,l){e=(parseInt(e,10)-1)*parseInt(l,10)+1+d;c=F(c,d,"");return'<td role="gridcell" aria-describedby="'+
+a.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+c+">"+e+"</td>"},ca=function(c){var d,e=[],l=0,n;for(n=0;n<a.p.colModel.length;n++){d=a.p.colModel[n];if(d.name!=="cb"&&d.name!=="subgrid"&&d.name!=="rn"){e[l]=c=="xml"?d.xmlmap||d.name:d.jsonmap||d.name;l++}}return e},fa=function(c){var d=a.p.remapColumns;if(!d||!d.length)d=b.map(a.p.colModel,function(e,l){return l});if(c)d=b.map(d,function(e){return e<c?null:e-c});return d},aa=function(c,d){a.p.deepempty?b("tbody:first tr",c).remove():b("tbody:first",
+c).empty();if(d&&a.p.scroll){b(">div:first",c).css({height:"auto"}).children("div:first").css({height:0,display:"none"});c.scrollTop=0}},U=function(c,d){var e,l,n,o;if(typeof d==="function")return d(c);e=c[d];if(e===undefined){if(typeof d==="string")n=d.split(".");try{if(o=n.length)for(e=c;e&&o--;){l=n.shift();e=e[l]}}catch(p){}}return e},ia=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(b.isXMLDoc(c)){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p,w=0,y,s,r=0,v=0,
+z=0,D,N,L=[],P,G={},da=a.rows.length,E,W,B=[],S=0,ga=a.p.altRows===true?" "+a.p.altclass:"";a.p.xmlReader.repeatitems||(L=ca("xml"));D=a.p.keyIndex===false?a.p.xmlReader.id:a.p.keyIndex;if(L.length>0&&!isNaN(D)){if(a.p.remapColumns&&a.p.remapColumns.length)D=b.inArray(D,a.p.remapColumns);D=L[D]}N=(D+"").indexOf("[")===-1?L.length?function(X,V){return b(D,X).text()||V}:function(X,V){return b(a.p.xmlReader.cell,X).eq(D).text()||V}:function(X,V){return X.getAttribute(D.replace(/[\[\]]/g,""))||V};a.p.userData=
+{};b(a.p.xmlReader.page,c).each(function(){a.p.page=this.textContent||this.text||0});b(a.p.xmlReader.total,c).each(function(){a.p.lastpage=this.textContent||this.text;if(a.p.lastpage===undefined)a.p.lastpage=1});b(a.p.xmlReader.records,c).each(function(){a.p.records=this.textContent||this.text||0});b(a.p.xmlReader.userdata,c).each(function(){a.p.userData[this.getAttribute("name")]=this.textContent||this.text});c=b(a.p.xmlReader.root+" "+a.p.xmlReader.row,c);var ha=c.length,O=0;if(c&&ha){var ma=parseInt(a.p.rowNum,
+10),wa=a.p.scroll?(parseInt(a.p.page,10)-1)*ma+1:1;if(n)ma*=n+1;for(n=b.isFunction(a.p.afterInsertRow);O<ha;){E=c[O];W=N(E,wa+O);p=e===0?0:e+1;p=(p+O)%2==1?ga:"";B[S++]='<tr id="'+W+'" role="row" class ="ui-widget-content jqgrow ui-row-'+a.p.direction+""+p+'">';if(a.p.rownumbers===true){B[S++]=la(0,O,a.p.page,a.p.rowNum);z=1}if(a.p.multiselect===true){B[S++]=u(W,z,O);r=1}if(a.p.subGrid===true){B[S++]=b(a).jqGrid("addSubGridCell",r+z,O+e);v=1}if(a.p.xmlReader.repeatitems){P||(P=fa(r+v+z));var za=b(a.p.xmlReader.cell,
+E);b.each(P,function(X){var V=za[this];if(!V)return false;y=V.textContent||V.text;G[a.p.colModel[X+r+v+z].name]=y;B[S++]=R(W,y,X+r+v+z,O+e,E)})}else for(p=0;p<L.length;p++){y=b(L[p],E).text();G[a.p.colModel[p+r+v+z].name]=y;B[S++]=R(W,y,p+r+v+z,O+e,E)}B[S++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){p=a.p.treeANode>=-1?a.p.treeANode:0;s=b(B.join(""))[0];try{b(a).jqGrid("setTreeNode",G,s)}catch(Fa){}da===0?b("tbody:first",d).append(s):b(a.rows[O+p+e]).after(s)}else b("tbody:first",d).append(B.join(""));
+if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],r+z)}catch(Ga){}n&&a.p.afterInsertRow.call(a,W,G,E);B=[];S=0}G={};w++;O++;if(w==ma)break}}a.p.gridview===true&&b("tbody:first",d).append(B.join(""));a.p.totaltime=new Date-o;if(w>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=ha}B=null;if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=w;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},
+ra=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(c){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p=0,w,y,s,r=[],v,z=0,D=0,N=0,L,P,G,da={},E,W=a.rows.length,B;s=[];E=0;var S=a.p.altRows===true?" "+a.p.altclass:"";a.p.page=U(c,a.p.jsonReader.page)||0;G=U(c,a.p.jsonReader.total);a.p.lastpage=G===undefined?1:G;a.p.records=U(c,a.p.jsonReader.records)||0;a.p.userData=U(c,a.p.jsonReader.userdata)||{};a.p.jsonReader.repeatitems||(v=r=ca("json"));G=a.p.keyIndex===false?a.p.jsonReader.id:
+a.p.keyIndex;if(r.length>0&&!isNaN(G)){if(a.p.remapColumns&&a.p.remapColumns.length)G=b.inArray(G,a.p.remapColumns);G=r[G]}if(P=U(c,a.p.jsonReader.root)){L=P.length;c=0;var ga=parseInt(a.p.rowNum,10),ha=a.p.scroll?(parseInt(a.p.page,10)-1)*ga+1:1;if(n)ga*=n+1;for(var O=b.isFunction(a.p.afterInsertRow);c<L;){n=P[c];B=U(n,G);if(B===undefined){B=ha+c;if(r.length===0)if(a.p.jsonReader.cell)B=n[a.p.jsonReader.cell][G]||B}w=e===0?0:e+1;w=(w+c)%2==1?S:"";s[E++]='<tr id="'+B+'" role="row" class= "ui-widget-content jqgrow ui-row-'+
+a.p.direction+""+w+'">';if(a.p.rownumbers===true){s[E++]=la(0,c,a.p.page,a.p.rowNum);N=1}if(a.p.multiselect){s[E++]=u(B,N,c);z=1}if(a.p.subGrid){s[E++]=b(a).jqGrid("addSubGridCell",z+N,c+e);D=1}if(a.p.jsonReader.repeatitems){if(a.p.jsonReader.cell)n=U(n,a.p.jsonReader.cell);v||(v=fa(z+D+N))}for(y=0;y<v.length;y++){w=U(n,v[y]);s[E++]=R(B,w,y+z+D+N,c+e,n);da[a.p.colModel[y+z+D+N].name]=w}s[E++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){E=a.p.treeANode>=-1?a.p.treeANode:0;s=b(s.join(""))[0];
+try{b(a).jqGrid("setTreeNode",da,s)}catch(ma){}W===0?b("tbody:first",d).append(s):b(a.rows[c+E+e]).after(s)}else b("tbody:first",d).append(s.join(""));if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],z+N)}catch(wa){}O&&a.p.afterInsertRow.call(a,B,da,n);s=[];E=0}da={};p++;c++;if(p==ga)break}a.p.gridview===true&&b("tbody:first",d).append(s.join(""));a.p.totaltime=new Date-o;if(p>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=L}}if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=
+0;a.p.reccount=p;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},na=function(c,d){var e,l,n,o,p,w,y,s="";n=parseInt(a.p.page,10)-1;if(n<0)n=0;n*=parseInt(a.p.rowNum,10);p=n+a.p.reccount;if(a.p.scroll){e=b("tbody:first > tr",a.grid.bDiv);n=p-e.length;if(l=e.outerHeight()){e=n*l;l=parseInt(a.p.records,10)*l;b(">div:first",a.grid.bDiv).css({height:l}).children("div:first").css({height:e,display:e?"":"none"})}}s=a.p.pager?a.p.pager:"";s+=a.p.toppager?
+s?","+a.p.toppager:a.p.toppager:"";if(s){y=b.jgrid.formatter.integer||{};if(a.p.loadonce){e=l=1;a.p.lastpage=a.page=1;b(".selbox",s).attr("disabled",true)}else{e=J(a.p.page);l=J(a.p.lastpage);b(".selbox",s).attr("disabled",false)}if(a.p.pginput===true){b(".ui-pg-input",s).val(a.p.page);b("#sp_1",s).html(b.fmatter?b.fmatter.util.NumberFormat(a.p.lastpage,y):a.p.lastpage)}if(a.p.viewrecords)if(a.p.reccount===0)b(".ui-paging-info",s).html(a.p.emptyrecords);else{o=n+1;w=a.p.records;if(b.fmatter){o=b.fmatter.util.NumberFormat(o,
+y);p=b.fmatter.util.NumberFormat(p,y);w=b.fmatter.util.NumberFormat(w,y)}b(".ui-paging-info",s).html(b.jgrid.format(a.p.recordtext,o,p,w))}if(a.p.pgbuttons===true){if(e<=0)e=l=0;if(e==1||e===0){b("#first, #prev",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#first, #prev",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).removeClass("ui-state-disabled")}if(e==
+l||e===0){b("#next, #last",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#next, #last",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).removeClass("ui-state-disabled")}}}c===true&&a.p.rownumbers===true&&b("td.jqgrid-rownum",a.rows).each(function(r){b(this).html(n+1+r)});d&&a.p.jqgdnd&&b(a).jqGrid("gridDnD","updateDnD");
+b.isFunction(a.p.gridComplete)&&a.p.gridComplete.call(a)},Y=function(c){if(!a.grid.hDiv.loading){var d=a.p.scroll&&c===false,e={},l,n=a.p.prmNames;if(a.p.page<=0)a.p.page=1;if(n.search!==null)e[n.search]=a.p.search;if(n.nd!==null)e[n.nd]=(new Date).getTime();if(n.rows!==null)e[n.rows]=a.p.rowNum;if(n.page!==null)e[n.page]=a.p.page;if(n.sort!==null)e[n.sort]=a.p.sortname;if(n.order!==null)e[n.order]=a.p.sortorder;var o=a.p.loadComplete,p=b.isFunction(o);p||(o=null);var w=0;c=c||1;if(c>1)if(n.npage!==
+null){e[n.npage]=c;w=c-1;c=1}else o=function(s){p&&a.p.loadComplete.call(a,s);a.grid.hDiv.loading=false;a.p.page++;Y(c-1)};else n.npage!==null&&delete a.p.postData[n.npage];b.extend(a.p.postData,e);var y=!a.p.scroll?0:a.rows.length-1;if(b.isFunction(a.p.datatype))a.p.datatype.call(a,a.p.postData,"load_"+a.p.id);else{b.isFunction(a.p.beforeRequest)&&a.p.beforeRequest.call(a);l=a.p.datatype.toLowerCase();switch(l){case "json":case "jsonp":case "xml":case "script":b.ajax(b.extend({url:a.p.url,type:a.p.mtype,
+dataType:l,data:b.isFunction(a.p.serializeGridData)?a.p.serializeGridData.call(a,a.p.postData):a.p.postData,success:function(s){l==="xml"?ia(s,a.grid.bDiv,y,c>1,w):ra(s,a.grid.bDiv,y,c>1,w);o&&o.call(a,s);d&&a.grid.populateVisible();if(a.p.loadonce||a.p.treeGrid)a.p.datatype="local";ja()},error:function(s,r,v){b.isFunction(a.p.loadError)&&a.p.loadError.call(a,s,r,v);ja()},beforeSend:function(s){oa();b.isFunction(a.p.loadBeforeSend)&&a.p.loadBeforeSend.call(a,s)}},b.jgrid.ajaxOptions,a.p.ajaxGridOptions));
+break;case "xmlstring":oa();e=b.jgrid.stringToDoc(a.p.datastr);p&&a.p.loadComplete.call(a,e);ia(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "jsonstring":oa();e=typeof a.p.datastr=="string"?b.jgrid.parse(a.p.datastr):a.p.datastr;p&&a.p.loadComplete.call(a,e);ra(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "local":case "clientside":oa();a.p.datatype="local";p&&a.p.loadComplete.call(a,"");Aa();na(true,true);ja();break}}}},oa=function(){a.grid.hDiv.loading=
+true;if(!a.p.hiddengrid)switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).show();break;case "block":b("#lui_"+a.p.id).show();b("#load_"+a.p.id).show();break}},ja=function(){a.grid.hDiv.loading=false;switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).hide();break;case "block":b("#lui_"+a.p.id).hide();b("#load_"+a.p.id).hide();break}},Aa=function(){var c=/[\$,%]/g,d=[],e=0,l,n,o,p=a.p.sortorder=="asc"?1:-1,w=false,y;b.each(a.p.colModel,function(r){if(this.index==
+a.p.sortname||this.name==a.p.sortname){if(a.p.lastsort==r)w=true;e=r;l=this.sorttype;return false}});o=l=="float"||l=="number"||l=="currency"?function(r){r=parseFloat(r.replace(c,""));return isNaN(r)?0:r}:l=="int"||l=="integer"?function(r){return J(r.replace(c,""),0)}:l=="date"||l=="datetime"?function(r){return Ba(a.p.colModel[e].datefmt||"Y-m-d",r).getTime()}:b.isFunction(l)?l:function(r){return b.trim(r.toUpperCase())};y=a.p.colModel[e];b.each(a.rows,function(r,v){try{n=b.unformat(b(v).children("td").eq(e),
+{rowId:v.id,colModel:y},e,true)}catch(z){n=b(v).children("td").eq(e).text()}v.sortKey=o(n);d[r]=this});if(a.p.treeGrid)b(a).jqGrid("SortTree",p);else{w?d.reverse():d.sort(function(r,v){if(r.sortKey<v.sortKey)return-p;if(r.sortKey>v.sortKey)return p;return 0});if(d[0]){b("td",d[0]).each(function(r){b(this).css("width",g.headers[r].width+"px")});a.grid.cols=d[0].cells}var s="";if(a.p.altRows)s=a.p.altclass;b.each(d,function(r,v){if(s)r%2==1?b(v).addClass(s):b(v).removeClass(s);b("tbody",a.grid.bDiv).append(v);
+v.sortKey=null})}a.grid.bDiv.scrollTop=0},Ba=function(c,d){var e={m:1,d:1,y:1970,h:0,i:0,s:0},l,n,o;if(d=b.trim(d)){d=d.split(/[\\\/:_;.\t\T\s-]/);c=c.split(/[\\\/:_;.\t\T\s-]/);var p=b.jgrid.formatter.date.monthNames,w=b.jgrid.formatter.date.AmPm,y=function(s,r){if(s===0){if(r==12)r=0}else if(r!=12)r+=12;return r};l=0;for(n=c.length;l<n;l++){if(c[l]=="M"){o=b.inArray(d[l],p);if(o!==-1&&o<12)d[l]=o+1}if(c[l]=="F"){o=b.inArray(d[l],p);if(o!==-1&&o>11)d[l]=o+1-12}if(c[l]=="a"){o=b.inArray(d[l],w);if(o!==
+-1&&o<2&&d[l]==w[o]){d[l]=o;e.h=y(d[l],e.h)}}if(c[l]=="A"){o=b.inArray(d[l],w);if(o!==-1&&o>1&&d[l]==w[o]){d[l]=o-2;e.h=y(d[l],e.h)}}e[c[l].toLowerCase()]=parseInt(d[l],10)}e.m=parseInt(e.m,10)-1;c=e.y;if(c>=70&&c<=99)e.y=1900+e.y;else if(c>=0&&c<=69)e.y=2E3+e.y}return new Date(e.y,e.m,e.d,e.h,e.i,e.s,0)};t=function(c,d){var e="",l="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",n="",o,p,w,y,s=function(r){var v;if(b.isFunction(a.p.onPaging))v=
+a.p.onPaging.call(a,r);a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];if(v=="stop")return false;return true};c=c.substr(1);o="pg_"+c;p=c+"_left";w=c+"_center";y=c+"_right";b("#"+c).append("<div id='"+o+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+p+"' align='left'></td><td id='"+
+w+"' align='center' style='white-space:pre;'></td><td id='"+y+"' align='right'></td></tr></tbody></table></div>").attr("dir","ltr");if(a.p.rowList.length>0){n="<td dir='"+m+"'>";n+="<select class='ui-pg-selbox' role='listbox'>";for(p=0;p<a.p.rowList.length;p++)n+="<option role='option' value='"+a.p.rowList[p]+"'"+(a.p.rowNum==a.p.rowList[p]?" selected":"")+">"+a.p.rowList[p]+"</option>";n+="</select></td>"}if(m=="rtl")l+=n;if(a.p.pginput===true)e="<td dir='"+m+"'>"+b.jgrid.format(a.p.pgtext||"","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>",
+"<span id='sp_1'></span>")+"</td>";if(a.p.pgbuttons===true){p=["first"+d,"prev"+d,"next"+d,"last"+d];m=="rtl"&&p.reverse();l+="<td id='"+p[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";l+="<td id='"+p[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";l+=e!=""?"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>"+e+"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>":
+"";l+="<td id='"+p[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";l+="<td id='"+p[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>"}else if(e!="")l+=e;if(m=="ltr")l+=n;l+="</tr></tbody></table>";a.p.viewrecords===true&&b("td#"+c+"_"+a.p.recordpos,"#"+o).append("<div dir='"+m+"' style='text-align:"+a.p.recordpos+"' class='ui-paging-info'></div>");b("td#"+c+"_"+a.p.pagerpos,"#"+o).append(l);n=b(".ui-jqgrid").css("font-size")||
+"11px";b("body").append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+n+";visibility:hidden;' ></div>");l=b(l).clone().appendTo("#testpg").width();b("#testpg").remove();if(l>0){if(e!="")l+=50;b("td#"+c+"_"+a.p.pagerpos,"#"+o).width(l)}a.p._nvtd=[];a.p._nvtd[0]=l?Math.floor((a.p.width-l)/2):Math.floor(a.p.width/3);a.p._nvtd[1]=0;l=null;b(".ui-pg-selbox","#"+o).bind("change",function(){a.p.page=Math.round(a.p.rowNum*(a.p.page-1)/this.value-0.5)+1;a.p.rowNum=this.value;
+if(d)b(".ui-pg-selbox",a.p.pager).val(this.value);else a.p.toppager&&b(".ui-pg-selbox",a.p.toppager).val(this.value);if(!s("records"))return false;Y();return false});if(a.p.pgbuttons===true){b(".ui-pg-button","#"+o).hover(function(){if(b(this).hasClass("ui-state-disabled"))this.style.cursor="default";else{b(this).addClass("ui-state-hover");this.style.cursor="pointer"}},function(){if(!b(this).hasClass("ui-state-disabled")){b(this).removeClass("ui-state-hover");this.style.cursor="default"}});b("#first"+
+d+", #prev"+d+", #next"+d+", #last"+d,"#"+c).click(function(){var r=J(a.p.page,1),v=J(a.p.lastpage,1),z=false,D=true,N=true,L=true,P=true;if(v===0||v===1)P=L=N=D=false;else if(v>1&&r>=1)if(r===1)N=D=false;else{if(!(r>1&&r<v))if(r===v)P=L=false}else if(v>1&&r===0){P=L=false;r=v-1}if(this.id==="first"+d&&D){a.p.page=1;z=true}if(this.id==="prev"+d&&N){a.p.page=r-1;z=true}if(this.id==="next"+d&&L){a.p.page=r+1;z=true}if(this.id==="last"+d&&P){a.p.page=v;z=true}if(z){if(!s(this.id))return false;Y()}return false})}a.p.pginput===
+true&&b("input.ui-pg-input","#"+o).keypress(function(r){if((r.charCode?r.charCode:r.keyCode?r.keyCode:0)==13){a.p.page=b(this).val()>0?b(this).val():a.p.page;if(!s("user"))return false;Y();return false}return this})};var xa=function(c,d,e,l){if(a.p.colModel[d].sortable)if(!(a.p.savedRow.length>0)){if(!e){if(a.p.lastsort==d)if(a.p.sortorder=="asc")a.p.sortorder="desc";else{if(a.p.sortorder=="desc")a.p.sortorder="asc"}else a.p.sortorder=a.p.colModel[d].firstsortorder||"asc";a.p.page=1}if(l)if(a.p.lastsort==
+d&&a.p.sortorder==l&&!e)return;else a.p.sortorder=l;e=b("thead:first",a.grid.hDiv).get(0);b("tr th:eq("+a.p.lastsort+") span.ui-grid-ico-sort",e).addClass("ui-state-disabled");b("tr th:eq("+a.p.lastsort+")",e).attr("aria-selected","false");b("tr th:eq("+d+") span.ui-icon-"+a.p.sortorder,e).removeClass("ui-state-disabled");b("tr th:eq("+d+")",e).attr("aria-selected","true");if(!a.p.viewsortcols[0])if(a.p.lastsort!=d){b("tr th:eq("+a.p.lastsort+") span.s-ico",e).hide();b("tr th:eq("+d+") span.s-ico",
+e).show()}c=c.substring(5);a.p.sortname=a.p.colModel[d].index||c;e=a.p.sortorder;if(b.isFunction(a.p.onSortCol))if(a.p.onSortCol.call(a,c,d,e)=="stop"){a.p.lastsort=d;return}if(a.p.datatype=="local")a.p.deselectAfterSort&&b(a).jqGrid("resetSelection");else{a.p.selrow=null;a.p.multiselect&&b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false);a.p.selarrrow=[];a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}a.p.subGrid&&a.p.datatype=="local"&&b("td.sgexpanded","#"+a.p.id).each(function(){b(this).trigger("click")});
+Y();a.p.lastsort=d;if(a.p.sortname!=c&&d)a.p.lastsort=d}},Ca=function(c){var d=c,e;for(e=c+1;e<a.p.colModel.length;e++)if(a.p.colModel[e].hidden!==true){d=e;break}return d-c},Da=function(c){var d,e={},l=C?0:a.p.cellLayout;for(d=e[0]=e[1]=e[2]=0;d<=c;d++)if(a.p.colModel[d].hidden===false)e[0]+=a.p.colModel[d].width+l;if(a.p.direction=="rtl")e[0]=a.p.width-e[0];e[0]-=a.grid.bDiv.scrollLeft;if(b(a.grid.cDiv).is(":visible"))e[1]+=b(a.grid.cDiv).height()+parseInt(b(a.grid.cDiv).css("padding-top"),10)+
+parseInt(b(a.grid.cDiv).css("padding-bottom"),10);if(a.p.toolbar[0]===true&&(a.p.toolbar[1]=="top"||a.p.toolbar[1]=="both"))e[1]+=b(a.grid.uDiv).height()+parseInt(b(a.grid.uDiv).css("border-top-width"),10)+parseInt(b(a.grid.uDiv).css("border-bottom-width"),10);if(a.p.toppager)e[1]+=b(a.grid.topDiv).height()+parseInt(b(a.grid.topDiv).css("border-bottom-width"),10);e[2]+=b(a.grid.bDiv).height()+b(a.grid.hDiv).height();return e};this.p.id=this.id;if(b.inArray(a.p.multikey,["shiftKey","altKey","ctrlKey"])==
+-1)a.p.multikey=false;a.p.keyIndex=false;for(j=0;j<a.p.colModel.length;j++)if(a.p.colModel[j].key===true){a.p.keyIndex=j;break}a.p.sortorder=a.p.sortorder.toLowerCase();if(this.p.treeGrid===true)try{b(this).jqGrid("setTreeGrid")}catch(Ha){}if(this.p.subGrid)try{b(a).jqGrid("setSubGrid")}catch(Ia){}if(this.p.multiselect){this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");this.p.colModel.unshift({name:"cb",width:C?a.p.multiselectWidth+a.p.cellLayout:
+a.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}if(this.p.rownumbers){this.p.colNames.unshift("");this.p.colModel.unshift({name:"rn",width:a.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}a.p.xmlReader=b.extend(true,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:true,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:true,
+cell:"cell"}},a.p.xmlReader);a.p.jsonReader=b.extend(true,{root:"rows",page:"page",total:"total",records:"records",repeatitems:true,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:true,cell:"cell"}},a.p.jsonReader);if(a.p.scroll){a.p.pgbuttons=false;a.p.pginput=false;a.p.rowList=[]}var H="<thead><tr class='ui-jqgrid-labels' role='rowheader'>",ya,ba,sa,ka,pa,I,A,ea;ba=ea="";if(a.p.shrinkToFit===true&&a.p.forceFit===true)for(j=a.p.colModel.length-1;j>=0;j--)if(!a.p.colModel[j].hidden){a.p.colModel[j].resizable=
+false;break}if(a.p.viewsortcols[1]=="horizontal"){ea=" ui-i-asc";ba=" ui-i-desc"}ya=x?"class='ui-th-div-ie'":"";ea="<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+ea+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+m+"'></span>";ea+="<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+ba+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+m+"'></span></span>";for(j=0;j<this.p.colNames.length;j++){ba=a.p.headertitles?' title="'+b.jgrid.stripHtml(a.p.colNames[j])+
+'"':"";H+="<th id='"+a.p.id+"_"+a.p.colModel[j].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+m+"'"+ba+">";ba=a.p.colModel[j].index||a.p.colModel[j].name;H+="<div id='jqgh_"+a.p.colModel[j].name+"' "+ya+">"+a.p.colNames[j];a.p.colModel[j].width=a.p.colModel[j].width?parseInt(a.p.colModel[j].width,10):150;if(typeof a.p.colModel[j].title!=="boolean")a.p.colModel[j].title=true;if(ba==a.p.sortname)a.p.lastsort=j;H+=ea+"</div></th>"}H+="</tr></thead>";b(this).append(H);b("thead tr:first th",
+this).hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")});if(this.p.multiselect){var ta=[],qa;b("#cb_"+b.jgrid.jqID(a.p.id),this).bind("click",function(){if(this.checked){b("[id^=jqg_]",a.rows).attr("checked",true);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).addClass("ui-state-highlight").attr("aria-selected","true");a.p.selarrrow[c]=a.p.selrow=this.id}});qa=true;ta=[]}else{b("[id^=jqg_]",a.rows).attr("checked",false);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).removeClass("ui-state-highlight").attr("aria-selected",
+"false");ta[c]=this.id}});a.p.selarrrow=[];a.p.selrow=null;qa=false}if(b.isFunction(a.p.onSelectAll))a.p.onSelectAll.call(a,qa?a.p.selarrrow:ta,qa)})}if(a.p.autowidth===true){H=b(K).innerWidth();a.p.width=H>0?H:"nw"}(function(){var c=0,d=a.p.cellLayout,e=0,l,n=a.p.scrollOffset,o,p=false,w,y=0,s=0,r=0,v;if(C)d=0;b.each(a.p.colModel,function(){if(typeof this.hidden==="undefined")this.hidden=false;if(this.hidden===false){c+=J(this.width,0);if(this.fixed){y+=this.width;s+=this.width+d}else e++;r++}});
+if(isNaN(a.p.width))a.p.width=g.width=c;else g.width=a.p.width;a.p.tblwidth=c;if(a.p.shrinkToFit===false&&a.p.forceFit===true)a.p.forceFit=false;if(a.p.shrinkToFit===true&&e>0){w=g.width-d*e-s;if(!isNaN(a.p.height)){w-=n;p=true}c=0;b.each(a.p.colModel,function(z){if(this.hidden===false&&!this.fixed){this.width=o=Math.round(w*this.width/(a.p.tblwidth-y));c+=o;l=z}});v=0;if(p){if(g.width-s-(c+d*e)!==n)v=g.width-s-(c+d*e)-n}else if(!p&&Math.abs(g.width-s-(c+d*e))!==1)v=g.width-s-(c+d*e);a.p.colModel[l].width+=
+v;a.p.tblwidth=c+v+y+r*d;if(a.p.tblwidth>a.p.width){a.p.colModel[l].width-=a.p.tblwidth-parseInt(a.p.width,10);a.p.tblwidth=a.p.width}}})();b(K).css("width",g.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+a.p.id+"'>&#160;</div>");b(q).css("width",g.width+"px");H=b("thead:first",a).get(0);var ua="<table role='grid' style='width:"+a.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+
+m+"'>";q=b("tr:first",H);a.p.disableClick=false;b("th",q).each(function(c){sa=a.p.colModel[c].width;if(typeof a.p.colModel[c].resizable==="undefined")a.p.colModel[c].resizable=true;if(a.p.colModel[c].resizable){ka=document.createElement("span");b(ka).html("&#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+m);b.browser.opera||b(ka).css("cursor","col-resize");b(this).addClass(a.p.resizeclass)}else ka="";b(this).css("width",sa+"px").prepend(ka);a.p.colModel[c].hidden&&b(this).css("display","none");
+g.headers[c]={width:sa,el:this};pa=a.p.colModel[c].sortable;if(typeof pa!=="boolean")pa=a.p.colModel[c].sortable=true;var d=a.p.colModel[c].name;d=="cb"||d=="subgrid"||d=="rn"||a.p.viewsortcols[2]&&b("div",this).addClass("ui-jqgrid-sortable");if(pa)if(a.p.viewsortcols[0]){b("div span.s-ico",this).show();c==a.p.lastsort&&b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}else if(c==a.p.lastsort){b("div span.s-ico",this).show();b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}ua+=
+"<td role='gridcell' "+F(c,0,"")+">&#160;</td>"}).mousedown(function(c){if(b(c.target).closest("th>span.ui-jqgrid-resize").length==1){var d=b.jgrid.getCellIndex(this);if(a.p.forceFit===true)a.p.nv=Ca(d);g.dragStart(d,c,Da(d));return false}}).click(function(c){if(a.p.disableClick)return a.p.disableClick=false;var d="th>div.ui-jqgrid-sortable",e,l;a.p.viewsortcols[2]||(d="th>div>span>span.ui-grid-ico-sort");c=b(c.target).closest(d);if(c.length==1){d=b.jgrid.getCellIndex(this);if(!a.p.viewsortcols[2]){e=
+true;l=c.attr("sort")}xa(b("div",this)[0].id,d,e,l);return false}});if(a.p.sortable&&b.fn.sortable)try{b(a).jqGrid("sortableColumns",q)}catch(Ja){}ua+="</tr></tbody></table>";this.appendChild(document.createElement("tbody"));b(this).addClass("ui-jqgrid-btable");q=b("<table class='ui-jqgrid-htable' style='width:"+a.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(H);var T=a.p.caption&&a.p.hiddengrid===true?true:false;H=b("<div class='ui-jqgrid-hbox"+
+(m=="rtl"?"-rtl":"")+"'></div>");g.hDiv=document.createElement("div");b(g.hDiv).css({width:g.width+"px"}).addClass("ui-state-default ui-jqgrid-hdiv").append(H);b(H).append(q);T&&b(g.hDiv).hide();if(a.p.pager){if(typeof a.p.pager=="string"){if(a.p.pager.substr(0,1)!="#")a.p.pager="#"+a.p.pager}else a.p.pager="#"+b(a.p.pager).attr("id");b(a.p.pager).css({width:g.width+"px"}).appendTo(K).addClass("ui-state-default ui-jqgrid-pager ui-corner-bottom");T&&b(a.p.pager).hide();t(a.p.pager,"")}a.p.cellEdit===
+false&&a.p.hoverrows===true&&b(a).bind("mouseover",function(c){A=b(c.target).closest("tr.jqgrow");b(A).attr("class")!=="subgrid"&&b(A).addClass("ui-state-hover");return false}).bind("mouseout",function(c){A=b(c.target).closest("tr.jqgrow");b(A).removeClass("ui-state-hover");return false});var Z,$;b(a).before(g.hDiv).click(function(c){I=c.target;var d=b(I).hasClass("cbox");A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return this;var e=true;if(b.isFunction(a.p.beforeSelectRow))e=a.p.beforeSelectRow.call(a,
+A[0].id,c);if(I.tagName=="A"||(I.tagName=="INPUT"||I.tagName=="TEXTAREA"||I.tagName=="OPTION"||I.tagName=="SELECT")&&!d)return this;if(e===true){if(a.p.cellEdit===true)if(a.p.multiselect&&d)b(a).jqGrid("setSelection",A[0].id,true);else{Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);try{b(a).jqGrid("editCell",Z,$,true)}catch(l){}}else if(a.p.multikey)if(c[a.p.multikey])b(a).jqGrid("setSelection",A[0].id,true);else{if(a.p.multiselect&&d){d=b("[id^=jqg_]",A).attr("checked");b("[id^=jqg_]",A).attr("checked",
+!d)}}else{if(a.p.multiselect&&a.p.multiboxonly)if(!d){b(a.p.selarrrow).each(function(n,o){n=a.rows.namedItem(o);b(n).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(o),n).attr("checked",false)});a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}b(a).jqGrid("setSelection",A[0].id,true)}if(b.isFunction(a.p.onCellSelect)){Z=A[0].id;$=b.jgrid.getCellIndex(I);a.p.onCellSelect.call(a,Z,$,b(I).html(),c)}c.stopPropagation()}else return this}).bind("reloadGrid",function(c,
+d){if(a.p.treeGrid===true)a.p.datatype=a.p.treedatatype;d&&d.current&&a.grid.selectionPreserver(a);if(a.p.datatype=="local")b(a).jqGrid("resetSelection");else if(!a.p.treeGrid){a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}if(d&&d.page){c=d.page;if(c>a.p.lastpage)c=a.p.lastpage;if(c<1)c=1;a.p.page=c;a.grid.bDiv.scrollTop=a.grid.prevRowHeight?(c-1)*a.grid.prevRowHeight*a.p.rowNum:
+0}if(a.grid.prevRowHeight&&a.p.scroll){delete a.p.lastpage;a.grid.populateVisible()}else a.grid.populate();return false});b.isFunction(this.p.ondblClickRow)&&b(this).dblclick(function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return false;Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.ondblClickRow.call(a,b(A).attr("id"),Z,$,c);return false});b.isFunction(this.p.onRightClickRow)&&b(this).bind("contextmenu",function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===
+0)return false;a.p.multiselect||b(a).jqGrid("setSelection",A[0].id,true);Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.onRightClickRow.call(a,b(A).attr("id"),Z,$,c);return false});g.bDiv=document.createElement("div");b(g.bDiv).append(b('<div style="position:relative;'+(x&&b.browser.version<8?"height:0.01%;":"")+'"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:a.p.height+(isNaN(a.p.height)?"":"px"),width:g.width+"px"}).scroll(g.scrollGrid);b("table:first",g.bDiv).css({width:a.p.tblwidth+
+"px"});if(x){b("tbody",this).size()==2&&b("tbody:first",this).remove();a.p.multikey&&b(g.bDiv).bind("selectstart",function(){return false})}else a.p.multikey&&b(g.bDiv).bind("mousedown",function(){return false});T&&b(g.bDiv).hide();g.cDiv=document.createElement("div");var va=a.p.hidegrid===true?b("<a role='link' href='javascript:void(0)'/>").addClass("ui-jqgrid-titlebar-close HeaderButton").hover(function(){va.addClass("ui-state-hover")},function(){va.removeClass("ui-state-hover")}).append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css(m==
+"rtl"?"left":"right","0px"):"";b(g.cDiv).append(va).append("<span class='ui-jqgrid-title"+(m=="rtl"?"-rtl":"")+"'>"+a.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");b(g.cDiv).insertBefore(g.hDiv);if(a.p.toolbar[0]){g.uDiv=document.createElement("div");if(a.p.toolbar[1]=="top")b(g.uDiv).insertBefore(g.hDiv);else a.p.toolbar[1]=="bottom"&&b(g.uDiv).insertAfter(g.hDiv);if(a.p.toolbar[1]=="both"){g.ubDiv=document.createElement("div");b(g.uDiv).insertBefore(g.hDiv).addClass("ui-userdata ui-state-default").attr("id",
+"t_"+this.id);b(g.ubDiv).insertAfter(g.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);T&&b(g.ubDiv).hide()}else b(g.uDiv).width(g.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);T&&b(g.uDiv).hide()}if(a.p.toppager){a.p.toppager=a.p.id+"_toppager";g.topDiv=b("<div id='"+a.p.toppager+"'></div>")[0];a.p.toppager="#"+a.p.toppager;b(g.topDiv).insertBefore(g.hDiv).addClass("ui-state-default ui-jqgrid-toppager").width(g.width);t(a.p.toppager,"_t")}if(a.p.footerrow){g.sDiv=
+b("<div class='ui-jqgrid-sdiv'></div>")[0];H=b("<div class='ui-jqgrid-hbox"+(m=="rtl"?"-rtl":"")+"'></div>");b(g.sDiv).append(H).insertAfter(g.hDiv).width(g.width);b(H).append(ua);g.footers=b(".ui-jqgrid-ftable",g.sDiv)[0].rows[0].cells;if(a.p.rownumbers)g.footers[0].className="ui-state-default jqgrid-rownum";T&&b(g.sDiv).hide()}if(a.p.caption){var Ea=a.p.datatype;if(a.p.hidegrid===true){b(".ui-jqgrid-titlebar-close",g.cDiv).click(function(c){var d=b.isFunction(a.p.onHeaderClick);if(a.p.gridstate==
+"visible"){b(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+a.p.id).slideUp("fast");a.p.pager&&b(a.p.pager).slideUp("fast");a.p.toppager&&b(a.p.toppager).slideUp("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideUp("fast");b(g.uDiv).slideUp("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideUp("fast");b("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");a.p.gridstate="hidden";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&
+b(".ui-resizable-handle","#gbox_"+a.p.id).hide();if(d)T||a.p.onHeaderClick.call(a,a.p.gridstate,c)}else if(a.p.gridstate=="hidden"){b(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+a.p.id).slideDown("fast");a.p.pager&&b(a.p.pager).slideDown("fast");a.p.toppager&&b(a.p.toppager).slideDown("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideDown("fast");b(g.uDiv).slideDown("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideDown("fast");b("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
+if(T){a.p.datatype=Ea;Y();T=false}a.p.gridstate="visible";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&b(".ui-resizable-handle","#gbox_"+a.p.id).show();d&&a.p.onHeaderClick.call(a,a.p.gridstate,c)}return false});if(T){a.p.datatype="local";b(".ui-jqgrid-titlebar-close",g.cDiv).trigger("click")}}}else b(g.cDiv).hide();b(g.hDiv).after(g.bDiv).mousemove(function(c){if(g.resizing){g.dragMove(c);return false}});b(".ui-jqgrid-labels",g.hDiv).bind("selectstart",function(){return false});b(document).mouseup(function(){if(g.resizing){g.dragEnd();
+return false}return true});this.updateColumns=function(){var c=this.rows[0],d=this;if(c){b("td",c).each(function(e){b(this).css("width",d.grid.headers[e].width+"px")});this.grid.cols=c.cells}return this};a.formatCol=F;a.sortData=xa;a.updatepager=na;a.formatter=function(c,d,e,l,n){return M(c,d,e,l,n)};b.extend(g,{populate:Y,emptyRows:aa});this.grid=g;a.addXmlData=function(c){ia(c,a.grid.bDiv)};a.addJSONData=function(c){ra(c,a.grid.bDiv)};Y();a.p.hiddengrid=false;b(window).unload(function(){a=null})}}})};
+b.jgrid.extend({getGridParam:function(f){var k=this[0];if(k.grid)return f?typeof k.p[f]!="undefined"?k.p[f]:null:k.p},setGridParam:function(f){return this.each(function(){this.grid&&typeof f==="object"&&b.extend(true,this.p,f)})},getDataIDs:function(){var f=[],k=0,i;this.each(function(){if((i=this.rows.length)&&i>0)for(;k<i;){f[k]=this.rows[k].id;k++}});return f},setSelection:function(f,k){return this.each(function(){function i(a){var q=b(h.grid.bDiv)[0].clientHeight,t=b(h.grid.bDiv)[0].scrollTop,
+x=h.rows[a].offsetTop;a=h.rows[a].clientHeight;if(x+a>=q+t)b(h.grid.bDiv)[0].scrollTop=x-(q+t)+a+t;else if(x<q+t)if(x<t)b(h.grid.bDiv)[0].scrollTop=x}var h=this,g,j,m;if(f!==undefined){k=k===false?false:true;if(j=h.rows.namedItem(f+"")){if(h.p.scrollrows===true){g=h.rows.namedItem(f).rowIndex;g>=0&&i(g)}if(h.p.multiselect){h.p.selrow=j.id;m=b.inArray(h.p.selrow,h.p.selarrrow);if(m===-1){j.className!=="ui-subgrid"&&b(j).addClass("ui-state-highlight").attr("aria-selected","true");g=true;b("#jqg_"+b.jgrid.jqID(h.p.selrow),
+h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.push(h.p.selrow);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g)}else{j.className!=="ui-subgrid"&&b(j).removeClass("ui-state-highlight").attr("aria-selected","false");g=false;b("#jqg_"+b.jgrid.jqID(h.p.selrow),h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.splice(m,1);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g);j=h.p.selarrrow[0];h.p.selrow=j===undefined?null:j}}else if(j.className!=="ui-subgrid"){h.p.selrow&&b(h.rows.namedItem(h.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected",
+"false");h.p.selrow=j.id;b(j).addClass("ui-state-highlight").attr("aria-selected","true");h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,true)}}}})},resetSelection:function(){return this.each(function(){var f=this,k;if(f.p.multiselect){b(f.p.selarrrow).each(function(i,h){k=f.rows.namedItem(h);b(k).removeClass("ui-state-highlight").attr("aria-selected","false");b("#jqg_"+b.jgrid.jqID(h),k).attr("checked",false)});b("#cb_"+b.jgrid.jqID(f.p.id),f.grid.hDiv).attr("checked",false);f.p.selarrrow=
+[]}else if(f.p.selrow){b("tr#"+b.jgrid.jqID(f.p.selrow),f.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");f.p.selrow=null}f.p.savedRow=[]})},getRowData:function(f){var k={},i,h=false,g,j=0;this.each(function(){var m=this,a,q;if(typeof f=="undefined"){h=true;i=[];g=m.rows.length}else{q=m.rows.namedItem(f);if(!q)return k;g=1}for(;j<g;){if(h)q=m.rows[j];b("td",q).each(function(t){a=m.p.colModel[t].name;if(a!=="cb"&&a!=="subgrid")if(m.p.treeGrid===true&&a==m.p.ExpandColumn)k[a]=
+b.jgrid.htmlDecode(b("span:first",this).html());else try{k[a]=b.unformat(this,{rowId:q.id,colModel:m.p.colModel[t]},t)}catch(x){k[a]=b.jgrid.htmlDecode(b(this).html())}});j++;if(h){i.push(k);k={}}}});return i?i:k},delRowData:function(f){var k=false,i,h,g;this.each(function(){var j=this;if(i=j.rows.namedItem(f)){g=i.rowIndex;b(i).remove();j.p.records--;j.p.reccount--;j.updatepager(true,false);k=true;if(j.p.multiselect){h=b.inArray(f,j.p.selarrrow);h!=-1&&j.p.selarrrow.splice(h,1)}if(f==j.p.selrow)j.p.selrow=
+null}else return false;g===0&&k&&j.updateColumns();if(j.p.altRows===true&&k){var m=j.p.altclass;b(j.rows).each(function(a){a%2==1?b(this).addClass(m):b(this).removeClass(m)})}});return k},setRowData:function(f,k,i){var h,g=false,j;this.each(function(){var m=this,a,q,t=typeof i;if(!m.grid)return false;q=m.rows.namedItem(f);if(!q)return false;k&&b(this.p.colModel).each(function(x){h=this.name;if(k[h]!==undefined){a=m.formatter(f,k[h],x,k,"edit");j=this.title?{title:b.jgrid.stripHtml(a)}:{};m.p.treeGrid===
+true&&h==m.p.ExpandColumn?b("td:eq("+x+") > span:first",q).html(a).attr(j):b("td:eq("+x+")",q).html(a).attr(j);g=true}});if(t==="string")b(q).addClass(i);else t==="object"&&b(q).css(i)});return g},addRowData:function(f,k,i,h){i||(i="last");var g=false,j,m,a,q,t,x,C,K,J="",F,Q,M,R;if(k){if(b.isArray(k)){F=true;i="last";Q=f}else{k=[k];F=false}this.each(function(){var u=this,la=k.length;t=u.p.rownumbers===true?1:0;a=u.p.multiselect===true?1:0;q=u.p.subGrid===true?1:0;if(!F)if(typeof f!="undefined")f+=
+"";else{f=u.p.records+1+"";if(u.p.keyIndex!==false){Q=u.p.colModel[u.p.keyIndex+a+q+t].name;if(typeof k[0][Q]!="undefined")f=k[0][Q]}}M=u.p.altclass;for(var ca=0,fa="",aa=b.isFunction(u.p.afterInsertRow)?true:false;ca<la;){R=k[ca];m="";if(F){try{f=R[Q]}catch(U){f=u.p.records+1}fa=u.p.altRows===true?(u.rows.length-1)%2===0?M:"":""}if(t){J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+J+">0</td>"}if(a){K='<input role="checkbox" type="checkbox" id="jqg_'+
+f+'" class="cbox"/>';J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_cb" '+J+">"+K+"</td>"}if(q)m+=b(u).jqGrid("addSubGridCell",a+t,1);for(C=a+q+t;C<this.p.colModel.length;C++){j=this.p.colModel[C].name;K=u.formatter(f,R[j],C,R,"add");J=u.formatCol(C,1,K);m+='<td role="gridcell" aria-describedby="'+u.p.id+"_"+j+'" '+J+">"+K+"</td>"}m='<tr id="'+f+'" role="row" class="ui-widget-content jqgrow ui-row-'+u.p.direction+" "+fa+'">'+m+"</tr>";if(u.p.subGrid===true){m=b(m)[0];b(u).jqGrid("addSubGrid",
+m,a+t)}if(u.rows.length===0)b("table:first",u.grid.bDiv).append(m);else switch(i){case "last":b(u.rows[u.rows.length-1]).after(m);break;case "first":b(u.rows[0]).before(m);break;case "after":if(x=u.rows.namedItem(h))b(u.rows[x.rowIndex+1]).hasClass("ui-subgrid")?b(u.rows[x.rowIndex+1]).after(m):b(x).after(m);break;case "before":if(x=u.rows.namedItem(h)){b(x).before(m);x=x.rowIndex}break}u.p.records++;u.p.reccount++;if(!u.grid.cols||!u.grid.cols.length)u.grid.cols=u.rows[0].cells;if(i==="first"||i===
+"before"&&x<=1||u.rows.length===1)u.updateColumns();aa&&u.p.afterInsertRow.call(u,f,R,R);ca++}if(u.p.altRows===true&&!F)if(i=="last")(u.rows.length-1)%2==1&&b(u.rows[u.rows.length-1]).addClass(M);else b(u.rows).each(function(ia){ia%2==1?b(this).addClass(M):b(this).removeClass(M)});u.updatepager(true,true);g=true})}return g},footerData:function(f,k,i){function h(q){for(var t in q)if(q.hasOwnProperty(t))return false;return true}var g,j=false,m={},a;if(typeof f=="undefined")f="get";if(typeof i!="boolean")i=
+true;f=f.toLowerCase();this.each(function(){var q=this,t;if(!q.grid||!q.p.footerrow)return false;if(f=="set")if(h(k))return false;j=true;b(this.p.colModel).each(function(x){g=this.name;if(f=="set"){if(k[g]!==undefined){t=i?q.formatter("",k[g],x,k,"edit"):k[g];a=this.title?{title:b.jgrid.stripHtml(t)}:{};b("tr.footrow td:eq("+x+")",q.grid.sDiv).html(t).attr(a);j=true}}else if(f=="get")m[g]=b("tr.footrow td:eq("+x+")",q.grid.sDiv).html()})});return f=="get"?m:j},ShowHideCol:function(f,k){return this.each(function(){var i=
+this,h=false;if(i.grid){if(typeof f==="string")f=[f];k=k!="none"?"":"none";var g=k==""?true:false;b(this.p.colModel).each(function(j){if(b.inArray(this.name,f)!==-1&&this.hidden===g){b("tr",i.grid.hDiv).each(function(){b("th:eq("+j+")",this).css("display",k)});b(i.rows).each(function(m){b("td:eq("+j+")",i.rows[m]).css("display",k)});i.p.footerrow&&b("td:eq("+j+")",i.grid.sDiv).css("display",k);if(k=="none")i.p.tblwidth-=this.width;else i.p.tblwidth+=this.width;this.hidden=!g;h=true}});if(h===true){b("table:first",
+i.grid.hDiv).width(i.p.tblwidth);b("table:first",i.grid.bDiv).width(i.p.tblwidth);i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){b("table:first",i.grid.sDiv).width(i.p.tblwidth);i.grid.sDiv.scrollLeft=i.grid.bDiv.scrollLeft}}}})},hideCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"none")})},showCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"")})},remapColumns:function(f,k,i){function h(m){var a;a=m.length?b.makeArray(m):b.extend({},
+m);b.each(f,function(q){m[q]=a[this]})}function g(m,a){b(">tr"+(a||""),m).each(function(){var q=this,t=b.makeArray(q.cells);b.each(f,function(){var x=t[this];x&&q.appendChild(x)})})}var j=this.get(0);h(j.p.colModel);h(j.p.colNames);h(j.grid.headers);g(b("thead:first",j.grid.hDiv),i&&":not(.ui-jqgrid-labels)");k&&g(b("tbody:first",j.grid.bDiv),".jqgrow");j.p.footerrow&&g(b("tbody:first",j.grid.sDiv));if(j.p.remapColumns)if(j.p.remapColumns.length)h(j.p.remapColumns);else j.p.remapColumns=b.makeArray(f);
+j.p.lastsort=b.inArray(j.p.lastsort,f);if(j.p.treeGrid)j.p.expColInd=b.inArray(j.p.expColInd,f)},setGridWidth:function(f,k){return this.each(function(){var i=this,h,g=0,j=i.p.cellLayout,m,a=0,q=false,t=i.p.scrollOffset,x,C=0,K=0,J=0,F;if(i.grid){if(typeof k!="boolean")k=i.p.shrinkToFit;if(!isNaN(f)){f=parseInt(f,10);i.grid.width=i.p.width=f;b("#gbox_"+i.p.id).css("width",f+"px");b("#gview_"+i.p.id).css("width",f+"px");b(i.grid.bDiv).css("width",f+"px");b(i.grid.hDiv).css("width",f+"px");i.p.pager&&
+b(i.p.pager).css("width",f+"px");i.p.toppager&&b(i.p.toppager).css("width",f+"px");if(i.p.toolbar[0]===true){b(i.grid.uDiv).css("width",f+"px");i.p.toolbar[1]=="both"&&b(i.grid.ubDiv).css("width",f+"px")}i.p.footerrow&&b(i.grid.sDiv).css("width",f+"px");if(k===false&&i.p.forceFit===true)i.p.forceFit=false;if(k===true){if(b.browser.safari)j=0;b.each(i.p.colModel,function(){if(this.hidden===false){g+=parseInt(this.width,10);if(this.fixed){K+=this.width;C+=this.width+j}else a++;J++}});if(a!==0){i.p.tblwidth=
+g;x=f-j*a-C;if(!isNaN(i.p.height))if(b(i.grid.bDiv)[0].clientHeight<b(i.grid.bDiv)[0].scrollHeight){q=true;x-=t}g=0;var Q=i.grid.cols.length>0;b.each(i.p.colModel,function(M){if(this.hidden===false&&!this.fixed){h=Math.round(x*this.width/(i.p.tblwidth-K));if(!(h<0)){this.width=h;g+=h;i.grid.headers[M].width=h;i.grid.headers[M].el.style.width=h+"px";if(i.p.footerrow)i.grid.footers[M].style.width=h+"px";if(Q)i.grid.cols[M].style.width=h+"px";m=M}}});F=0;if(q){if(f-C-(g+j*a)!==t)F=f-C-(g+j*a)-t}else if(Math.abs(f-
+C-(g+j*a))!==1)F=f-C-(g+j*a);i.p.colModel[m].width+=F;i.p.tblwidth=g+F+K+j*J;if(i.p.tblwidth>f){q=i.p.tblwidth-parseInt(f,10);i.p.tblwidth=f;h=i.p.colModel[m].width-=q}else h=i.p.colModel[m].width;i.grid.headers[m].width=h;i.grid.headers[m].el.style.width=h+"px";if(Q)i.grid.cols[m].style.width=h+"px";b("table:first",i.grid.bDiv).css("width",i.p.tblwidth+"px");b("table:first",i.grid.hDiv).css("width",i.p.tblwidth+"px");i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){i.grid.footers[m].style.width=
+h+"px";b("table:first",i.grid.sDiv).css("width",i.p.tblwidth+"px")}}}}}})},setGridHeight:function(f){return this.each(function(){var k=this;if(k.grid){b(k.grid.bDiv).css({height:f+(isNaN(f)?"":"px")});k.p.height=f;k.p.scroll&&k.grid.populateVisible()}})},setCaption:function(f){return this.each(function(){this.p.caption=f;b("span.ui-jqgrid-title",this.grid.cDiv).html(f);b(this.grid.cDiv).show()})},setLabel:function(f,k,i,h){return this.each(function(){var g=this,j=-1;if(g.grid){if(isNaN(f))b(g.p.colModel).each(function(q){if(this.name==
+f){j=q;return false}});else j=parseInt(f,10);if(j>=0){var m=b("tr.ui-jqgrid-labels th:eq("+j+")",g.grid.hDiv);if(k){var a=b(".s-ico",m);b("[id^=jqgh_]",m).empty().html(k).append(a);g.p.colNames[j]=k}if(i)typeof i==="string"?b(m).addClass(i):b(m).css(i);typeof h==="object"&&b(m).attr(h)}}})},setCell:function(f,k,i,h,g,j){return this.each(function(){var m=this,a=-1,q,t;if(m.grid){if(isNaN(k))b(m.p.colModel).each(function(C){if(this.name==k){a=C;return false}});else a=parseInt(k,10);if(a>=0)if(q=m.rows.namedItem(f)){var x=
+b("td:eq("+a+")",q);if(i!==""||j===true){q=m.formatter(f,i,a,q,"edit");t=m.p.colModel[a].title?{title:b.jgrid.stripHtml(q)}:{};m.p.treeGrid&&b(".tree-wrap",b(x)).length>0?b("span",b(x)).html(q).attr(t):b(x).html(q).attr(t)}if(typeof h==="string")b(x).addClass(h);else h&&b(x).css(h);typeof g==="object"&&b(x).attr(g)}}})},getCell:function(f,k){var i=false;this.each(function(){var h=this,g=-1;if(h.grid){if(isNaN(k))b(h.p.colModel).each(function(a){if(this.name===k){g=a;return false}});else g=parseInt(k,
+10);if(g>=0){var j=h.rows.namedItem(f);if(j)try{i=b.unformat(b("td:eq("+g+")",j),{rowId:j.id,colModel:h.p.colModel[g]},g)}catch(m){i=b.jgrid.htmlDecode(b("td:eq("+g+")",j).html())}}}});return i},getCol:function(f,k,i){var h=[],g,j=0;k=typeof k!="boolean"?false:k;if(typeof i=="undefined")i=false;this.each(function(){var m=this,a=-1;if(m.grid){if(isNaN(f))b(m.p.colModel).each(function(C){if(this.name===f){a=C;return false}});else a=parseInt(f,10);if(a>=0){var q=m.rows.length,t=0;if(q&&q>0){for(;t<q;){try{g=
+b.unformat(b(m.rows[t].cells[a]),{rowId:m.rows[t].id,colModel:m.p.colModel[a]},a)}catch(x){g=b.jgrid.htmlDecode(m.rows[t].cells[a].innerHTML)}if(i)j+=parseFloat(g);else if(k)h.push({id:m.rows[t].id,value:g});else h[t]=g;t++}if(i)switch(i.toLowerCase()){case "sum":h=j;break;case "avg":h=j/q;break;case "count":h=q;break}}}}});return h},clearGridData:function(f){return this.each(function(){var k=this;if(k.grid){if(typeof f!="boolean")f=false;b("tbody:first tr",k.grid.bDiv).remove();k.p.footerrow&&f&&
+b(".ui-jqgrid-ftable td",k.grid.sDiv).html("&#160;");k.p.selrow=null;k.p.selarrrow=[];k.p.savedRow=[];k.p.records=0;k.p.page="0";k.p.lastpage="0";k.p.reccount=0;k.updatepager(true,false)}})},getInd:function(f,k){var i=false,h;this.each(function(){if(h=this.rows.namedItem(f))i=k===true?h:h.rowIndex});return i}})})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/grid.locale-sp.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/grid.locale-sp.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/grid.locale-sp.js	(revision 178)
@@ -0,0 +1 @@
+(function(a){a.jgrid={defaults:{recordtext:"Mostrando {0} - {1} de {2}",emptyrecords:"Sin registros que mostrar",loadtext:"Cargando...",pgtext:"Página {0} de {1}"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpiar",odata:["igual ","no igual a","menor que","menor o igual que","mayor que","mayor o igual a","empiece por","no empiece por","está en","no está en","termina por","no termina por","contiene","no contiene"],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"cualquier"}],matchText:" match",rulesText:" reglas"},edit:{addCaption:"Agregar registro",editCaption:"Modificar registro",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Cerrar",saveData:"Se han modificado los datos, ¿guardar cambios?",bYes:"Si",bNo:"No",bExit:"Cancelar",msg:{required:"Campo obligatorio",number:"Introduzca un número",minValue:"El valor debe ser mayor o igual a ",maxValue:"El valor debe ser menor o igual a ",email:"no es una dirección de correo válida",integer:"Introduzca un valor entero",date:"Introduza una fecha correcta ",url:"no es una URL válida. Prefijo requerido ('http://' or 'https://')",nodefined:" no está definido.",novalue:" valor de retorno es requerido.",customarray:"La función personalizada debe devolver un array.",customfcheck:"La función personalizada debe estar presente en el caso de validación personalizada."}},view:{caption:"Consultar registro",bClose:"Cerrar"},del:{caption:"Eliminar",msg:"¿Desea eliminar los registros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nueva fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione una fila",viewtext:"",viewtitle:"Ver fila seleccionada"},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No se ha especificado una URL",norecords:"No hay datos para procesar",model:"Las columnas de nombres son diferentes de las columnas de modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"],monthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/grid.locale-sp.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js	(revision 178)
@@ -0,0 +1,503 @@
+;(function($){
+/*
+**
+ * jqGrid addons using jQuery UI 
+ * Author: Mark Williams
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ * depends on jQuery UI 
+**/
+if ($.browser.msie && $.browser.version==8) {
+	$.expr[":"].hidden = function(elem) {
+		return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||
+			elem.style.display == "none";
+	};
+}
+// requiere load multiselect before grid
+$.jgrid._multiselect = false;
+if($.ui) {
+	if ($.ui.multiselect ) {
+		if($.ui.multiselect.prototype._setSelected) {
+			var setSelected = $.ui.multiselect.prototype._setSelected;
+		    $.ui.multiselect.prototype._setSelected = function(item,selected) {
+		        var ret = setSelected.call(this,item,selected);
+		        if (selected && this.selectedList) {
+		            var elt = this.element;
+				    this.selectedList.find('li').each(function() {
+					    if ($(this).data('optionLink')) {
+						    $(this).data('optionLink').remove().appendTo(elt);
+					    }
+				    });
+		        }
+		        return ret;
+			};
+		}
+		if($.ui.multiselect.prototype.destroy) {
+			$.ui.multiselect.prototype.destroy = function() {
+				this.element.show();
+				this.container.remove();
+				if ($.Widget === undefined) {
+					$.widget.prototype.destroy.apply(this, arguments);
+				} else {
+					$.Widget.prototype.destroy.apply(this, arguments);
+	            }
+			};
+		}
+		$.jgrid._multiselect = true;
+	}
+}
+        
+$.jgrid.extend({
+	sortableColumns : function (tblrow)
+	{
+		return this.each(function (){
+			var ts = this;
+			function start() {ts.p.disableClick = true;}
+			var sortable_opts = {
+				"tolerance" : "pointer",
+				"axis" : "x",
+				"scrollSensitivity": "1",
+				"items": '>th:not(:has(#jqgh_cb,#jqgh_rn,#jqgh_subgrid),:hidden)',
+				"placeholder": {
+					element: function(item) {
+						var el = $(document.createElement(item[0].nodeName))
+						.addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight")
+						.removeClass("ui-sortable-helper")[0];
+						return el;
+					},
+					update: function(self, p) {
+						p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));
+						p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));
+					}
+				},
+				"update": function(event, ui) {
+					var p = $(ui.item).parent();
+					var th = $(">th", p);
+					var colModel = ts.p.colModel;
+					var cmMap = {};
+					$.each(colModel, function(i) { cmMap[this.name]=i; });
+					var permutation = [];
+					th.each(function(i) {
+						var id = $(">div", this).get(0).id.replace(/^jqgh_/, "");
+							if (id in cmMap) {
+								permutation.push(cmMap[id]);
+							}
+					});
+	
+					$(ts).jqGrid("remapColumns",permutation, true, true);
+					if ($.isFunction(ts.p.sortable.update)) {
+						ts.p.sortable.update(permutation);
+					}
+					setTimeout(function(){ts.p.disableClick=false;}, 50);
+				}
+			};
+			if (ts.p.sortable.options) {
+				$.extend(sortable_opts, ts.p.sortable.options);
+			} else if ($.isFunction(ts.p.sortable)) {
+				ts.p.sortable = { "update" : ts.p.sortable };
+			}
+			if (sortable_opts.start) {
+				var s = sortable_opts.start;
+				sortable_opts.start = function(e,ui) {
+					start();
+					s.call(this,e,ui);
+				};
+			} else {
+				sortable_opts.start = start;
+			}
+			if (ts.p.sortable.exclude) {
+				sortable_opts.items += ":not("+ts.p.sortable.exclude+")";
+			}
+			tblrow.sortable(sortable_opts).data("sortable").floating = true;
+		});
+	},
+    columnChooser : function(opts) {
+        var self = this;
+		if($("#colchooser_"+self[0].p.id).length ) { return; }
+        var selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
+        var select = $('select', selector);
+
+        opts = $.extend({
+            "width" : 420,
+            "height" : 240,
+            "classname" : null,
+            "done" : function(perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } },
+            /* msel is either the name of a ui widget class that
+               extends a multiselect, or a function that supports
+               creating a multiselect object (with no argument,
+               or when passed an object), and destroying it (when
+               passed the string "destroy"). */
+            "msel" : "multiselect",
+            /* "msel_opts" : {}, */
+
+            /* dlog is either the name of a ui widget class that 
+               behaves in a dialog-like way, or a function, that
+               supports creating a dialog (when passed dlog_opts)
+               or destroying a dialog (when passed the string
+               "destroy")
+               */
+            "dlog" : "dialog",
+
+            /* dlog_opts is either an option object to be passed 
+               to "dlog", or (more likely) a function that creates
+               the options object.
+               The default produces a suitable options object for
+               ui.dialog */
+            "dlog_opts" : function(opts) {
+                var buttons = {};
+                buttons[opts.bSubmit] = function() {
+                    opts.apply_perm();
+                    opts.cleanup(false);
+                };
+                buttons[opts.bCancel] = function() {
+                    opts.cleanup(true);
+                };
+                return {
+                    "buttons": buttons,
+                    "close": function() {
+                        opts.cleanup(true);
+                    },
+					"modal" : false,
+                    "resizable": false,
+                    "width": opts.width+20
+                };
+            },
+            /* Function to get the permutation array, and pass it to the
+               "done" function */
+            "apply_perm" : function() {
+                $('option',select).each(function(i) {
+                    if (this.selected) {
+                        self.jqGrid("showCol", colModel[this.value].name);
+                    } else {
+                        self.jqGrid("hideCol", colModel[this.value].name);
+                    }
+                });
+                
+                var perm = [];
+				//fixedCols.slice(0);
+                $('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });
+                $.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });
+                $.each(colMap, function() {
+					var ti = parseInt(this,10);
+					perm = insert(perm,ti,ti);
+				});
+                if (opts.done) {
+                    opts.done.call(self, perm);
+                }
+            },
+            /* Function to cleanup the dialog, and select. Also calls the
+               done function with no permutation (to indicate that the
+               columnChooser was aborted */
+            "cleanup" : function(calldone) {
+                call(opts.dlog, selector, 'destroy');
+                call(opts.msel, select, 'destroy');
+                selector.remove();
+                if (calldone && opts.done) {
+                    opts.done.call(self);
+                }
+            },
+			"msel_opts" : {}
+        }, $.jgrid.col, opts || {});
+		if($.ui) {
+			if ($.ui.multiselect ) {
+				if(opts.msel == "multiselect") {
+					if(!$.jgrid._multiselect) {
+						// should be in language file
+						alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");
+						return;
+					}
+					opts.msel_opts = $.extend($.ui.multiselect.defaults,opts.msel_opts);
+				}
+			}
+		}
+        if (opts.caption) {
+            selector.attr("title", opts.caption);
+        }
+        if (opts.classname) {
+            selector.addClass(opts.classname);
+            select.addClass(opts.classname);
+        }
+        if (opts.width) {
+            $(">div",selector).css({"width": opts.width,"margin":"0 auto"});
+            select.css("width", opts.width);
+        }
+        if (opts.height) {
+            $(">div",selector).css("height", opts.height);
+            select.css("height", opts.height - 10);
+        }
+        var colModel = self.jqGrid("getGridParam", "colModel");
+        var colNames = self.jqGrid("getGridParam", "colNames");
+        var colMap = {}, fixedCols = [];
+
+        select.empty();
+        $.each(colModel, function(i) {
+            colMap[this.name] = i;
+            if (this.hidedlg) {
+                if (!this.hidden) {
+                    fixedCols.push(i);
+                }
+                return;
+            }
+
+            select.append("<option value='"+i+"' "+
+                          (this.hidden?"":"selected='selected'")+">"+colNames[i]+"</option>");
+        });
+		function insert(perm,i,v) {
+			if(i>=0){
+				var a = perm.slice();
+				var b = a.splice(i,Math.max(perm.length-i,i));
+				if(i>perm.length) { i = perm.length; }
+				a[i] = v;
+				return a.concat(b);
+			}
+		}
+        function call(fn, obj) {
+            if (!fn) { return; }
+            if (typeof fn == 'string') {
+                if ($.fn[fn]) {
+                    $.fn[fn].apply(obj, $.makeArray(arguments).slice(2));
+                }
+            } else if ($.isFunction(fn)) {
+                fn.apply(obj, $.makeArray(arguments).slice(2));
+            }
+        }
+
+        var dopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;
+        call(opts.dlog, selector, dopts);
+        var mopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;
+        call(opts.msel, select, mopts);
+    },
+	sortableRows : function (opts) {
+		// Can accept all sortable options and events
+		return this.each(function(){
+			var $t = this;
+			if(!$t.grid) { return; }
+			// Currently we disable a treeGrid sortable
+			if($t.p.treeGrid) { return; }
+			if($.fn.sortable) {
+				opts = $.extend({
+					"cursor":"move",
+					"axis" : "y",
+					"items": ".jqgrow"
+					},
+				opts || {});
+				if(opts.start && $.isFunction(opts.start)) {
+					opts._start_ = opts.start;
+					delete opts.start;
+				} else {opts._start_=false;}
+				if(opts.update && $.isFunction(opts.update)) {
+					opts._update_ = opts.update;
+					delete opts.update;
+				} else {opts._update_ = false;}
+				opts.start = function(ev,ui) {
+					$(ui.item).css("border-width","0px");
+					$("td",ui.item).each(function(i){
+						this.style.width = $t.grid.cols[i].style.width;
+					});
+					if($t.p.subGrid) {
+						var subgid = $(ui.item).attr("id");
+						try {
+							$($t).jqGrid('collapseSubGridRow',subgid);
+						} catch (e) {}
+					}
+					if(opts._start_) {
+						opts._start_.apply(this,[ev,ui]);
+					}
+				};
+				opts.update = function (ev,ui) {
+					$(ui.item).css("border-width","");
+					$t.updateColumns();
+					if($t.p.rownumbers === true) {
+						$("td.jqgrid-rownum",$t.rows).each(function(i){
+							$(this).html(i+1);
+						});
+					}
+					if(opts._update_) {
+						opts._update_.apply(this,[ev,ui]);
+					}
+				};
+				$("tbody:first",$t).sortable(opts);
+				$("tbody:first",$t).disableSelection();
+			}
+		});
+	},
+	gridDnD : function(opts) {
+		return this.each(function(){
+		var $t = this;
+		if(!$t.grid) { return; }
+		// Currently we disable a treeGrid drag and drop
+		if($t.p.treeGrid) { return; }
+		if(!$.fn.draggable || !$.fn.droppable) { return; }
+		function updateDnD ()
+		{
+			var datadnd = $.data($t,"dnd");
+		    $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);
+		}
+		var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>";
+		if($("#jqgrid_dnd").html() === null) {
+			$('body').append(appender);
+		}
+
+		if(typeof opts == 'string' && opts == 'updateDnD' && $t.p.jqgdnd===true) {
+			updateDnD();
+			return;
+		}
+		opts = $.extend({
+			"drag" : function (opts) {
+				return $.extend({
+					start : function (ev, ui) {
+						// if we are in subgrid mode try to collapse the node
+						if($t.p.subGrid) {
+							var subgid = $(ui.helper).attr("id");
+							try {
+								$($t).jqGrid('collapseSubGridRow',subgid);
+							} catch (e) {}
+						}
+						// hack
+						// drag and drop does not insert tr in table, when the table has no rows
+						// we try to insert new empty row on the target(s)
+						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
+							if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') == "0" ){
+								$($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});
+							}
+						}
+						ui.helper.addClass("ui-state-highlight");
+						$("td",ui.helper).each(function(i) {
+							this.style.width = $t.grid.headers[i].width+"px";
+						});
+						if(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }
+					},
+					stop :function(ev,ui) {
+						if(ui.helper.dropped) {
+							var ids = $(ui.helper).attr("id");
+							$($t).jqGrid('delRowData',ids );
+						}
+						// if we have a empty row inserted from start event try to delete it
+						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
+							$($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row');
+						}
+						if(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }
+					}
+				},opts.drag_opts || {});
+			},
+			"drop" : function (opts) {
+				return $.extend({
+					accept: function(d) {
+						var tid = $(d).closest("table.ui-jqgrid-btable");
+						if($.data(tid[0],"dnd") !== undefined) {
+						    var cn = $.data(tid[0],"dnd").connectWith;
+						    return $.inArray('#'+this.id,cn) != -1 ? true : false;
+						}
+						return d;
+					},
+					drop: function(ev, ui) {
+						var accept = $(ui.draggable).attr("id");
+						var getdata = $('#'+$t.id).jqGrid('getRowData',accept);
+						if(!opts.dropbyname) {
+							var j =0, tmpdata = {}, dropname;
+							var dropmodel = $("#"+this.id).jqGrid('getGridParam','colModel');
+							try {
+								for (var key in getdata) {
+									if(getdata.hasOwnProperty(key) && dropmodel[j]) {
+										dropname = dropmodel[j].name;
+										tmpdata[dropname] = getdata[key];
+									}
+									j++;
+								}
+								getdata = tmpdata;
+							} catch (e) {}
+						}
+						ui.helper.dropped = true;
+						if(opts.beforedrop && $.isFunction(opts.beforedrop) ) {
+							//parameters to this callback - event, element, data to be inserted, sender, reciever
+							// should return object which will be inserted into the reciever
+							var datatoinsert = opts.beforedrop.call(this,ev,ui,getdata,$('#'+$t.id),$(this));
+							if (typeof datatoinsert != "undefined" && datatoinsert !== null && typeof datatoinsert == "object") { getdata = datatoinsert; }
+						}
+						if(ui.helper.dropped) {
+							var grid;
+							if(opts.autoid) {
+								if($.isFunction(opts.autoid)) {
+									grid = opts.autoid.call(this,getdata);
+								} else {
+									grid = Math.ceil(Math.random()*1000);
+									grid = opts.autoidprefix+grid;
+								}
+							}
+							// NULL is interpreted as undefined while null as object
+							$("#"+this.id).jqGrid('addRowData',grid,getdata,opts.droppos);
+						}
+						if(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }
+					}}, opts.drop_opts || {});
+			},
+			"onstart" : null,
+			"onstop" : null,
+			"beforedrop": null,
+			"ondrop" : null,
+			"drop_opts" : {
+				"activeClass": "ui-state-active",
+				"hoverClass": "ui-state-hover"
+			},
+			"drag_opts" : {
+				"revert": "invalid",
+				"helper": "clone",
+				"cursor": "move",
+				"appendTo" : "#jqgrid_dnd",
+				"zIndex": 5000
+			},
+			"dropbyname" : false,
+			"droppos" : "first",
+			"autoid" : true,
+			"autoidprefix" : "dnd_"
+		}, opts || {});
+		
+		if(!opts.connectWith) { return; }
+		opts.connectWith = opts.connectWith.split(",");
+		opts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});
+		$.data($t,"dnd",opts);
+		
+		if($t.p.reccount != "0" && !$t.p.jqgdnd) {
+			updateDnD();
+		}
+		$t.p.jqgdnd = true;
+		for (var i=0;i<opts.connectWith.length;i++){
+			var cn =opts.connectWith[i];
+			$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);
+		}
+		});
+	},
+	gridResize : function(opts) {
+		return this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$.fn.resizable) { return; }
+			opts = $.extend({}, opts || {});
+			if(opts.alsoResize ) {
+				opts._alsoResize_ = opts.alsoResize;
+				delete opts.alsoResize;
+			} else {
+				opts._alsoResize_ = false;
+			}
+			if(opts.stop && $.isFunction(opts.stop)) {
+				opts._stop_ = opts.stop;
+				delete opts.stop;
+			} else {
+				opts._stop_ = false;
+			}
+			opts.stop = function (ev, ui) {
+				$($t).jqGrid('setGridParam',{height:$("#gview_"+$t.p.id+" .ui-jqgrid-bdiv").height()});
+				$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);
+				if(opts._stop_) { opts._stop_.call($t,ev,ui); }
+			};
+			if(opts._alsoResize_) {
+				var optstest = "{\'#gview_"+$t.p.id+" .ui-jqgrid-bdiv\':true,'" +opts._alsoResize_+"':true}";
+				opts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this
+			} else {
+				opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+$t.p.id);
+			}
+			delete opts._alsoResize_;
+			$("#gbox_"+$t.p.id).resizable(opts);
+		});
+	}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js	(revision 178)
@@ -0,0 +1,249 @@
+;(function($){
+/**
+ * jqGrid extension for manipulating Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+//Editing
+	editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
+		return this.each(function(){
+			var $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm;
+			if (!$t.grid ) { return; }
+			ind = $($t).jqGrid("getInd",rowid,true);
+			if( ind === false ) {return;}
+			editable = $(ind).attr("editable") || "0";
+			if (editable == "0" && !$(ind).hasClass("not-editable-row")) {
+				cm = $t.p.colModel;
+				$('td',ind).each( function(i) {
+					nm = cm[i].name;
+					var treeg = $t.p.treeGrid===true && nm == $t.p.ExpandColumn;
+					if(treeg) { tmp = $("span:first",this).html();}
+					else {
+						try {
+							tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
+						} catch (_) {
+							tmp = $(this).html();
+						}
+					}
+					if ( nm != 'cb' && nm != 'subgrid' && nm != 'rn') {
+						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+						svr[nm]=tmp;
+						if(cm[i].editable===true) {
+							if(focus===null) { focus = i; }
+							if (treeg) { $("span:first",this).html(""); }
+							else { $(this).html(""); }
+							var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm});
+							if(!cm[i].edittype) { cm[i].edittype = "text"; }
+							var elc = createEl(cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
+							$(elc).addClass("editable");
+							if(treeg) { $("span:first",this).append(elc); }
+							else { $(this).append(elc); }
+							//Again IE
+							if(cm[i].edittype == "select" && cm[i].editoptions.multiple===true && $.browser.msie) {
+								$(elc).width($(elc).width());
+							}
+							cnt++;
+						}
+					}
+				});
+				if(cnt > 0) {
+					svr.id = rowid; $t.p.savedRow.push(svr);
+					$(ind).attr("editable","1");
+					$("td:eq("+focus+") input",ind).focus();
+					if(keys===true) {
+						$(ind).bind("keydown",function(e) {
+							if (e.keyCode === 27) {$($t).jqGrid("restoreRow",rowid, afterrestorefunc);}
+							if (e.keyCode === 13) {
+								var ta = e.target;
+								if(ta.tagName == 'TEXTAREA') { return true; }
+								$($t).jqGrid("saveRow",rowid,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc );
+								return false;
+							}
+							e.stopPropagation();
+						});
+					}
+					if( $.isFunction(oneditfunc)) { oneditfunc(rowid); }
+				}
+			}
+		});
+	},
+	saveRow : function(rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
+		return this.each(function(){
+		var $t = this, nm, tmp={}, tmp2={}, editable, fr, cv, ind;
+		if (!$t.grid ) { return; }
+		ind = $($t).jqGrid("getInd",rowid,true);
+		if(ind === false) {return;}
+		editable = $(ind).attr("editable");
+		url = url ? url : $t.p.editurl;
+		if (editable==="1") {
+			var cm;
+			$("td",ind).each(function(i) {
+				cm = $t.p.colModel[i];
+				nm = cm.name;
+				if ( nm != 'cb' && nm != 'subgrid' && cm.editable===true && nm != 'rn') {
+					switch (cm.edittype) {
+						case "checkbox":
+							var cbv = ["Yes","No"];
+							if(cm.editoptions ) {
+								cbv = cm.editoptions.value.split(":");
+							}
+							tmp[nm]=  $("input",this).attr("checked") ? cbv[0] : cbv[1]; 
+							break;
+						case 'text':
+						case 'password':
+						case 'textarea':
+						case "button" :
+							tmp[nm]=$("input, textarea",this).val();
+							break;
+						case 'select':
+							if(!cm.editoptions.multiple) {
+								tmp[nm] = $("select>option:selected",this).val();
+								tmp2[nm] = $("select>option:selected", this).text();
+							} else {
+								var sel = $("select",this), selectedText = [];
+								tmp[nm] = $(sel).val();
+								if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; }
+								$("select > option:selected",this).each(
+									function(i,selected){
+										selectedText[i] = $(selected).text();
+									}
+								);
+								tmp2[nm] = selectedText.join(",");
+							}
+							if(cm.formatter && cm.formatter == 'select') { tmp2={}; }
+							break;
+						case 'custom' :
+							try {
+								if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
+									tmp[nm] = cm.editoptions.custom_value($(".customelement",this),'get');
+									if (tmp[nm] === undefined) { throw "e2"; }
+								} else { throw "e1"; }
+							} catch (e) {
+								if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
+								if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
+								else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+							}
+							break;
+					}
+					cv = checkValues(tmp[nm],i,$t);
+					if(cv[0] === false) {
+						cv[1] = tmp[nm] + " " + cv[1];
+						return false;
+					}
+					if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }
+				}
+			});
+			if (cv[0] === false){
+				try {
+					var positions = findPos($("#"+rowid)[0]);
+					info_dialog($.jgrid.errors.errcap,cv[1],$.jgrid.edit.bClose,{left:positions[0],top:positions[1]});
+				} catch (e) {
+					alert(cv[1]);
+				}
+				return;
+			}
+			if(tmp) {
+				var idname, opers, oper;
+				opers = $t.p.prmNames;
+				oper = opers.oper;
+				idname = opers.id;
+				tmp[oper] = opers.editoper;
+				tmp[idname] = rowid;
+				if(typeof($t.p.inlineData) == 'undefined') { $t.p.inlineData ={}; }
+				if(typeof(extraparam) == 'undefined') { extraparam ={}; }
+				tmp = $.extend({},tmp,$t.p.inlineData,extraparam);
+			}
+			if (url == 'clientArray') {
+				tmp = $.extend({},tmp, tmp2);
+				if($t.p.autoencode) {
+					$.each(tmp,function(n,v){
+						tmp[n] = $.jgrid.htmlDecode(v);
+					});
+				}
+				var resp = $($t).jqGrid("setRowData",rowid,tmp);
+				$(ind).attr("editable","0");
+				for( var k=0;k<$t.p.savedRow.length;k++) {
+					if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
+				}
+				if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
+				if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,resp); }
+			} else {
+				$("#lui_"+$t.p.id).show();
+				$.ajax($.extend({
+					url:url,
+					data: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData(tmp) : tmp,
+					type: "POST",
+					complete: function(res,stat){
+						$("#lui_"+$t.p.id).hide();
+						if (stat === "success"){
+							var ret;
+							if( $.isFunction(succesfunc)) { ret = succesfunc(res);}
+							else { ret = true; }
+							if (ret===true) {
+								if($t.p.autoencode) {
+									$.each(tmp,function(n,v){
+										tmp[n] = $.jgrid.htmlDecode(v);
+									});
+								}
+								tmp = $.extend({},tmp, tmp2);
+								$($t).jqGrid("setRowData",rowid,tmp);
+								$(ind).attr("editable","0");
+								for( var k=0;k<$t.p.savedRow.length;k++) {
+									if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
+								}
+								if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
+								if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,res); }
+							} else { $($t).jqGrid("restoreRow",rowid, afterrestorefunc); }
+						}
+					},
+					error:function(res,stat){
+						$("#lui_"+$t.p.id).hide();
+						if($.isFunction(errorfunc) ) {
+							errorfunc(rowid, res, stat);
+						} else {
+							alert("Error Row: "+rowid+" Result: " +res.status+":"+res.statusText+" Status: "+stat);
+						}
+					}
+				}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));
+			}
+			$(ind).unbind("keydown");
+		}
+		});
+	},
+	restoreRow : function(rowid, afterrestorefunc) {
+		return this.each(function(){
+			var $t= this, fr, ind, ares={};
+			if (!$t.grid ) { return; }
+			ind = $($t).jqGrid("getInd",rowid,true);
+			if(ind === false) {return;}
+			for( var k=0;k<$t.p.savedRow.length;k++) {
+				if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
+			}
+			if(fr >= 0) {
+				if($.isFunction($.fn.datepicker)) {
+					try {
+						$("input.hasDatepicker","#"+ind.id).datepicker('hide');
+					} catch (e) {}
+				}
+				$.each($t.p.colModel, function(i,n){
+					if(this.editable === true && this.name in $t.p.savedRow[fr]) {
+						ares[this.name] = $t.p.savedRow[fr][this.name];
+					}
+				});
+				$($t).jqGrid("setRowData",rowid,ares);
+				$(ind).attr("editable","0").unbind("keydown");
+				$t.p.savedRow.splice(fr,1);
+			}
+			if ($.isFunction(afterrestorefunc))
+			{
+				afterrestorefunc(rowid);
+			}
+		});
+	}
+//end inline edit
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js	(revision 178)
@@ -0,0 +1,125 @@
+;(function($){
+/**
+ * jqGrid Portuguese Translation
+* Tradu��o da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "A carregar...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Busca...",
+	    Find: "Procurar",
+	    Reset: "Limpar",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Adicionar Registo",
+	    editCaption: "Modificar Registo",
+	    bSubmit: "Submeter",
+	    bCancel: "Cancelar",
+		bClose: "Fechar",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Campo obrigat�rio",
+	        number:"Por favor, introduza um numero",
+	        minValue:"O valor deve ser maior ou igual que",
+	        maxValue:"O valor deve ser menor ou igual a",
+	        email: "N�o � um endere�o de email v�lido",
+	        integer: "Por favor, introduza um numero inteiro",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Eliminar",
+	    msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?",
+	    bSubmit: "Eliminar",
+	    bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Modificar registo seleccionado",
+		addtext:" ",
+	    addtitle: "Adicionar novo registo",
+	    deltext: " ",
+	    deltitle: "Eliminar registo seleccionado",
+	    searchtext: " ",
+	    searchtitle: "Procurar",
+	    refreshtext: "",
+	    refreshtitle: "Actualizar",
+	    alertcap: "Aviso",
+	    alerttext: "Por favor, seleccione um registo",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Mostrar/Ocultar Colunas",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar"	
+	},
+	errors : {
+		errcap : "Erro",
+		nourl : "N�o especificou um url",
+		norecords: "N�o existem dados para processar",
+	    model : "Tamanho do colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab",
+				"Domingo", "Segunda-Feira", "Ter�a-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "S�bado"
+			],
+			monthNames: [
+				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
+				"Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Brazilian-Portuguese Translation
+ * Sergio Righi sergio.righi@gmail.com
+ * http://curve.com.br
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Ver {0} - {1} of {2}",
+	    emptyrecords: "Nenhum registro para visualizar",
+		loadtext: "Carregando...",
+		pgtext : "Página {0} de {1}"
+	},
+	search : {
+	    caption: "Procurar...",
+	    Find: "Procurar",
+	    Reset: "Resetar",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " iguala",
+		rulesText: " regras"
+	},
+	edit : {
+	    addCaption: "Incluir",
+	    editCaption: "Alterar",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar",
+		bClose: "Fechar",
+		saveData: "Os dados foram alterados! Salvar alterações?",
+		bYes : "Sim",
+		bNo : "Não",
+		bExit : "Cancelar",
+	    msg: {
+	        required:"Campo obrigatório",
+	        number:"Por favor, informe um número válido",
+	        minValue:"valor deve ser igual ou maior que ",
+	        maxValue:"valor deve ser menor ou igual a",
+	        email: "este e-mail não é válido",
+	        integer: "Por favor, informe um valor inteiro",
+			date: "Por favor, informe uma data válida",
+			url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",
+			nodefined : " não está definido!",
+			novalue : " um valor de retorno é obrigatório!",
+			customarray : "Função customizada deve retornar um array!",
+			customfcheck : "Função customizada deve estar presente em caso de validação customizada!"
+		}
+	},
+	view : {
+	    caption: "Ver Registro",
+	    bClose: "Fechar"
+	},
+	del : {
+    caption: "Apagar",
+	    msg: "Apagar registros selecionado(s)?",
+	    bSubmit: "Apagar",
+	    bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Alterar registro selecionado",
+		addtext:" ",
+	    addtitle: "Incluir novo registro",
+	    deltext: " ",
+	    deltitle: "Apagar registro selecionado",
+	    searchtext: " ",
+	    searchtitle: "Procurar registros",
+	    refreshtext: "",
+	    refreshtitle: "Recarrgando Tabela",
+	    alertcap: "Aviso",
+	    alerttext: "Por favor, selecione um registro",
+		viewtext: "",
+		viewtitle: "Ver linha selecionada"
+	},
+	col : {
+	    caption: "Mostrar/Esconder Colunas",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar"
+	},
+	errors : {
+		errcap : "Erro",
+		nourl : "Nenhuma URL defenida",
+		norecords: "Sem registros para exibir",
+	    model : "Comprimento de colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb",
+				"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"
+			],
+			monthNames: [
+				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
+				"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid Turkish Translation
+ * Erhan Gündoğan (erhan@trposta.net)
+ * http://blog.zakkum.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0}-{1} listeleniyor. Toplam:{2}",
+	    emptyrecords: "Kayıt bulunamadı",
+		loadtext: "Yükleniyor...",
+		pgtext : "{0}/{1}. Sayfa"
+	},
+	search : {
+	    caption: "Arama...",
+	    Find: "Bul",
+	    Reset: "Temizle",	    
+	    odata : ['eşit', 'eşit değil', 'daha az', 'daha az veya eşit', 'daha fazla', 'daha fazla veya eşit', 'ile başlayan', 'ile başlamayan', 'içinde', 'içinde değil', 'ile biten', 'ile bitmeyen', 'içeren', 'içermeyen'],
+	    groupOps: [	{ op: "VE", text: "tüm" },	{ op: "VEYA",  text: "herhangi" }	],
+		matchText: " uyan",
+		rulesText: " kurallar"
+	},
+	edit : {
+	    addCaption: "Kayıt Ekle",
+	    editCaption: "Kayıt Düzenle",
+	    bSubmit: "Gönder",
+	    bCancel: "İptal",
+		bClose: "Kapat",
+		saveData: "Veriler değişti! Kayıt edilsin mi?",
+		bYes : "Evet",
+		bNo : "Hayıt",
+		bExit : "İptal",
+	    msg: {
+	        required:"Alan gerekli",
+	        number:"Lütfen bir numara giriniz",
+	        minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",
+	        maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",
+	        email: "geçerli bir e-posta adresi değildir",
+	        integer: "Lütfen bir tamsayı giriniz",
+			url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Kayıt Görüntüle",
+	    bClose: "Kapat"
+	},
+	del : {
+	    caption: "Sil",
+	    msg: "Seçilen kayıtlar silinsin mi?",
+	    bSubmit: "Sil",
+	    bCancel: "İptal"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Seçili satırı düzenle",
+		addtext:" ",
+	    addtitle: "Yeni satır ekle",
+	    deltext: " ",
+	    deltitle: "Seçili satırı sil",
+	    searchtext: " ",
+	    searchtitle: "Kayıtları bul",
+	    refreshtext: "",
+	    refreshtitle: "Tabloyu yenile",
+	    alertcap: "Uyarı",
+	    alerttext: "Lütfen bir satır seçiniz",
+		viewtext: "",
+		viewtitle: "Seçilen satırı görüntüle"
+	},
+	col : {
+	    caption: "Sütunları göster/gizle",
+	    bSubmit: "Gönder",
+	    bCancel: "İptal"	
+	},
+	errors : {
+		errcap : "Hata",
+		nourl : "Bir url yapılandırılmamış",
+		norecords: "İşlem yapılacak bir kayıt yok",
+	    model : "colNames uzunluğu <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts",
+				"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"
+			],
+			monthNames: [
+				"Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara",
+				"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)
+ * Sergey Dyagovchenko
+ * http://d.sumy.ua
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Просмотр {0} - {1} из {2}",
+	  emptyrecords: "Нет записей для просмотра",
+		loadtext: "Загрузка...",
+		pgtext : "Стр. {0} из {1}"
+	},
+	search : {
+    caption: "Поиск...",
+    Find: "Найти",
+    Reset: "Сброс",
+    odata : ['равно', 'не равно', 'меньше', 'меньше или равно','больше','больше или равно', 'начинается с','не начинается с','находится в','не находится в','заканчивается на','не заканчивается на','содержит','не содержит'],
+    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "любой" }	],
+    matchText: " совпадает",
+    rulesText: " правила"
+	},
+	edit : {
+    addCaption: "Добавить запись",
+    editCaption: "Редактировать запись",
+    bSubmit: "Сохранить",
+    bCancel: "Отмена",
+		bClose: "Закрыть",
+		saveData: "Данные были измененны! Сохранить изменения?",
+		bYes : "Да",
+		bNo : "Нет",
+		bExit : "Отмена",
+	    msg: {
+        required:"Поле является обязательным",
+        number:"Пожалуйста, введите правильное число",
+        minValue:"значение должно быть больше либо равно",
+        maxValue:"значение должно быть меньше либо равно",
+        email: "некорректное значение e-mail",
+        integer: "Пожалуйста, введите целое число",
+        date: "Пожалуйста, введите правильную дату",
+        url: "неверная ссылка. Необходимо ввести префикс ('http://' or 'https://')",
+		nodefined : " is not defined!",
+		novalue : " return value is required!",
+		customarray : "Custom function should return array!",
+		customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Просмотр записи",
+	    bClose: "Закрыть"
+	},
+	del : {
+	    caption: "Удалить",
+	    msg: "Удалить выбранную запись(и)?",
+	    bSubmit: "Удалить",
+	    bCancel: "Отмена"
+	},
+	nav : {
+  		edittext: " ",
+	    edittitle: "Редактировать выбранную запись",
+  		addtext:" ",
+	    addtitle: "Добавить новую запись",
+	    deltext: " ",
+	    deltitle: "Удалить выбранную запись",
+	    searchtext: " ",
+	    searchtitle: "Найти записи",
+	    refreshtext: "",
+	    refreshtitle: "Обновить таблицу",
+	    alertcap: "Внимание",
+	    alerttext: "Пожалуйста, выберите запись",
+  		viewtext: "",
+  		viewtitle: "Просмотреть выбранную запись"
+	},
+	col : {
+	    caption: "Показать/скрыть столбцы",
+	    bSubmit: "Сохранить",
+	    bCancel: "Отмена"	
+	},
+	errors : {
+		errcap : "Ошибка",
+		nourl : "URL не установлен",
+		norecords: "Нет записей для обработки",
+    model : "Число полей не соответствует числу столбцов таблицы!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
+				"Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"
+			],
+			monthNames: [
+				"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек",
+				"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd.m.Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n.j.Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y G:i:s",
+	            MonthDay: "F d",
+	            ShortTime: "G:i",
+	            LongTime: "G:i:s",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	  target: '',
+	  checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js	(revision 178)
@@ -0,0 +1,125 @@
+﻿;(function($){
+/**
+ * jqGrid Persian Translation
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "بارگزاري...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "جستجو...",
+	    Find: "يافته ها",
+	    Reset: "نتايج",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "اضافه کردن رکورد",
+	    editCaption: "ويرايش رکورد",
+	    bSubmit: "ثبت",
+	    bCancel: "انصراف",
+		bClose: "بستن",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"فيلدها بايد ختما پر شوند",
+	        number:"لطفا عدد وعتبر وارد کنيد",
+	        minValue:"مقدار وارد شده بايد بزرگتر يا مساوي با",
+	        maxValue:"مقدار وارد شده بايد کوچکتر يا مساوي",
+	        email: "پست الکترونيک وارد شده معتبر نيست",
+	        integer: "لطفا يک عدد صحيح وارد کنيد",
+			date: "لطفا يک تاريخ معتبر وارد کنيد",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "حذف",
+	    msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",
+	    bSubmit: "حذف",
+	    bCancel: "ابطال"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "ويرايش رديف هاي انتخاب شده",
+		addtext:" ",
+	    addtitle: "افزودن رديف جديد",
+	    deltext: " ",
+	    deltitle: "حذف ردبف هاي انتخاب شده",
+	    searchtext: " ",
+	    searchtitle: "جستجوي رديف",
+	    refreshtext: "",
+	    refreshtitle: "بازيابي مجدد صفحه",
+	    alertcap: "اخطار",
+	    alerttext: "لطفا يک رديف انتخاب کنيد",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "نمايش/عدم نمايش ستون",
+	    bSubmit: "ثبت",
+	    bCancel: "انصراف"	
+	},
+	errors : {
+		errcap : "خطا",
+		nourl : "هيچ آدرسي تنظيم نشده است",
+		norecords: "هيچ رکوردي براي پردازش موجود نيست",
+	    model : "طول نام ستون ها محالف ستون هاي مدل مي باشد!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب",
+				"يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"
+			],
+			AmPm : ["ب.ظ","ب.ظ","ق.ظ","ق.ظ"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: 'نمايش',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Swedish Translation
+ * Harald Normann harald.normann@wts.se, harald.normann@gmail.com
+ * http://www.worldteamsoftware.com 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Visar {0} - {1} av {2}",
+		emptyrecords: "Det finns inga poster att visa",
+		loadtext: "Laddar...",
+		pgtext : "Sida {0} av {1}"
+	},
+	search : {
+		caption: "Sök Poster - Ange sökvillkor",
+		Find: "Sök",
+		Reset: "Nollställ Villkor",
+		odata : ['lika', 'ej lika', 'mindre', 'mindre eller lika','större','större eller lika', 'börjar med','börjar inte med','tillhör','tillhör inte','slutar med','slutar inte med','innehåller','innehåller inte'],
+		groupOps: [	{ op: "AND", text: "alla" },	{ op: "OR",  text: "eller" }	],
+		matchText: " träff",
+		rulesText: " regler"
+	},
+	edit : {
+		addCaption: "Ny Post",
+		editCaption: "Redigera Post",
+		bSubmit: "Spara",
+		bCancel: "Avbryt",
+		bClose: "Stäng",
+		saveData: "Data har ändrats! Spara förändringar?",
+		bYes : "Ja",
+		bNo : "Nej",
+		bExit : "Avbryt",
+		msg: {
+	        required:"Fältet är obligatoriskt",
+	        number:"Välj korrekt nummer",
+	        minValue:"värdet måste vara större än eller lika med",
+	        maxValue:"värdet måste vara mindre än eller lika med",
+	        email: "är inte korrekt e-post adress",
+	        integer: "Var god ange korrekt heltal",
+	        date: "Var god ange korrekt datum",
+	        url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",
+	        nodefined : " är inte definierad!",
+	        novalue : " returvärde måste anges!",
+	        customarray : "Custom funktion måste returnera en vektor!",
+			customfcheck : "Custom funktion måste finnas om Custom kontroll sker!"
+		}
+	},
+	view : {
+		caption: "Visa Post",
+		bClose: "Stäng"
+	},
+	del : {
+		caption: "Radera",
+		msg: "Radera markerad(e) post(er)?",
+		bSubmit: "Radera",
+		bCancel: "Avbryt"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "Redigera markerad rad",
+		addtext:"",
+		addtitle: "Skapa ny post",
+		deltext: "",
+		deltitle: "Radera markerad rad",
+		searchtext: "",
+		searchtitle: "Sök poster",
+		refreshtext: "",
+		refreshtitle: "Uppdatera data",
+		alertcap: "Varning",
+		alerttext: "Ingen rad är markerad",
+		viewtext: "",
+		viewtitle: "Visa markerad rad"
+	},
+	col : {
+		caption: "Välj Kolumner",
+		bSubmit: "OK",
+		bCancel: "Avbryt"
+	},
+	errors : {
+		errcap : "Fel",
+		nourl : "URL saknas",
+		norecords: "Det finns inga poster att bearbeta",
+		model : "Antal colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör",
+				"Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
+				"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
+			],
+			AmPm : ["fm","em","FM","EM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'Y-m-d',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate:  "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js	(revision 178)
@@ -0,0 +1,132 @@
+;(function($){
+/**
+ * jqGrid Bulgarian Translation 
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1} от {2}",
+		emptyrecords: "Няма запис(и)",
+		loadtext: "Зареждам...",
+		pgtext : "Стр. {0} от {1}"
+	},
+	search : {
+		caption: "Търсене...",
+		Find: "Намери",
+		Reset: "Изчисти",
+		odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ],
+	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
+		matchText: " включи",
+		rulesText: " клауза"
+	},
+	edit : {
+		addCaption: "Нов Запис",
+		editCaption: "Редакция Запис",
+		bSubmit: "Запиши",
+		bCancel: "Изход",
+		bClose: "Затвори",
+		saveData: "Данните са променени! Да съхраня ли промените?",
+		bYes : "Да",
+		bNo : "Не",
+		bExit : "Отказ",
+		msg: {
+			required:"Полето е задължително",
+			number:"Въведете валидно число!",
+			minValue:"стойността трябва да е по-голяма или равна от",
+			maxValue:"стойността трябва да е по-малка или равна от",
+			email: "не е валиден ел. адрес",
+			integer: "Въведете валидно цяло число",
+			date: "Въведете валидна дата",
+			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
+			nodefined : " е недефинирана!",
+			novalue : " изисква връщане на стойност!",
+			customarray : "Потреб. Функция трябва да върне масив!",
+			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
+		}
+	},
+	view : {
+		caption: "Преглед запис",
+		bClose: "Затвори"
+	},
+	del : {
+		caption: "Изтриване",
+		msg: "Да изтрия ли избраният запис?",
+		bSubmit: "Изтрий",
+		bCancel: "Отказ"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Редакция избран запис",
+		addtext:" ",
+		addtitle: "Добавяне нов запис",
+		deltext: " ",
+		deltitle: "Изтриване избран запис",
+		searchtext: " ",
+		searchtitle: "Търсене запис(и)",
+		refreshtext: "",
+		refreshtitle: "Обнови таблица",
+		alertcap: "Предупреждение",
+		alerttext: "Моля, изберете запис",
+		viewtext: "",
+		viewtitle: "Преглед избран запис"
+	},
+	col : {
+		caption: "Избери колони",
+		bSubmit: "Ок",
+		bCancel: "Изход"	
+	},
+	errors : {
+		errcap : "Грешка",
+		nourl : "Няма посочен url адрес",
+		norecords: "Няма запис за обработка",
+		model : "Модела не съответства на имената!"	
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
+				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
+			],
+			monthNames: [
+				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
+				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {
+				if(j==7 || j==8 || j== 27 || j== 28) {
+					return 'ми';
+				}
+				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
+			},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid German Translation
+ * Version 1.0.0 (developed for jQuery Grid 3.3.1)
+ * Olaf Klöppel opensource@blue-hit.de
+ * http://blue-hit.de/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Zeige {0} - {1} von {2}",
+	    emptyrecords: "Keine Datensätze vorhanden",
+		loadtext: "Lädt...",
+		pgtext : "Seite {0} von {1}"
+	},
+	search : {
+		caption: "Suche...",
+		Find: "Finden",
+		Reset: "Zurücksetzen",
+	    odata : ['gleich', 'ungleich', 'kleiner', 'kleiner gleich','größer','größer gleich', 'beginnt mit','beginnt nicht mit','ist in','ist nicht in','endet mit','endet nicht mit','enthält','enthält nicht'],
+	    groupOps: [	{ op: "AND", text: "alle" },	{ op: "OR",  text: "mindestens eins" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+		addCaption: "Datensatz hinzufügen",
+		editCaption: "Datensatz bearbeiten",
+		bSubmit: "Speichern",
+		bCancel: "Abbrechen",
+		bClose: "Schließen",
+		saveData: "Daten wurden geändert! Änderungen speichern?",
+		bYes : "ja",
+		bNo : "nein",
+		bExit : "abbrechen",
+		msg: {
+		    required:"Feld ist erforderlich",
+		    number: "Bitte geben Sie eine Zahl ein",
+		    minValue:"Wert muss größer oder gleich sein, als ",
+		    maxValue:"Wert muss kleiner oder gleich sein, als ",
+		    email: "ist keine valide E-Mail Adresse",
+		    integer: "Bitte geben Sie eine Ganzzahl ein",
+			date: "Bitte geben Sie ein gültiges Datum ein",
+			url: "ist keine gültige URL. Prefix muss eingegeben werden ('http://' oder 'https://')",
+			nodefined : " ist nicht definiert!",
+			novalue : " Rückgabewert ist erforderlich!",
+			customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!",
+			customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"
+		}
+	},
+	view : {
+	    caption: "Datensatz anschauen",
+	    bClose: "Schließen"
+	},
+	del : {
+		caption: "Löschen",
+		msg: "Ausgewählte Datensätze löschen?",
+		bSubmit: "Löschen",
+		bCancel: "Abbrechen"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Ausgewählten Zeile editieren",
+		addtext:" ",
+	    addtitle: "Neuen Zeile einfügen",
+	    deltext: " ",
+	    deltitle: "Ausgewählte Zeile löschen",
+	    searchtext: " ",
+	    searchtitle: "Datensatz finden",
+	    refreshtext: "",
+	    refreshtitle: "Tabelle neu laden",
+	    alertcap: "Warnung",
+	    alerttext: "Bitte Zeile auswählen",
+		viewtext: "",
+		viewtitle: "Ausgewählte Zeile anzeigen"
+	},
+	col : {
+		caption: "Spalten anzeigen/verbergen",
+		bSubmit: "Speichern",
+		bCancel: "Abbrechen"	
+	},
+	errors : {
+		errcap : "Fehler",
+		nourl : "Keine URL angegeben",
+		norecords: "Keine Datensätze zum verarbeiten",
+		model : "colNames und colModel sind unterschiedlich lang!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa",
+				"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez",
+				"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"d.m.Y H:i:s",
+		        ISO8601Short:"d.m.Y",
+		        ShortDate: "j.n.Y",
+		        LongDate: "l, d. F Y",
+		        FullDateTime: "l, d. F Y G:i:s",
+		        MonthDay: "d. F",
+		        ShortTime: "G:i",
+		        LongTime: "G:i:s",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js	(revision 178)
@@ -0,0 +1,155 @@
+;(function($){
+/**
+ * jqGrid Japanese Translation
+ * OKADA Yoshitada okada.dev@sth.jp
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ",
+	    emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
+		loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...",
+		pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE "
+	},
+	search : {
+	    caption: "\u691c\u7d22...",
+	    Find: "\u691c\u7d22",
+	    Reset: "\u30ea\u30bb\u30c3\u30c8",
+	    odata: ["\u6B21\u306B\u7B49\u3057\u3044", "\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044",
+            "\u6B21\u3088\u308A\u5C0F\u3055\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044",
+            "\u6B21\u3088\u308A\u5927\u304D\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044",
+            "\u6B21\u3067\u59CB\u307E\u308B", "\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044",
+            "\u6B21\u306B\u542B\u307E\u308C\u308B", "\u6B21\u306B\u542B\u307E\u308C\u306A\u3044",
+            "\u6B21\u3067\u7D42\u308F\u308B", "\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044",
+            "\u6B21\u3092\u542B\u3080", "\u6B21\u3092\u542B\u307E\u306A\u3044"],
+	    groupOps: [{
+                op: "AND",
+                text: "\u3059\u3079\u3066\u306E"
+            },
+            {
+                op: "OR",
+                text: "\u3044\u305A\u308C\u304B\u306E"
+            }],
+      matchText: " \u6B21\u306E",
+      rulesText: " \u6761\u4EF6\u3092\u6E80\u305F\u3059"
+	},
+	edit : {
+	    addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
+	    editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6",
+	    bSubmit: "\u9001\u4fe1",
+	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb",
+  		bClose: "\u9589\u3058\u308b",
+      saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
+      bYes: "\u306F\u3044",
+      bNo: "\u3044\u3044\u3048",
+      bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB",
+	    msg: {
+	        required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002",
+	        number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+	        minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+	        maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+	        email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
+	        integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+    			date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
+          url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\20\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')",
+          nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
+          novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059",
+          customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
+          customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059"
+		}
+	},
+	view : {
+      caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A",
+      bClose: "\u9589\u3058\u308B"
+	},
+	del : {
+	    caption: "\u524a\u9664",
+	    msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f",
+	    bSubmit: "\u524a\u9664",
+	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
+	},
+	nav : {
+    	edittext: " ",
+	    edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6",
+      addtext:" ",
+	    addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0",
+	    deltext: " ",
+	    deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664",
+	    searchtext: " ",
+	    searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22",
+	    refreshtext: "",
+	    refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9",
+	    alertcap: "\u8b66\u544a",
+	    alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002",
+      viewtext: "",
+      viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A"
+	},
+	col : {
+	    caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059",
+	    bSubmit: "\u9001\u4fe1",
+	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"	
+	},
+	errors : {
+		errcap : "\u30a8\u30e9\u30fc",
+		nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
+		norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002",
+	    model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"
+	},
+	formatter : {
+            integer: {
+                thousandsSeparator: ",",
+                defaultValue: '0'
+            },
+            number: {
+                decimalSeparator: ".",
+                thousandsSeparator: ",",
+                decimalPlaces: 2,
+                defaultValue: '0.00'
+            },
+            currency: {
+                decimalSeparator: ".",
+                thousandsSeparator: ",",
+                decimalPlaces: 0,
+                prefix: "",
+                suffix: "",
+                defaultValue: '0'
+            },
+		date : {
+			dayNames:   [
+				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f",
+				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"
+			],
+			monthNames: [
+				"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
+				"1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: "\u756a\u76ee",
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Hebrew Translation
+ * Shuki Shukrun shukrun.shuki@gmail.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "מציג {0} - {1} מתוך {2}",
+		emptyrecords: "אין רשומות להציג",
+		loadtext: "טוען...",
+		pgtext : "דף {0} מתוך {1}"
+	},
+	search : {
+		caption: "מחפש...",
+		Find: "חפש",
+		Reset: "התחל",
+		odata : ['שווה', 'לא שווה', 'קטן', 'קטן או שווה','גדול','גדול או שווה', 'מתחיל ב','לא מתחיל ב','נמצא ב','לא נמצא ב','מסתיים ב','לא מסתיים ב','מכיל','לא מכיל'],
+		groupOps: [	{ op: "AND", text: "הכל" },	{ op: "OR",  text: "אחד מ" }	],
+		matchText: " תואם",
+		rulesText: " חוקים"
+	},
+	edit : {
+		addCaption: "הוסף רשומה",
+		editCaption: "ערוך רשומה",
+		bSubmit: "שלח",
+		bCancel: "בטל",
+		bClose: "סגור",
+		saveData: "נתונים השתנו! לשמור?",
+		bYes : "כן",
+		bNo : "לא",
+		bExit : "בטל",
+		msg: {
+			required:"שדה חובה",
+			number:"אנא, הכנס מספר תקין",
+			minValue:"ערך צריך להיות גדול או שווה ל ",
+			maxValue:"ערך צריך להיות קטן או שווה ל ",
+			email: "היא לא כתובת איימל תקינה",
+			integer: "אנא, הכנס מספר שלם",
+			date: "אנא, הכנס תאריך תקין",
+			url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+		caption: "הצג רשומה",
+		bClose: "סגור"
+	},
+	del : {
+		caption: "מחק",
+		msg: "האם למחוק את הרשומה/ות המסומנות?",
+		bSubmit: "מחק",
+		bCancel: "בטל"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "ערוך שורה מסומנת",
+		addtext:"",
+		addtitle: "הוסף שורה חדשה",
+		deltext: "",
+		deltitle: "מחק שורה מסומנת",
+		searchtext: "",
+		searchtitle: "חפש רשומות",
+		refreshtext: "",
+		refreshtitle: "טען גריד מחדש",
+		alertcap: "אזהרה",
+		alerttext: "אנא, בחר שורה",
+		viewtext: "",
+		viewtitle: "הצג שורה מסומנת"
+	},
+	col : {
+		caption: "הצג/הסתר עמודות",
+		bSubmit: "שלח",
+		bCancel: "בטל"
+	},
+	errors : {
+		errcap : "שגיאה",
+		nourl : "לא הוגדרה כתובת url",
+		norecords: "אין רשומות לעבד",
+		model : "אורך של colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"א", "ב", "ג", "ד", "ה", "ו", "ש",
+				"ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"
+			],
+			monthNames: [
+				"ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ",
+				"ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"
+			],
+			AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],
+			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid (fi) Finnish Translation
+ * Jukka Inkeri  awot.fi
+ * http://awot.fi
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Haetaan...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Etsi...",
+	    Find: "Etsi",
+	    Reset: "Tyhj&auml;&auml;",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Uusi rivi",
+	    editCaption: "Muokkaa rivi",
+	    bSubmit: "OK",
+	    bCancel: "Peru",
+		bClose: "Sulje",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"pakollinen",
+	        number:"Anna kelvollinen nro",
+	        minValue:"arvo oltava >= ",
+	        maxValue:"arvo oltava  <= ",
+	        email: "virheellinen sposti ",
+	        integer: "Anna kelvollinen kokonaisluku",
+			date: "Anna kelvollinen pvm",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Poista",
+	    msg: "Poista valitut  rivi(t)?",
+	    bSubmit: "Poista",
+	    bCancel: "Peru"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Muokkaa valittu rivi",
+		addtext:" ",
+	    addtitle: "Uusi rivi",
+	    deltext: " ",
+	    deltitle: "Poista valittu rivi",
+	    searchtext: " ",
+	    searchtitle: "Etsi tietoja",
+	    refreshtext: "",
+	    refreshtitle: "Lataa uudelleen",
+	    alertcap: "Varoitus",
+	    alerttext: "Valitse rivi",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Nayta/Piilota sarakkeet",
+	    bSubmit: "OK",
+	    bCancel: "Peru"	
+	},
+	errors : {
+		errcap : "Virhe",
+		nourl : "url asettamatta",
+		norecords: "Ei muokattavia tietoja",
+	    model : "Pituus colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: "", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Su", "Ma", "Ti", "Ke", "To", "Pe", "La",
+				"Sunnuntai", "Maanantai", "Tiista", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"
+			],
+			monthNames: [
+				"Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou",
+				"Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "d.m.Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+// FI
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Danish Translation
+ * Kaare Rasmussen kjs@jasonic.dk
+ * http://jasonic.dk/blog 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Loading...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Søg...",
+	    Find: "Find",
+	    Reset: "Nulstil",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Tilføj",
+	    editCaption: "Ret",
+	    bSubmit: "Send",
+	    bCancel: "Annuller",
+		bClose: "Luk",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Felt er nødvendigt",
+	        number:"Indtast venligst et validt tal",
+	        minValue:"værdi skal være større end eller lig med",
+	        maxValue:"værdi skal være mindre end eller lig med",
+	        email: "er ikke en valid email",
+	        integer: "Indtast venligst et validt heltalt",
+			date: "Indtast venligst en valid datoværdi",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Slet",
+	    msg: "Slet valgte række(r)?",
+	    bSubmit: "Slet",
+	    bCancel: "Annuller"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Rediger valgte række",
+		addtext:" ",
+	    addtitle: "Tilføj ny række",
+	    deltext: " ",
+	    deltitle: "Slet valgte række",
+	    searchtext: " ",
+	    searchtitle: "Find poster",
+	    refreshtext: "",
+	    refreshtitle: "Indlæs igen",
+	    alertcap: "Advarsel",
+	    alerttext: "Vælg venligst række",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Vis/skjul kolonner",
+	    bSubmit: "Send",
+	    bCancel: "Annuller"
+	},
+	errors : {
+		errcap : "Fejl",
+		nourl : "Ingel url valgt",
+		norecords: "Ingen poster at behandle",
+	    model : "colNames og colModel har ikke samme længde!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør",
+				"Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
+				"Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {return '.'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "j/n/Y",
+	            LongDate: "l d. F Y",
+	            FullDateTime: "l d F Y G:i:s",
+	            MonthDay: "d. F",
+	            ShortTime: "G:i",
+	            LongTime: "G:i:s",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+// DK
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid Greek (el) Translation
+ * Alex Cicovic
+ * http://www.alexcicovic.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Φόρτωση...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Αναζήτηση...",
+	    Find: "Εύρεση",
+	    Reset: "Επαναφορά",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Εισαγωγή Εγγραφής",
+	    editCaption: "Επεξεργασία Εγγραφής",
+	    bSubmit: "Καταχώρηση",
+	    bCancel: "Άκυρο",
+		bClose: "Κλείσιμο",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Το πεδίο είναι απαραίτητο",
+	        number:"Το πεδίο δέχεται μόνο αριθμούς",
+	        minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",
+	        maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",
+	        email: "Η διεύθυνση e-mail δεν είναι έγκυρη",
+	        integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Διαγραφή",
+	    msg: "Διαγραφή των επιλεγμένων εγγραφών;",
+	    bSubmit: "Ναι",
+	    bCancel: "Άκυρο"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Επεξεργασία επιλεγμένης εγγραφής",
+		addtext:" ",
+	    addtitle: "Εισαγωγή νέας εγγραφής",
+	    deltext: " ",
+	    deltitle: "Διαγραφή επιλεγμένης εγγραφής",
+	    searchtext: " ",
+	    searchtitle: "Εύρεση Εγγραφών",
+	    refreshtext: "",
+	    refreshtitle: "Ανανέωση Πίνακα",
+	    alertcap: "Προσοχή",
+	    alerttext: "Δεν έχετε επιλέξει εγγραφή",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Εμφάνιση / Απόκρυψη Στηλών",
+	    bSubmit: "ΟΚ",
+	    bCancel: "Άκυρο"
+	},
+	errors : {
+		errcap : "Σφάλμα",
+		nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",
+		norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία",
+		model : "Άνισος αριθμός πεδίων colNames/colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ",
+				"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"
+			],
+			monthNames: [
+				"Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ",
+				"Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
+			],
+			AmPm : ["πμ","μμ","ΠΜ","ΜΜ"],
+			S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js	(revision 178)
@@ -0,0 +1,132 @@
+;(function($){
+/**
+ * jqGrid Chinese Translation for v3.6
+ * waiting 2010.01.18
+ * http://waiting.javaeye.com/
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ * 
+ * update 2010.05.04
+ *		add double u3000 SPACE for search:odata to fix SEARCH box display err when narrow width from only use of eq/ne/cn/in/lt/gt operator under IE6/7
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1}\u3000共 {2} 条",	// 共字前是全角空格
+		emptyrecords: "无数据显示",
+		loadtext: "读取中...",
+		pgtext : " {0} 共 {1} 页"
+	},
+	search : {
+		caption: "搜索...",
+		Find: "查找",
+		Reset: "重置",
+		odata : ['等于\u3000\u3000', '不等\u3000\u3000', '小于\u3000\u3000', '小于等于','大于\u3000\u3000','大于等于', 
+			'开始于','不开始于','属于\u3000\u3000','不属于','结束于','不结束于','包含\u3000\u3000','不包含'],
+		groupOps: [	{ op: "AND", text: "所有" },	{ op: "OR",  text: "任一" }	],
+		matchText: " 匹配",
+		rulesText: " 规则"
+	},
+	edit : {
+		addCaption: "添加记录",
+		editCaption: "编辑记录",
+		bSubmit: "提交",
+		bCancel: "取消",
+		bClose: "关闭",
+		saveData: "数据已改变，是否保存？",
+		bYes : "是",
+		bNo : "否",
+		bExit : "取消",
+		msg: {
+			required:"此字段必需",
+			number:"请输入有效数字",
+			minValue:"输值必须大于等于 ",
+			maxValue:"输值必须小于等于 ",
+			email: "这不是有效的e-mail地址",
+			integer: "请输入有效整数",
+			date: "请输入有效时间",
+			url: "无效网址。前缀必须为 ('http://' 或 'https://')",
+			nodefined : " 未定义！",
+			novalue : " 需要返回值！",
+			customarray : "自定义函数需要返回数组！",
+			customfcheck : "Custom function should be present in case of custom checking!"
+			
+		}
+	},
+	view : {
+		caption: "查看记录",
+		bClose: "关闭"
+	},
+	del : {
+		caption: "删除",
+		msg: "删除所选记录？",
+		bSubmit: "删除",
+		bCancel: "取消"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "编辑所选记录",
+		addtext:"",
+		addtitle: "添加新记录",
+		deltext: "",
+		deltitle: "删除所选记录",
+		searchtext: "",
+		searchtitle: "查找",
+		refreshtext: "",
+		refreshtitle: "刷新表格",
+		alertcap: "注意",
+		alerttext: "请选择记录",
+		viewtext: "",
+		viewtitle: "查看所选记录"
+	},
+	col : {
+		caption: "选择列",
+		bSubmit: "确定",
+		bCancel: "取消"
+	},
+	errors : {
+		errcap : "错误",
+		nourl : "没有设置url",
+		norecords: "没有要处理的记录",
+		model : "colNames 和 colModel 长度不等！"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+		         "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'm-d-Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "Y/j/n",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js	(revision 178)
@@ -0,0 +1,132 @@
+;(function($){
+/**
+ * jqGrid Bulgarian Translation 
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "{0} - {1} �� {2}",
+		emptyrecords: "���� �����(�)",
+		loadtext: "��������...",
+		pgtext : "���. {0} �� {1}"
+	},
+	search : {
+		caption: "�������...",
+		Find: "������",
+		Reset: "�������",
+		odata : ['�����', '��������', '��-�����', '��-����� ���=','��-������','��-������ ��� =', '������� �','�� ������� �','�� ������ �','�� �� ������ �','�������� �','�� ��������� �','�������', '�� �������' ],
+	    groupOps: [	{ op: "AND", text: " � " },	{ op: "OR",  text: "���" }	],
+		matchText: " ������",
+		rulesText: " ������"
+	},
+	edit : {
+		addCaption: "��� �����",
+		editCaption: "�������� �����",
+		bSubmit: "������",
+		bCancel: "�����",
+		bClose: "�������",
+		saveData: "������� �� ���������! �� ������� �� ���������?",
+		bYes : "��",
+		bNo : "��",
+		bExit : "�����",
+		msg: {
+		    required:"������ � ������������",
+		    number:"�������� ������� �����!",
+		    minValue:"���������� ������ �� � ��-������ ��� ����� ��",
+		    maxValue:"���������� ������ �� � ��-����� ��� ����� ��",
+		    email: "�� � ������� ��. �����",
+		    integer: "�������� ������� ���� �����",
+			date: "�������� ������� ����",
+			url: "e ��������� URL. �������� �� �������('http://' ��� 'https://')",
+			nodefined : " � ������������!",
+			novalue : " ������� ������� �� ��������!",
+			customarray : "������. ������� ������ �� ����� �����!",
+			customfcheck : "������������� ������� � ������������ ��� ���� ��� �������!"
+		}
+	},
+	view : {
+	    caption: "������� �����",
+	    bClose: "�������"
+	},
+	del : {
+		caption: "���������",
+		msg: "�� ������ �� ��������� �����?",
+		bSubmit: "������",
+		bCancel: "�����"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "�������� ������ �����",
+		addtext:" ",
+		addtitle: "�������� ��� �����",
+		deltext: " ",
+		deltitle: "��������� ������ �����",
+		searchtext: " ",
+		searchtitle: "������� �����(�)",
+		refreshtext: "",
+		refreshtitle: "������ �������",
+		alertcap: "��������������",
+		alerttext: "����, �������� �����",
+		viewtext: "",
+		viewtitle: "������� ������ �����"
+	},
+	col : {
+		caption: "����� ������",
+		bSubmit: "��",
+		bCancel: "�����"	
+	},
+	errors : {
+		errcap : "������",
+		nourl : "���� ������� url �����",
+		norecords: "���� ����� �� ���������",
+		model : "������ �� ����������� �� �������!"	
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" ��.", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"���", "���", "��", "��", "���", "���", "���",
+				"������", "����������", "�������", "�����", "���������", "�����", "������"
+			],
+			monthNames: [
+				"���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���",
+				"������", "��������", "����", "�����", "���", "���", "���", "������", "���������", "��������", "�������", "��������"
+			],
+			AmPm : ["","","",""],
+			S: function (j) {
+				if(j==7 || j==8 || j== 27 || j== 28) {
+					return '��';
+				}
+				return ['��', '��', '��'][Math.min((j - 1) % 10, 2)];
+			},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid English Translation
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+		emptyrecords: "No records to view",
+		loadtext: "Loading...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+		caption: "Search...",
+		Find: "Find",
+		Reset: "Reset",
+		odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+		groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+		addCaption: "Add Record",
+		editCaption: "Edit Record",
+		bSubmit: "Submit",
+		bCancel: "Cancel",
+		bClose: "Close",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+		msg: {
+			required:"Field is required",
+			number:"Please, enter valid number",
+			minValue:"value must be greater than or equal to ",
+			maxValue:"value must be less than or equal to",
+			email: "is not a valid e-mail",
+			integer: "Please, enter valid integer value",
+			date: "Please, enter valid date value",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+			
+		}
+	},
+	view : {
+		caption: "View Record",
+		bClose: "Close"
+	},
+	del : {
+		caption: "Delete",
+		msg: "Delete selected record(s)?",
+		bSubmit: "Delete",
+		bCancel: "Cancel"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "Edit selected row",
+		addtext:"",
+		addtitle: "Add new row",
+		deltext: "",
+		deltitle: "Delete selected row",
+		searchtext: "",
+		searchtitle: "Find records",
+		refreshtext: "",
+		refreshtitle: "Reload Grid",
+		alertcap: "Warning",
+		alerttext: "Please, select row",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+		caption: "Select columns",
+		bSubmit: "Ok",
+		bCancel: "Cancel"
+	},
+	errors : {
+		errcap : "Error",
+		nourl : "No url is set",
+		norecords: "No records to process",
+		model : "Length of colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Czech Translation
+ * Pavel Jirak pavel.jirak@jipas.cz
+ * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Zobrazeno {0} - {1} z {2} záznamů",
+	    emptyrecords: "Nenalezeny žádné záznamy",
+		loadtext: "Načítám...",
+		pgtext : "Strana {0} z {1}"
+	},
+	search : {
+		caption: "Vyhledávám...",
+		Find: "Hledat",
+		Reset: "Reset",
+	    odata : ['rovno', 'nerovono', 'menší', 'menší nebo rovno','větší', 'větší nebo rovno', 'začíná s', 'nezačíná s', 'je v', 'není v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
+	    groupOps: [	{ op: "AND", text: "všech" },	{ op: "OR",  text: "některého z" }	],
+		matchText: " hledat podle",
+		rulesText: " pravidel"
+	},
+	edit : {
+		addCaption: "Přidat záznam",
+		editCaption: "Editace záznamu",
+		bSubmit: "Uložit",
+		bCancel: "Storno",
+		bClose: "Zavřít",
+		saveData: "Data byla změněna! Uložit změny?",
+		bYes : "Ano",
+		bNo : "Ne",
+		bExit : "Zrušit",
+		msg: {
+		    required:"Pole je vyžadováno",
+		    number:"Prosím, vložte validní číslo",
+		    minValue:"hodnota musí být větší než nebo rovná ",
+		    maxValue:"hodnota musí být menší než nebo rovná ",
+		    email: "není validní e-mail",
+		    integer: "Prosím, vložte celé číslo",
+			date: "Prosím, vložte validní datum",
+			url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')",
+			nodefined : " není definován!",
+			novalue : " je vyžadována návratová hodnota!",
+			customarray : "Custom function mělá vrátit pole!",
+			customfcheck : "Custom function by měla být přítomna v případě custom checking!"
+		}
+	},
+	view : {
+	    caption: "Zobrazit záznam",
+	    bClose: "Zavřít"
+	},
+	del : {
+		caption: "Smazat",
+		msg: "Smazat vybraný(é) záznam(y)?",
+		bSubmit: "Smazat",
+		bCancel: "Storno"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Editovat vybraný řádek",
+		addtext:" ",
+		addtitle: "Přidat nový řádek",
+		deltext: " ",
+		deltitle: "Smazat vybraný záznam ",
+		searchtext: " ",
+		searchtitle: "Najít záznamy",
+		refreshtext: "",
+		refreshtitle: "Obnovit tabulku",
+		alertcap: "Varování",
+		alerttext: "Prosím, vyberte řádek",
+		viewtext: "",
+		viewtitle: "Zobrazit vybraný řádek"
+	},
+	col : {
+		caption: "Zobrazit/Skrýt sloupce",
+		bSubmit: "Uložit",
+		bCancel: "Storno"	
+	},
+	errors : {
+		errcap : "Chyba",
+		nourl : "Není nastavena url",
+		norecords: "Žádné záznamy ke zpracování",
+		model : "Délka colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Ne", "Po", "Út", "St", "Čt", "Pá", "So",
+				"Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"
+			],
+			monthNames: [
+				"Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro",
+				"Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
+			],
+			AmPm : ["do","od","DO","OD"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Ukrainian Translation v1.0 02.07.2009
+ * Sergey Dyagovchenko
+ * http://d.sumy.ua
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Перегляд {0} - {1} з {2}",
+	  emptyrecords: "Немає записів для перегляду",
+		loadtext: "Завантаження...",
+		pgtext : "Стор. {0} з {1}"
+	},
+	search : {
+    caption: "Пошук...",
+    Find: "Знайти",
+    Reset: "Скидання",
+    odata : ['рівно', 'не рівно', 'менше', 'менше або рівне','більше','більше або рівне', 'починається з','не починається з','знаходиться в','не знаходиться в','закінчується на','не закінчується на','містить','не містить'],
+    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "будь-який" }	],
+    matchText: " збігається",
+    rulesText: " правила"
+	},
+	edit : {
+    addCaption: "Додати запис",
+    editCaption: "Змінити запис",
+    bSubmit: "Зберегти",
+    bCancel: "Відміна",
+		bClose: "Закрити",
+		saveData: "До данних були внесені зміни! Зберегти зміни?",
+		bYes : "Так",
+		bNo : "Ні",
+		bExit : "Відміна",
+	    msg: {
+        required:"Поле є обов'язковим",
+        number:"Будь ласка, введіть правильне число",
+        minValue:"значення повинне бути більше або дорівнює",
+        maxValue:"значення повинно бути менше або дорівнює",
+        email: "некоректна адреса електронної пошти",
+        integer: "Будь ласка, введення дійсне ціле значення",
+        date: "Будь ласка, введення дійсне значення дати",
+        url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')",
+		nodefined : " is not defined!",
+		novalue : " return value is required!",
+		customarray : "Custom function should return array!",
+		customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Переглянути запис",
+	    bClose: "Закрити"
+	},
+	del : {
+	    caption: "Видалити",
+	    msg: "Видалити обраний запис(и)?",
+	    bSubmit: "Видалити",
+	    bCancel: "Відміна"
+	},
+	nav : {
+  		edittext: " ",
+	    edittitle: "Змінити вибраний запис",
+  		addtext:" ",
+	    addtitle: "Додати новий запис",
+	    deltext: " ",
+	    deltitle: "Видалити вибраний запис",
+	    searchtext: " ",
+	    searchtitle: "Знайти записи",
+	    refreshtext: "",
+	    refreshtitle: "Оновити таблицю",
+	    alertcap: "Попередження",
+	    alerttext: "Будь ласка, виберіть запис",
+  		viewtext: "",
+  		viewtitle: "Переглянути обраний запис"
+	},
+	col : {
+	    caption: "Показати/Приховати стовпці",
+	    bSubmit: "Зберегти",
+	    bCancel: "Відміна"
+	},
+	errors : {
+		errcap : "Помилка",
+		nourl : "URL не задан",
+		norecords: "Немає записів для обробки",
+    model : "Число полів не відповідає числу стовпців таблиці!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
+				"Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"
+			],
+			monthNames: [
+				"Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру",
+				"Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd.m.Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n.j.Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y G:i:s",
+	            MonthDay: "F d",
+	            ShortTime: "G:i",
+	            LongTime: "G:i:s",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	  target: '',
+	  checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid French Translation
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Enregistrements {0} - {1} sur {2}",
+		emptyrecords: "Aucun enregistrement à afficher",
+		loadtext: "Chargement...",
+		pgtext : "Page {0} sur {1}"
+	},
+	search : {
+		caption: "Recherche...",
+		Find: "Chercher",
+		Reset: "Annuler",
+		odata : ['égal', 'différent', 'inférieur', 'inférieur ou égal','supérieur','supérieur ou égal', 'commence par','ne commence pas par','est dans',"n'est pas dans",'finit par','ne finit pas par','contient','ne contient pas'],
+		groupOps: [	{ op: "AND", text: "tous" },	{ op: "OR",  text: "aucun" }	],
+		matchText: " correspondance",
+		rulesText: " règles"
+	},
+	edit : {
+		addCaption: "Ajouter",
+		editCaption: "Editer",
+		bSubmit: "Valider",
+		bCancel: "Annuler",
+		bClose: "Fermer",
+		saveData: "Les données ont changé ! Enregistrer les modifications ?",
+		bYes: "Oui",
+		bNo: "Non",
+		bExit: "Annuler",
+		msg: {
+			required: "Champ obligatoire",
+			number: "Saisissez un nombre correct",
+			minValue: "La valeur doit être supérieure ou égale à 0",
+			maxValue: "La valeur doit être inférieure ou égale à 0",
+			email: "n'est pas un email correct",
+			integer: "Saisissez un entier correct",
+			url: "n'est pas une adresse correcte. Préfixe requis ('http://' or 'https://')",
+			nodefined : " n'est pas défini!",
+			novalue : " la valeur de retour est requise!",
+			customarray : "Une fonction personnalisée devrait retourner un tableau (array)!",
+			customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"
+		}
+	},
+	view : {
+		caption: "Voir les enregistrement",
+		bClose: "Fermer"
+	},
+	del : {
+		caption: "Supprimer",
+		msg: "Supprimer les enregistrements sélectionnés ?",
+		bSubmit: "Supprimer",
+		bCancel: "Annuler"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Editer la ligne sélectionnée",
+		addtext:" ",
+		addtitle: "Ajouter une ligne",
+		deltext: " ",
+		deltitle: "Supprimer la ligne sélectionnée",
+		searchtext: " ",
+		searchtitle: "Chercher un enregistrement",
+		refreshtext: "",
+		refreshtitle: "Recharger le tableau",
+		alertcap: "Avertissement",
+		alerttext: "Veuillez sélectionner une ligne",
+		viewtext: "",
+		viewtitle: "Afficher la ligne sélectionnée"
+	},
+	col : {
+		caption: "Afficher/Masquer les colonnes",
+		bSubmit: "Valider",
+		bCancel: "Annuler"
+	},
+	errors : {
+		errcap : "Erreur",
+		nourl : "Aucune adresse n'est paramétrée",
+		norecords: "Aucun enregistrement à traiter",
+		model : "Nombre de titres (colNames) <> Nombre de données (colModel)!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam",
+				"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
+			],
+			monthNames: [
+				"Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc",
+				"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j == 1 ? 'er' : 'e';},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Catalan Translation
+ * Traducció jqGrid en Catatà per Faserline, S.L.
+ * http://www.faserline.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Mostrant {0} - {1} de {2}",
+	    emptyrecords: "Sense registres que mostrar",
+		loadtext: "Carregant...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+		caption: "Cerca...",
+		Find: "Cercar",
+		Reset: "Buidar",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "tot" },	{ op: "OR",  text: "qualsevol" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+		addCaption: "Afegir registre",
+		editCaption: "Modificar registre",
+		bSubmit: "Guardar",
+		bCancel: "Cancelar",
+		bClose: "Tancar",
+		saveData: "Les dades han canviat. Guardar canvis?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+		msg: {
+		    required:"Camp obligatori",
+		    number:"Introdueixi un nombre",
+		    minValue:"El valor ha de ser major o igual que ",
+		    maxValue:"El valor ha de ser menor o igual a ",
+		    email: "no és una direcció de correu vàlida",
+		    integer: "Introdueixi un valor enter",
+			date: "Introdueixi una data correcta ",
+			url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+		caption: "Veure registre",
+		bClose: "Tancar"
+	},
+	del : {
+		caption: "Eliminar",
+		msg: "¿Desitja eliminar els registres seleccionats?",
+		bSubmit: "Eliminar",
+		bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Modificar fila seleccionada",
+		addtext:" ",
+		addtitle: "Agregar nova fila",
+		deltext: " ",
+		deltitle: "Eliminar fila seleccionada",
+		searchtext: " ",
+		searchtitle: "Cercar informació",
+		refreshtext: "",
+		refreshtitle: "Refrescar taula",
+		alertcap: "Avís",
+		alerttext: "Seleccioni una fila",
+		viewtext: " ",
+		viewtitle: "Veure fila seleccionada"
+	},
+// setcolumns module
+	col : {
+		caption: "Mostrar/ocultar columnes",
+		bSubmit: "Enviar",
+		bCancel: "Cancelar"	
+	},
+	errors : {
+		errcap : "Error",
+		nourl : "No s'ha especificat una URL",
+		norecords: "No hi ha dades per processar",
+		model : "Les columnes de noms són diferents de les columnes del model"
+	},
+	formatter : {
+		integer : {thousandsSeparator: ".", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds",
+				"Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"
+			],
+			monthNames: [
+				"Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des",
+				"Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd-m-Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: 'show',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js	(revision 178)
@@ -0,0 +1,149 @@
+(function(a) {
+    a.jgrid =
+    {
+        defaults:
+        {
+            recordtext: "regels {0} - {1} van {2}",
+            emptyrecords: "Geen data gevonden.",
+            loadtext: "laden...",
+            pgtext: "pagina  {0}  van {1}"
+        },
+        search:
+        {
+            caption: "Zoeken...",
+            Find: "Zoek",
+            Reset: "Herstellen",
+            odata: ["gelijk aan", "niet gelijk aan", "kleiner dan", "kleiner dan of gelijk aan", "groter dan", "groter dan of gelijk aan", "begint met", "begint niet met", "is in", "is niet in", "eindigd met", "eindigd niet met", "bevat", "bevat niet"],
+            groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}],
+            matchText: " match",
+            rulesText: " regels"
+        },
+        edit:
+        {
+            addCaption: "Nieuw",
+            editCaption: "Bewerken",
+            bSubmit: "Opslaan",
+            bCancel: "Annuleren",
+            bClose: "Sluiten",
+            saveData: "Er is data aangepast! Wijzigingen opslaan?",
+            bYes: "Ja",
+            bNo: "Nee",
+            bExit: "Sluiten",
+            msg:
+            {
+                required: "Veld is verplicht",
+                number: "Voer a.u.b. geldig nummer in",
+                minValue: "Waarde moet groter of gelijk zijn aan ",
+                maxValue: "Waarde moet kleiner of gelijks zijn aan",
+                email: "is geen geldig e-mailadres",
+                integer: "Voer a.u.b. een geldig getal in",
+                date: "Voer a.u.b. een geldige waarde in",
+                url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",
+                nodefined : " is not defined!",
+                novalue : " return value is required!",
+                customarray : "Custom function should return array!",
+                customfcheck : "Custom function should be present in case of custom checking!"
+            }
+        },
+        view:
+        {
+            caption: "Tonen",
+            bClose: "Sluiten"
+        },
+        del:
+        {
+            caption: "Verwijderen",
+            msg: "Verwijder geselecteerde regel(s)?",
+            bSubmit: "Verwijderen",
+            bCancel: "Annuleren"
+        },
+        nav:
+        {
+            edittext: "",
+            edittitle: "Bewerken",
+            addtext: "",
+            addtitle: "Nieuw",
+            deltext: "",
+            deltitle: "Verwijderen",
+            searchtext: "",
+            searchtitle: "Zoeken",
+            refreshtext: "",
+            refreshtitle: "Vernieuwen",
+            alertcap: "Waarschuwing",
+            alerttext: "Selecteer a.u.b. een regel",
+            viewtext: "",
+            viewtitle: "Openen"
+        },
+        col:
+        {
+            caption: "Tonen/verbergen kolommen",
+            bSubmit: "OK",
+            bCancel: "Annuleren"
+        },
+        errors:
+        {
+            errcap: "Fout",
+            nourl: "Er is geen URL gedefinieerd",
+            norecords: "Geen data om te verwerken",
+            model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!"
+        },
+        formatter:
+        {
+            integer:
+            {
+                thousandsSeparator: ".",
+                defaultValue: "0"
+            },
+            number:
+            {
+                decimalSeparator: ",",
+                thousandsSeparator: ".",
+                decimalPlaces: 2,
+                defaultValue: "0.00"
+            },
+            currency:
+            {
+                decimalSeparator: ",",
+                thousandsSeparator: ".",
+                decimalPlaces: 2,
+                prefix: "EUR ",
+                suffix: "",
+                defaultValue: "0.00"
+            },
+            date:
+            {
+                dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
+                monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"],
+                AmPm: ["am", "pm", "AM", "PM"],
+                S: function(b) {
+                    return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th"
+                },
+                srcformat: "Y-m-d",
+                newformat: "d/m/Y",
+                masks:
+                {
+                    ISO8601Long: "Y-m-d H:i:s",
+                    ISO8601Short: "Y-m-d",
+                    ShortDate: "n/j/Y",
+                    LongDate: "l, F d, Y",
+                    FullDateTime: "l d F Y G:i:s",
+                    MonthDay: "d F",
+                    ShortTime: "G:i",
+                    LongTime: "G:i:s",
+                    SortableDateTime: "Y-m-d\\TH:i:s",
+                    UniversalSortableDateTime: "Y-m-d H:i:sO",
+                    YearMonth: "F, Y"
+                },
+                reformatAfterEdit: false
+            },
+            baseLinkUrl: "",
+            showAction: "",
+            target: "",
+            checkbox:
+            {
+                disabled: true
+            },
+            idName: "id"
+        }
+    }
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid Icelandic Translation
+ * jtm@hi.is Univercity of Iceland
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "View {0} - {1} of {2}",
+	    emptyrecords: "No records to view",
+		loadtext: "Hleður...",
+		pgtext : "Page {0} of {1}"
+	},
+	search : {
+	    caption: "Leita...",
+	    Find: "Leita",
+	    Reset: "Endursetja",
+	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
+	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
+		matchText: " match",
+		rulesText: " rules"
+	},
+	edit : {
+	    addCaption: "Add Record",
+	    editCaption: "Edit Record",
+	    bSubmit: "Vista",
+	    bCancel: "Hætta við",
+		bClose: "Loka",
+		saveData: "Data has been changed! Save changes?",
+		bYes : "Yes",
+		bNo : "No",
+		bExit : "Cancel",
+	    msg: {
+	        required:"Reitur er nauðsynlegur",
+	        number:"Vinsamlega settu inn tölu",
+	        minValue:"gildi verður að vera meira en eða jafnt og ",
+	        maxValue:"gildi verður að vera minna en eða jafnt og ",
+	        email: "er ekki löglegt email",
+	        integer: "Vinsamlega settu inn tölu",
+			date: "Please, enter valid date value",
+			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "View Record",
+	    bClose: "Close"
+	},
+	del : {
+	    caption: "Eyða",
+	    msg: "Eyða völdum færslum ?",
+	    bSubmit: "Eyða",
+	    bCancel: "Hætta við"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Breyta færslu",
+		addtext:" ",
+	    addtitle: "Ný færsla",
+	    deltext: " ",
+	    deltitle: "Eyða færslu",
+	    searchtext: " ",
+	    searchtitle: "Leita",
+	    refreshtext: "",
+	    refreshtitle: "Endurhlaða",
+	    alertcap: "Viðvörun",
+	    alerttext: "Vinsamlega veldu færslu",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Sýna / fela dálka",
+	    bSubmit: "Vista",
+	    bCancel: "Hætta við"	
+	},
+	errors : {
+		errcap : "Villa",
+		nourl : "Vantar slóð",
+		norecords: "Engar færslur valdar",
+	    model : "Length of colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
+				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
+				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Polish Translation
+ * Łukasz Schab
+ * http://FreeTree.pl
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Pokaż {0} - {1} z {2}",
+	    emptyrecords: "Brak rekordów do pokazania",
+		loadtext: "\u0142adowanie...",
+		pgtext : "Strona {0} z {1}"
+	},
+	search : {
+	    caption: "Wyszukiwanie...",
+	    Find: "Szukaj",
+	    Reset: "Czyść",
+	    odata : ['dok\u0142adnie', 'różne od', 'mniejsze od', 'mniejsze lub równe','większe od','większe lub równe', 'zaczyna się od','nie zaczyna się od','zawiera','nie zawiera','kończy się na','nie kończy się na','zawiera','nie zawiera'],
+	    groupOps: [	{ op: "ORAZ", text: "wszystkie" },	{ op: "LUB",  text: "każdy" }	],
+		matchText: " pasuje",
+		rulesText: " regu\u0142y"
+	},
+	edit : {
+	    addCaption: "Dodaj rekord",
+	    editCaption: "Edytuj rekord",
+	    bSubmit: "Zapisz",
+	    bCancel: "Anuluj",
+		bClose: "Zamknij",
+		saveData: "Dane zosta\u0142y zmienione! Zapisać zmiany?",
+		bYes : "Tak",
+		bNo : "Nie",
+		bExit : "Anuluj",
+	    msg: {
+	        required:"Pole jest wymagane",
+	        number:"Proszę wpisać poprawną liczbę",
+	        minValue:"wartość musi być większa lub równa",
+	        maxValue:"wartość musi być mniejsza od",
+	        email: "nie jest adresem e-mail",
+	        integer: "Proszę wpisać poprawną liczbę",
+			date: "Proszę podaj poprawną datę",
+			url: "jest niew\u0142aściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+	    caption: "Pokaż rekord",
+	    bClose: "Zamknij"
+	},
+	del : {
+	    caption: "Usuwanie",
+	    msg: "Czy usunąć wybrany rekord(y)?",
+	    bSubmit: "Usuń",
+	    bCancel: "Anuluj"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Edytuj wybrany wiersz",
+		addtext:" ",
+	    addtitle: "Dodaj nowy wiersz",
+	    deltext: " ",
+	    deltitle: "Usuń wybrany wiersz",
+	    searchtext: " ",
+	    searchtitle: "Wyszukaj rekord",
+	    refreshtext: "",
+	    refreshtitle: "Prze\u0142aduj",
+	    alertcap: "Uwaga",
+	    alerttext: "Proszę wybrać wiersz",
+		viewtext: "",
+		viewtitle: "View selected row"
+	},
+	col : {
+	    caption: "Pokaż/Ukryj kolumny",
+	    bSubmit: "Zatwierdź",
+	    bCancel: "Anuluj"	
+	},
+	errors : {
+		errcap : "B\u0142ąd",
+		nourl : "Brak adresu url",
+		norecords: "Brak danych",
+	    model : "D\u0142ugość colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Nie", "Pon", "Wt", "Śr", "Cz", "Pi", "So",
+				"Niedziela", "Poniedzia\u0142ek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"
+			],
+			monthNames: [
+				"Sty", "Lu", "Mar", "Kwie", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru",
+				"Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"
+				],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+			    ISO8601Long:"Y-m-d H:i:s",
+			    ISO8601Short:"Y-m-d",
+			    ShortDate: "n/j/Y",
+			    LongDate: "l, F d, Y",
+			    FullDateTime: "l, F d, Y g:i:s A",
+			    MonthDay: "F d",
+			    ShortTime: "g:i A",
+			    LongTime: "g:i:s A",
+			    SortableDateTime: "Y-m-d\\TH:i:s",
+			    UniversalSortableDateTime: "Y-m-d H:i:sO",
+			    YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},	
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js	(revision 178)
@@ -0,0 +1 @@
+(function(a){a.jgrid={};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:["lik","forskjellig fra","mindre enn","mindre eller lik","st�rre enn"," st�rre eller lik","starter med","slutter med","inneholder"]};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaulValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js	(revision 178)
@@ -0,0 +1 @@
+(function(a){a.jgrid={defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci",odata:["uguale","diverso","minore","minore o uguale","maggiore","maggiore o uguale","inizia con","non inizia con","in","non in","termina con","non termina con","contiene","non contiene"],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}],matchText:" corrisponde",rulesText:" regole"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames &lt;&gt; colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js	(revision 178)
@@ -0,0 +1,127 @@
+;(function($){
+/**
+ * jqGrid Slovak Translation
+ * Milan Cibulka
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Zobrazených {0} - {1} z {2} záznamov",
+	    emptyrecords: "Neboli nájdené žiadne záznamy",
+		loadtext: "Načítám...",
+		pgtext : "Strana {0} z {1}"
+	},
+	search : {
+		caption: "Vyhľadávam...",
+		Find: "Hľadať",
+		Reset: "Reset",
+	    odata : ['rovná sa', 'nerovná sa', 'menšie', 'menšie alebo rovnajúce sa','väčšie', 'väčšie alebo rovnajúce sa', 'začína s', 'nezačína s', 'je v', 'nie je v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
+	    groupOps: [	{ op: "AND", text: "všetkých" },	{ op: "OR",  text: "niektorého z" }	],
+		matchText: " hľadať podla",
+		rulesText: " pravidiel"
+	},
+	edit : {
+		addCaption: "Pridať záznam",
+		editCaption: "Editácia záznamov",
+		bSubmit: "Uložiť",
+		bCancel: "Storno",
+		bClose: "Zavrieť",
+		saveData: "Údaje boli zmenené! Uložiť zmeny?",
+		bYes : "Ano",
+		bNo : "Nie",
+		bExit : "Zrušiť",
+		msg: {
+		    required:"Pole je požadované",
+		    number:"Prosím, vložte valídne číslo",
+		    minValue:"hodnota musí býť väčšia ako alebo rovná ",
+		    maxValue:"hodnota musí býť menšia ako alebo rovná ",
+		    email: "nie je valídny e-mail",
+		    integer: "Prosím, vložte celé číslo",
+			date: "Prosím, vložte valídny dátum",
+			url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",
+			nodefined : " nie je definovaný!",
+			novalue : " je vyžadovaná návratová hodnota!",
+			customarray : "Custom function mala vrátiť pole!",
+			customfcheck : "Custom function by mala byť prítomná v prípade custom checking!"
+		}
+	},
+	view : {
+	    caption: "Zobraziť záznam",
+	    bClose: "Zavrieť"
+	},
+	del : {
+		caption: "Zmazať",
+		msg: "Zmazať vybraný(é) záznam(y)?",
+		bSubmit: "Zmazať",
+		bCancel: "Storno"
+	},
+	nav : {
+		edittext: " ",
+		edittitle: "Editovať vybraný riadok",
+		addtext:" ",
+		addtitle: "Pridať nový riadek",
+		deltext: " ",
+		deltitle: "Zmazať vybraný záznam ",
+		searchtext: " ",
+		searchtitle: "Nájsť záznamy",
+		refreshtext: "",
+		refreshtitle: "Obnoviť tabuľku",
+		alertcap: "Varovanie",
+		alerttext: "Prosím, vyberte riadok",
+		viewtext: "",
+		viewtitle: "Zobraziť vybraný riadok"
+	},
+	col : {
+		caption: "Zobrazit/Skrýť stĺpce",
+		bSubmit: "Uložiť",
+		bCancel: "Storno"	
+	},
+	errors : {
+		errcap : "Chyba",
+		nourl : "Nie je nastavená url",
+		norecords: "Žiadne záznamy k spracovaniu",
+		model : "Dĺžka colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
+		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
+		date : {
+			dayNames:   [
+				"Ne", "Po", "Ut", "St", "Št", "Pi", "So",
+				"Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota"
+			],
+			monthNames: [
+				"Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec",
+				"Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
+			],
+			AmPm : ["do","od","DO","OD"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+		        ISO8601Long:"Y-m-d H:i:s",
+		        ISO8601Short:"Y-m-d",
+		        ShortDate: "n/j/Y",
+		        LongDate: "l, F d, Y",
+		        FullDateTime: "l, F d, Y g:i:s A",
+		        MonthDay: "F d",
+		        ShortTime: "g:i A",
+		        LongTime: "g:i:s A",
+		        SortableDateTime: "Y-m-d\\TH:i:s",
+		        UniversalSortableDateTime: "Y-m-d H:i:sO",
+		        YearMonth: "F, Y"
+		    },
+		    reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js	(revision 178)
@@ -0,0 +1,139 @@
+;(function($){
+/**
+ * jqGrid Romanian Translation
+ * Alexandru Emil Lupu contact@alecslupu.ro
+ * http://www.alecslupu.ro/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Vizualizare {0} - {1} din {2}",
+		emptyrecords: "Nu există înregistrări de vizualizat",
+		loadtext: "Încărcare...",
+		pgtext : "Pagina {0} din {1}"
+	},
+	search : {
+		caption: "Caută...",
+		Find: "Caută",
+		Reset: "Resetare",
+		odata : ['egal', 'diferit', 'mai mic', 'mai mic sau egal','mai mare','mai mare sau egal', 'începe cu','nu începe cu','se găsește în','nu se găsește în','se termină cu','nu se termină cu','conține',''],
+		groupOps: [	{ op: "AND", text: "toate" },	{ op: "OR",  text: "oricare" }	],
+		matchText: " găsite",
+		rulesText: " reguli"
+	},
+	edit : {
+		addCaption: "Adăugare înregistrare",
+		editCaption: "Modificare înregistrare",
+		bSubmit: "Salvează",
+		bCancel: "Anulare",
+		bClose: "Închide",
+		saveData: "Informațiile au fost modificate! Salvați modificările?",
+		bYes : "Da",
+		bNo : "Nu",
+		bExit : "Anulare",
+		msg: {
+			required:"Câmpul este obligatoriu",
+			number:"Vă rugăm introduceți un număr valid",
+			minValue:"valoarea trebuie sa fie mai mare sau egală cu",
+			maxValue:"valoarea trebuie sa fie mai mică sau egală cu",
+			email: "nu este o adresă de e-mail validă",
+			integer: "Vă rugăm introduceți un număr valid",
+			date: "Vă rugăm să introduceți o dată validă",
+			url: "Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')",
+			nodefined : " is not defined!",
+			novalue : " return value is required!",
+			customarray : "Custom function should return array!",
+			customfcheck : "Custom function should be present in case of custom checking!"
+		}
+	},
+	view : {
+		caption: "Vizualizare înregistrare",
+		bClose: "Închidere"
+	},
+	del : {
+		caption: "Ștegere",
+		msg: "Ștergeți înregistrarea (înregistrările) selectate?",
+		bSubmit: "Șterge",
+		bCancel: "Anulare"
+	},
+	nav : {
+		edittext: "",
+		edittitle: "Modifică rândul selectat",
+		addtext:"",
+		addtitle: "Adaugă rând nou",
+		deltext: "",
+		deltitle: "Șterge rândul selectat",
+		searchtext: "",
+		searchtitle: "Căutare înregistrări",
+		refreshtext: "",
+		refreshtitle: "Reîncarcare Grid",
+		alertcap: "Avertisment",
+		alerttext: "Vă rugăm să selectați un rând",
+		viewtext: "",
+		viewtitle: "Vizualizează rândul selectat"
+	},
+	col : {
+		caption: "Arată/Ascunde coloanele",
+		bSubmit: "Salvează",
+		bCancel: "Anulare"
+	},
+	errors : {
+		errcap : "Eroare",
+		nourl : "Niciun url nu este setat",
+		norecords: "Nu sunt înregistrări de procesat",
+		model : "Lungimea colNames <> colModel!"
+	},
+	formatter : {
+		integer : {thousandsSeparator: " ", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm",
+				"Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"
+			],
+			monthNames: [
+				"Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec",
+				"Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			/*
+			 Here is a problem in romanian: 
+					M	/	F
+			 1st = primul / prima
+			 2nd = Al doilea / A doua
+			 3rd = Al treilea / A treia 
+			 4th = Al patrulea/ A patra
+			 5th = Al cincilea / A cincea 
+			 6th = Al șaselea / A șasea
+			 7th = Al șaptelea / A șaptea
+			 .... 
+			 */
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd/m/Y',
+			masks : {
+				ISO8601Long:"Y-m-d H:i:s",
+				ISO8601Short:"Y-m-d",
+				ShortDate: "n/j/Y",
+				LongDate: "l, F d, Y",
+				FullDateTime: "l, F d, Y g:i:s A",
+				MonthDay: "F d",
+				ShortTime: "g:i A",
+				LongTime: "g:i:s A",
+				SortableDateTime: "Y-m-d\\TH:i:s",
+				UniversalSortableDateTime: "Y-m-d H:i:sO",
+				YearMonth: "F, Y"
+			},
+			reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+		target: '',
+		checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js	(revision 178)
@@ -0,0 +1,128 @@
+;(function($){
+/**
+ * jqGrid Spanish Translation
+ * Traduccion jqGrid en Español por Yamil Bracho
+ * Traduccion corregida y ampliada por Faserline, S.L. 
+ * http://www.faserline.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+**/
+$.jgrid = {
+	defaults : {
+		recordtext: "Mostrando {0} - {1} de {2}",
+	    emptyrecords: "Sin registros que mostrar",
+		loadtext: "Cargando...",
+		pgtext : "Página {0} de {1}"
+	},
+	search : {
+	    caption: "Búsqueda...",
+	    Find: "Buscar",
+	    Reset: "Limpiar",
+	    odata : ['igual ', 'no igual a', 'menor que', 'menor o igual que','mayor que','mayor o igual a', 'empiece por','no empiece por','está en','no está en','termina por','no termina por','contiene','no contiene'],
+	    groupOps: [	{ op: "AND", text: "todo" },	{ op: "OR",  text: "cualquier" }	],
+		matchText: " match",
+		rulesText: " reglas"
+	},
+	edit : {
+	    addCaption: "Agregar registro",
+	    editCaption: "Modificar registro",
+	    bSubmit: "Guardar",
+	    bCancel: "Cancelar",
+		bClose: "Cerrar",
+		saveData: "Se han modificado los datos, ¿guardar cambios?",
+		bYes : "Si",
+		bNo : "No",
+		bExit : "Cancelar",
+	    msg: {
+	        required:"Campo obligatorio",
+	        number:"Introduzca un número",
+	        minValue:"El valor debe ser mayor o igual a ",
+	        maxValue:"El valor debe ser menor o igual a ",
+	        email: "no es una dirección de correo válida",
+	        integer: "Introduzca un valor entero",
+			date: "Introduza una fecha correcta ",
+			url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')",
+			nodefined : " no está definido.",
+			novalue : " valor de retorno es requerido.",
+			customarray : "La función personalizada debe devolver un array.",
+			customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada."
+		}
+	},
+	view : {
+	    caption: "Consultar registro",
+	    bClose: "Cerrar"
+	},
+	del : {
+	    caption: "Eliminar",
+	    msg: "¿Desea eliminar los registros seleccionados?",
+	    bSubmit: "Eliminar",
+	    bCancel: "Cancelar"
+	},
+	nav : {
+		edittext: " ",
+	    edittitle: "Modificar fila seleccionada",
+		addtext:" ",
+	    addtitle: "Agregar nueva fila",
+	    deltext: " ",
+	    deltitle: "Eliminar fila seleccionada",
+	    searchtext: " ",
+	    searchtitle: "Buscar información",
+	    refreshtext: "",
+	    refreshtitle: "Recargar datos",
+	    alertcap: "Aviso",
+	    alerttext: "Seleccione una fila",
+		viewtext: "",
+		viewtitle: "Ver fila seleccionada"
+	},
+	col : {
+	    caption: "Mostrar/ocultar columnas",
+	    bSubmit: "Enviar",
+	    bCancel: "Cancelar"	
+	},
+	errors : {
+		errcap : "Error",
+		nourl : "No se ha especificado una URL",
+		norecords: "No hay datos para procesar",
+	    model : "Las columnas de nombres son diferentes de las columnas de modelo"
+	},
+	formatter : {
+		integer : {thousandsSeparator: ".", defaultValue: '0'},
+		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
+		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
+		date : {
+			dayNames:   [
+				"Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa",
+				"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"
+			],
+			monthNames: [
+				"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic",
+				"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
+			],
+			AmPm : ["am","pm","AM","PM"],
+			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
+			srcformat: 'Y-m-d',
+			newformat: 'd-m-Y',
+			masks : {
+	            ISO8601Long:"Y-m-d H:i:s",
+	            ISO8601Short:"Y-m-d",
+	            ShortDate: "n/j/Y",
+	            LongDate: "l, F d, Y",
+	            FullDateTime: "l, F d, Y g:i:s A",
+	            MonthDay: "F d",
+	            ShortTime: "g:i A",
+	            LongTime: "g:i:s A",
+	            SortableDateTime: "Y-m-d\\TH:i:s",
+	            UniversalSortableDateTime: "Y-m-d H:i:sO",
+	            YearMonth: "F, Y"
+	        },
+	        reformatAfterEdit : false
+		},
+		baseLinkUrl: '',
+		showAction: '',
+	    target: '',
+	    checkbox : {disabled:true},
+		idName : 'id'
+	}
+};
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/ui.multiselect.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/ui.multiselect.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/ui.multiselect.js	(revision 178)
@@ -0,0 +1,314 @@
+/*
+ * jQuery UI Multiselect
+ *
+ * Authors:
+ *  Michael Aufreiter (quasipartikel.at)
+ *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
+ * 
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ * 
+ * http://www.quasipartikel.at/multiselect/
+ *
+ * 
+ * Depends:
+ *	ui.core.js
+ *	ui.sortable.js
+ *
+ * Optional:
+ * localization (http://plugins.jquery.com/project/localisation)
+ * scrollTo (http://plugins.jquery.com/project/ScrollTo)
+ * 
+ * Todo:
+ *  Make batch actions faster
+ *  Implement dynamic insertion through remote calls
+ */
+
+
+(function($) {
+
+$.widget("ui.multiselect", {
+	_init: function() {
+		this.element.hide();
+		this.id = this.element.attr("id");
+		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
+		this.count = 0; // number of currently selected options
+		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
+		this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
+		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
+		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
+		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
+		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
+		
+		var that = this;
+
+		// set dimensions
+		this.container.width(this.element.width()+1);
+		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
+		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
+
+		// fix list height to match <option> depending on their individual header's heights
+		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
+		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
+		
+		if ( !this.options.animated ) {
+			this.options.show = 'show';
+			this.options.hide = 'hide';
+		}
+		
+		// init lists
+		this._populateLists(this.element.find('option'));
+		
+		// make selection sortable
+		if (this.options.sortable) {
+			$("ul.selected").sortable({
+				placeholder: 'ui-state-highlight',
+				axis: 'y',
+				update: function(event, ui) {
+					// apply the new sort order to the original selectbox
+					that.selectedList.find('li').each(function() {
+						if ($(this).data('optionLink'))
+							$(this).data('optionLink').remove().appendTo(that.element);
+					});
+				},
+				receive: function(event, ui) {
+					ui.item.data('optionLink').attr('selected', true);
+					// increment count
+					that.count += 1;
+					that._updateCount();
+					// workaround, because there's no way to reference 
+					// the new element, see http://dev.jqueryui.com/ticket/4303
+					that.selectedList.children('.ui-draggable').each(function() {
+						$(this).removeClass('ui-draggable');
+						$(this).data('optionLink', ui.item.data('optionLink'));
+						$(this).data('idx', ui.item.data('idx'));
+						that._applyItemState($(this), true);
+					});
+			
+					// workaround according to http://dev.jqueryui.com/ticket/4088
+					setTimeout(function() { ui.item.remove(); }, 1);
+				}
+			});
+		}
+		
+		// set up livesearch
+		if (this.options.searchable) {
+			this._registerSearchEvents(this.availableContainer.find('input.search'));
+		} else {
+			$('.search').hide();
+		}
+		
+		// batch actions
+		$(".remove-all").click(function() {
+			that._populateLists(that.element.find('option').removeAttr('selected'));
+			return false;
+		});
+		$(".add-all").click(function() {
+			that._populateLists(that.element.find('option').attr('selected', 'selected'));
+			return false;
+		});
+	},
+	destroy: function() {
+		this.element.show();
+		this.container.remove();
+
+		$.widget.prototype.destroy.apply(this, arguments);
+	},
+	_populateLists: function(options) {
+		this.selectedList.children('.ui-element').remove();
+		this.availableList.children('.ui-element').remove();
+		this.count = 0;
+
+		var that = this;
+		var items = $(options.map(function(i) {
+	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();
+
+			if (this.selected) that.count += 1;
+			that._applyItemState(item, this.selected);
+			item.data('idx', i);
+			return item[0];
+    }));
+		
+		// update count
+		this._updateCount();
+  },
+	_updateCount: function() {
+		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
+	},
+	_getOptionNode: function(option) {
+		option = $(option);
+		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
+		node.data('optionLink', option);
+		return node;
+	},
+	// clones an item with associated data
+	// didn't find a smarter away around this
+	_cloneWithData: function(clonee) {
+		var clone = clonee.clone();
+		clone.data('optionLink', clonee.data('optionLink'));
+		clone.data('idx', clonee.data('idx'));
+		return clone;
+	},
+	_setSelected: function(item, selected) {
+		item.data('optionLink').attr('selected', selected);
+
+		if (selected) {
+			var selectedItem = this._cloneWithData(item);
+			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
+			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
+			
+			this._applyItemState(selectedItem, true);
+			return selectedItem;
+		} else {
+			
+			// look for successor based on initial option index
+			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
+			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
+
+			// TODO: test needed for dynamic list populating
+			if ( direction ) {
+				while (i>=0 && i<items.length) {
+					direction > 0 ? i++ : i--;
+					if ( direction != comparator(item, $(items[i])) ) {
+						// going up, go back one item down, otherwise leave as is
+						succ = items[direction > 0 ? i : i+1];
+						break;
+					}
+				}
+			} else {
+				succ = items[i];
+			}
+			
+			var availableItem = this._cloneWithData(item);
+			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
+			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
+			availableItem.hide()[this.options.show](this.options.animated);
+			
+			this._applyItemState(availableItem, false);
+			return availableItem;
+		}
+	},
+	_applyItemState: function(item, selected) {
+		if (selected) {
+			if (this.options.sortable)
+				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
+			else
+				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
+			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
+			this._registerRemoveEvents(item.find('a.action'));
+			
+		} else {
+			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
+			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
+			this._registerAddEvents(item.find('a.action'));
+		}
+		
+		this._registerHoverEvents(item);
+	},
+	// taken from John Resig's liveUpdate script
+	_filter: function(list) {
+		var input = $(this);
+		var rows = list.children('li'),
+			cache = rows.map(function(){
+				
+				return $(this).text().toLowerCase();
+			});
+		
+		var term = $.trim(input.val().toLowerCase()), scores = [];
+		
+		if (!term) {
+			rows.show();
+		} else {
+			rows.hide();
+
+			cache.each(function(i) {
+				if (this.indexOf(term)>-1) { scores.push(i); }
+			});
+
+			$.each(scores, function() {
+				$(rows[this]).show();
+			});
+		}
+	},
+	_registerHoverEvents: function(elements) {
+		elements.removeClass('ui-state-hover');
+		elements.mouseover(function() {
+			$(this).addClass('ui-state-hover');
+		});
+		elements.mouseout(function() {
+			$(this).removeClass('ui-state-hover');
+		});
+	},
+	_registerAddEvents: function(elements) {
+		var that = this;
+		elements.click(function() {
+			var item = that._setSelected($(this).parent(), true);
+			that.count += 1;
+			that._updateCount();
+			return false;
+		})
+		// make draggable
+		.each(function() {
+			$(this).parent().draggable({
+	      connectToSortable: 'ul.selected',
+				helper: function() {
+					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
+					selectedItem.width($(this).width());
+					return selectedItem;
+				},
+				appendTo: '.ui-multiselect',
+				containment: '.ui-multiselect',
+				revert: 'invalid'
+	    });
+		});
+	},
+	_registerRemoveEvents: function(elements) {
+		var that = this;
+		elements.click(function() {
+			that._setSelected($(this).parent(), false);
+			that.count -= 1;
+			that._updateCount();
+			return false;
+		});
+ 	},
+	_registerSearchEvents: function(input) {
+		var that = this;
+
+		input.focus(function() {
+			$(this).addClass('ui-state-active');
+		})
+		.blur(function() {
+			$(this).removeClass('ui-state-active');
+		})
+		.keypress(function(e) {
+			if (e.keyCode == 13)
+				return false;
+		})
+		.keyup(function() {
+			that._filter.apply(this, [that.availableList]);
+		});
+	}
+});
+		
+$.extend($.ui.multiselect, {
+	defaults: {
+		sortable: true,
+		searchable: true,
+		animated: 'fast',
+		show: 'slideDown',
+		hide: 'slideUp',
+		dividerLocation: 0.6,
+		nodeComparator: function(node1,node2) {
+			var text1 = node1.text(),
+			    text2 = node2.text();
+			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
+		}
+	},
+	locale: {
+		addAll:'Add all',
+		removeAll:'Remove all',
+		itemsCount:'items selected'
+	}
+});
+
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/ui.multiselect.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.celledit.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.celledit.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.celledit.js	(revision 178)
@@ -0,0 +1,483 @@
+;(function($){
+/*
+**
+ * jqGrid extension for cellediting Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+/**
+ * all events and options here are aded anonynous and not in the base grid
+ * since the array is to big. Here is the order of execution.
+ * From this point we use jQuery isFunction
+ * formatCell
+ * beforeEditCell,
+ * onSelectCell (used only for noneditable cels)
+ * afterEditCell,
+ * beforeSaveCell, (called before validation of values if any)
+ * beforeSubmitCell (if cellsubmit remote (ajax))
+ * afterSubmitCell(if cellsubmit remote (ajax)),
+ * afterSaveCell,
+ * errorCell,
+ * serializeCellData - new
+ * Options
+ * cellsubmit (remote,clientArray) (added in grid options)
+ * cellurl
+ * ajaxCellOptions
+* */
+$.jgrid.extend({
+	editCell : function (iRow,iCol, ed){
+		return this.each(function (){
+			var $t = this, nm, tmp,cc;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			iCol = parseInt(iCol,10);
+			// select the row that can be used for other methods
+			$t.p.selrow = $t.rows[iRow].id;
+			if (!$t.p.knv) {$($t).jqGrid("GridNav");}
+			// check to see if we have already edited cell
+			if ($t.p.savedRow.length>0) {
+				// prevent second click on that field and enable selects
+				if (ed===true ) {
+					if(iRow == $t.p.iRow && iCol == $t.p.iCol){
+						return;
+					}
+				}
+				// save the cell
+				$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
+			} else {
+				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
+			}
+			nm = $t.p.colModel[iCol].name;
+			if (nm=='subgrid' || nm=='cb' || nm=='rn') {return;}
+			cc = $("td:eq("+iCol+")",$t.rows[iRow]);
+			if ($t.p.colModel[iCol].editable===true && ed===true && !cc.hasClass("not-editable-cell")) {
+				if(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
+					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
+					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
+				}
+				$(cc).addClass("edit-cell ui-state-highlight");
+				$($t.rows[iRow]).addClass("selected-row ui-state-hover");
+				try {
+					tmp =  $.unformat(cc,{rowId: $t.rows[iRow].id, colModel:$t.p.colModel[iCol]},iCol);
+				} catch (_) {
+					tmp = $(cc).html();
+				}
+				if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+				if (!$t.p.colModel[iCol].edittype) {$t.p.colModel[iCol].edittype = "text";}
+				$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});
+				if($.isFunction($t.p.formatCell)) {
+					var tmp2 = $t.p.formatCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+					if(tmp2 !== undefined ) {tmp = tmp2;}
+				}
+				var opt = $.extend({}, $t.p.colModel[iCol].editoptions || {} ,{id:iRow+"_"+nm,name:nm});
+				var elc = createEl($t.p.colModel[iCol].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
+				if ($.isFunction($t.p.beforeEditCell)) {
+					$t.p.beforeEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+				}
+				$(cc).html("").append(elc).attr("tabindex","0");
+				window.setTimeout(function () { $(elc).focus();},0);
+				$("input, select, textarea",cc).bind("keydown",function(e) { 
+					if (e.keyCode === 27) {
+						if($("input.hasDatepicker",cc).length >0) {
+							if( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }
+							else { $("input.hasDatepicker",cc).datepicker('hide'); }
+						} else {
+							$($t).jqGrid("restoreCell",iRow,iCol);
+						}
+					} //ESC
+					if (e.keyCode === 13) {$($t).jqGrid("saveCell",iRow,iCol);}//Enter
+					if (e.keyCode == 9)  {
+						if(!$t.grid.hDiv.loading ) {
+							if (e.shiftKey) {$($t).jqGrid("prevCell",iRow,iCol);} //Shift TAb
+							else {$($t).jqGrid("nextCell",iRow,iCol);} //Tab
+						} else {
+							return false;
+						}
+					}
+					e.stopPropagation();
+				});
+				if ($.isFunction($t.p.afterEditCell)) {
+					$t.p.afterEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+				}
+			} else {
+				if (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
+					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
+					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
+				}
+				cc.addClass("edit-cell ui-state-highlight");
+				$($t.rows[iRow]).addClass("selected-row ui-state-hover"); 
+				if ($.isFunction($t.p.onSelectCell)) {
+					tmp = cc.html().replace(/\&#160\;/ig,'');
+					$t.p.onSelectCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
+				}
+			}
+			$t.p.iCol = iCol; $t.p.iRow = iRow;
+		});
+	},
+	saveCell : function (iRow, iCol){
+		return this.each(function(){
+			var $t= this, fr;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} 
+			if(fr !== null) {
+				var cc = $("td:eq("+iCol+")",$t.rows[iRow]),v,v2,
+				cm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm) ;
+				switch (cm.edittype) {
+					case "select":
+						if(!cm.editoptions.multiple) {
+							v = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).val();
+							v2 = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).text();
+						} else {
+							var sel = $("#"+iRow+"_"+nmjq,$t.rows[iRow]), selectedText = [];
+							v = $(sel).val();
+							if(v) { v.join(",");} else { v=""; }
+							$("option:selected",sel).each(
+								function(i,selected){
+									selectedText[i] = $(selected).text();
+								}
+							);
+							v2 = selectedText.join(",");
+						}
+						if(cm.formatter) { v2 = v; }
+						break;
+					case "checkbox":
+						var cbv  = ["Yes","No"];
+						if(cm.editoptions){
+							cbv = cm.editoptions.value.split(":");
+						}
+						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).attr("checked") ? cbv[0] : cbv[1];
+						v2=v;
+						break;
+					case "password":
+					case "text":
+					case "textarea":
+					case "button" :
+						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).val();
+						v2=v;
+						break;
+					case 'custom' :
+						try {
+							if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
+								v = cm.editoptions.custom_value($(".customelement",cc),'get');
+								if (v===undefined) { throw "e2";} else { v2=v; }
+							} else { throw "e1"; }
+						} catch (e) {
+							if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
+							if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
+							else {info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+						}
+						break;
+				}
+				// The common approach is if nothing changed do not do anything
+				if (v2 != $t.p.savedRow[fr].v){
+					if ($.isFunction($t.p.beforeSaveCell)) {
+						var vv = $t.p.beforeSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+						if (vv) {v = vv;}
+					}
+					var cv = checkValues(v,iCol,$t);
+					if(cv[0] === true) {
+						var addpost = {};
+						if ($.isFunction($t.p.beforeSubmitCell)) {
+							addpost = $t.p.beforeSubmitCell($t.rows[iRow].id,nm, v, iRow,iCol);
+							if (!addpost) {addpost={};}
+						}
+						if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); }
+						if ($t.p.cellsubmit == 'remote') {
+							if ($t.p.cellurl) {
+								var postdata = {};
+								if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }
+								postdata[nm] = v;
+								var idname,oper, opers;
+								opers = $t.p.prmNames;
+								idname = opers.id;
+								oper = opers.oper;
+								postdata[idname] = $t.rows[iRow].id;
+								postdata[oper] = opers.editoper;
+								postdata = $.extend(addpost,postdata);
+								$("#lui_"+$t.p.id).show();
+								$t.grid.hDiv.loading = true;
+								$.ajax( $.extend( {
+									url: $t.p.cellurl,
+									data :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData(postdata) : postdata,
+									type: "POST",
+									complete: function (result, stat) {
+										$("#lui_"+$t.p.id).hide();
+										$t.grid.hDiv.loading = false;
+										if (stat == 'success') {
+											if ($.isFunction($t.p.afterSubmitCell)) {
+												var ret = $t.p.afterSubmitCell(result,postdata.id,nm,v,iRow,iCol);
+												if(ret[0] === true) {
+													$(cc).empty();
+													$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
+													$(cc).addClass("dirty-cell");
+													$($t.rows[iRow]).addClass("edited");
+													if ($.isFunction($t.p.afterSaveCell)) {
+														$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+													}
+													$t.p.savedRow.splice(0,1);
+												} else {
+													info_dialog($.jgrid.errors.errcap,ret[1],$.jgrid.edit.bClose);
+													$($t).jqGrid("restoreCell",iRow,iCol);
+												}
+											} else {
+												$(cc).empty();
+												$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
+												$(cc).addClass("dirty-cell");
+												$($t.rows[iRow]).addClass("edited");
+												if ($.isFunction($t.p.afterSaveCell)) {
+													$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+												}
+												$t.p.savedRow.splice(0,1);
+											}
+										}
+									},
+									error:function(res,stat) {
+										$("#lui_"+$t.p.id).hide();
+										$t.grid.hDiv.loading = false;
+										if ($.isFunction($t.p.errorCell)) {
+											$t.p.errorCell(res,stat);
+											$($t).jqGrid("restoreCell",iRow,iCol);
+										} else {
+											info_dialog($.jgrid.errors.errcap,res.status+" : "+res.statusText+"<br/>"+stat,$.jgrid.edit.bClose);
+											$($t).jqGrid("restoreCell",iRow,iCol);
+										}
+									}
+								}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));
+							} else {
+								try {
+									info_dialog($.jgrid.errors.errcap,$.jgrid.errors.nourl,$.jgrid.edit.bClose);
+									$($t).jqGrid("restoreCell",iRow,iCol);
+								} catch (e) {}
+							}
+						}
+						if ($t.p.cellsubmit == 'clientArray') {
+							$(cc).empty();
+							$($t).jqGrid("setCell",$t.rows[iRow].id,iCol, v2, false, false, true);
+							$(cc).addClass("dirty-cell");
+							$($t.rows[iRow]).addClass("edited");
+							if ($.isFunction($t.p.afterSaveCell)) {
+								$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
+							}
+							$t.p.savedRow.splice(0,1);
+						}
+					} else {
+						try {
+							window.setTimeout(function(){info_dialog($.jgrid.errors.errcap,v+" "+cv[1],$.jgrid.edit.bClose);},100);
+							$($t).jqGrid("restoreCell",iRow,iCol);
+						} catch (e) {}
+					}
+				} else {
+					$($t).jqGrid("restoreCell",iRow,iCol);
+				}
+			}
+			if ($.browser.opera) {
+				$("#"+$t.p.knv).attr("tabindex","-1").focus();
+			} else {
+				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
+			}
+		});
+	},
+	restoreCell : function(iRow, iCol) {
+		return this.each(function(){
+			var $t= this, fr;
+			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
+			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}
+			if(fr !== null) {
+				var cc = $("td:eq("+iCol+")",$t.rows[iRow]);
+				// datepicker fix
+				if($.isFunction($.fn.datepicker)) {
+					try {
+						$("input.hasDatepicker",cc).datepicker('hide');
+					} catch (e) {}
+				}
+				$(cc).empty().attr("tabindex","-1");
+				$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);
+				$t.p.savedRow.splice(0,1);
+			}
+			window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
+		});
+	},
+	nextCell : function (iRow,iCol) {
+		return this.each(function (){
+			var $t = this, nCol=false;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			// try to find next editable cell
+			for (var i=iCol+1; i<$t.p.colModel.length; i++) {
+				if ( $t.p.colModel[i].editable ===true) {
+					nCol = i; break;
+				}
+			}
+			if(nCol !== false) {
+				$($t).jqGrid("editCell",iRow,nCol,true);
+			} else {
+				if ($t.p.savedRow.length >0) {
+					$($t).jqGrid("saveCell",iRow,iCol);
+				}
+			}
+		});
+	},
+	prevCell : function (iRow,iCol) {
+		return this.each(function (){
+			var $t = this, nCol=false;
+			if (!$t.grid || $t.p.cellEdit !== true) {return;}
+			// try to find next editable cell
+			for (var i=iCol-1; i>=0; i--) {
+				if ( $t.p.colModel[i].editable ===true) {
+					nCol = i; break;
+				}
+			}
+			if(nCol !== false) {
+				$($t).jqGrid("editCell",iRow,nCol,true);
+			} else {
+				if ($t.p.savedRow.length >0) {
+					$($t).jqGrid("saveCell",iRow,iCol);
+				}
+			}
+		});
+	},
+	GridNav : function() {
+		return this.each(function () {
+			var  $t = this;
+			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
+			// trick to process keydown on non input elements
+			$t.p.knv = $t.p.id + "_kn";
+			var selection = $("<span style='width:0px;height:0px;background-color:black;' tabindex='0'><span tabindex='-1' style='width:0px;height:0px;background-color:grey' id='"+$t.p.knv+"'></span></span>"),
+			i, kdir;
+			$(selection).insertBefore($t.grid.cDiv);
+			$("#"+$t.p.knv)
+			.focus()
+			.keydown(function (e){
+				kdir = e.keyCode;
+				if($t.p.direction == "rtl") {
+					if(kdir==37) { kdir = 39;}
+					else if (kdir==39) { kdir = 37; }
+				}
+				switch (kdir) {
+					case 38:
+						if ($t.p.iRow-1 >=0 ) {
+							scrollGrid($t.p.iRow-1,$t.p.iCol,'vu');
+							$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false);
+						}
+					break;
+					case 40 :
+						if ($t.p.iRow+1 <=  $t.rows.length-1) {
+							scrollGrid($t.p.iRow+1,$t.p.iCol,'vd');
+							$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false);
+						}
+					break;
+					case 37 :
+						if ($t.p.iCol -1 >=  0) {
+							i = findNextVisible($t.p.iCol-1,'lft');
+							scrollGrid($t.p.iRow, i,'h');
+							$($t).jqGrid("editCell",$t.p.iRow, i,false);
+						}
+					break;
+					case 39 :
+						if ($t.p.iCol +1 <=  $t.p.colModel.length-1) {
+							i = findNextVisible($t.p.iCol+1,'rgt');
+							scrollGrid($t.p.iRow,i,'h');
+							$($t).jqGrid("editCell",$t.p.iRow,i,false);
+						}
+					break;
+					case 13:
+						if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {
+							$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true);
+						}
+					break;
+				}
+				return false;
+			});
+			function scrollGrid(iR, iC, tp){
+				if (tp.substr(0,1)=='v') {
+					var ch = $($t.grid.bDiv)[0].clientHeight,
+					st = $($t.grid.bDiv)[0].scrollTop,
+					nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,
+					pROT = $t.rows[iR].offsetTop;
+					if(tp == 'vd') {
+						if(nROT >= ch) {
+							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;
+						}
+					}
+					if(tp == 'vu'){					
+						if (pROT < st) {
+							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;
+						}
+					}
+				}
+				if(tp=='h') {
+					var cw = $($t.grid.bDiv)[0].clientWidth,
+					sl = $($t.grid.bDiv)[0].scrollLeft,
+					nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,
+					pCOL = $t.rows[iR].cells[iC].offsetLeft;
+					if(nCOL >= cw+parseInt(sl,10)) {
+						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;
+					} else if (pCOL < sl) {
+						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;
+					}
+				}
+			}
+			function findNextVisible(iC,act){
+				var ind, i;
+				if(act == 'lft') {
+					ind = iC+1;
+					for (i=iC;i>=0;i--){
+						if ($t.p.colModel[i].hidden !== true) {
+							ind = i;
+							break;
+						}
+					}
+				}
+				if(act == 'rgt') {
+					ind = iC-1;
+					for (i=iC; i<$t.p.colModel.length;i++){
+						if ($t.p.colModel[i].hidden !== true) {
+							ind = i;
+							break;
+						}						
+					}
+				}
+				return ind;
+			}
+		});
+	},
+	getChangedCells : function (mthd) {
+		var ret=[];
+		if (!mthd) {mthd='all';}
+		this.each(function(){
+			var $t= this,nm;
+			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
+			$($t.rows).each(function(j){
+				var res = {};
+				if ($(this).hasClass("edited")) {
+					$('td',this).each( function(i) {
+						nm = $t.p.colModel[i].name;
+						if ( nm !== 'cb' && nm !== 'subgrid') {
+							if (mthd=='dirty') {
+								if ($(this).hasClass('dirty-cell')) {
+									try {
+										res[nm] = $.unformat(this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);
+									} catch (e){
+										res[nm] = $.jgrid.htmlDecode($(this).html());
+									}
+								}
+							} else {
+								try {
+									res[nm] = $.unformat(this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);
+								} catch (e) {
+									res[nm] = $.jgrid.htmlDecode($(this).html());
+								}
+							}
+						}
+					});
+					res.id = this.id;
+					ret.push(res);
+				}
+			});
+		});
+		return ret;
+	}
+/// end  cell editing
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.celledit.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.common.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.common.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.common.js	(revision 178)
@@ -0,0 +1,629 @@
+/*
+ * jqGrid common function
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+*/ 
+// Modal functions
+var showModal = function(h) {
+	h.w.show();
+};
+var closeModal = function(h) {
+	h.w.hide().attr("aria-hidden","true");
+	if(h.o) { h.o.remove(); }
+};
+var hideModal = function (selector,o) {
+	o = jQuery.extend({jqm : true, gb :''}, o || {});
+    if(o.onClose) {
+		var oncret =  o.onClose(selector);
+		if (typeof oncret == 'boolean'  && !oncret ) { return; }
+    }	
+	if (jQuery.fn.jqm && o.jqm === true) {
+		jQuery(selector).attr("aria-hidden","true").jqmHide();
+	} else {
+		if(o.gb != '') {
+			try {jQuery(".jqgrid-overlay:first",o.gb).hide();} catch (e){}
+		}
+		jQuery(selector).hide().attr("aria-hidden","true");
+	}
+};
+//Helper functions
+function findPos(obj) {
+	var curleft = 0, curtop = 0;
+	if (obj.offsetParent) {
+		do {
+			curleft += obj.offsetLeft;
+			curtop += obj.offsetTop; 
+		} while (obj = obj.offsetParent);
+		//do not change obj == obj.offsetParent 
+	}
+	return [curleft,curtop];
+}
+var createModal = function(aIDs, content, p, insertSelector, posSelector, appendsel) {
+	var mw  = document.createElement('div'), rtlsup;
+	rtlsup = jQuery(p.gbox).attr("dir") == "rtl" ? true : false;
+	mw.className= "ui-widget ui-widget-content ui-corner-all ui-jqdialog";
+	mw.id = aIDs.themodal; 
+	var mh = document.createElement('div');
+	mh.className = "ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix";
+	mh.id = aIDs.modalhead;
+	jQuery(mh).append("<span class='ui-jqdialog-title'>"+p.caption+"</span>");
+	var ahr= jQuery("<a href='javascript:void(0)' class='ui-jqdialog-titlebar-close ui-corner-all'></a>")
+	.hover(function(){ahr.addClass('ui-state-hover');},
+		   function(){ahr.removeClass('ui-state-hover');})
+	.append("<span class='ui-icon ui-icon-closethick'></span>");
+	jQuery(mh).append(ahr);
+	if(rtlsup) {
+		mw.dir = "rtl";
+		jQuery(".ui-jqdialog-title",mh).css("float","right");
+		jQuery(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em");
+	} else {
+		mw.dir = "ltr";
+		jQuery(".ui-jqdialog-title",mh).css("float","left");
+		jQuery(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em");
+	}
+	var mc = document.createElement('div');
+	jQuery(mc).addClass("ui-jqdialog-content ui-widget-content").attr("id",aIDs.modalcontent);
+	jQuery(mc).append(content);
+	mw.appendChild(mc);
+	jQuery(mw).prepend(mh);
+	if(appendsel===true) { jQuery('body').append(mw); } //append as first child in body -for alert dialog
+	else {jQuery(mw).insertBefore(insertSelector);}
+	if(typeof p.jqModal === 'undefined') {p.jqModal = true;} // internal use
+	var coord = {};
+	if ( jQuery.fn.jqm && p.jqModal === true) {
+		if(p.left ===0 && p.top===0) {
+			var pos = [];
+			pos = findPos(posSelector);
+			p.left = pos[0] + 4;
+			p.top = pos[1] + 4;
+		}
+		coord.top = p.top+"px";
+		coord.left = p.left;
+	} else if(p.left !==0 || p.top!==0) {
+		coord.left = p.left;
+		coord.top = p.top+"px";
+	}
+	jQuery("a.ui-jqdialog-titlebar-close",mh).click(function(e){
+		var oncm = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
+		var gboxclose = jQuery("#"+aIDs.themodal).data("gbox") || p.gbox;
+		hideModal("#"+aIDs.themodal,{gb:gboxclose,jqm:p.jqModal,onClose:oncm});
+		return false;
+	});
+	if (p.width === 0 || !p.width) {p.width = 300;}
+	if(p.height === 0 || !p.height) {p.height =200;}
+	if(!p.zIndex) {p.zIndex = 950;}
+	var rtlt = 0;
+	if( rtlsup && coord.left && !appendsel) {
+		rtlt = jQuery(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do
+		// just in case
+		coord.left = parseInt(coord.left,10) + parseInt(rtlt,10);
+	}
+	if(coord.left) { coord.left += "px"; }
+	jQuery(mw).css(jQuery.extend({
+		width: isNaN(p.width) ? "auto": p.width+"px",
+		height:isNaN(p.height) ? "auto" : p.height + "px",
+		zIndex:p.zIndex,
+		overflow: 'hidden'
+	},coord))
+	.attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"});
+	if(typeof p.drag == 'undefined') { p.drag=true;}
+	if(typeof p.resize == 'undefined') {p.resize=true;}
+	if (p.drag) {
+		jQuery(mh).css('cursor','move');
+		if(jQuery.fn.jqDrag) {
+			jQuery(mw).jqDrag(mh);
+		} else {
+			try {
+				jQuery(mw).draggable({handle: jQuery("#"+mh.id)});
+			} catch (e) {}
+		}
+	}
+	if(p.resize) {
+		if(jQuery.fn.jqResize) {
+			jQuery(mw).append("<div class='jqResize ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se'></div>");
+			jQuery("#"+aIDs.themodal).jqResize(".jqResize",aIDs.scrollelm ? "#"+aIDs.scrollelm : false);
+		} else {
+			try {
+				jQuery(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+aIDs.scrollelm : false});
+			} catch (e) {}
+		}
+	}
+	if(p.closeOnEscape === true){
+		jQuery(mw).keydown( function( e ) {
+			if( e.which == 27 ) {
+				var cone = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
+				hideModal(this,{gb:p.gbox,jqm:p.jqModal,onClose: cone});
+			}
+		});
+	}
+};
+var viewModal = function (selector,o){
+	o = jQuery.extend({
+		toTop: true,
+		overlay: 10,
+		modal: false,
+		onShow: showModal,
+		onHide: closeModal,
+		gbox: '',
+		jqm : true,
+		jqM : true
+	}, o || {});
+	if (jQuery.fn.jqm && o.jqm === true) {
+		if(o.jqM) { jQuery(selector).attr("aria-hidden","false").jqm(o).jqmShow(); }
+		else {jQuery(selector).attr("aria-hidden","false").jqmShow();}
+	} else {
+		if(o.gbox != '') {
+			jQuery(".jqgrid-overlay:first",o.gbox).show();
+			jQuery(selector).data("gbox",o.gbox);
+		}
+		jQuery(selector).show().attr("aria-hidden","false");
+		try{jQuery(':input:visible',selector)[0].focus();}catch(_){}
+	}
+};
+
+function info_dialog(caption, content,c_b, modalopt) {
+	var mopt = {
+		width:290,
+		height:'auto',
+		dataheight: 'auto',
+		drag: true,
+		resize: false,
+		caption:"<b>"+caption+"</b>",
+		left:250,
+		top:170,
+		zIndex : 1000,
+		jqModal : true,
+		modal : false,
+		closeOnEscape : true,
+		align: 'center',
+		buttonalign : 'center',
+		buttons : []
+		// {text:'textbutt', id:"buttid", onClick : function(){...}}
+		// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...
+	};
+	jQuery.extend(mopt,modalopt || {});
+	var jm = mopt.jqModal;
+	if(jQuery.fn.jqm && !jm) { jm = false; }
+	// in case there is no jqModal
+	var buttstr ="";
+	if(mopt.buttons.length > 0) {
+		for(var i=0;i<mopt.buttons.length;i++) {
+			if(typeof mopt.buttons[i].id == "undefined") { mopt.buttons[i].id = "info_button_"+i; }
+			buttstr += "<a href='javascript:void(0)' id='"+mopt.buttons[i].id+"' class='fm-button ui-state-default ui-corner-all'>"+mopt.buttons[i].text+"</a>";
+		}
+	}
+	var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px",
+	cn = "text-align:"+mopt.align+";";
+	var cnt = "<div id='info_id'>";
+	cnt += "<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>";
+	cnt += c_b ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a href='javascript:void(0)' id='closedialog' class='fm-button ui-state-default ui-corner-all'>"+c_b+"</a>"+buttstr+"</div>" :
+		buttstr != ""  ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : "";
+	cnt += "</div>";
+
+	try {
+		if(jQuery("#info_dialog").attr("aria-hidden") == "false") {
+			hideModal("#info_dialog",{jqm:jm});
+		}
+		jQuery("#info_dialog").remove();
+	} catch (e){}
+	createModal({
+		themodal:'info_dialog',
+		modalhead:'info_head',
+		modalcontent:'info_content',
+		scrollelm: 'infocnt'},
+		cnt,
+		mopt,
+		'','',true
+	);
+	// attach onclick after inserting into the dom
+	if(buttstr) {
+		jQuery.each(mopt.buttons,function(i){
+			jQuery("#"+this.id,"#info_id").bind('click',function(){mopt.buttons[i].onClick.call(jQuery("#info_dialog")); return false;});
+		});
+	}
+	jQuery("#closedialog", "#info_id").click(function(e){
+		hideModal("#info_dialog",{jqm:jm});
+		return false;
+	});
+	jQuery(".fm-button","#info_dialog").hover(
+		function(){jQuery(this).addClass('ui-state-hover');}, 
+		function(){jQuery(this).removeClass('ui-state-hover');}
+	);
+	viewModal("#info_dialog",{
+		onHide: function(h) {
+			h.w.hide().remove();
+			if(h.o) { h.o.remove(); }
+		},
+		modal :mopt.modal,
+		jqm:jm
+	});
+	try{$("#info_dialog").focus();} catch (e){}
+}
+// Form Functions
+function createEl(eltype,options,vl,autowidth, ajaxso) {
+	var elem = "";
+	if(options.defaultValue) { delete options.defaultValue; }
+	function bindEv (el, opt) {
+		if(jQuery.isFunction(opt.dataInit)) {
+			// datepicker fix 
+			el.id = opt.id;
+			opt.dataInit(el);
+			delete opt.id;
+			delete opt.dataInit;
+		}
+		if(opt.dataEvents) {
+		    jQuery.each(opt.dataEvents, function() {
+		        if (this.data !== undefined) {
+			        jQuery(el).bind(this.type, this.data, this.fn);
+		        } else {
+		            jQuery(el).bind(this.type, this.fn);
+		        }
+		    });
+			delete opt.dataEvents;
+		}
+		return opt;
+	}
+	switch (eltype)
+	{
+		case "textarea" :
+				elem = document.createElement("textarea");
+				if(autowidth) {
+					if(!options.cols) { jQuery(elem).css({width:"98%"});}
+				} else if (!options.cols) { options.cols = 20; }
+				if(!options.rows) { options.rows = 2; }
+				if(vl=='&nbsp;' || vl=='&#160;' || (vl.length==1 && vl.charCodeAt(0)==160)) {vl="";}
+				elem.value = vl;
+				options = bindEv(elem,options);
+				jQuery(elem).attr(options).attr({"role":"textbox","multiline":"true"});
+				break;
+		case "checkbox" : //what code for simple checkbox
+			elem = document.createElement("input");
+			elem.type = "checkbox";
+			if( !options.value ) {
+				var vl1 = vl.toLowerCase();
+				if(vl1.search(/(false|0|no|off|undefined)/i)<0 && vl1!=="") {
+					elem.checked=true;
+					elem.defaultChecked=true;
+					elem.value = vl;
+				} else {
+					elem.value = "on";
+				}
+				jQuery(elem).attr("offval","off");
+			} else {
+				var cbval = options.value.split(":");
+				if(vl === cbval[0]) {
+					elem.checked=true;
+					elem.defaultChecked=true;
+				}
+				elem.value = cbval[0];
+				jQuery(elem).attr("offval",cbval[1]);
+				try {delete options.value;} catch (e){}
+			}
+			options = bindEv(elem,options);
+			jQuery(elem).attr(options).attr("role","checkbox");
+			break;
+		case "select" :
+			elem = document.createElement("select");
+			elem.setAttribute("role","select");
+			var msl, ovm = [];
+			if(options.multiple===true) {
+				msl = true;
+				elem.multiple="multiple";
+				$(elem).attr("aria-multiselectable","true");
+			} else { msl = false; }
+			if(typeof(options.dataUrl) != "undefined") {
+				jQuery.ajax(jQuery.extend({
+					url: options.dataUrl,
+					type : "GET",
+					complete: function(data,status){
+						try {delete options.dataUrl; delete options.value;} catch (e){}
+						var a;
+						if(typeof(options.buildSelect) != "undefined") {
+							var b = options.buildSelect(data);
+							a = jQuery(b).html();
+							delete options.buildSelect;
+						} else {
+							a = jQuery(data.responseText).html();
+						}
+						if(a) {
+							jQuery(elem).append(a);
+							options = bindEv(elem,options);
+							if(typeof options.size === 'undefined') { options.size =  msl ? 3 : 1;}
+							if(msl) {
+								ovm = vl.split(",");
+								ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
+							} else {
+								ovm[0] = jQuery.trim(vl);
+							}
+							jQuery(elem).attr(options);
+							setTimeout(function(){
+								jQuery("option",elem).each(function(i){
+									if(i===0) { this.selected = ""; }
+									$(this).attr("role","option");
+									if(jQuery.inArray(jQuery.trim(jQuery(this).text()),ovm) > -1 || jQuery.inArray(jQuery.trim(jQuery(this).val()),ovm) > -1 ) {
+										this.selected= "selected";
+										if(!msl) { return false; }
+									}
+								});
+							},0);
+						}
+					}
+				},ajaxso || {}));
+			} else if(options.value) {
+				var i;
+				if(msl) {
+					ovm = vl.split(",");
+					ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
+					if(typeof options.size === 'undefined') {options.size = 3;}
+				} else {
+					options.size = 1;
+				}
+				if(typeof options.value === 'function') { options.value = options.value(); }
+				var so,sv, ov;
+				if(typeof options.value === 'string') {
+					so = options.value.split(";");
+					for(i=0; i<so.length;i++){
+						sv = so[i].split(":");
+						if(sv.length > 2 ) {
+							sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n;} }).join(":");
+						}
+						ov = document.createElement("option");
+						ov.setAttribute("role","option");
+						ov.value = sv[0]; ov.innerHTML = sv[1];
+						if (!msl &&  (jQuery.trim(sv[0]) == jQuery.trim(vl) || jQuery.trim(sv[1]) == jQuery.trim(vl))) { ov.selected ="selected"; }
+						if (msl && (jQuery.inArray(jQuery.trim(sv[1]), ovm)>-1 || jQuery.inArray(jQuery.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
+						elem.appendChild(ov);
+					}
+				} else if (typeof options.value === 'object') {
+					var oSv = options.value;
+					for ( var key in oSv) {
+						if (oSv.hasOwnProperty(key ) ){
+							ov = document.createElement("option");
+							ov.setAttribute("role","option");
+							ov.value = key; ov.innerHTML = oSv[key];
+							if (!msl &&  ( jQuery.trim(key) == jQuery.trim(vl) || jQuery.trim(oSv[key]) == jQuery.trim(vl)) ) { ov.selected ="selected"; }
+							if (msl && (jQuery.inArray(jQuery.trim(oSv[key]),ovm)>-1 || jQuery.inArray(jQuery.trim(key),ovm)>-1)) { ov.selected ="selected"; }
+							elem.appendChild(ov);
+						}
+					}
+				}
+				options = bindEv(elem,options);
+				try {delete options.value;} catch (e){}
+				jQuery(elem).attr(options);
+			}
+			break;
+		case "text" :
+		case "password" :
+		case "button" :
+			var role;
+			if(eltype=="button") { role = "button"; }
+			else { role = "textbox"; }
+			elem = document.createElement("input");
+			elem.type = eltype;
+			elem.value = vl;
+			options = bindEv(elem,options);
+			if(eltype != "button"){
+				if(autowidth) {
+					if(!options.size) { jQuery(elem).css({width:"98%"}); }
+				} else if (!options.size) { options.size = 20; }
+			}
+			jQuery(elem).attr(options).attr("role",role);
+			break;
+		case "image" :
+		case "file" :
+			elem = document.createElement("input");
+			elem.type = eltype;
+			options = bindEv(elem,options);
+			jQuery(elem).attr(options);
+			break;
+		case "custom" :
+			elem = document.createElement("span");
+			try {
+				if(jQuery.isFunction(options.custom_element)) {
+					var celm = options.custom_element.call(this,vl,options);
+					if(celm) {
+						celm = jQuery(celm).addClass("customelement").attr({id:options.id,name:options.name});
+						jQuery(elem).empty().append(celm);
+					} else {
+						throw "e2";
+					}
+				} else {
+					throw "e1";
+				}
+			} catch (e) {
+				if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose);}
+				if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
+				else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+			}
+			break;
+	}
+	return elem;
+}
+// Date Validation Javascript
+function daysInFebruary (year){
+	// February has 29 days in any year evenly divisible by four,
+    // EXCEPT for centurial years which are not also divisible by 400.
+    return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );
+}
+function DaysArray(n) {
+	for (var i = 1; i <= n; i++) {
+		this[i] = 31;
+		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
+		if (i==2) {this[i] = 29;}
+	} 
+	return this;
+}
+function checkDate (format, date) {
+	var tsp = {}, sep;
+	format = format.toLowerCase();
+	//we search for /,-,. for the date separator
+	if(format.indexOf("/") != -1) {
+		sep = "/";
+	} else if(format.indexOf("-") != -1) {
+		sep = "-";
+	} else if(format.indexOf(".") != -1) {
+		sep = ".";
+	} else {
+		sep = "/";
+	}
+	format = format.split(sep);
+	date = date.split(sep);
+	if (date.length != 3) { return false; }
+	var j=-1,yln, dln=-1, mln=-1;
+	for(var i=0;i<format.length;i++){
+		var dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10); 
+		tsp[format[i]] = dv;
+		yln = format[i];
+		if(yln.indexOf("y") != -1) { j=i; }
+		if(yln.indexOf("m") != -1) { mln=i; }
+		if(yln.indexOf("d") != -1) { dln=i; }
+	}
+	if (format[j] == "y" || format[j] == "yyyy") {
+		yln=4;
+	} else if(format[j] =="yy"){
+		yln = 2;
+	} else {
+		yln = -1;
+	}
+	var daysInMonth = DaysArray(12);
+	var strDate;
+	if (j === -1) {
+		return false;
+	} else {
+		strDate = tsp[format[j]].toString();
+		if(yln == 2 && strDate.length == 1) {yln = 1;}
+		if (strDate.length != yln || (tsp[format[j]]===0 && date[j]!="00")){
+			return false;
+		}
+	}
+	if(mln === -1) {
+		return false;
+	} else {
+		strDate = tsp[format[mln]].toString();
+		if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){
+			return false;
+		}
+	}
+	if(dln === -1) {
+		return false;
+	} else {
+		strDate = tsp[format[dln]].toString();
+		if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]==2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){
+			return false;
+		}
+	}
+	return true;
+}
+
+function isEmpty(val)
+{
+	if (val.match(/^s+$/) || val == "")	{
+		return true;
+	} else {
+		return false;
+	} 
+}
+function checkTime(time){
+	// checks only hh:ss (and optional am/pm)
+	var re = /^(\d{1,2}):(\d{2})([ap]m)?$/,regs;
+	if(!isEmpty(time))
+	{
+		regs = time.match(re);
+		if(regs) {
+			if(regs[3]) {
+				if(regs[1] < 1 || regs[1] > 12) { return false; }
+			} else {
+				if(regs[1] > 23) { return false; }
+			}
+			if(regs[2] > 59) {
+				return false;
+			}
+		} else {
+			return false;
+		}
+	}
+	return true;
+}
+function checkValues(val, valref,g) {
+	var edtrul,i, nm;
+	if(typeof(valref)=='string'){
+		for( i =0, len=g.p.colModel.length;i<len; i++){
+			if(g.p.colModel[i].name==valref) {
+				edtrul = g.p.colModel[i].editrules;
+				valref = i;
+				try { nm = g.p.colModel[i].formoptions.label; } catch (e) {}
+				break;
+			}
+		}
+	} else if(valref >=0) {
+		edtrul = g.p.colModel[valref].editrules;
+	}
+	if(edtrul) {
+		if(!nm) { nm = g.p.colNames[valref]; }
+		if(edtrul.required === true) {
+			if( val.match(/^s+$/) || val == "" )  { return [false,nm+": "+jQuery.jgrid.edit.msg.required,""]; }
+		}
+		// force required
+		var rqfield = edtrul.required === false ? false : true;
+		if(edtrul.number === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.number,""]; }
+			}
+		}
+		if(typeof edtrul.minValue != 'undefined' && !isNaN(edtrul.minValue)) {
+			if (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.minValue+" "+edtrul.minValue,""];}
+		}
+		if(typeof edtrul.maxValue != 'undefined' && !isNaN(edtrul.maxValue)) {
+			if (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.maxValue+" "+edtrul.maxValue,""];}
+		}
+		var filter;
+		if(edtrul.email === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+			// taken from jquery Validate plugin
+				filter = /^((([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;
+				if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.email,""];}
+			}
+		}
+		if(edtrul.integer === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""]; }
+				if ((val % 1 !== 0) || (val.indexOf('.') != -1)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""];}
+			}
+		}
+		if(edtrul.date === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				var dft = g.p.colModel[valref].datefmt || "Y-m-d";
+				if(!checkDate (dft, val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - "+dft,""]; }
+			}
+		}
+		if(edtrul.time === true) {
+			if( !(rqfield === false && isEmpty(val)) ) {
+				if(!checkTime (val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - hh:mm (am/pm)",""]; }
+			}
+		}
+        if(edtrul.url === true) {
+            if( !(rqfield === false && isEmpty(val)) ) {
+                filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
+                if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.url,""];}
+            }
+        }
+		if(edtrul.custom === true) {
+            if( !(rqfield === false && isEmpty(val)) ) {
+				if(jQuery.isFunction(edtrul.custom_func)) {
+					var ret = edtrul.custom_func.call(g,val,nm);
+					if(jQuery.isArray(ret)) {
+						return ret;
+					} else {
+						return [false,jQuery.jgrid.edit.msg.customarray,""];
+					}
+				} else {
+					return [false,jQuery.jgrid.edit.msg.customfcheck,""];
+				}
+			}
+		}
+	}
+	return [true,"",""];
+}

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.common.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css	(revision 178)
@@ -0,0 +1,129 @@
+/*Grid*/
+.ui-jqgrid {position: relative; font-size:11px;}
+.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em;}
+/* caption*/
+.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0px none;border-right: 0px none; border-top: 0px none;}
+.ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; }
+.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
+.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }
+/* header*/
+.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0em;padding: 0em; overflow-x: hidden; overflow-y: auto; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
+.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}
+.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0em;}
+.ui-jqgrid .ui-jqgrid-htable th {height:22px;padding: 0 2px 0 2px;}
+.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative; height:17px;}
+.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0px none;border-bottom : 0px none;}
+.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0px none;}
+.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0px none;}
+.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}
+.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}
+.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}
+.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}
+.ui-jqgrid .ui-icon-desc {margin-top:3px;height:12px;}
+.ui-jqgrid .ui-i-asc {margin-top:0px;height:16px;}
+.ui-jqgrid .ui-i-desc {margin-top:0px;margin-left:13px;height:16px;}
+.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;}
+.ui-jqgrid tr.ui-search-toolbar th { border-top-width: 1px !important; border-top-color: inherit !important; border-top-style: ridge !important }
+tr.ui-search-toolbar input {margin: 1px 0px 0px 0px}
+tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}
+/* body */ 
+.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0em; padding:0; overflow: auto; text-align:left;}
+.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0em;}
+.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
+.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
+.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
+.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0px; border: 0px none;}
+.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none;	border:0 none;}
+/* footer */
+.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0em;padding: 0em; overflow: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
+.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0em;}
+.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 21px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;}
+.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
+.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
+/* Pager*/
+.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;}
+.ui-jqgrid .ui-pager-control {position: relative;}
+.ui-jqgrid .ui-pg-table {position: relative; padding-bottom:2px; width:auto; margin: 0em;}
+.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:1px;}
+.ui-jqgrid .ui-pg-button  { height:19px !important;}
+.ui-jqgrid .ui-pg-button span { display: block; margin: 1px; float:left;}
+.ui-jqgrid .ui-pg-button:hover { padding: 0px; }
+.ui-jqgrid .ui-state-disabled:hover {padding:1px;}
+.ui-jqgrid .ui-pg-input { height:13px;font-size:.8em; margin: 0em;}
+.ui-jqgrid .ui-pg-selbox {font-size:.8em; line-height:18px; display:block; height:18px; margin: 0em;}
+.ui-jqgrid .ui-separator {height: 18px; border-left: 1px solid #ccc ; border-right: 1px solid #ccc ; margin: 1px; float: right;}
+.ui-jqgrid .ui-paging-info {font-weight: normal;height:19px; margin-top:3px;margin-right:4px;}
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-button { cursor:pointer; }
+.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon {float:left;margin:0 2px;}
+.ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { margin: 0em;}
+.ui-jqgrid td textarea {width:auto;height:auto;}
+.ui-jqgrid .ui-jqgrid-toppager {border-left: 0px none !important;border-right: 0px none !important; border-top: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px !important;white-space: nowrap;overflow: hidden;}
+/*subgrid*/
+.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}
+.ui-jqgrid .ui-subgrid {margin:0em;padding:0em; width:100%;}
+.ui-jqgrid .ui-subgrid table {table-layout: fixed;}
+.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
+.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0px none !important;}
+.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0px 0px 1px 0px;}
+.ui-jqgrid .ui-th-subgrid {height:20px;}
+/* loading */
+.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important;}
+.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}
+* html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+/* end loading div */
+/* toolbar */
+.ui-jqgrid .ui-userdata {border-left: 0px none;	border-right: 0px none;	height : 21px;overflow: hidden;	}
+/*Modal Window */
+.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}
+.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative;  }
+.ui-jqdialog .ui-jqdialog-title { margin: .1em 0 .2em; } 
+.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+
+.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }
+.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }
+.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}
+.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}
+/* end Modal window*/
+/* Form edit */
+.ui-jqdialog-content .FormGrid {margin: 0px;}
+.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0em;}
+.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0em;}
+.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0em;}
+.EditTable td textarea { width:auto; height:auto;}
+.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0px none;border-left: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
+.ui-jqdialog-content td.navButton {text-align: center; border-left: 0px none;border-top: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
+
+.ui-jqdialog-content .CaptionTD {text-align: left; vertical-align: top;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; padding: 1px;white-space: nowrap;}
+.ui-jqdialog-content .DataTD {padding: 1px;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; vertical-align: top;}
+.ui-jqdialog-content .form-view-data {white-space:pre}
+.fm-button { display: inline-block; margin:0 4px 0 0; padding: .4em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
+.fm-button-icon-left { padding-left: 1.9em; }
+.fm-button-icon-right { padding-right: 1.9em; }
+.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }
+.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}
+#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }
+/* End Eorm edit */
+/*.ui-jqgrid .edit-cell {}*/
+.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0px none;}
+/* Tree Grid */
+.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}
+.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}
+.ui-jqgrid .tree-plus {position: absolute;	height: 18px; width: 18px;	overflow: hidden;}
+.ui-jqgrid .tree-leaf {position: absolute;	height: 18px; width: 18px;overflow: hidden;}
+.ui-jqgrid .treeclick {cursor: pointer;}
+/* moda dialog */
+.jqmOverlay { background-color: #000; }
+* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
+.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}
+/* RTL Support */
+.ui-jqgrid .ui-jqgrid-title-rtl {float:right;margin: .1em 0 .2em; }
+.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right; padding-left: 20px;}
+.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0px;}
+.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0px -1px -3px;}
+.ui-jqgrid .ui-sort-rtl {left:0px;}
+.ui-jqgrid .tree-wrap-ltr {float: left;}
+.ui-jqgrid .tree-wrap-rtl {float: right;}
+.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis; -moz-binding:url('ellipsis-xbl.xml#ellipsis');}
+

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml	(revision 178)
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<bindings
+    xmlns="http://www.mozilla.org/xbl"
+    xmlns:xbl="http://www.mozilla.org/xbl"
+    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+    <binding id="ellipsis">
+        <content>
+            <xul:window><!-- xul:window tag required for FF2 -->
+                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
+            </xul:window>
+        </content>
+    </binding>
+</bindings>

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css	(revision 178)
@@ -0,0 +1,30 @@
+/* Multiselect
+----------------------------------*/
+
+.ui-multiselect { border: solid 1px; font-size: 0.8em; }
+.ui-multiselect ul { -moz-user-select: none; }
+.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }
+.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}
+.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }
+
+.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }
+.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }
+.ui-multiselect ul.selected li { }
+
+.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }
+.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }
+.ui-multiselect ul.available li { padding-left: 10px; }
+ 
+.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}
+.ui-multiselect .ui-state-hover { border: none; }
+.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}
+ 
+.ui-multiselect .add-all { float: right; padding: 7px;}
+.ui-multiselect .remove-all { float: right; padding: 7px;}
+.ui-multiselect .search { float: left; padding: 4px;}
+.ui-multiselect .count { float: left; padding: 7px;}
+
+.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }
+.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }
+ 
+.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css	(revision 178)
@@ -0,0 +1,7 @@
+.ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}
+.ui-searchFilter table {position:relative; margin:0em; width:auto}
+.ui-searchFilter table td {margin: 0em; padding: 1px;}
+.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}
+.ui-searchFilter .ui-state-default { cursor: pointer; }
+.ui-searchFilter .divider { height: 1px; }
+.ui-searchFilter .divider div { background-color: black; height: 1px; }
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/jqDnR.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/jqDnR.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/jqDnR.js	(revision 178)
@@ -0,0 +1,68 @@
+/*
+ * jqDnR - Minimalistic Drag'n'Resize for jQuery.
+ *
+ * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
+ * Licensed under the MIT License:
+ * http://www.opensource.org/licenses/mit-license.php
+ * 
+ * $Version: 2007.08.19 +r2
+ */
+
+(function($){
+$.fn.jqDrag=function(h){return i(this,h,'d');};
+$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
+$.jqDnR={
+	dnr:{},
+	e:0,
+	drag:function(v){
+ 		if(M.k == 'd')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});
+ 		else {
+			E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
+			if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
+		}
+  		return false;
+  	},
+	stop:function(){
+		//E.css('opacity',M.o);
+		$(document).unbind('mousemove',J.drag).unbind('mouseup',J.stop);
+	}
+};
+var J=$.jqDnR,M=J.dnr,E=J.e,E1,
+i=function(e,h,k,aR){
+	return e.each(function(){
+		h=(h)?$(h,e):e;
+ 		h.bind('mousedown',{e:e,k:k},function(v){
+ 			var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
+ 			// attempt utilization of dimensions plugin to fix IE issues
+ 			if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
+ 			M={
+ 				X:p.left||f('left')||0,
+ 				Y:p.top||f('top')||0,
+ 				W:f('width')||E[0].scrollWidth||0,
+ 				H:f('height')||E[0].scrollHeight||0,
+ 				pX:v.pageX,
+ 				pY:v.pageY,
+ 				k:d.k
+ 				//o:E.css('opacity')
+ 			};
+			// also resize
+			if(E1 && d.k != 'd'){
+ 				M1={
+					X:p.left||f1('left')||0,
+					Y:p.top||f1('top')||0,
+					W:E1[0].offsetWidth||f1('width')||0,
+					H:E1[0].offsetHeight||f1('height')||0,
+					pX:v.pageX,
+					pY:v.pageY,
+					k:d.k
+				};
+			} else {M1 = false;}			
+ 			//E.css({opacity:0.8});
+ 			$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
+ 			return false;
+ 		});
+	});
+},
+f=function(k){return parseInt(E.css(k))||false;};
+f1=function(k){	return parseInt(E1.css(k))||false;};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/jqDnR.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js	(revision 178)
@@ -0,0 +1,106 @@
+/*
+ Transform a table to a jqGrid.
+ Peter Romianowski <peter.romianowski@optivo.de> 
+ If the first column of the table contains checkboxes or
+ radiobuttons then the jqGrid is made selectable.
+*/
+// Addition - selector can be a class or id
+function tableToGrid(selector, options) {
+jQuery(selector).each(function() {
+	if(this.grid) {return;} //Adedd from Tony Tomov
+	// This is a small "hack" to make the width of the jqGrid 100%
+	jQuery(this).width("99%");
+	var w = jQuery(this).width();
+
+	// Text whether we have single or multi select
+	var inputCheckbox = jQuery('input[type=checkbox]:first', jQuery(this));
+	var inputRadio = jQuery('input[type=radio]:first', jQuery(this));
+	var selectMultiple = inputCheckbox.length > 0;
+	var selectSingle = !selectMultiple && inputRadio.length > 0;
+	var selectable = selectMultiple || selectSingle;
+	var inputName = inputCheckbox.attr("name") || inputRadio.attr("name");
+
+	// Build up the columnModel and the data
+	var colModel = [];
+	var colNames = [];
+	jQuery('th', jQuery(this)).each(function() {
+		if (colModel.length === 0 && selectable) {
+			colModel.push({
+				name: '__selection__',
+				index: '__selection__',
+				width: 0,
+				hidden: true
+			});
+			colNames.push('__selection__');
+		} else {
+			colModel.push({
+				name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
+				index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
+				width: jQuery(this).width() || 150
+			});
+			colNames.push(jQuery(this).html());
+		}
+	});
+	var data = [];
+	var rowIds = [];
+	var rowChecked = [];
+	jQuery('tbody > tr', jQuery(this)).each(function() {
+		var row = {};
+		var rowPos = 0;
+		jQuery('td', jQuery(this)).each(function() {
+			if (rowPos === 0 && selectable) {
+				var input = jQuery('input', jQuery(this));
+				var rowId = input.attr("value");
+				rowIds.push(rowId || data.length);
+				if (input.attr("checked")) {
+					rowChecked.push(rowId);
+				}
+				row[colModel[rowPos].name] = input.attr("value");
+			} else {
+				row[colModel[rowPos].name] = jQuery(this).html();
+			}
+			rowPos++;
+		});
+		if(rowPos >0) { data.push(row); }
+	});
+
+	// Clear the original HTML table
+	jQuery(this).empty();
+
+	// Mark it as jqGrid
+	jQuery(this).addClass("scroll");
+
+	jQuery(this).jqGrid($.extend({
+		datatype: "local",
+		width: w,
+		colNames: colNames,
+		colModel: colModel,
+		multiselect: selectMultiple
+		//inputName: inputName,
+		//inputValueCol: imputName != null ? "__selection__" : null
+	}, options || {}));
+
+	// Add data
+	var a;
+	for (a = 0; a < data.length; a++) {
+		var id = null;
+		if (rowIds.length > 0) {
+			id = rowIds[a];
+			if (id && id.replace) {
+				// We have to do this since the value of a checkbox
+				// or radio button can be anything 
+				id = encodeURIComponent(id).replace(/[.\-%]/g, "_");
+			}
+		}
+		if (id === null) {
+			id = a + 1;
+		}
+		jQuery(this).jqGrid("addRowData",id, data[a]);
+	}
+
+	// Set the selection
+	for (a = 0; a < rowChecked.length; a++) {
+		jQuery(this).jqGrid("setSelection",rowChecked[a]);
+	}
+});
+};

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js	(revision 178)
@@ -0,0 +1,526 @@
+/*
+**
+ * formatter for values but most of the values if for jqGrid
+ * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
+ * we are trying to keep it as light as possible
+ * Joshua Burnett josh@9ci.com	
+ * http://www.greenbill.com
+ *
+ * Changes from Tony Tomov tony@trirand.com
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ * 
+**/
+
+;(function($) {
+	$.fmatter = {};
+	//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
+	//example {id:1234,}
+	$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
+		//debug(this);
+		//debug(cellval);
+		// build main options before element iteration
+		opts = $.extend({}, $.jgrid.formatter, opts);
+		return fireFormatter(formatType,cellval, opts, rwd, act); 
+	};
+	$.fmatter.util = {
+		// Taken from YAHOO utils
+		NumberFormat : function(nData,opts) {
+			if(!isNumber(nData)) {
+				nData *= 1;
+			}
+			if(isNumber(nData)) {
+		        var bNegative = (nData < 0);
+				var sOutput = nData + "";
+				var sDecimalSeparator = (opts.decimalSeparator) ? opts.decimalSeparator : ".";
+				var nDotIndex;
+				if(isNumber(opts.decimalPlaces)) {
+					// Round to the correct decimal place
+					var nDecimalPlaces = opts.decimalPlaces;
+					var nDecimal = Math.pow(10, nDecimalPlaces);
+					sOutput = Math.round(nData*nDecimal)/nDecimal + "";
+					nDotIndex = sOutput.lastIndexOf(".");
+					if(nDecimalPlaces > 0) {
+                    // Add the decimal separator
+						if(nDotIndex < 0) {
+							sOutput += sDecimalSeparator;
+							nDotIndex = sOutput.length-1;
+						}
+						// Replace the "."
+						else if(sDecimalSeparator !== "."){
+							sOutput = sOutput.replace(".",sDecimalSeparator);
+						}
+                    // Add missing zeros
+						while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
+						    sOutput += "0";
+						}
+	                }
+	            }
+	            if(opts.thousandsSeparator) {
+	                var sThousandsSeparator = opts.thousandsSeparator;
+	                nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
+	                nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
+	                var sNewOutput = sOutput.substring(nDotIndex);
+	                var nCount = -1;
+	                for (var i=nDotIndex; i>0; i--) {
+	                    nCount++;
+	                    if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
+	                        sNewOutput = sThousandsSeparator + sNewOutput;
+	                    }
+	                    sNewOutput = sOutput.charAt(i-1) + sNewOutput;
+	                }
+	                sOutput = sNewOutput;
+	            }
+	            // Prepend prefix
+	            sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
+	            // Append suffix
+	            sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
+	            return sOutput;
+				
+			} else {
+				return nData;
+			}
+		},
+		// Tony Tomov
+		// PHP implementation. Sorry not all options are supported.
+		// Feel free to add them if you want
+		DateFormat : function (format, date, newformat, opts)  {
+			var	token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,
+			timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
+			timezoneClip = /[^-+\dA-Z]/g,
+			pad = function (value, length) {
+				value = String(value);
+				length = parseInt(length,10) || 2;
+				while (value.length < length)  { value = '0' + value; }
+				return value;
+			},
+		    ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},
+		    timestamp=0, dM, k,hl,
+		    dateFormat=["i18n"];
+			// Internationalization strings
+		    dateFormat["i18n"] = {
+				dayNames: opts.dayNames,
+				monthNames: opts.monthNames
+			};
+			if( format in opts.masks ) { format = opts.masks[format]; }
+			if(date.constructor === Date) {
+				timestamp = date;
+			} else {
+				date = date.split(/[\\\/:_;.\t\T\s-]/);
+				format = format.split(/[\\\/:_;.\t\T\s-]/);
+				// parsing for month names
+				for(k=0,hl=format.length;k<hl;k++){
+					if(format[k] == 'M') {
+						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
+						if(dM !== -1 && dM < 12){date[k] = dM+1;}
+					}
+					if(format[k] == 'F') {
+						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
+						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
+					}
+				    ts[format[k].toLowerCase()] = parseInt(date[k],10);
+				}
+				ts.m = parseInt(ts.m,10)-1;
+				var ty = ts.y;
+				if (ty >= 70 && ty <= 99) { ts.y = 1900+ts.y; }
+				else if (ty >=0 && ty <=69) { ts.y= 2000+ts.y; }
+				timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
+			}
+			
+			if( newformat in opts.masks )  {
+				newformat = opts.masks[newformat];
+			} else if ( !newformat ) {
+				newformat = 'Y-m-d';
+			}
+		    var 
+		        G = timestamp.getHours(),
+		        i = timestamp.getMinutes(),
+		        j = timestamp.getDate(),
+				n = timestamp.getMonth() + 1,
+				o = timestamp.getTimezoneOffset(),
+				s = timestamp.getSeconds(),
+				u = timestamp.getMilliseconds(),
+				w = timestamp.getDay(),
+				Y = timestamp.getFullYear(),
+				N = (w + 6) % 7 + 1,
+				z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,
+				flags = {
+					// Day
+					d: pad(j),
+					D: dateFormat.i18n.dayNames[w],
+					j: j,
+					l: dateFormat.i18n.dayNames[w + 7],
+					N: N,
+					S: opts.S(j),
+					//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',
+					w: w,
+					z: z,
+					// Week
+					W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),
+					// Month
+					F: dateFormat.i18n.monthNames[n - 1 + 12],
+					m: pad(n),
+					M: dateFormat.i18n.monthNames[n - 1],
+					n: n,
+					t: '?',
+					// Year
+					L: '?',
+					o: '?',
+					Y: Y,
+					y: String(Y).substring(2),
+					// Time
+					a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],
+					A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],
+					B: '?',
+					g: G % 12 || 12,
+					G: G,
+					h: pad(G % 12 || 12),
+					H: pad(G),
+					i: pad(i),
+					s: pad(s),
+					u: u,
+					// Timezone
+					e: '?',
+					I: '?',
+					O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
+					P: '?',
+					T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""),
+					Z: '?',
+					// Full Date/Time
+					c: '?',
+					r: '?',
+					U: Math.floor(timestamp / 1000)
+				};	
+			return newformat.replace(token, function ($0) {
+				return $0 in flags ? flags[$0] : $0.substring(1);
+			});			
+		}
+	};
+	$.fn.fmatter.defaultFormat = function(cellval, opts) {
+		return (isValue(cellval) && cellval!=="" ) ?  cellval : opts.defaultValue ? opts.defaultValue : "&#160;";
+	};
+	$.fn.fmatter.email = function(cellval, opts) {
+		if(!isEmpty(cellval)) {
+			return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
+        }else {
+			return $.fn.fmatter.defaultFormat(cellval,opts );
+        }
+	};
+	$.fn.fmatter.checkbox =function(cval, opts) {
+		var op = $.extend({},opts.checkbox), ds;
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(op.disabled===true) {ds = "disabled";} else {ds="";}
+		if(isEmpty(cval) || isUndefined(cval) ) { cval = $.fn.fmatter.defaultFormat(cval,op); }
+		cval=cval+""; cval=cval.toLowerCase();
+		var bchk = cval.search(/(false|0|no|off)/i)<0 ? " checked='checked' " : "";
+        return "<input type=\"checkbox\" " + bchk  + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
+    };
+	$.fn.fmatter.link = function(cellval, opts) {
+		var op = {target:opts.target };
+		var target = "";
+		if(!isUndefined(opts.colModel.formatoptions)) {
+            op = $.extend({},op,opts.colModel.formatoptions);
+        }
+		if(op.target) {target = 'target=' + op.target;}
+        if(!isEmpty(cellval)) {
+			return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
+        }else {
+            return $.fn.fmatter.defaultFormat(cellval,opts);
+        }
+    };
+	$.fn.fmatter.showlink = function(cellval, opts) {
+		var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName },
+		target = "", idUrl;
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(op.target) {target = 'target=' + op.target;}
+		idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
+        if(isString(cellval)) {	//add this one even if its blank string
+			return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
+        }else {
+			return $.fn.fmatter.defaultFormat(cellval,opts);
+	    }
+    };
+	$.fn.fmatter.integer = function(cellval, opts) {
+		var op = $.extend({},opts.integer);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(isEmpty(cellval)) {
+			return op.defaultValue;
+		}
+		return $.fmatter.util.NumberFormat(cellval,op);
+	};
+	$.fn.fmatter.number = function (cellval, opts) {
+		var op = $.extend({},opts.number);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(isEmpty(cellval)) {
+			return op.defaultValue;
+		}
+		return $.fmatter.util.NumberFormat(cellval,op);
+	};
+	$.fn.fmatter.currency = function (cellval, opts) {
+		var op = $.extend({},opts.currency);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(isEmpty(cellval)) {
+			return op.defaultValue;
+		}
+		return $.fmatter.util.NumberFormat(cellval,op);
+	};
+	$.fn.fmatter.date = function (cellval, opts, rwd, act) {
+		var op = $.extend({},opts.date);
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend({},op,opts.colModel.formatoptions);
+		}
+		if(!op.reformatAfterEdit && act=='edit'){
+			return $.fn.fmatter.defaultFormat(cellval, opts);
+		} else if(!isEmpty(cellval)) {
+			return  $.fmatter.util.DateFormat(op.srcformat,cellval,op.newformat,op);
+		} else {
+			return $.fn.fmatter.defaultFormat(cellval, opts);
+		}
+	};
+	$.fn.fmatter.select = function (cellval,opts, rwd, act) {
+		// jqGrid specific
+		cellval = cellval + "";
+		var oSelect = false, ret=[];
+		if(!isUndefined(opts.colModel.editoptions)){
+			oSelect= opts.colModel.editoptions.value;
+		}
+		if (oSelect) {
+			var	msl =  opts.colModel.editoptions.multiple === true ? true : false,
+			scell = [], sv;
+			if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
+			if (isString(oSelect)) {
+				// mybe here we can use some caching with care ????
+				var so = oSelect.split(";"), j=0;
+				for(var i=0; i<so.length;i++){
+					sv = so[i].split(":");
+					if(sv.length > 2 ) {
+						sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n; } }).join(":");
+					}
+					if(msl) {
+						if(jQuery.inArray(sv[0],scell)>-1) {
+							ret[j] = sv[1];
+							j++;
+						}
+					} else if($.trim(sv[0])==$.trim(cellval)) {
+						ret[0] = sv[1];
+						break;
+					}
+				}
+			} else if(isObject(oSelect)) {
+				// this is quicker
+				if(msl) {
+					ret = jQuery.map(scell, function(n, i){
+						return oSelect[n];
+					});
+				} else {
+					ret[0] = oSelect[cellval] || "";
+				}
+			}
+		}
+		cellval = ret.join(", ");
+		return  cellval == "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
+	};
+	$.fn.fmatter.rowactions = function(rid,gid,act,keys) {
+		switch(act)
+		{
+			case 'edit':
+				var restorerow = function()	{
+					$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
+					$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
+				};
+				$('#'+gid).jqGrid('editRow',rid,keys,null,null,null,{oper:'edit'},restorerow,null,restorerow);
+				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).hide();
+				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).show();
+			break;
+			case 'save':
+				$('#'+gid).jqGrid('saveRow',rid,null,null );
+				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
+				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
+				break;
+			case 'cancel' :
+				$('#'+gid).jqGrid('restoreRow',rid);
+				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
+				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
+				break;
+		}
+	};
+	$.fn.fmatter.actions = function(cellval,opts, rwd) {
+		var op ={keys:false, editbutton:true, delbutton:true};
+		if(!isUndefined(opts.colModel.formatoptions)) {
+			op = $.extend(op,opts.colModel.formatoptions);
+		}
+		var rowid = opts.rowId, str="",ocl;
+		if(typeof(rowid) =='undefined' || isEmpty(rowid)) { return ""; }
+		if(op.editbutton){
+			ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','edit',"+op.keys+");";
+			str =str+ "<div style='margin-left:8px;'><div title='"+$.jgrid.nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='ui-icon ui-icon-pencil'></span></div>";
+		}
+		if(op.delbutton) {
+			ocl = "onclick=jQuery('#"+opts.gid+"').jqGrid('delGridRow','"+rowid+"');";
+			str = str+"<div title='"+$.jgrid.nav.deltitle+"' style='float:left;margin-left:5px;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='ui-icon ui-icon-trash'></span></div>";
+		}
+		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','save',false);";
+		str = str+"<div title='"+$.jgrid.edit.bSubmit+"' style='float:left;display:none' class='ui-pg-div ui-inline-save'><span class='ui-icon ui-icon-disk' "+ocl+"></span></div>";
+		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','cancel',false);";
+		str = str+"<div title='"+$.jgrid.edit.bCancel+"' style='float:left;display:none;margin-left:5px;' class='ui-pg-div ui-inline-cancel'><span class='ui-icon ui-icon-cancel' "+ocl+"></span></div></div>";
+		return str;
+	};
+	$.unformat = function (cellval,options,pos,cnt) {
+		// specific for jqGrid only
+		var ret, formatType = options.colModel.formatter,
+		op =options.colModel.formatoptions || {}, sep,
+		re = /([\.\*\_\'\(\)\{\}\+\?\\])/g;
+		unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
+		if(typeof unformatFunc !== 'undefined' && isFunction(unformatFunc) ) {
+			ret = unformatFunc($(cellval).text(), options, cellval);
+		} else if(typeof formatType !== 'undefined' && isString(formatType) ) {
+			var opts = $.jgrid.formatter || {}, stripTag;
+			switch(formatType) {
+				case 'integer' :
+					op = $.extend({},opts.integer,op);
+					sep = op.thousandsSeparator.replace(re,"\\$1");
+					stripTag = new RegExp(sep, "g");
+					ret = $(cellval).text().replace(stripTag,'');
+					break;
+				case 'number' :
+					op = $.extend({},opts.number,op);
+					sep = op.thousandsSeparator.replace(re,"\\$1");
+					stripTag = new RegExp(sep, "g");
+					ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
+					break;
+				case 'currency':
+					op = $.extend({},opts.currency,op);
+					sep = op.thousandsSeparator.replace(re,"\\$1");
+					stripTag = new RegExp(sep, "g");
+					ret = $(cellval).text().replace(stripTag,'').replace(op.decimalSeparator,'.').replace(op.prefix,'').replace(op.suffix,'');
+					break;
+				case 'checkbox':
+					var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
+					ret = $('input',cellval).attr("checked") ? cbv[0] : cbv[1];
+					break;
+				case 'select' :
+					ret = $.unformat.select(cellval,options,pos,cnt);
+					break;
+				case 'actions':
+					return "";
+				default:
+					ret= $(cellval).text();
+			}
+		}
+		return ret ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
+	};
+	$.unformat.select = function (cellval,options,pos,cnt) {
+		// Spacial case when we have local data and perform a sort
+		// cnt is set to true only in sortDataArray
+		var ret = [];
+		var cell = $(cellval).text();
+		if(cnt===true) { return cell; }
+		var op = $.extend({},options.colModel.editoptions);
+		if(op.value){
+			var oSelect = op.value,
+			msl =  op.multiple === true ? true : false,
+			scell = [], sv;
+			if(msl) { scell = cell.split(","); scell = $.map(scell,function(n){return $.trim(n);}); }
+			if (isString(oSelect)) {
+				var so = oSelect.split(";"), j=0;
+				for(var i=0; i<so.length;i++){
+					sv = so[i].split(":");
+					if(msl) {
+						if(jQuery.inArray(sv[1],scell)>-1) {
+							ret[j] = sv[0];
+							j++;
+						}
+					} else if($.trim(sv[1])==$.trim(cell)) {
+						ret[0] = sv[0];
+						break;
+					}
+				}
+			} else if(isObject(oSelect)) {
+				if(!msl) { scell[0] =  cell; }
+				ret = jQuery.map(scell, function(n){
+					var rv;
+					$.each(oSelect, function(i,val){
+						if (val == n) {
+							rv = i;
+							return false;
+						}
+					});
+					if( rv) { return rv; }
+				});
+			}
+			return ret.join(", ");
+		} else {
+			return cell || "";
+		}
+	};
+	function fireFormatter(formatType,cellval, opts, rwd, act) {
+		var v=cellval;
+
+        if ($.fn.fmatter[formatType]){
+            v = $.fn.fmatter[formatType](cellval, opts, rwd, act);
+        }
+
+        return v;
+	}
+	//private methods and data
+	function debug($obj) {
+		if (window.console && window.console.log) { window.console.log($obj); }
+	}
+	/**
+     * A convenience method for detecting a legitimate non-null value.
+     * Returns false for null/undefined/NaN, true for other values, 
+     * including 0/false/''
+	 *  --taken from the yui.lang
+     */
+    isValue= function(o) {
+		return (isObject(o) || isString(o) || isNumber(o) || isBoolean(o));
+    };
+	isBoolean= function(o) {
+        return typeof o === 'boolean';
+    };
+    isNull= function(o) {
+        return o === null;
+    };
+    isNumber= function(o) {
+        return typeof o === 'number' && isFinite(o);
+    };
+    isString= function(o) {
+        return typeof o === 'string';
+    };
+	/**
+	* check if its empty trim it and replace \&nbsp and \&#160 with '' and check if its empty ===""
+	* if its is not a string but has a value then it returns false, Returns true for null/undefined/NaN
+	essentailly this provdes a way to see if it has any value to format for things like links
+	*/
+	isEmpty= function(o) {
+		if(!isString(o) && isValue(o)) {
+			return false;
+		}else if (!isValue(o)){
+			return true;
+		}
+		o = $.trim(o).replace(/\&nbsp\;/ig,'').replace(/\&#160\;/ig,'');
+        return o==="";
+		
+    };
+    isUndefined= function(o) {
+        return typeof o === 'undefined';
+    };
+	isObject= function(o) {
+		return (o && (typeof o === 'object' || isFunction(o))) || false;
+    };
+	isFunction= function(o) {
+        return typeof o === 'function';
+    };
+
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js	(revision 178)
@@ -0,0 +1,126 @@
+;(function($){
+/**
+ * jqGrid extension for manipulating columns properties
+ * Piotr Roznicki roznicki@o2.pl
+ * http://www.roznicki.prv.pl
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+$.jgrid.extend({
+	setColumns : function(p) {
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 200,
+			height: 'auto',
+			dataheight: 'auto',
+			modal: false,
+			drag: true,
+			beforeShowForm: null,
+			afterShowForm: null,
+			afterSubmitForm: null,
+			closeOnEscape : true,
+			ShrinkToFit : false,
+			jqModal : false,
+			saveicon: [true,"left","ui-icon-disk"],
+			closeicon: [true,"left","ui-icon-close"],
+			onClose : null,
+			colnameview : true,
+			closeAfterSubmit : true,
+			updateAfterCheck : false,
+			recreateForm : false
+		}, $.jgrid.col, p ||{});
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid ) { return; }
+			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;
+			var onAfterShow = typeof p.afterShowForm === 'function' ? true: false;
+			var onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;			
+			var gID = $t.p.id,
+			dtbl = "ColTbl_"+gID,
+			IDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};
+			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
+				$("#"+IDs.themodal).remove();
+			}
+			if ( $("#"+IDs.themodal).html() != null ) {
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			} else {
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var formdata = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
+				formdata += "<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>";
+				for(i=0;i<this.p.colNames.length;i++){
+					if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
+						formdata += "<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_" + this.p.colModel[i].name + "' class='cbox' value='T' " + 
+						((this.p.colModel[i].hidden===false)?"checked":"") + "/>" +  "<label for='col_" + this.p.colModel[i].name + "'>" + this.p.colNames[i] + ((p.colnameview) ? " (" + this.p.colModel[i].name + ")" : "" )+ "</label></td></tr>";
+					}
+				}
+				formdata += "</tbody></table></div>"
+				var bS  = !p.updateAfterCheck ? "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>" : "",
+				bC  ="<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
+				formdata += "<table border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
+				p.gbox = "#gbox_"+gID;
+				createModal(IDs,formdata,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				if(p.saveicon[0]==true) {
+					$("#dData","#"+dtbl+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
+				}
+				if(p.closeicon[0]==true) {
+					$("#eData","#"+dtbl+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
+				}
+				if(!p.updateAfterCheck) {
+					$("#dData","#"+dtbl+"_2").click(function(e){
+						for(i=0;i<$t.p.colModel.length;i++){
+							if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
+								var nm = $t.p.colModel[i].name.replace(".", "\\.");
+								if($("#col_" + nm,"#"+dtbl).attr("checked")) {
+									$($t).jqGrid("showCol",$t.p.colModel[i].name);
+									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",true); // Added from T. Tomov IE BUG
+								} else {
+									$($t).jqGrid("hideCol",$t.p.colModel[i].name);
+									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",""); // Added from T. Tomov IE BUG
+								}
+							}
+						}
+						if(p.ShrinkToFit===true) {
+							$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
+						}
+						if(p.closeAfterSubmit) hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
+						if (onAfterSubmit) { p.afterSubmitForm($("#"+dtbl)); }
+						return false;
+					});
+				} else {
+					$(":input","#"+dtbl).click(function(e){
+						var cn = this.id.substr(4);
+						if(cn){
+							if(this.checked) {
+								$($t).jqGrid("showCol",cn);
+							} else {
+								$($t).jqGrid("hideCol",cn);
+							}
+							if(p.ShrinkToFit===true) {
+								$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
+							}
+						}
+						return this;
+					});
+				}
+				$("#eData", "#"+dtbl+"_2").click(function(e){
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
+					return false;
+				});
+				$("#dData, #eData","#"+dtbl+"_2").hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);				
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			}
+		});
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.subgrid.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.subgrid.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.subgrid.js	(revision 178)
@@ -0,0 +1,260 @@
+;(function($){
+/**
+ * jqGrid extension for SubGrid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+$.jgrid.extend({
+setSubGrid : function () {
+	return this.each(function (){
+		var $t = this, cm;
+		$t.p.colNames.unshift("");
+		$t.p.colModel.unshift({name:'subgrid',width: $.browser.safari ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});
+		cm = $t.p.subGridModel;
+		if(cm[0]) {
+			cm[0].align = $.extend([],cm[0].align || []);
+			for(var i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}
+		}
+	});
+},
+addSubGridCell :function (pos,iRow) {
+	var prp='',gv,sid;
+	this.each(function(){
+		prp = this.formatCol(pos,iRow);
+		gv = this.p.gridview;
+		sid= this.p.id;
+	});
+	if( gv === false ){
+		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a></td>";
+	} else  {
+		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" " +prp +"></td>";
+	}
+},
+addSubGrid : function(t,pos) {
+	return this.each(function(){
+		var ts = this;
+		if (!ts.grid ) { return; }
+		var res,_id, pID,atd, nhc, subdata, bfsc;
+		$("td:eq("+pos+")",t).click( function(e) {
+			if($(this).hasClass("sgcollapsed")) {
+				pID = ts.p.id;
+				res = $(this).parent();
+				atd = pos >=1 ? "<td colspan='"+pos+"'>&#160;</td>":"";
+				_id = $(res).attr("id");
+				bfsc =true;
+				if($.isFunction(ts.p.subGridBeforeExpand)) {
+					bfsc = ts.p.subGridBeforeExpand(pID+"_"+_id,_id);
+				}
+				if(bfsc === false) {return false;}
+				nhc = 0;
+				$.each(ts.p.colModel,function(i,v){
+					if(this.hidden === true || this.name == 'rn' || this.name == 'cb') {nhc++;}
+				});
+				subdata = "<tr role='row' class='ui-subgrid'>"+atd+"<td class='ui-widget-content subgrid-cell'><span class='ui-icon ui-icon-carat-1-sw'/></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='ui-widget-content subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'>";
+				$(this).parent().after( subdata+ "</div></td></tr>" );
+				if( $.isFunction(ts.p.subGridRowExpanded)) {
+					ts.p.subGridRowExpanded(pID+"_"+ _id,_id);
+				} else {
+					populatesubgrid(res);
+				}
+				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-minus'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");
+			} else if($(this).hasClass("sgexpanded")) {
+				bfsc = true;
+				if( $.isFunction(ts.p.subGridRowColapsed)) {
+					res = $(this).parent();
+					_id = $(res).attr("id");
+					bfsc = ts.p.subGridRowColapsed(pID+"_"+_id,_id );
+				}
+				if(bfsc===false) {return false;}
+				$(this).parent().next().remove(".ui-subgrid");
+				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");
+			}
+			return false;
+		});
+		//-------------------------
+		var populatesubgrid = function( rd ) {
+			var res,sid,dp, i, j;
+			sid = $(rd).attr("id");
+			dp = {nd_: (new Date().getTime())};
+			dp[ts.p.prmNames.subgridid]=sid;
+			if(!ts.p.subGridModel[0]) { return false; }
+			if(ts.p.subGridModel[0].params) {
+				for(j=0; j < ts.p.subGridModel[0].params.length; j++) {
+					for(i=0; i<ts.p.colModel.length; i++) {
+						if(ts.p.colModel[i].name == ts.p.subGridModel[0].params[j]) {
+							dp[ts.p.colModel[i].name]= $("td:eq("+i+")",rd).text().replace(/\&#160\;/ig,'');
+						}
+					}
+				}
+			}
+			if(!ts.grid.hDiv.loading) {
+				ts.grid.hDiv.loading = true;
+				$("#load_"+ts.p.id).show();
+				if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }
+				if($.isFunction(ts.p.subgridtype)) {
+					ts.p.subgridtype(dp);
+				} else {
+					ts.p.subgridtype = ts.p.subgridtype.toLowerCase();
+				}
+				switch(ts.p.subgridtype) {
+					case "xml":
+					case "json":
+					$.ajax($.extend({
+						type:ts.p.mtype,
+						url: ts.p.subGridUrl,
+						dataType:ts.p.subgridtype,
+						data: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData(dp) : dp,
+						complete: function(sxml) {
+							if(ts.p.subgridtype == "xml") {
+								subGridXml(sxml.responseXML, sid);
+							} else {
+								subGridJson($.jgrid.parse(sxml.responseText),sid);
+							}
+							sxml=null;
+						}
+					}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));
+					break;
+				}
+			}
+			return false;
+		};
+		var subGridCell = function(trdiv,cell,pos){
+			var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell);
+			$(trdiv).append(tddiv);
+		};
+		var subGridXml = function(sjxml, sbid){
+			var tddiv, i, cur, sgmap,
+			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
+			trdiv = $("<tr></tr>");
+			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
+				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
+				$(tddiv).html(ts.p.subGridModel[0].name[i]);
+				$(tddiv).width( ts.p.subGridModel[0].width[i]);
+				$(trdiv).append(tddiv);
+			}
+			$(dummy).append(trdiv);
+			if (sjxml){
+				sgmap = ts.p.xmlReader.subgrid;
+				$(sgmap.root+" "+sgmap.row, sjxml).each( function(){
+					trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
+					if(sgmap.repeatitems === true) {
+						$(sgmap.cell,this).each( function(i) {
+							subGridCell(trdiv, $(this).text() || '&#160;',i);
+						});
+					} else {
+						var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
+						if (f) {
+							for (i=0;i<f.length;i++) {
+								subGridCell(trdiv, $(f[i],this).text() || '&#160;',i);
+							}
+						}
+					}
+					$(dummy).append(trdiv);
+				});
+			}
+			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
+			$("#"+pID+sbid).append(dummy);
+			ts.grid.hDiv.loading = false;
+			$("#load_"+ts.p.id).hide();
+			return false;
+		};
+		var subGridJson = function(sjxml, sbid){
+			var tddiv,result , i,cur, sgmap,j,
+			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
+			trdiv = $("<tr></tr>");
+			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
+				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
+				$(tddiv).html(ts.p.subGridModel[0].name[i]);
+				$(tddiv).width( ts.p.subGridModel[0].width[i]);
+				$(trdiv).append(tddiv);
+			}
+			$(dummy).append(trdiv);
+			if (sjxml){
+				sgmap = ts.p.jsonReader.subgrid;
+				result = sjxml[sgmap.root];
+				if ( typeof result !== 'undefined' ) {
+					for (i=0;i<result.length;i++) {
+						cur = result[i];
+						trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
+						if(sgmap.repeatitems === true) {
+							if(sgmap.cell) { cur=cur[sgmap.cell]; }
+							for (j=0;j<cur.length;j++) {
+								subGridCell(trdiv, cur[j] || '&#160;',j);
+							}
+						} else {
+							var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
+							if(f.length) {
+								for (j=0;j<f.length;j++) {
+									subGridCell(trdiv, cur[f[j]] || '&#160;',j);
+								}
+							}
+						}
+						$(dummy).append(trdiv);
+					}
+				}
+			}
+			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
+			$("#"+pID+sbid).append(dummy);
+			ts.grid.hDiv.loading = false;
+			$("#load_"+ts.p.id).hide();
+			return false;
+		};
+		ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};
+		ts.subGridJson = function(json,sid) {subGridJson(json,sid);};
+	});
+},
+expandSubGridRow : function(rowid) {
+	return this.each(function () {
+		var $t = this;
+		if(!$t.grid && !rowid) {return;}
+		if($t.p.subGrid===true) {
+			var rc = $(this).jqGrid("getInd",rowid,true);
+			if(rc) {
+				var sgc = $("td.sgcollapsed",rc)[0];
+				if(sgc) {
+					$(sgc).trigger("click");
+				}
+			}
+		}
+	});
+},
+collapseSubGridRow : function(rowid) {
+	return this.each(function () {
+		var $t = this;
+		if(!$t.grid && !rowid) {return;}
+		if($t.p.subGrid===true) {
+			var rc = $(this).jqGrid("getInd",rowid,true);
+			if(rc) {
+				var sgc = $("td.sgexpanded",rc)[0];
+				if(sgc) {
+					$(sgc).trigger("click");
+				}
+			}
+		}
+	});
+},
+toggleSubGridRow : function(rowid) {
+	return this.each(function () {
+		var $t = this;
+		if(!$t.grid && !rowid) {return;}
+		if($t.p.subGrid===true) {
+			var rc = $(this).jqGrid("getInd",rowid,true);
+			if(rc) {
+				var sgc = $("td.sgcollapsed",rc)[0];
+				if(sgc) {
+					$(sgc).trigger("click");
+				} else {
+					sgc = $("td.sgexpanded",rc)[0];
+					if(sgc) {
+						$(sgc).trigger("click");
+					}
+				}
+			}
+		}
+	});
+}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.subgrid.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/jqModal.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/jqModal.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/jqModal.js	(revision 178)
@@ -0,0 +1,69 @@
+/*
+ * jqModal - Minimalist Modaling with jQuery
+ *   (http://dev.iceburg.net/jquery/jqmodal/)
+ *
+ * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ * 
+ * $Version: 07/06/2008 +r13
+ */
+(function($) {
+$.fn.jqm=function(o){
+var p={
+overlay: 50,
+closeoverlay : true,
+overlayClass: 'jqmOverlay',
+closeClass: 'jqmClose',
+trigger: '.jqModal',
+ajax: F,
+ajaxText: '',
+target: F,
+modal: F,
+toTop: F,
+onShow: F,
+onHide: F,
+onLoad: F
+};
+return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
+H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
+if(p.trigger)$(this).jqmAddTrigger(p.trigger);
+});};
+
+$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
+$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
+$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
+$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t)});};
+
+$.jqm = {
+hash:{},
+open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
+ if(c.modal) {if(!A[0])setTimeout(function(){L('bind');},1);A.push(s);}
+ else if(c.overlay > 0) {if(c.closeoverlay) h.w.jqmAddClose(o);}
+ else o=F;
+
+ h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
+ if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}
+
+ if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r == 'string')?$(r,h.w):$(r);u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
+  r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
+ else if(cc)h.w.jqmAddClose($(cc,h.w));
+
+ if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
+ (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
+},
+close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
+ if(A[0]){A.pop();if(!A[0])L('unbind');}
+ if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
+ if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
+},
+params:{}};
+var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
+e=function(h){var i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0});if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
+f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
+L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
+m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
+hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
+ if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/jqModal.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js	(revision 178)
@@ -0,0 +1,714 @@
+/* Plugin:      searchFilter v1.2.9
+ * Author:      Kasey Speakman (kasey@cornerspeed.com)
+ * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)
+ *
+ * REQUIREMENTS:
+ *    jQuery 1.3+           (http://jquery.com/)
+ *    A Themeroller Theme   (http://jqueryui.com/themeroller/)
+ *
+ * SECURITY WARNING
+ *    You should always implement server-side checking to ensure that
+ *    the query will fail when forged/invalid data is received.
+ *    Clever users can send any value they want through JavaScript and HTTP POST/GET.
+ *
+ * THEMES
+ *    Simply include the CSS file for your Themeroller theme.
+ *
+ * DESCRIPTION
+ *     This plugin creates a new searchFilter object in the specified container
+ *
+ * INPUT TYPE
+ *     fields:  an array of field objects. each object has the following properties:
+ *              text: a string containing the display name of the field (e.g. "Field 1")
+ *              itemval: a string containing the actual field name (e.g. "field1")
+ *              optional properties:
+ *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators
+ *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]
+ *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used
+ *                  *** NOTE ***
+ *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated
+ *                  instead of a text input <input type='text'.../> where the user would normally type in their search data
+ *                  ************
+ *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field
+ *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]
+ *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element
+ *                  dataEvents: list of events to apply to the data element. uses $("#id").bind(type, [data], fn) to bind events to data element
+ *              *** JSON of this object could look like this: ***
+ *               var fields = [
+ *                 {
+ *                   text: 'Field Display Name',
+ *                   itemval: 'field_actual_name',
+ *                   // below this are optional values
+ *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators
+ *                     { op: 'gt', text: 'greater than' },
+ *                     { op: 'lt', text: 'less than' }
+ *                   ],
+ *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'
+ *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'
+ *                     { text: 'Data Value Display Name', value: 'data_actual_value' },
+ *                     { ... }
+ *                   ],
+ *                   dataInit: function(jElem) { jElem.datepicker(options); },
+ *                   dataEvents: [ // these are the same options that you pass to $("#id").bind(type, [data], fn)
+ *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },
+ *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }
+ *                   ]
+ *                 },
+ *                 { ... }
+ *               ]
+ *     options: name:value properties containing various creation options
+ *              see jQuery.fn.searchFilter.defaults for the overridable options
+ *
+ * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:
+ *     Methods
+ *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.
+ *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.
+ *         reset:  resets filters back to original state (only one blank filter), and calls onReset
+ *         search: puts the search rules into an object and calls onSearch with it
+ *         close:  calls the onClose event handler
+ *
+ * USAGE
+ *     HTML
+ *         <head>
+ *             ...
+ *             <script src="path/to/jquery.min.js" type="text/javascript"></script>
+ *             <link href="path/to/themeroller.css" rel="Stylesheet" type="text/css" />
+ *             <script src="path/to/jquery.searchFilter.js" type="text/javascript"></script>
+ *             <link href="path/to/jquery.searchFilter.css" rel="Stylesheet" type="text/css" />
+ *             ...
+ *         </head>
+ *         <body>
+ *             ...
+ *             <div id='mySearch'></div>
+ *             ...
+ *         </body>
+ *     JQUERY
+ *         Methods
+ *             initializing: $("#mySearch").searchFilter([{text: "Field 1", value: "field1"},{text: "Field 2", value: "field2"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });
+ *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)
+ *             add:          $("#mySearch").searchFilter().add();     // appends a blank filter
+ *                           $("#mySearch").searchFilter().add(0);    // copies the first filter as second
+ *             del:          $("#mySearch").searchFilter().del();     // removes the bottom filter
+ *                           $("#mySearch").searchFilter().del(1);    // removes the second filter
+ *             search:       $("#mySearch").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object
+ *             reset:        $("#mySearch").searchFilter().reset();   // resets rules and invokes onReset
+ *             close:        $("#mySearch").searchFilter().close();   // without an onClose handler, equivalent to $("#mySearch").hide();
+ * 
+ * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$
+ *     Example
+ *         $("#mySearch").searchFilter().add().add().reset().$.hide();
+ *     Verbose Example
+ *         $("#mySearch")      // gets jQuery object for the HTML element with id="mySearch"
+ *             .searchFilter() // gets the SearchFilter object for an existing search filter
+ *             .add()          // adds a new filter to the end of the list
+ *             .add()          // adds another new filter to the end of the list
+ *             .reset()        // resets filters back to original state, triggers onReset
+ *             .$              // returns jQuery object for $("#mySearch")
+ *             .hide();        // equivalent to $("#mySearch").hide();
+ */
+
+jQuery.fn.searchFilter = function(fields, options) {
+
+    function SearchFilter(jQ, fields, options) {
+
+
+        //---------------------------------------------------------------
+        // PUBLIC VARS
+        //---------------------------------------------------------------
+
+        this.$ = jQ; // makes the jQuery object available as .$ from the return value
+
+
+        //---------------------------------------------------------------
+        // PUBLIC FUNCTIONS
+        //---------------------------------------------------------------
+
+        this.add = function(i) {
+            if (i == null) jQ.find(".ui-add-last").click();
+            else jQ.find(".sf:eq(" + i + ") .ui-add").click();
+            return this;
+        };
+
+        this.del = function(i) {
+            if (i == null) jQ.find(".sf:last .ui-del").click();
+            else jQ.find(".sf:eq(" + i + ") .ui-del").click();
+            return this;
+        };
+
+        this.search = function(e) {
+            jQ.find(".ui-search").click();
+            return this;
+        };
+
+        this.reset = function(e) {
+            jQ.find(".ui-reset").click();
+            return this;
+        };
+
+        this.close = function() {
+            jQ.find(".ui-closer").click();
+            return this;
+        };
+
+
+
+        //---------------------------------------------------------------
+        // "CONSTRUCTOR" (in air quotes)
+        //---------------------------------------------------------------
+
+        if (fields != null) { // type coercion matches undefined as well as null
+
+
+            //---------------------------------------------------------------
+            // UTILITY FUNCTIONS
+            //---------------------------------------------------------------
+
+            function hover() {
+                jQuery(this).toggleClass("ui-state-hover");
+                return false;
+            }
+
+            function active(e) {
+                jQuery(this).toggleClass("ui-state-active", (e.type == "mousedown"));
+                return false;
+            }
+
+            function buildOpt(value, text) {
+                return "<option value='" + value + "'>" + text + "</option>";
+            }
+
+            function buildSel(className, options, isHidden) {
+                return "<select class='" + className + "'" + (isHidden ? " style='display:none;'" : "") + ">" + options + "</select>";
+            }
+
+            function initData(selector, fn) {
+                var jElem = jQ.find("tr.sf td.data " + selector);
+                if (jElem[0] != null)
+                    fn(jElem);
+            }
+
+            function bindDataEvents(selector, events) {
+                var jElem = jQ.find("tr.sf td.data " + selector);
+                if (jElem[0] != null) {
+                    jQuery.each(events, function() {
+                        if (this.data != null)
+                            jElem.bind(this.type, this.data, this.fn);
+                        else
+                            jElem.bind(this.type, this.fn);
+                    });
+                }
+            }
+
+
+            //---------------------------------------------------------------
+            // SUPER IMPORTANT PRIVATE VARS
+            //---------------------------------------------------------------
+
+            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that
+            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);
+
+            // this is keeps track of the last asynchronous setup
+            var highest_late_setup = -1;
+
+
+            //---------------------------------------------------------------
+            // CREATION PROCESS STARTS
+            //---------------------------------------------------------------
+
+            // generate the global ops
+            var gOps_html = "";
+            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });
+            gOps_html = "<select name='groupOp'>" + gOps_html + "</select>";
+
+            /* original content - doesn't minify very well
+            jQ
+            .html("") // clear any old content
+            .addClass("ui-searchFilter") // add classes
+            .append( // add content
+            "\
+            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\
+            <table class='ui-widget-content ui-corner-all'>\
+            <thead>\
+            <tr>\
+            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\
+            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\
+            <span class='ui-icon ui-icon-close'></span>\
+            </div>\
+            " + opts.windowTitle + "\
+            </td>\
+            </tr>\
+            </thead>\
+            <tbody>\
+            <tr class='sf'>\
+            <td class='fields'></td>\
+            <td class='ops'></td>\
+            <td class='data'></td>\
+            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\
+            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\
+            </tr>\
+            <tr>\
+            <td colspan='5' class='divider'><div>&nbsp;</div></td>\
+            </tr>\
+            </tbody>\
+            <tfoot>\
+            <tr>\
+            <td colspan='3'>\
+            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span>\
+            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span>\
+            <span class='matchText'>" + opts.matchText + "</span> \
+            " + gOps_html + " \
+            <span class='rulesText'>" + opts.rulesText + "</span>\
+            </td>\
+            <td>&nbsp;</td>\
+            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\
+            </tr>\
+            </tfoot>\
+            </table>\
+            ");
+            /* end hard-to-minify code */
+            /* begin easier to minify code */
+            jQ.html("").addClass("ui-searchFilter").append("<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>" + opts.windowTitle + "</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><div>&#160;</div></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span><span class='matchText'>" + opts.matchText + "</span> " + gOps_html + " <span class='rulesText'>" + opts.rulesText + "</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>");
+            /* end easier-to-minify code */
+
+            var jRow = jQ.find("tr.sf");
+            var jFields = jRow.find("td.fields");
+            var jOps = jRow.find("td.ops");
+            var jData = jRow.find("td.data");
+
+            // generate the defaults
+            var default_ops_html = "";
+            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });
+            default_ops_html = buildSel("default", default_ops_html, true);
+            jOps.append(default_ops_html);
+            var default_data_html = "<input type='text' class='default' style='display:none;' />";
+            jData.append(default_data_html);
+
+            // generate the field list as a string
+            var fields_html = "";
+            var has_custom_ops = false;
+            var has_custom_data = false;
+            jQuery.each(fields, function(i) {
+                var field_num = i;
+                fields_html += buildOpt(this.itemval, this.text);
+                // add custom ops if they exist
+                if (this.ops != null) {
+                    has_custom_ops = true;
+                    var custom_ops = "";
+                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });
+                    custom_ops = buildSel("field" + field_num, custom_ops, true);
+                    jOps.append(custom_ops);
+                }
+                // add custom data if it is given
+                if (this.dataUrl != null) {
+                    if (i > highest_late_setup) highest_late_setup = i;
+                    has_custom_data = true;
+                    var dEvents = this.dataEvents;
+                    var iEvent = this.dataInit;
+                    var bs = this.buildSelect;
+                    jQuery.ajax(jQuery.extend({
+                        url : this.dataUrl,
+                        complete: function(data) {
+                            var $d;
+                            if(bs != null) $d =jQuery("<div />").append(bs(data));
+                            else $d = jQuery("<div />").append(data.responseText);
+                            $d.find("select").addClass("field" + field_num).hide();
+                            jData.append($d.html());
+                            if (iEvent) initData(".field" + i, iEvent);
+                            if (dEvents) bindDataEvents(".field" + i, dEvents);
+                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed
+                                jQ.find("tr.sf td.fields select[name='field']").change();
+                            }
+                        }
+                    },opts.ajaxSelectOptions));
+                } else if (this.dataValues != null) {
+                    has_custom_data = true;
+                    var custom_data = "";
+                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });
+                    custom_data = buildSel("field" + field_num, custom_data, true);
+                    jData.append(custom_data);
+                } else if (this.dataEvents != null || this.dataInit != null) {
+                    has_custom_data = true;
+                    var custom_data = "<input type='text' class='field" + field_num + "' />";
+                    jData.append(custom_data);
+                }
+                // attach events to data if they exist
+                if (this.dataInit != null && i != highest_late_setup)
+                    initData(".field" + i, this.dataInit);
+                if (this.dataEvents != null && i != highest_late_setup)
+                    bindDataEvents(".field" + i, this.dataEvents);
+            });
+            fields_html = "<select name='field'>" + fields_html + "</select>";
+            jFields.append(fields_html);
+
+            // setup the field select with an on-change event if there are custom ops or data
+            var jFSelect = jFields.find("select[name='field']");
+            if (has_custom_ops) jFSelect.change(function(e) {
+                var index = e.target.selectedIndex;
+                var td = jQuery(e.target).parents("tr.sf").find("td.ops");
+                td.find("select").removeAttr("name").hide(); // disown and hide all elements
+                var jElem = td.find(".field" + index);
+                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
+                jElem.attr("name", "op").show();
+
+            });
+            else jOps.find(".default").attr("name", "op").show();
+            if (has_custom_data) jFSelect.change(function(e) {
+                var index = e.target.selectedIndex;
+                var td = jQuery(e.target).parents("tr.sf").find("td.data");
+                td.find("select,input").removeClass("vdata").hide(); // disown and hide all elements
+                var jElem = td.find(".field" + index);
+                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
+                jElem.show().addClass("vdata");
+            });
+            else jData.find(".default").show().addClass("vdata");
+            // go ahead and call the change event and setup the ops and data values
+            if (has_custom_ops || has_custom_data) jFSelect.change();
+
+            // bind events
+            jQ.find(".ui-state-default").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons
+            jQ.find(".ui-closer").click(function(e) {
+                opts.onClose(jQuery(jQ.selector));
+                return false;
+            });
+            jQ.find(".ui-del").click(function(e) {
+                var row = jQuery(e.target).parents(".sf");
+                if (row.siblings(".sf").length > 0) { // doesn't remove if there's only one filter left
+                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)
+                        row.find(".hasDatepicker").datepicker("destroy"); // clean up datepicker's $.data mess
+                    row.remove(); // also unbinds
+                } else { // resets the filter if it's the last one
+                    row.find("select[name='field']")[0].selectedIndex = 0;
+                    row.find("select[name='op']")[0].selectedIndex = 0;
+                    row.find(".data input").val(""); // blank all input values
+                    row.find(".data select").each(function() { this.selectedIndex = 0; }); // select first option on all selects
+                    row.find("select[name='field']").change(); // trigger any change events
+                }
+                return false;
+            });
+            jQ.find(".ui-add").click(function(e) {
+                var row = jQuery(e.target).parents(".sf");
+                var newRow = row.clone(true).insertAfter(row);
+                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
+                if (opts.clone) {
+                    newRow.find("select[name='field']")[0].selectedIndex = row.find("select[name='field']")[0].selectedIndex;
+                    var stupid_browser = (newRow.find("select[name='op']")[0] == null); // true for IE6
+                    if (!stupid_browser)
+                        newRow.find("select[name='op']").focus()[0].selectedIndex = row.find("select[name='op']")[0].selectedIndex;
+                    var jElem = newRow.find("select.vdata");
+                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned
+                        jElem[0].selectedIndex = row.find("select.vdata")[0].selectedIndex;
+                } else {
+                    newRow.find(".data input").val(""); // blank all input values
+                    newRow.find("select[name='field']").focus();
+                }
+                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
+                    row.find(".hasDatepicker").each(function() {
+                        var settings = jQuery.data(this, "datepicker").settings;
+                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
+                    });
+                }
+                newRow.find("select[name='field']").change();
+                return false;
+            });
+            jQ.find(".ui-search").click(function(e) {
+                var ui = jQuery(jQ.selector); // pointer to search box wrapper element
+                var ruleGroup;
+                var group_op = ui.find("select[name='groupOp'] :selected").val(); // puls "AND" or "OR"
+                if (!opts.stringResult) {
+                    ruleGroup = {
+                        groupOp: group_op,
+                        rules: []
+                    };
+                } else {
+                    ruleGroup = "{\"groupOp\":\"" + group_op + "\",\"rules\":[";
+                }
+                ui.find(".sf").each(function(i) {
+                    var tField = jQuery(this).find("select[name='field'] :selected").val();
+                    var tOp = jQuery(this).find("select[name='op'] :selected").val();
+                    var tData = jQuery(this).find("input.vdata,select.vdata :selected").val();
+                    tData += "";
+                    tData = tData.replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
+                    if (!opts.stringResult) {
+                        ruleGroup.rules.push({
+                            field: tField,
+                            op: tOp,
+                            data: tData
+                        });
+                    } else {
+                        if (i > 0) ruleGroup += ",";
+                        ruleGroup += "{\"field\":\"" + tField + "\",";
+                        ruleGroup += "\"op\":\"" + tOp + "\",";
+                        ruleGroup += "\"data\":\"" + tData + "\"}";
+                    }
+                });
+                if (opts.stringResult) ruleGroup += "]}";
+                opts.onSearch(ruleGroup);
+                return false;
+            });
+            jQ.find(".ui-reset").click(function(e) {
+                var ui = jQuery(jQ.selector);
+                ui.find(".ui-del").click(); // removes all filters, resets the last one
+                ui.find("select[name='groupOp']")[0].selectedIndex = 0; // changes the op back to the default one
+                opts.onReset();
+                return false;
+            });
+            jQ.find(".ui-add-last").click(function() {
+                var row = jQuery(jQ.selector + " .sf:last");
+                var newRow = row.clone(true).insertAfter(row);
+                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
+                newRow.find(".data input").val(""); // blank all input values
+                newRow.find("select[name='field']").focus();
+                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
+                    row.find(".hasDatepicker").each(function() {
+                        var settings = jQuery.data(this, "datepicker").settings;
+                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
+                    });
+                }
+                newRow.find("select[name='field']").change();
+                return false;
+            });
+
+            this.setGroupOp = function(setting) {
+                /* a "setter" for groupping argument.
+                 *  ("AND" or "OR")
+                 *
+                 * Inputs:
+                 *  setting - a string
+                 *
+                 * Returns:
+                 *  Does not return anything. May add success / failure reporting in future versions.
+                 *
+                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
+                 */
+                selDOMobj = this.$.find("select[name='groupOp']")[0];
+                var indexmap = {}, l = selDOMobj.options.length, i;
+                for (i=0; i<l; i++) {
+                    indexmap[selDOMobj.options[i].value] = i;
+                }
+                selDOMobj.selectedIndex = indexmap[setting];
+                $(selDOMobj).change();
+            };
+
+            this.setFilter = function(settings) {
+                /* a "setter" for an arbitrary SearchFilter's filter line.
+                 * designed to abstract the DOM manipulations required to infer
+                 * a particular filter is a fit to the search box.
+                 *
+                 * Inputs:
+                 *  settings - an "object" (dictionary)
+                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.
+                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.
+                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)
+                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}
+                 *
+                 * * It is mandatory to have either index or sfref defined.
+                 *
+                 * Returns:
+                 *  Does not return anything. May add success / failure reporting in future versions.
+                 *
+                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
+                 */
+
+                var o = settings['sfref'], filter = settings['filter'];
+                
+                // setting up valueindexmap that we will need to manipulate SELECT elements.
+                var fields = [], i, j , l, lj, li,
+                    valueindexmap = {};
+                    // example of valueindexmap:
+                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},
+                    // if data is undefined it's a INPUT field. If defined, it's SELECT
+                selDOMobj = o.find("select[name='field']")[0];
+                for (i=0, l=selDOMobj.options.length; i<l; i++) {
+                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};
+                    fields.push(selDOMobj.options[i].value);
+                }
+                for (i=0, li=fields.length; i < li; i++) {
+                    selDOMobj = o.find(".ops > select[class='field"+i+"']")[0];
+                    if (selDOMobj) {
+                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
+                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;
+                        }
+                    }
+                    selDOMobj = o.find(".data > select[class='field"+i+"']")[0];
+                    if (selDOMobj) {
+                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT
+                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
+                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;
+                        }
+                    }
+                } // done populating valueindexmap
+
+                // preparsing the index values for SELECT elements.
+                var fieldvalue, fieldindex, opindex, datavalue, dataindex;
+                fieldvalue = filter['field'];
+				if (valueindexmap[fieldvalue]) {
+					fieldindex = valueindexmap[fieldvalue]['index'];
+				}
+                if (fieldindex != null) {
+                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];
+                    if(opindex === undefined) {
+                        for(i=0,li=options.operators.length; i<li;i++) {
+                            if(options.operators[i].op == filter.op ){
+                                opindex = i;
+                                break;
+                            }
+                        }
+                    }
+                    datavalue = filter['data'];
+                    if (valueindexmap[fieldvalue]['data'] == null) {
+                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'
+                    } else {
+                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.
+                    }
+                }
+                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...
+                if (fieldindex != null && opindex != null && dataindex != null) {
+                    o.find("select[name='field']")[0].selectedIndex = fieldindex;
+                    o.find("select[name='field']").change();
+                    o.find("select[name='op']")[0].selectedIndex = opindex;
+                    o.find("input.vdata").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT
+                    o = o.find("select.vdata")[0];
+                    if (o) {
+                        o.selectedIndex = dataindex;
+                    }
+					return true
+                } else {
+					return false
+				}
+            }; // end of this.setFilter fn
+        } // end of if fields != null
+    }
+    return new SearchFilter(this, fields, options);
+};
+
+jQuery.fn.searchFilter.version = '1.2.9';
+
+/* This property contains the default options */
+jQuery.fn.searchFilter.defaults = {
+
+    /*
+     * PROPERTY
+     * TYPE:        boolean 
+     * DESCRIPTION: clone a row if it is added from an existing row
+     *              when false, any new added rows will be blank.
+     */
+    clone: true,
+
+    /*
+     * PROPERTY
+     * TYPE:        boolean 
+     * DESCRIPTION: current version of datepicker uses a data store,
+     *              which is incompatible with $().clone(true)
+     */
+    datepickerFix: true,
+
+    /*
+     * FUNCTION
+     * DESCRIPTION: the function that will be called when the user clicks Reset
+     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
+     */
+    onReset: function(data) { alert("Reset Clicked. Data Returned: " + data) },
+
+    /*
+     * FUNCTION
+     * DESCRIPTION: the function that will be called when the user clicks Search
+     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
+     */
+    onSearch: function(data) { alert("Search Clicked. Data Returned: " + data) },
+
+    /*
+     * FUNCTION
+     * DESCRIPTION: the function that will be called when the user clicks the Closer icon
+     *              or the close() function is called
+     *              if left null, it simply does a .hide() on the searchFilter
+     * INPUT TYPE:  a jQuery object for the searchFilter
+     */
+    onClose: function(jElem) { jElem.hide(); },
+
+    /* 
+     * PROPERTY
+     * TYPE:        array of objects, each object has the properties op and text 
+     * DESCRIPTION: the selectable operators that are applied between rules
+     *              e.g. for {op:"AND", text:"all"}
+     *                  the search filter box will say: match all rules
+     *                  the server should interpret this as putting the AND op between each rule:
+     *                      rule1 AND rule2 AND rule3
+     *              text will be the option text, and op will be the option value
+     */
+    groupOps: [
+        { op: "AND", text: "all" },
+        { op: "OR",  text: "any" }
+    ],
+
+
+    /* 
+     * PROPERTY
+     * TYPE:        array of objects, each object has the properties op and text 
+     * DESCRIPTION: the operators that will appear as drop-down options
+     *              text will be the option text, and op will be the option value
+     */
+    operators: [
+        { op: "eq", text: "is equal to" },
+        { op: "ne", text: "is not equal to" },
+        { op: "lt", text: "is less than" },
+        { op: "le", text: "is less or equal to" },
+        { op: "gt", text: "is greater than" },
+        { op: "ge", text: "is greater or equal to" },
+        { op: "in", text: "is in" },
+        { op: "ni", text: "is not in" },
+        { op: "bw", text: "begins with" },
+        { op: "bn", text: "does not begin with" },
+        { op: "ew", text: "ends with" },
+        { op: "en", text: "does not end with" },
+        { op: "cn", text: "contains" },
+        { op: "nc", text: "does not contain" }
+    ],
+
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules
+     */
+    matchText: "match",
+
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_
+     */
+    rulesText: "rules",
+
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: the text that will be displayed in the reset button
+     */
+    resetText: "Reset",
+    
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: the text that will be displayed in the search button
+     */
+    searchText: "Search",
+    
+    /*
+     * PROPERTY
+     * TYPE:        boolean
+     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects
+     */
+    stringResult: true,    
+    
+    /*
+     * PROPERTY
+     * TYPE:        string
+     * DESCRIPTION: the title of the searchFilter window
+     */
+    windowTitle: "Search Rules",
+    /*
+     * PROPERTY
+     * TYPE:        object
+     * DESCRIPTION: options to extend the ajax request
+     */
+    ajaxSelectOptions : {}
+}; /* end of searchFilter */
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.treegrid.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.treegrid.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.treegrid.js	(revision 178)
@@ -0,0 +1,445 @@
+;(function($) {
+/*
+**
+ * jqGrid extension - Tree Grid
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+	setTreeNode : function(rd, row){
+		return this.each(function(){
+			var $t = this;
+			if( !$t.grid || !$t.p.treeGrid ) { return; }
+			var expCol = $t.p.expColInd;
+			var expanded = $t.p.treeReader.expanded_field;
+			var isLeaf = $t.p.treeReader.leaf_field;
+			var level = $t.p.treeReader.level_field;
+			row.level = rd[level];
+			
+			if($t.p.treeGridModel == 'nested') {
+				row.lft = rd[$t.p.treeReader.left_field];
+				row.rgt = rd[$t.p.treeReader.right_field];
+				if(!rd[isLeaf]) {
+				// NS Model
+					rd[isLeaf] = (parseInt(row.rgt,10) === parseInt(row.lft,10)+1) ? 'true' : 'false';
+				}
+			} else {
+				row.parent_id = rd[$t.p.treeReader.parent_id_field];
+			}
+			var curLevel = parseInt(row.level,10), ident,lftpos;
+			if($t.p.tree_root_level === 0) {
+				ident = curLevel+1;
+				lftpos = curLevel;
+			} else {
+				ident = curLevel;
+				lftpos = curLevel -1;
+			}
+			var twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
+			twrap += "<div style='"+($t.p.direction=="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='ui-icon ";
+
+			if(rd[isLeaf] == "true" || rd[isLeaf] === true) {
+				twrap += $t.p.treeIcons.leaf+" tree-leaf'";
+				row.isLeaf = true;
+			} else {
+				if(rd[expanded] == "true" || rd[expanded] === true) {
+					twrap += $t.p.treeIcons.minus+" tree-minus treeclick'";
+					row.expanded = true;
+				} else {
+					twrap += $t.p.treeIcons.plus+" tree-plus treeclick'";
+					row.expanded = false;
+				}
+				row.isLeaf = false;
+			}
+			twrap += "</div></div>";
+			if(parseInt(rd[level],10) !== parseInt($t.p.tree_root_level,10)) {                
+				if(!$($t).jqGrid("isVisibleNode",row)){ 
+					$(row).css("display","none");
+				}
+			}
+			$("td:eq("+expCol+")",row).wrapInner("<span></span>").prepend(twrap);
+			$(".treeclick",row).bind("click",function(e){
+				var target = e.target || e.srcElement;
+				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
+				if(!$t.rows[ind].isLeaf){
+					if($t.rows[ind].expanded){
+						$($t).jqGrid("collapseRow",$t.rows[ind]);
+						$($t).jqGrid("collapseNode",$t.rows[ind]);
+					} else {
+						$($t).jqGrid("expandRow",$t.rows[ind]);
+						$($t).jqGrid("expandNode",$t.rows[ind]);
+					}
+				}
+				return false;
+			});
+			if($t.p.ExpandColClick === true) {
+			$("span", row).css("cursor","pointer").bind("click",function(e){
+				var target = e.target || e.srcElement;
+				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
+				if(!$t.rows[ind].isLeaf){
+					if($t.rows[ind].expanded){
+						$($t).jqGrid("collapseRow",$t.rows[ind]);
+						$($t).jqGrid("collapseNode",$t.rows[ind]);
+					} else {
+						$($t).jqGrid("expandRow",$t.rows[ind]);
+						$($t).jqGrid("expandNode",$t.rows[ind]);
+					}
+				}
+				$($t).jqGrid("setSelection",$t.rows[ind].id);
+				return false;
+			});
+			}
+		});
+	},
+	setTreeGrid : function() {
+		return this.each(function (){
+			var $t = this, i=0, pico;
+			if(!$t.p.treeGrid) { return; }
+			if(!$t.p.treedatatype ) { $.extend($t.p,{treedatatype: $t.p.datatype}); }
+			$t.p.subGrid = false; $t.p.altRows =false;
+			$t.p.pgbuttons = false; $t.p.pginput = false;
+			$t.p.multiselect = false; $t.p.rowList = [];
+			pico = 'ui-icon-triangle-1-' + ($t.p.direction=="rtl" ? 'w' : 'e');
+			$t.p.treeIcons = $.extend({plus:pico,minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'},$t.p.treeIcons || {});
+			if($t.p.treeGridModel == 'nested') {
+				$t.p.treeReader = $.extend({
+					level_field: "level",
+					left_field:"lft",
+					right_field: "rgt",
+					leaf_field: "isLeaf",
+					expanded_field: "expanded"
+				},$t.p.treeReader);
+			} else
+				if($t.p.treeGridModel == 'adjacency') {
+				$t.p.treeReader = $.extend({
+						level_field: "level",
+						parent_id_field: "parent",
+						leaf_field: "isLeaf",
+						expanded_field: "expanded"
+				},$t.p.treeReader );
+			}
+			for (var key in $t.p.colModel){
+				if($t.p.colModel.hasOwnProperty(key)) {
+					if($t.p.colModel[key].name == $t.p.ExpandColumn) {
+						$t.p.expColInd = i;
+						break;
+					}
+					i++;
+				}
+			}
+			if(!$t.p.expColInd) { $t.p.expColInd = 0; }
+			$.each($t.p.treeReader,function(i,n){
+				if(n){
+					$t.p.colNames.push(n);
+					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
+				}
+			});			
+		});
+	},
+	expandRow: function (record){
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var childern = $($t).jqGrid("getNodeChildren",record);
+			//if ($($t).jqGrid("isVisibleNode",record)) {
+			$(childern).each(function(i){
+				$(this).css("display","");
+				if(this.expanded) {
+					$($t).jqGrid("expandRow",this);
+				}
+			});
+			//}
+		});
+	},
+	collapseRow : function (record) {
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var childern = $($t).jqGrid("getNodeChildren",record);
+			$(childern).each(function(i){
+				$(this).css("display","none");
+				if(this.expanded){
+					$($t).jqGrid("collapseRow",this);
+				}
+			});
+		});
+	},
+	// NS ,adjacency models
+	getRootNodes : function() {
+		var result = [];
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var level = $t.p.treeReader.level_field;
+					$($t.rows).each(function(i){
+						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					$($t.rows).each(function(i){
+						if(this.parent_id === null || String(this.parent_id).toLowerCase() == "null") {
+							result.push(this);
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getNodeDepth : function(rc) {
+		var ret = null;
+		this.each(function(){
+			var $t = this;
+			if(!this.grid || !this.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					ret = parseInt(rc.level,10) - parseInt(this.p.tree_root_level,10);
+					break;
+				case 'adjacency' :
+					ret = $($t).jqGrid("getNodeAncestors",rc).length;
+					break;
+			}
+		});
+		return ret;
+	},
+	getNodeParent : function(rc) {
+		var result = null;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
+					$(this.rows).each(function(){
+						if(parseInt(this.level,10) === level-1 && parseInt(this.lft,10) < lft && parseInt(this.rgt,10) > rgt) {
+							result = this;
+							return false;
+						}
+					});
+					break;
+				case 'adjacency' :
+					$(this.rows).each(function(){
+						if(this.id == rc.parent_id ) {
+							result = this;
+							return false;
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getNodeChildren : function(rc) {
+		var result = [];
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
+					$(this.rows).each(function(i){
+						if(parseInt(this.level,10) === level+1 && parseInt(this.lft,10) > lft && parseInt(this.rgt,10) < rgt) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					$(this.rows).each(function(i){
+						if(this.parent_id == rc.id) {
+							result.push(this);
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},
+	getFullTreeNode : function(rc) {
+		var result = [];
+		this.each(function(){
+			var $t = this, len;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			switch ($t.p.treeGridModel) {
+				case 'nested' :
+					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
+					$(this.rows).each(function(i){
+						if(parseInt(this.level,10) >= level && parseInt(this.lft,10) >= lft && parseInt(this.lft,10) <= rgt) {
+							result.push(this);
+						}
+					});
+					break;
+				case 'adjacency' :
+					result.push(rc);
+					$(this.rows).each(function(i){
+						len = result.length;
+						for (i = 0; i < len; i++) {
+							if (result[i].id == this.parent_id) {
+								result.push(this);
+								break;
+							}
+						}
+					});
+					break;
+			}
+		});
+		return result;
+	},	
+	// End NS, adjacency Model
+	getNodeAncestors : function(rc) {
+		var ancestors = [];
+		this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			var parent = $(this).jqGrid("getNodeParent",rc);
+			while (parent) {
+				ancestors.push(parent);
+				parent = $(this).jqGrid("getNodeParent",parent);	
+			}
+		});
+		return ancestors;
+	},
+	isVisibleNode : function(rc) {
+		var result = true;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var ancestors = $($t).jqGrid("getNodeAncestors",rc);
+			$(ancestors).each(function(){
+				result = result && this.expanded;
+				if(!result) {return false;}
+			});
+		});
+		return result;
+	},
+	isNodeLoaded : function(rc) {
+		var result;
+		this.each(function(){
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			if(rc.loaded !== undefined) {
+				result = rc.loaded;
+			} else if( rc.isLeaf || $($t).jqGrid("getNodeChildren",rc).length > 0){
+				result = true;
+			} else {
+				result = false;
+			}
+		});
+		return result;
+	},
+	expandNode : function(rc) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			if(!rc.expanded) {
+				if( $(this).jqGrid("isNodeLoaded",rc) ) {
+					rc.expanded = true;
+					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
+				} else {
+					rc.expanded = true;
+					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
+					this.p.treeANode = rc.rowIndex;
+					this.p.datatype = this.p.treedatatype;
+					if(this.p.treeGridModel == 'nested') {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,n_left:rc.lft,n_right:rc.rgt,n_level:rc.level}});
+					} else {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,parentid:rc.parent_id,n_level:rc.level}});
+					}
+					$(this).trigger("reloadGrid");
+					if(this.p.treeGridModel == 'nested') {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
+					} else {
+						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
+					}
+				}
+			}
+		});
+	},
+	collapseNode : function(rc) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			if(rc.expanded) {
+				rc.expanded = false;
+				$("div.treeclick",rc).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
+			}
+		});
+	},
+	SortTree : function( newDir) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			var i, len,
+			rec, records = [], $t = this,
+			roots = $(this).jqGrid("getRootNodes");
+			// Sorting roots
+			roots.sort(function(a, b) {
+				if (a.sortKey < b.sortKey) {return -newDir;}
+				if (a.sortKey > b.sortKey) {return newDir;}
+				return 0;
+			});
+			if(roots[0]){
+				$("td",roots[0]).each( function( k ) {
+					$(this).css("width",$t.grid.headers[k].width+"px");
+				});
+				$t.grid.cols = roots[0].cells;
+			}
+			// Sorting children
+			for (i = 0, len = roots.length; i < len; i++) {
+				rec = roots[i];
+				records.push(rec);
+				$(this).jqGrid("collectChildrenSortTree",records, rec, newDir);
+			}
+			$.each(records, function(index, row) {
+				$('tbody',$t.grid.bDiv).append(row);
+				row.sortKey = null;
+			});
+		});
+	},
+	collectChildrenSortTree : function(records, rec, newDir) {
+		return this.each(function(){
+			if(!this.grid || !this.p.treeGrid) { return; }
+			var i, len,
+			child, 
+			children = $(this).jqGrid("getNodeChildren",rec);
+			children.sort(function(a, b) {
+				if (a.sortKey < b.sortKey) {return -newDir;}
+				if (a.sortKey > b.sortKey) {return newDir;}
+				return 0;
+			});
+			for (i = 0, len = children.length; i < len; i++) {
+				child = children[i];
+				records.push(child);
+				$(this).jqGrid("collectChildrenSortTree",records, child,newDir); 
+			}
+		});
+	},
+	// experimental 
+	setTreeRow : function(rowid, data) {
+		var nm, success=false;
+		this.each(function(){
+			var t = this;
+			if(!t.grid || !t.p.treeGrid) { return; }
+			success = $(t).jqGrid("setRowData",rowid,data);
+		});
+		return success;
+	},
+	delTreeNode : function (rowid) {
+		return this.each(function () {
+			var $t = this;
+			if(!$t.grid || !$t.p.treeGrid) { return; }
+			var rc = $($t).jqGrid("getInd",rowid,true);
+			if (rc) {
+				var dr = $($t).jqGrid("getNodeChildren",rc);
+				if(dr.length>0){
+					for (var i=0;i<dr.length;i++){
+						$($t).jqGrid("delRowData",dr[i].id);
+					}
+				}
+				$($t).jqGrid("delRowData",rc.id);
+			}
+		});
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.treegrid.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/JsonXml.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/JsonXml.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/JsonXml.js	(revision 178)
@@ -0,0 +1,330 @@
+/*
+	The below work is licensed under Creative Commons GNU LGPL License.
+
+	Original work:
+
+	License:     http://creativecommons.org/licenses/LGPL/2.1/
+	Author:      Stefan Goessner/2006
+	Web:         http://goessner.net/ 
+
+	Modifications made:
+
+	Version:     0.9-p5
+	Description: Restructured code, JSLint validated (no strict whitespaces),
+	             added handling of empty arrays, empty strings, and int/floats values.
+	Author:      Michael Schøler/2008-01-29
+	Web:         http://michael.hinnerup.net/blog/2008/01/26/converting-json-to-xml-and-xml-to-json/
+	
+	Description: json2xml added support to convert functions as CDATA
+	             so it will be easy to write characters that cause some problems when convert
+	Author:      Tony Tomov
+*/
+
+/*global alert */
+var xmlJsonClass = {
+	// Param "xml": Element or document DOM node.
+	// Param "tab": Tab or indent string for pretty output formatting omit or use empty string "" to supress.
+	// Returns:     JSON string
+	xml2json: function(xml, tab) {
+		if (xml.nodeType === 9) {
+			// document node
+			xml = xml.documentElement;
+		}
+		var nws = this.removeWhite(xml);
+		var obj = this.toObj(nws);
+		var json = this.toJson(obj, xml.nodeName, "\t");
+		return "{\n" + tab + (tab ? json.replace(/\t/g, tab) : json.replace(/\t|\n/g, "")) + "\n}";
+	},
+
+	// Param "o":   JavaScript object
+	// Param "tab": tab or indent string for pretty output formatting omit or use empty string "" to supress.
+	// Returns:     XML string
+	json2xml: function(o, tab) {
+		var toXml = function(v, name, ind) {
+			var xml = "";
+			var i, n;
+			if (v instanceof Array) {
+				if (v.length === 0) {
+					xml += ind + "<"+name+">__EMPTY_ARRAY_</"+name+">\n";
+				}
+				else {
+					for (i = 0, n = v.length; i < n; i += 1) {
+						var sXml = ind + toXml(v[i], name, ind+"\t") + "\n";
+						xml += sXml;
+					}
+				}
+			}
+			else if (typeof(v) === "object") {
+				var hasChild = false;
+				xml += ind + "<" + name;
+				var m;
+				for (m in v) if (v.hasOwnProperty(m)) {
+					if (m.charAt(0) === "@") {
+						xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
+					}
+					else {
+						hasChild = true;
+					}
+				}
+				xml += hasChild ? ">" : "/>";
+				if (hasChild) {
+					for (m in v) if (v.hasOwnProperty(m)) {
+						if (m === "#text") {
+							xml += v[m];
+						}
+						else if (m === "#cdata") {
+							xml += "<![CDATA[" + v[m] + "]]>";
+						}
+						else if (m.charAt(0) !== "@") {
+							xml += toXml(v[m], m, ind+"\t");
+						}
+					}
+					xml += (xml.charAt(xml.length - 1) === "\n" ? ind : "") + "</" + name + ">";
+				}
+			}
+			else if (typeof(v) === "function") {
+				xml += ind + "<" + name + ">" + "<![CDATA[" + v + "]]>" + "</" + name + ">";
+			}
+			else {
+				if (v.toString() === "\"\"" || v.toString().length === 0) {
+					xml += ind + "<" + name + ">__EMPTY_STRING_</" + name + ">";
+				} 
+				else {
+					xml += ind + "<" + name + ">" + v.toString() + "</" + name + ">";
+				}
+			}
+			return xml;
+		};
+		var xml = "";
+		var m;
+		for (m in o) if (o.hasOwnProperty(m)) {
+			xml += toXml(o[m], m, "");
+		}
+		return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, "");
+	},
+	// Internal methods
+	toObj: function(xml) {
+		var o = {};
+		var FuncTest = /function/i;
+		if (xml.nodeType === 1) {
+			// element node ..
+			if (xml.attributes.length) {
+				// element with attributes ..
+				var i;
+				for (i = 0; i < xml.attributes.length; i += 1) {
+					o["@" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || "").toString();
+				}
+			}
+			if (xml.firstChild) {
+				// element has child nodes ..
+				var textChild = 0, cdataChild = 0, hasElementChild = false;
+				var n;
+				for (n = xml.firstChild; n; n = n.nextSibling) {
+					if (n.nodeType === 1) {
+						hasElementChild = true;
+					}
+					else if (n.nodeType === 3 && n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
+						// non-whitespace text
+						textChild += 1;
+					}
+					else if (n.nodeType === 4) {
+						// cdata section node
+						cdataChild += 1;
+					}
+				}
+				if (hasElementChild) {
+					if (textChild < 2 && cdataChild < 2) {
+						// structured element with evtl. a single text or/and cdata node ..
+						this.removeWhite(xml);
+						for (n = xml.firstChild; n; n = n.nextSibling) {
+							if (n.nodeType === 3) {
+								// text node
+								o["#text"] = this.escape(n.nodeValue);
+							}
+							else if (n.nodeType === 4) {
+								// cdata node
+								if (FuncTest.test(n.nodeValue)) {
+									o[n.nodeName] = [o[n.nodeName], n.nodeValue];
+								} else {
+									o["#cdata"] = this.escape(n.nodeValue);
+								}
+							}
+							else if (o[n.nodeName]) {
+								// multiple occurence of element ..
+								if (o[n.nodeName] instanceof Array) {
+									o[n.nodeName][o[n.nodeName].length] = this.toObj(n);
+								}
+								else {
+									o[n.nodeName] = [o[n.nodeName], this.toObj(n)];
+								}
+							}
+							else {
+								// first occurence of element ..
+								o[n.nodeName] = this.toObj(n);
+							}
+						}
+					}
+					else {
+						// mixed content
+						if (!xml.attributes.length) {
+							o = this.escape(this.innerXml(xml));
+						}
+						else {
+							o["#text"] = this.escape(this.innerXml(xml));
+						}
+					}
+				}
+				else if (textChild) {
+					// pure text
+					if (!xml.attributes.length) {
+						o = this.escape(this.innerXml(xml));
+						if (o === "__EMPTY_ARRAY_") {
+							o = "[]";
+						} else if (o === "__EMPTY_STRING_") {
+							o = "";
+						}
+					}
+					else {
+						o["#text"] = this.escape(this.innerXml(xml));
+					}
+				}
+				else if (cdataChild) {
+					// cdata
+					if (cdataChild > 1) {
+						o = this.escape(this.innerXml(xml));
+					}
+					else {
+						for (n = xml.firstChild; n; n = n.nextSibling) {
+							if(FuncTest.test(xml.firstChild.nodeValue)) {
+								o = xml.firstChild.nodeValue;
+								break;
+							} else {
+								o["#cdata"] = this.escape(n.nodeValue);
+							}
+						}
+					}
+				}
+			}
+			if (!xml.attributes.length && !xml.firstChild) {
+				o = null;
+			}
+		}
+		else if (xml.nodeType === 9) {
+			// document.node
+			o = this.toObj(xml.documentElement);
+		}
+		else {
+			alert("unhandled node type: " + xml.nodeType);
+		}
+		return o;
+	},
+	toJson: function(o, name, ind) {
+		var json = name ? ("\"" + name + "\"") : "";
+		if (o === "[]") {
+			json += (name ? ":[]" : "[]");
+		}
+		else if (o instanceof Array) {
+			var n, i, ar=[];
+			for (i = 0, n = o.length; i < n; i += 1) {
+				ar[i] = this.toJson(o[i], "", ind + "\t");
+			}
+			json += (name ? ":[" : "[") + (ar.length > 1 ? ("\n" + ind + "\t" + ar.join(",\n" + ind + "\t") + "\n" + ind) : ar.join("")) + "]";
+		}
+		else if (o === null) {
+			json += (name && ":") + "null";
+		}
+		else if (typeof(o) === "object") {
+			var arr = [];
+			var m;
+			for (m in o) if (o.hasOwnProperty(m)) {
+				arr[arr.length] = this.toJson(o[m], m, ind + "\t");
+			}
+			json += (name ? ":{" : "{") + (arr.length > 1 ? ("\n" + ind + "\t" + arr.join(",\n" + ind + "\t") + "\n" + ind) : arr.join("")) + "}";
+		}
+		else if (typeof(o) === "string") {
+			var objRegExp  = /(^-?\d+\.?\d*$)/;
+			var FuncTest = /function/i;
+			var os = o.toString();
+			if (objRegExp.test(os) || FuncTest.test(os) || os==="false" || os==="true") {
+				// int or float
+				json += (name && ":") + os;
+			} 
+			else {
+				json += (name && ":") + "\"" + o + "\"";
+			}
+		}
+		else {
+			json += (name && ":") + o.toString();
+		}
+		return json;
+	},
+	innerXml: function(node) {
+		var s = "";
+		if ("innerHTML" in node) {
+			s = node.innerHTML;
+		}
+		else {
+			var asXml = function(n) {
+				var s = "", i;
+				if (n.nodeType === 1) {
+					s += "<" + n.nodeName;
+					for (i = 0; i < n.attributes.length; i += 1) {
+						s += " " + n.attributes[i].nodeName + "=\"" + (n.attributes[i].nodeValue || "").toString() + "\"";
+					}
+					if (n.firstChild) {
+						s += ">";
+						for (var c = n.firstChild; c; c = c.nextSibling) {
+							s += asXml(c);
+						}
+						s += "</" + n.nodeName + ">";
+					}
+					else {
+						s += "/>";
+					}
+				}
+				else if (n.nodeType === 3) {
+					s += n.nodeValue;
+				}
+				else if (n.nodeType === 4) {
+					s += "<![CDATA[" + n.nodeValue + "]]>";
+				}
+				return s;
+			};
+			for (var c = node.firstChild; c; c = c.nextSibling) {
+				s += asXml(c);
+			}
+		}
+		return s;
+	},
+	escape: function(txt) {
+		return txt.replace(/[\\]/g, "\\\\").replace(/[\"]/g, '\\"').replace(/[\n]/g, '\\n').replace(/[\r]/g, '\\r');
+	},
+	removeWhite: function(e) {
+		e.normalize();
+		var n;
+		for (n = e.firstChild; n; ) {
+			if (n.nodeType === 3) {
+				// text node
+				if (!n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
+					// pure whitespace text node
+					var nxt = n.nextSibling;
+					e.removeChild(n);
+					n = nxt;
+				}
+				else {
+					n = n.nextSibling;
+				}
+			}
+			else if (n.nodeType === 1) {
+				// element node
+				this.removeWhite(n);
+				n = n.nextSibling;
+			}
+			else {
+				// any other node
+				n = n.nextSibling;
+			}
+		}
+		return e;
+	}
+};
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/JsonXml.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.loader.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.loader.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.loader.js	(revision 178)
@@ -0,0 +1,47 @@
+// This file should be used if you want to debug
+function jqGridInclude()
+{
+    var pathtojsfiles = "js/"; // need to be ajusted
+    // set include to false if you do not want some modules to be included
+    var modules = [
+        { include: true, incfile:'i18n/grid.locale-en.js'}, // jqGrid translation
+        { include: true, incfile:'grid.base.js'}, // jqGrid base
+        { include: true, incfile:'grid.common.js'}, // jqGrid common for editing
+        { include: true, incfile:'grid.formedit.js'}, // jqGrid Form editing
+        { include: true, incfile:'grid.inlinedit.js'}, // jqGrid inline editing
+        { include: true, incfile:'grid.celledit.js'}, // jqGrid cell editing
+        { include: true, incfile:'grid.subgrid.js'}, //jqGrid subgrid
+        { include: true, incfile:'grid.treegrid.js'}, //jqGrid treegrid
+        { include: true, incfile:'grid.custom.js'}, //jqGrid custom 
+        { include: true, incfile:'grid.postext.js'}, //jqGrid postext
+        { include: true, incfile:'grid.tbltogrid.js'}, //jqGrid table to grid 
+        { include: true, incfile:'grid.setcolumns.js'}, //jqGrid setcolumns
+        { include: true, incfile:'grid.import.js'}, //jqGrid import
+        { include: true, incfile:'jquery.fmatter.js'}, //jqGrid formater
+        { include: true, incfile:'JsonXml.js'}, //xmljson utils
+        { include: true, incfile:'jquery.searchFilter.js'} // search Plugin
+    ];
+    var filename;
+    for(var i=0;i<modules.length; i++)
+    {
+        if(modules[i].include === true) {
+        	
+        	filename = pathtojsfiles+modules[i].incfile;
+       		if(jQuery.browser.safari) {
+       			jQuery.ajax({url:filename,dataType:'script', async:false, cache: true});
+       		} else {
+       			IncludeJavaScript(filename);
+       		}
+        }
+    }
+    function IncludeJavaScript(jsFile)
+    {
+        var oHead = document.getElementsByTagName('head')[0];
+        var oScript = document.createElement('script');
+        oScript.type = 'text/javascript';
+        oScript.charset = 'utf-8';
+        oScript.src = jsFile;
+        oHead.appendChild(oScript);        
+    };
+};
+jqGridInclude();
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.loader.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.postext.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.postext.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.postext.js	(revision 178)
@@ -0,0 +1,64 @@
+;(function($){
+/**
+ * jqGrid extension
+ * Paul Tiseo ptiseo@wasteconsultants.com
+ * 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+	getPostData : function(){
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.postData;
+	},
+	setPostData : function( newdata ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		// check if newdata is correct type
+		if ( typeof(newdata) === 'object' ) {
+			$t.p.postData = newdata;
+		}
+		else {
+			alert("Error: cannot add a non-object postData value. postData unchanged.");
+		}
+	},
+	appendPostData : function( newdata ) { 
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		// check if newdata is correct type
+		if ( typeof(newdata) === 'object' ) {
+			$.extend($t.p.postData, newdata);
+		}
+		else {
+			alert("Error: cannot append a non-object postData value. postData unchanged.");
+		}
+	},
+	setPostDataItem : function( key, val ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		$t.p.postData[key] = val;
+	},
+	getPostDataItem : function( key ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.postData[key];
+	},
+	removePostDataItem : function( key ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		delete $t.p.postData[key];
+	},
+	getUserData : function(){
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.userData;
+	},
+	getUserDataItem : function( key ) {
+		var $t = this[0];
+		if(!$t.grid) { return; }
+		return $t.p.userData[key];
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.postext.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.formedit.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.formedit.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.formedit.js	(revision 178)
@@ -0,0 +1,1869 @@
+;(function($){
+/**
+ * jqGrid extension for form editing Grid Data
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/
+var rp_ge = null;
+$.jgrid.extend({
+	searchGrid : function (p) {
+		p = $.extend({
+			recreateFilter: false,
+			drag: true,
+			sField:'searchField',
+			sValue:'searchString',
+			sOper: 'searchOper',
+			sFilter: 'filters',
+            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
+			beforeShowSearch: null,
+			afterShowSearch : null,
+			onInitializeSearch: null,
+			closeAfterSearch : false,
+			closeAfterReset: false,
+			closeOnEscape : false,
+			multipleSearch : false,
+			cloneSearchRowOnAdd: true,
+			// translation
+			// if you want to change or remove the order change it in sopt
+			// ['bw','eq','ne','lt','le','gt','ge','ew','cn']
+			sopt: null,
+			// Note: stringResult is intentionally declared "undefined by default".
+			//  you are velcome to define stringResult expressly in the options you pass to searchGrid()
+			//  stringResult is a "safeguard" measure to insure we post sensible data when communicated as form-encoded
+			//  see http://github.com/tonytomov/jqGrid/issues/#issue/36
+			//
+			//  If this value is not expressly defined in the incoming options,
+			// lower in the code we will infer the value based on value of multipleSearch
+			stringResult: undefined,
+			onClose : null,
+			// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax
+			// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.
+			// Used for "editGridRow" and "delGridRow" below and automatically flipped to TRUE
+			// when ajax setting's 'url' (grid's 'editurl') property is undefined.
+			// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call
+			// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)
+			//
+			// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.
+			// Normally the following is fed to datatype.call(a, b, c):
+			//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = "load_"+grid's ID
+			// In cases of "edit" and "del" the following is fed:
+			//   a = Pointer to grid's table DOM element (same),
+			//   b = extended Ajax Options including postdata in "data" property. (different object type)
+			//   c = "set_"+grid's ID in case of "edit" and "del_"+grid's ID in case of "del" (same type, different content)
+			// The major difference is that complete ajax options object, with attached "complete" and "error"
+			// callback functions is fed instead of only post data.
+			// This allows you to emulate a $.ajax call (including calling "complete"/"error"),
+			// while retrieving the data locally in the browser.
+			useDataProxy: false,
+			overlay : true
+		}, $.jgrid.search, p || {});
+		return this.each(function() {
+			var $t = this;
+			if(!$t.grid) {return;}
+            function applyDefaultFilters(gridDOMobj, filterSettings) {
+				/*
+                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )
+                What we need from gridDOMobj:
+                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.
+                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to
+                contain default filter settings. We will parse these and will populate the search with defaults.
+                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);
+                */
+
+                // Pulling default filter settings out of postData property of grid's properties.:
+                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];
+                // example of what we might get: {"groupOp":"and","rules":[{"field":"amount","op":"eq","data":"100"}]}
+				// suppose we have imported this with grid import, the this is a string.
+				if(typeof(defaultFilters) == "string") {
+					defaultFilters = $.jgrid.parse(defaultFilters);
+				}
+                if (defaultFilters) {
+                    if (defaultFilters.groupOp) {
+                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);
+                    }
+                    if (defaultFilters.rules) {
+                        var f
+							, i = 0
+							, li = defaultFilters.rules.length
+							, success = false;
+                        for (; i < li; i++) {
+                            f = defaultFilters.rules[i];
+                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.
+                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {
+                                success = gridDOMobj.SearchFilter.setFilter({
+                                    'sfref':gridDOMobj.SearchFilter.$.find(".sf:last"),
+                                    'filter':$.extend({},f)
+                                });
+								if (success) { gridDOMobj.SearchFilter.add(); }
+                            }
+                        }
+                    }
+				}
+            } // end of applyDefaultFilters
+			
+			if($.fn.searchFilter) {
+				var fid = "fbox_"+$t.p.id;
+				if(p.recreateFilter===true) {$("#"+fid).remove();}
+				if( $("#"+fid).html() != null ) {
+					if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
+					showFilter();
+					if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
+				} else {
+					var fields = [],
+					colNames = $("#"+$t.p.id).jqGrid("getGridParam","colNames"),
+					colModel = $("#"+$t.p.id).jqGrid("getGridParam","colModel"),
+					stempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],
+					j,pos,k,oprtr=[];
+					if (p.sopt !==null) {
+						k=0;
+						for(j=0;j<p.sopt.length;j++) {
+							if( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){
+								oprtr[k] = {op:p.sopt[j],text: p.odata[pos]};
+								k++;
+							}
+						}
+					} else {
+						for(j=0;j<stempl.length;j++) {
+							oprtr[j] = {op:stempl[j],text: p.odata[j]};
+						}
+					}
+					var searchable;
+				    $.each(colModel, function(i, v) {
+				        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,
+				        hidden = (v.hidden === true),
+						soptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),
+						ignoreHiding = (soptions.searchhidden === true);
+						if(typeof soptions.sopt !== 'undefined') { 
+							k=0;
+							soptions.ops =[];
+							if(soptions.sopt.length>0) {
+								for(j=0;j<soptions.sopt.length;j++) {
+									if( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){
+										soptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos]};
+										k++;
+									}
+								}
+							}
+						}
+						if(typeof(this.stype) === 'undefined') { this.stype='text'; }
+						if(this.stype == 'select') {
+							if ( soptions.dataUrl !== undefined) {}
+							else {
+								var eov;
+								if(soptions.value) {
+									eov = soptions.value;
+								} else if(this.editoptions) {
+									eov = this.editoptions.value;
+								}
+								if(eov) {
+									soptions.dataValues =[];
+									if(typeof(eov) === 'string') {
+										var so = eov.split(";"),sv;
+										for(j=0;j<so.length;j++) {
+											sv = so[j].split(":");
+											soptions.dataValues[j] ={value:sv[0],text:sv[1]};
+										}
+									} else if (typeof(eov) === 'object') {
+										j=0;
+										for (var key in eov) {
+											if(eov.hasOwnProperty(key)) {
+												soptions.dataValues[j] ={value:key,text:eov[key]};
+												j++;
+											}
+										}
+									}
+								}
+							}
+						}
+				        if ((ignoreHiding && searchable) || (searchable && !hidden)) {
+							fields.push(soptions);
+						}
+					});
+					if(fields.length>0){
+						$("<div id='"+fid+"' role='dialog' tabindex='-1'></div>").insertBefore("#gview_"+$t.p.id);
+						// Before we create searchFilter we need to decide if we want to get back a string or a JS object.
+						//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.
+						// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.
+						if (p.stringResult===undefined) {
+							// to provide backward compatibility, inferring stringResult value from multipleSearch
+							p.stringResult = p.multipleSearch;
+						}
+						// we preserve the return value here to retain access to .add() and other good methods of search form.
+						$t.SearchFilter = $("#"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });
+						$(".ui-widget-overlay","#"+fid).remove();
+						if($t.p.direction=="rtl") { $(".ui-closer","#"+fid).css("float","left"); }
+						if (p.drag===true) {
+							$("#"+fid+" table thead tr:first td:first").css('cursor','move');
+							if(jQuery.fn.jqDrag) {
+								$("#"+fid).jqDrag($("#"+fid+" table thead tr:first td:first"));
+							} else {
+								try {
+									$("#"+fid).draggable({handle: $("#"+fid+" table thead tr:first td:first")});
+								} catch (e) {}
+							}
+						}
+						if(p.multipleSearch === false) {
+							$(".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText", "#"+fid).hide();
+							$("select[name='groupOp']","#"+fid).hide();
+						}
+                        if (p.multipleSearch === true && p.loadDefaults === true) {
+                            applyDefaultFilters($t, p);
+                        }
+						if ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $("#"+fid) ); }
+						if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
+						showFilter();
+						if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
+						if(p.closeOnEscape===true){
+							$("#"+fid).keydown( function( e ) {
+								if( e.which == 27 ) {
+									hideFilter($("#"+fid));
+								}
+							});
+						}
+					}
+				}
+			}
+			function searchFilters(filters) {
+				var hasFilters = (filters !== undefined),
+				grid = $("#"+$t.p.id), sdata={};
+				if(p.multipleSearch===false) {
+					sdata[p.sField] = filters.rules[0].field;
+					sdata[p.sValue] = filters.rules[0].data;
+					sdata[p.sOper] = filters.rules[0].op;
+				} else {
+					sdata[p.sFilter] = filters;
+				}
+				grid[0].p.search = hasFilters;
+				$.extend(grid[0].p.postData,sdata);
+				grid.trigger("reloadGrid",[{page:1}]);
+				if(p.closeAfterSearch) { hideFilter($("#"+fid)); }
+			}
+			function resetFilters(filters) {
+				var hasFilters = (filters !== undefined),
+				grid = $("#"+$t.p.id), sdata=[];
+				grid[0].p.search = hasFilters;
+				if(p.multipleSearch===false) {
+					sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
+				} else {
+					sdata[p.sFilter] = "";
+				}
+				$.extend(grid[0].p.postData,sdata);
+				grid.trigger("reloadGrid",[{page:1}]);
+				if(p.closeAfterReset) { hideFilter($("#"+fid)); }
+			}
+			function hideFilter(selector) {
+				if(p.onClose){
+					var fclm = p.onClose(selector);
+					if(typeof fclm == 'boolean' && !fclm) { return; }
+				}
+				selector.hide();
+				if(p.overlay === true) {
+					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).hide();
+				}
+			}
+			function showFilter(){
+				var fl = $(".ui-searchFilter").length;
+				if(fl > 1) {
+					var zI = $("#"+fid).css("zIndex");
+					$("#"+fid).css({zIndex:parseInt(zI,10)+fl});
+				}
+				$("#"+fid).show();
+				if(p.overlay === true) {
+					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).show();
+				}
+				try{$(':input:visible',"#"+fid)[0].focus();}catch(_){}
+			}
+		});
+	},
+	editGridRow : function(rowid, p){
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 300,
+			height: 'auto',
+			dataheight: 'auto',
+			modal: false,
+			drag: true,
+			resize: true,
+			url: null,
+			mtype : "POST",
+			clearAfterAdd :true,
+			closeAfterEdit : false,
+			reloadAfterSubmit : true,
+			onInitializeForm: null,
+			beforeInitData: null,
+			beforeShowForm: null,
+			afterShowForm: null,
+			beforeSubmit: null,
+			afterSubmit: null,
+			onclickSubmit: null,
+			afterComplete: null,
+			onclickPgButtons : null,
+			afterclickPgButtons: null,
+			editData : {},
+			recreateForm : false,
+			jqModal : true,
+			closeOnEscape : false,
+			addedrow : "first",
+			topinfo : '',
+			bottominfo: '',
+			saveicon : [],
+			closeicon : [],
+			savekey: [false,13],
+			navkeys: [false,38,40],
+			checkOnSubmit : false,
+			checkOnUpdate : false,
+			_savedData : {},
+			processing : false,
+			onClose : null,
+			ajaxEditOptions : {},
+			serializeEditData : null,
+			viewPagerButtons : true
+		}, $.jgrid.edit, p || {});
+		rp_ge = p;
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid || !rowid) { return; }
+			var gID = $t.p.id,
+			frmgr = "FrmGrid_"+gID,frmtb = "TblGrid_"+gID,
+			IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},
+			onBeforeShow = $.isFunction(rp_ge.beforeShowForm) ? rp_ge.beforeShowForm : false,
+			onAfterShow = $.isFunction(rp_ge.afterShowForm) ? rp_ge.afterShowForm : false,
+			onBeforeInit = $.isFunction(rp_ge.beforeInitData) ? rp_ge.beforeInitData : false,
+			onInitializeForm = $.isFunction(rp_ge.onInitializeForm) ? rp_ge.onInitializeForm : false,
+			copydata = null,
+			maxCols = 1, maxRows=0,	gurl, postdata, ret, extpost, newData, diff;
+			if (rowid=="new") {
+				rowid = "_empty";
+				p.caption=p.addCaption;
+			} else {
+				p.caption=p.editCaption;
+			}
+			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
+				$("#"+IDs.themodal).remove();
+			}
+			var closeovrl = true;
+			if(p.checkOnUpdate && p.jqModal && !p.modal) {
+				closeovrl = false;
+			}
+			if ( $("#"+IDs.themodal).html() != null ) {
+				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
+				$("#FormError","#"+frmtb).hide();
+				if(rp_ge.topinfo) {
+					$(".topinfo","#"+frmtb+"_2").html(rp_ge.topinfo);
+					$(".tinfo","#"+frmtb+"_2").show();
+				} else {
+					$(".tinfo","#"+frmtb+"_2").hide();
+				}
+				if(rp_ge.bottominfo) {
+					$(".bottominfo","#"+frmtb+"_2").html(rp_ge.bottominfo);
+					$(".binfo","#"+frmtb+"_2").show();
+				} else {
+					$(".binfo","#"+frmtb+"_2").hide();
+				}
+				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
+				// filldata
+				fillData(rowid,$t,frmgr);
+				///
+				if(rowid=="_empty" || !rp_ge.viewPagerButtons) {
+					$("#pData, #nData","#"+frmtb+"_2").hide();
+				} else { 
+					$("#pData, #nData","#"+frmtb+"_2").show();
+				}
+				if(rp_ge.processing===true) {
+					rp_ge.processing=false;
+					$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
+				}
+				if($("#"+frmgr).data("disabled")===true) {
+					$(".confirm","#"+IDs.themodal).hide();
+					$("#"+frmgr).data("disabled",false);
+				}
+				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
+				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, closeoverlay: closeovrl, modal:p.modal});
+				if(!closeovrl) {
+					$(".jqmOverlay").click(function(){
+						if(!checkUpdates()) { return false; }
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
+			} else {
+				$($t.p.colModel).each( function(i) {
+					var fmto = this.formoptions;
+					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
+					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
+				});
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>").data("disabled",false),
+				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
+				$(frm).append(tbl);
+				flr = $("<tr id='FormError' style='display:none'><td class='ui-state-error' colspan='"+(maxCols*2)+"'></td></tr>");
+				flr[0].rp = 0;
+				$(tbl).append(flr);
+				//topinfo
+				flr = $("<tr style='display:none' class='tinfo'><td class='topinfo' colspan='"+(maxCols*2)+"'>"+rp_ge.topinfo+"</td></tr>");
+				flr[0].rp = 0;
+				$(tbl).append(flr);
+				// set the id.
+				// use carefull only to change here colproperties.
+				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
+				// create data
+				var rtlb = $t.p.direction == "rtl" ? true :false,
+				bp = rtlb ? "nData" : "pData",
+				bn = rtlb ? "pData" : "nData",
+				valref = createData(rowid,$t,tbl,maxCols),
+				// buttons at footer
+				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
+				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
+				bS  ="<a href='javascript:void(0)' id='sData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
+				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
+				var bt = "<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bS+bC+"</td></tr>";
+				bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge.bottominfo+"</td></tr>";
+				bt += "</tbody></table>";
+				if(maxRows >  0) {
+					var sd=[];
+					$.each($(tbl)[0].rows,function(i,r){
+						sd[i] = r;
+					});
+					sd.sort(function(a,b){
+						if(a.rp > b.rp) {return 1;}
+						if(a.rp < b.rp) {return -1;}
+						return 0;
+					});
+					$.each(sd, function(index, row) {
+						$('tbody',tbl).append(row);
+					});
+				}
+				p.gbox = "#gbox_"+gID;
+				var cle = false;
+				if(p.closeOnEscape===true){
+					p.closeOnEscape = false;
+					cle = true;
+				}
+				var tms = $("<span></span>").append(frm).append(bt);
+				createModal(IDs,tms,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				if(rtlb) {
+					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
+					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
+				}
+				if(rp_ge.topinfo) { $(".tinfo","#"+frmtb+"_2").show(); }
+				if(rp_ge.bottominfo) { $(".binfo","#"+frmtb+"_2").show(); } 
+				tms = null; bt=null;
+				$("#"+IDs.themodal).keydown( function( e ) {
+					var wkey = e.target;
+					if ($("#"+frmgr).data("disabled")===true ) { return false; }//??
+					if(rp_ge.savekey[0] === true && e.which == rp_ge.savekey[1]) { // save
+						if(wkey.tagName != "TEXTAREA") {
+							$("#sData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+					}
+					if(e.which === 27) {
+						if(!checkUpdates()) { return false; }
+						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge.onClose}); }
+						return false;
+					}
+					if(rp_ge.navkeys[0]===true) {
+						if($("#id_g","#"+frmtb).val() == "_empty") { return true; }
+						if(e.which == rp_ge.navkeys[1]){ //up
+							$("#pData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+						if(e.which == rp_ge.navkeys[2]){ //down
+							$("#nData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+					}
+				});
+				if(p.checkOnUpdate) {
+					$("a.ui-jqdialog-titlebar-close span","#"+IDs.themodal).removeClass("jqmClose");
+					$("a.ui-jqdialog-titlebar-close","#"+IDs.themodal).unbind("click")
+					.click(function(){
+						if(!checkUpdates()) { return false; }
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				p.saveicon = $.extend([true,"left","ui-icon-disk"],p.saveicon);
+				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
+				// beforeinitdata after creation of the form
+				if(p.saveicon[0]===true) {
+					$("#sData","#"+frmtb+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
+				}
+				if(p.closeicon[0]===true) {
+					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
+				}
+				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
+					bS  ="<a href='javascript:void(0)' id='sNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bYes+"</a>";
+					bN  ="<a href='javascript:void(0)' id='nNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bNo+"</a>";
+					bC  ="<a href='javascript:void(0)' id='cNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bExit+"</a>";
+					var ii, zI = p.zIndex  || 999; zI ++;
+					if ($.browser.msie && $.browser.version ==6) {
+						ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
+					} else { ii="";}
+					$("<div class='ui-widget-overlay jqgrid-overlay confirm' style='z-index:"+zI+";display:none;'>&#160;"+ii+"</div><div class='confirm ui-widget-content ui-jqconfirm' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>").insertAfter("#"+frmgr);
+					$("#sNew","#"+IDs.themodal).click(function(){
+						postIt();
+						$("#"+frmgr).data("disabled",false);
+						$(".confirm","#"+IDs.themodal).hide();
+						return false;
+					});
+					$("#nNew","#"+IDs.themodal).click(function(){
+						$(".confirm","#"+IDs.themodal).hide();
+						$("#"+frmgr).data("disabled",false);
+						setTimeout(function(){$(":input","#"+frmgr)[0].focus();},0);
+						return false;
+					});
+					$("#cNew","#"+IDs.themodal).click(function(){
+						$(".confirm","#"+IDs.themodal).hide();
+						$("#"+frmgr).data("disabled",false);
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				// here initform - only once
+				if(onInitializeForm) { onInitializeForm($("#"+frmgr)); }
+				if(rowid=="_empty" || !rp_ge.viewPagerButtons) { $("#pData,#nData","#"+frmtb+"_2").hide(); } else { $("#pData,#nData","#"+frmtb+"_2").show(); }
+				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
+				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,closeoverlay:closeovrl,modal:p.modal});
+				if(!closeovrl) {
+					$(".jqmOverlay").click(function(){
+						if(!checkUpdates()) { return false; }
+						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
+						return false;
+					});
+				}
+				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
+				$(".fm-button","#"+IDs.themodal).hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);
+				$("#sData", "#"+frmtb+"_2").click(function(e){
+					postdata = {}; extpost={};
+					$("#FormError","#"+frmtb).hide();
+					// all depend on ret array
+					//ret[0] - succes
+					//ret[1] - msg if not succes
+					//ret[2] - the id  that will be set if reload after submit false
+					getFormData();
+					if(postdata[$t.p.id+"_id"] == "_empty")	{ postIt(); }
+					else if(p.checkOnSubmit===true ) {
+						newData = $.extend({},postdata,extpost);
+						diff = compareData(newData,rp_ge._savedData);
+						if(diff) {
+							$("#"+frmgr).data("disabled",true);
+							$(".confirm","#"+IDs.themodal).show();
+						} else {
+							postIt();
+						}
+					} else {
+						postIt();
+					}
+					return false;
+				});
+				$("#cData", "#"+frmtb+"_2").click(function(e){
+					if(!checkUpdates()) { return false; }
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+					return false;
+				});
+				$("#nData", "#"+frmtb+"_2").click(function(e){
+					if(!checkUpdates()) { return false; }
+					$("#FormError","#"+frmtb).hide();
+					var npos = getCurrPos();
+					npos[0] = parseInt(npos[0],10);
+					if(npos[0] != -1 && npos[1][npos[0]+1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
+						}
+						fillData(npos[1][npos[0]+1],$t,frmgr);
+						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
+						}
+						updateNav(npos[0]+1,npos[1].length-1);
+					}
+					return false;
+				});
+				$("#pData", "#"+frmtb+"_2").click(function(e){
+					if(!checkUpdates()) { return false; }
+					$("#FormError","#"+frmtb).hide();
+					var ppos = getCurrPos();
+					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
+						}
+						fillData(ppos[1][ppos[0]-1],$t,frmgr);
+						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
+						}
+						updateNav(ppos[0]-1,ppos[1].length-1);
+					}
+					return false;
+				});
+			}
+			var posInit =getCurrPos();
+			updateNav(posInit[0],posInit[1].length-1);
+			function updateNav(cr,totr,rid){
+				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+			}
+			function getCurrPos() {
+				var rowsInGrid = $($t).jqGrid("getDataIDs"),
+				selrow = $("#id_g","#"+frmtb).val(),
+				pos = $.inArray(selrow,rowsInGrid);
+				return [pos,rowsInGrid];
+			}
+			function checkUpdates () {
+				var stat = true;
+				$("#FormError","#"+frmtb).hide();
+				if(rp_ge.checkOnUpdate) {
+					postdata = {}; extpost={};
+					getFormData();
+					newData = $.extend({},postdata,extpost);
+					diff = compareData(newData,rp_ge._savedData);
+					if(diff) {
+						$("#"+frmgr).data("disabled",true);
+						$(".confirm","#"+IDs.themodal).show();
+						stat = false;
+					}
+				}
+				return stat;
+			}
+			function getFormData(){
+				$(".FormElement", "#"+frmtb).each(function(i) {
+					var celm = $(".customelement", this);
+					if (celm.length) {
+						var  elem = celm[0], nm = elem.name;
+						$.each($t.p.colModel, function(i,n){
+							if(this.name == nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {
+								try {
+									postdata[nm] = this.editoptions.custom_value($("#"+nm,"#"+frmtb),'get');
+									if (postdata[nm] === undefined) { throw "e1"; }
+								} catch (e) {
+									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
+									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+								}
+								return true;
+							}
+						});
+					} else {
+					switch ($(this).get(0).type) {
+						case "checkbox":
+							if($(this).attr("checked")) {
+								postdata[this.name]= $(this).val();
+							}else {
+								var ofv = $(this).attr("offval");
+								postdata[this.name]= ofv;
+							}
+						break;
+						case "select-one":
+							postdata[this.name]= $("option:selected",this).val();
+							extpost[this.name]= $("option:selected",this).text();
+						break;
+						case "select-multiple":
+							postdata[this.name]= $(this).val();
+							if(postdata[this.name]) { postdata[this.name] = postdata[this.name].join(","); }
+							else { postdata[this.name] =""; }
+							var selectedText = [];
+							$("option:selected",this).each(
+								function(i,selected){
+									selectedText[i] = $(selected).text();
+								}
+							);
+							extpost[this.name]= selectedText.join(",");
+						break;								
+						case "password":
+						case "text":
+						case "textarea":
+						case "button":
+							postdata[this.name] = $(this).val();
+							
+						break;
+					}
+					if($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); }
+					}
+				});
+				return true;
+			}
+			function createData(rowid,obj,tb,maxcols){
+				var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,
+				tdtmpl = "<td class='CaptionTD ui-widget-content'>&#160;</td><td class='DataTD ui-widget-content' style='white-space:pre'>&#160;</td>", tmpl=""; //*2
+				for (var i =1;i<=maxcols;i++) {
+					tmpl += tdtmpl;
+				}
+				if(rowid != '_empty') {
+					ind = $(obj).jqGrid("getInd",rowid);
+				}
+				$(obj.p.colModel).each( function(i) {
+					nm = this.name;
+					// hidden fields are included in the form
+					if(this.editrules && this.editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = this.hidden === true ? true : false;
+					}
+					dc = hc ? "style='display:none'" : "";
+					if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {
+						if(ind === false) {
+							tmp = "";
+						} else {
+							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
+							} else {
+								try {
+									tmp =  $.unformat($("td:eq("+i+")",obj.rows[ind]),{rowId:rowid, colModel:this},i);
+								} catch (_) {
+									tmp = $("td:eq("+i+")",obj.rows[ind]).html();
+								}
+							}
+						}
+						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
+						frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),
+						rp = parseInt(frmopt.rowpos,10) || cnt+1,
+						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
+						if(rowid == "_empty" && opt.defaultValue ) {
+							tmp = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue; 
+						}
+						if(!this.edittype) { this.edittype = "text"; }
+						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+						elc = createEl(this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));
+						if(tmp == "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}
+						if(tmp == "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}
+						if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
+						$(elc).addClass("FormElement");
+						trdata = $(tb).find("tr[rowpos="+rp+"]");
+						if(frmopt.rowabove) {
+							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
+							$(tb).append(newdata);
+							newdata[0].rp = rp;
+						}
+						if ( trdata.length===0 ) {
+							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
+							$(trdata).append(tmpl);
+							$(tb).append(trdata);
+							trdata[0].rp = rp;
+						}
+						$("td:eq("+(cp-2)+")",trdata[0]).html( typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label);
+						$("td:eq("+(cp-1)+")",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);
+						retpos[cnt] = i;
+						cnt++;
+					}
+				});
+				if( cnt > 0) {
+					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>");
+					idrow[0].rp = cnt+999;
+					$(tb).append(idrow);
+					if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[obj.p.id+"_id"] = rowid; }
+				}
+				return retpos;
+			}
+			function fillData(rowid,obj,fmid){
+				var nm,cnt=0,tmp, fld,opt,vl,vlc;
+				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {rp_ge._savedData = {};rp_ge._savedData[obj.p.id+"_id"]=rowid;}
+				var cm = obj.p.colModel;
+				if(rowid == '_empty') {
+					$(cm).each(function(i){
+						nm = this.name;
+						opt = $.extend({}, this.editoptions || {} );
+						fld = $("#"+$.jgrid.jqID(nm),"#"+fmid);
+						if(fld[0] != null) {
+							vl = "";
+							if(opt.defaultValue ) {
+								vl = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;
+								if(fld[0].type=='checkbox') {
+									vlc = vl.toLowerCase();
+									if(vlc.search(/(false|0|no|off|undefined)/i)<0 && vlc!=="") {
+										fld[0].checked = true;
+										fld[0].defaultChecked = true;
+										fld[0].value = vl;
+									} else {
+										fld.attr({checked:"",defaultChecked:""});
+									}
+								} else {fld.val(vl); }
+							} else {
+								if( fld[0].type=='checkbox' ) {
+									fld[0].checked = false;
+									fld[0].defaultChecked = false;
+									vl = $(fld).attr("offval");
+								} else if (fld[0].type.substr(0,6)=='select') {
+									fld[0].selectedIndex = 0; 
+								} else {
+									fld.val(vl);
+								}
+							}
+							if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = vl; }
+						}
+					});
+					$("#id_g","#"+fmid).val(rowid);
+					return;
+				}
+				var tre = $(obj).jqGrid("getInd",rowid,true);
+				if(!tre) { return; }
+				$('td',tre).each( function(i) {
+					nm = cm[i].name;
+					// hidden fields are included in the form
+					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {
+						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+							tmp = $(this).text();
+						} else {
+							try {
+								tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
+							} catch (_) {
+								tmp = $(this).html();
+							}
+						}
+						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
+						if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
+						nm = $.jgrid.jqID(nm);
+						switch (cm[i].edittype) {
+							case "password":
+							case "text":
+							case "button" :
+							case "image":
+								$("#"+nm,"#"+fmid).val(tmp);
+								break;
+							case "textarea":
+								if(tmp == "&nbsp;" || tmp == "&#160;" || (tmp.length==1 && tmp.charCodeAt(0)==160) ) {tmp='';}
+								$("#"+nm,"#"+fmid).val(tmp);
+								break;
+							case "select":
+								var opv = tmp.split(",");
+								opv = $.map(opv,function(n){return $.trim(n);});
+								$("#"+nm+" option","#"+fmid).each(function(j){
+									if (!cm[i].editoptions.multiple && (opv[0] == $.trim($(this).text()) || opv[0] == $.trim($(this).val())) ){
+										this.selected= true;
+									} else if (cm[i].editoptions.multiple){
+										if(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){
+											this.selected = true;
+										}else{
+											this.selected = false;
+										}
+									} else {
+										this.selected = false;
+									}
+								});
+								break;
+							case "checkbox":
+								tmp = tmp+"";
+								if(cm[i].editoptions && cm[i].editoptions.value) {
+									var cb = cm[i].editoptions.value.split(":");
+									if(cb[0] == tmp) {
+										$("#"+nm,"#"+fmid).attr("checked",true);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
+									} else {
+										$("#"+nm,"#"+fmid).attr("checked",false);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
+									}
+								} else {
+									tmp = tmp.toLowerCase();
+									if(tmp.search(/(false|0|no|off|undefined)/i)<0 && tmp!=="") {
+										$("#"+nm,"#"+fmid).attr("checked",true);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
+									} else {
+										$("#"+nm,"#"+fmid).attr("checked",false);
+										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
+									}
+								}
+								break;
+							case 'custom' :
+								try {
+									if(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {
+										var dummy = cm[i].editoptions.custom_value($("#"+nm,"#"+fmid),'set',tmp);
+									} else { throw "e1"; }
+								} catch (e) {
+									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose);}
+									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
+								}
+								break;
+						}
+						cnt++;
+					}
+				});
+				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
+			}
+			function postIt() {
+				var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper;
+				if($.isFunction(rp_ge.beforeCheckValues)) {
+					var retvals = rp_ge.beforeCheckValues(postdata,$("#"+frmgr),postdata[$t.p.id+"_id"] == "_empty" ? opers.addoper : opers.editoper);
+					if(retvals && typeof(retvals) === 'object') { postdata = retvals; }
+				}
+				for( var key in postdata ){
+					if(postdata.hasOwnProperty(key)) {
+						ret = checkValues(postdata[key],key,$t);
+						if(ret[0] === false) { break; }
+					}
+				}
+				if(ret[0]) {
+					if( $.isFunction( rp_ge.onclickSubmit)) { onCS = rp_ge.onclickSubmit(rp_ge,postdata) || {}; }
+					if( $.isFunction(rp_ge.beforeSubmit))  { ret = rp_ge.beforeSubmit(postdata,$("#"+frmgr)); }
+				}
+
+				if(ret[0] && !rp_ge.processing) {
+					rp_ge.processing = true;
+					$("#sData", "#"+frmtb+"_2").addClass('ui-state-active');
+					oper = opers.oper;
+					idname = opers.id;
+					// we add to pos data array the action - the name is oper
+					postdata[oper] = ($.trim(postdata[$t.p.id+"_id"]) == "_empty") ? opers.addoper : opers.editoper;
+					if(postdata[oper] != opers.addoper) {
+						postdata[idname] = postdata[$t.p.id+"_id"];
+					} else {
+						// check to see if we have allredy this field in the form and if yes lieve it
+						if( postdata[idname] === undefined ) { postdata[idname] = postdata[$t.p.id+"_id"]; }
+					}
+					delete postdata[$t.p.id+"_id"];
+					postdata = $.extend(postdata,rp_ge.editData,onCS);
+
+					var ajaxOptions = $.extend({
+						url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
+						type: rp_ge.mtype,
+						data: $.isFunction(rp_ge.serializeEditData) ? rp_ge.serializeEditData(postdata) :  postdata,
+						complete:function(data,Status){
+							if(Status != "success") {
+							    ret[0] = false;
+							    if ($.isFunction(rp_ge.errorTextFormat)) {
+							        ret[1] = rp_ge.errorTextFormat(data);
+							    } else {
+							        ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
+								}
+							} else {
+								// data is posted successful
+								// execute aftersubmit with the returned data from server
+								if( $.isFunction(rp_ge.afterSubmit) ) {
+									ret = rp_ge.afterSubmit(data,postdata);
+								}
+							}
+							if(ret[0] === false) {
+								$("#FormError>td","#"+frmtb).html(ret[1]);
+								$("#FormError","#"+frmtb).show();
+							} else {
+								// remove some values if formattaer select or checkbox
+								$.each($t.p.colModel, function(i,n){
+									if(extpost[this.name] && this.formatter && this.formatter=='select') {
+										try {delete extpost[this.name];} catch (e) {}
+									}
+								});
+								postdata = $.extend(postdata,extpost);
+								if($t.p.autoencode) {
+									$.each(postdata,function(n,v){
+										postdata[n] = $.jgrid.htmlDecode(v);
+									});
+								}
+								// the action is add
+								if(postdata[oper] == opers.addoper ) {
+									//id processing
+									// user not set the id ret[2]
+									if(!ret[2]) { ret[2] = parseInt($t.p.records,10)+1; }
+									postdata[idname] = ret[2];
+									if(rp_ge.closeAfterAdd) {
+										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
+										else {
+											$($t).jqGrid("addRowData",ret[2],postdata,p.addedrow);
+											$($t).jqGrid("setSelection",ret[2]);
+										}
+										hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
+									} else if (rp_ge.clearAfterAdd) {
+										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
+										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
+										fillData("_empty",$t,frmgr);
+									} else {
+										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
+										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
+									}
+								} else {
+									// the action is update
+									if(rp_ge.reloadAfterSubmit) {
+										$($t).trigger("reloadGrid");
+										if( !rp_ge.closeAfterEdit ) { setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000); }
+									} else {
+										if($t.p.treeGrid === true) {
+											$($t).jqGrid("setTreeRow",postdata[idname],postdata);
+										} else {
+											$($t).jqGrid("setRowData",postdata[idname],postdata);
+										}
+									}
+									if(rp_ge.closeAfterEdit) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose}); }
+								}
+								if($.isFunction(rp_ge.afterComplete)) {
+									copydata = data;
+									setTimeout(function(){rp_ge.afterComplete(copydata,postdata,$("#"+frmgr));copydata=null;},500);
+								}
+							}
+							rp_ge.processing=false;
+							if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
+								$("#"+frmgr).data("disabled",false);
+								if(rp_ge._savedData[$t.p.id+"_id"] !="_empty"){
+									for(var key in rp_ge._savedData) {
+										if(postdata[key]) {
+											rp_ge._savedData[key] = postdata[key];
+										}
+									}
+								}
+							}
+							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
+							try{$(':input:visible',"#"+frmgr)[0].focus();} catch (e){}
+						},
+						error:function(xhr,st,err){
+							$("#FormError>td","#"+frmtb).html(st+ " : "+err);
+							$("#FormError","#"+frmtb).show();
+							rp_ge.processing=false;
+							$("#"+frmgr).data("disabled",false);
+							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
+						}
+					}, $.jgrid.ajaxOptions, rp_ge.ajaxEditOptions )
+					
+					if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
+						if ($.isFunction($t.p.dataProxy)) {
+							rp_ge['useDataProxy'] = true;
+						} else {
+							ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
+						}
+					}
+					if (ret[0]) { 
+						if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id) }
+						else { $.ajax(ajaxOptions) }
+					}
+				}
+				if(ret[0] === false) {
+					$("#FormError>td","#"+frmtb).html(ret[1]);
+					$("#FormError","#"+frmtb).show();
+					// return; 
+				}
+			}
+			function compareData(nObj, oObj ) {
+				var ret = false,key;
+				for (key in nObj) {
+					if(nObj[key] != oObj[key]) {
+						ret = true;
+						break;
+					}
+				}
+				return ret;
+			}
+		});
+	},
+	viewGridRow : function(rowid, p){
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 0,
+			height: 'auto',
+			dataheight: 'auto',
+			modal: false,
+			drag: true,
+			resize: true,
+			jqModal: true,
+			closeOnEscape : false,
+			labelswidth: '30%',
+			closeicon: [],
+			navkeys: [false,38,40],
+			onClose: null,
+			beforeShowForm : null,
+			viewPagerButtons : true
+		}, $.jgrid.view, p || {});
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid || !rowid) { return; }
+			if(!p.imgpath) { p.imgpath= $t.p.imgpath; }
+			// I hate to rewrite code, but ...
+			var gID = $t.p.id,
+			frmgr = "ViewGrid_"+gID , frmtb = "ViewTbl_"+gID,
+			IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},
+			maxCols = 1, maxRows=0;
+			if ( $("#"+IDs.themodal).html() != null ) {
+				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
+				$("#FormError","#"+frmtb).hide();
+				fillData(rowid,$t);
+				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, modal:p.modal});
+				focusaref();
+			} else {
+				$($t.p.colModel).each( function(i) {
+					var fmto = this.formoptions;
+					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
+					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
+				});
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>"),
+				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='1' cellpading='2' border='0' style='table-layout:fixed'><tbody></tbody></table>");
+				// set the id.
+				$(frm).append(tbl);
+				var valref = createData(rowid, $t, tbl, maxCols),
+				rtlb = $t.p.direction == "rtl" ? true :false,
+				bp = rtlb ? "nData" : "pData",
+				bn = rtlb ? "pData" : "nData",
+
+				// buttons at footer
+				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
+				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
+				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bClose+"</a>";
+				if(maxRows >  0) {
+					var sd=[];
+					$.each($(tbl)[0].rows,function(i,r){
+						sd[i] = r;
+					});
+					sd.sort(function(a,b){
+						if(a.rp > b.rp) {return 1;}
+						if(a.rp < b.rp) {return -1;}
+						return 0;
+					});
+					$.each(sd, function(index, row) {
+						$('tbody',tbl).append(row);
+					});
+				}
+				p.gbox = "#gbox_"+gID;
+				var cle = false;
+				if(p.closeOnEscape===true){
+					p.closeOnEscape = false;
+					cle = true;
+				}				
+				var bt = $("<span></span>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bC+"</td></tr></tbody></table>");
+				createModal(IDs,bt,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				if(rtlb) {
+					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
+					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
+				}
+				if(!p.viewPagerButtons) { $("#pData, #nData","#"+frmtb+"_2").hide(); }
+				bt = null;
+				$("#"+IDs.themodal).keydown( function( e ) {
+					if(e.which === 27) {
+						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose}); }
+						return false;
+					}
+					if(p.navkeys[0]===true) {
+						if(e.which === p.navkeys[1]){ //up
+							$("#pData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+						if(e.which === p.navkeys[2]){ //down
+							$("#nData", "#"+frmtb+"_2").trigger("click");
+							return false;
+						}
+					}
+				});
+				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
+				if(p.closeicon[0]===true) {
+					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
+				}
+				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, modal:p.modal});
+				$(".fm-button:not(.ui-state-disabled)","#"+frmtb+"_2").hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);
+				focusaref();
+				$("#cData", "#"+frmtb+"_2").click(function(e){
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
+					return false;
+				});
+				$("#nData", "#"+frmtb+"_2").click(function(e){
+					$("#FormError","#"+frmtb).hide();
+					var npos = getCurrPos();
+					npos[0] = parseInt(npos[0],10);
+					if(npos[0] != -1 && npos[1][npos[0]+1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
+						}
+						fillData(npos[1][npos[0]+1],$t);
+						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
+						}
+						updateNav(npos[0]+1,npos[1].length-1);
+					}
+					focusaref();
+					return false;
+				});
+				$("#pData", "#"+frmtb+"_2").click(function(e){
+					$("#FormError","#"+frmtb).hide();
+					var ppos = getCurrPos();
+					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
+						if($.isFunction(p.onclickPgButtons)) {
+							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
+						}
+						fillData(ppos[1][ppos[0]-1],$t);
+						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
+						if($.isFunction(p.afterclickPgButtons)) {
+							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
+						}
+						updateNav(ppos[0]-1,ppos[1].length-1);
+					}
+					focusaref();
+					return false;
+				});
+			}
+			function focusaref(){ //Sfari 3 issues
+				if(p.closeOnEscape===true || p.navkeys[0]===true) {
+					setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
+				}
+			}
+			var posInit =getCurrPos();
+			updateNav(posInit[0],posInit[1].length-1);
+			function updateNav(cr,totr,rid){
+				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
+			}
+			function getCurrPos() {
+				var rowsInGrid = $($t).jqGrid("getDataIDs"),
+				selrow = $("#id_g","#"+frmtb).val(),
+				pos = $.inArray(selrow,rowsInGrid);
+				return [pos,rowsInGrid];
+			}
+			function createData(rowid,obj,tb,maxcols){
+				var nm, hc,trdata, tdl, tde, cnt=0,tmp, dc, retpos=[], ind=false,
+				tdtmpl = "<td class='CaptionTD form-view-label ui-widget-content' width='"+p.labelswidth+"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset ui-widget-content'>&#160;</td>", tmpl="",
+				tdtmpl2 = "<td class='CaptionTD form-view-label ui-widget-content'>&#160;</td><td class='DataTD form-view-data ui-widget-content'>&#160;</td>",
+				fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;
+				for (var i =1;i<=maxcols;i++) {
+					tmpl += i == 1 ? tdtmpl : tdtmpl2;
+				}
+				// find max number align rigth with property formatter
+				$(obj.p.colModel).each( function(i) {
+					if(this.editrules && this.editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = this.hidden === true ? true : false;
+					}
+					if(!hc && this.align==='right') {
+						if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {
+							max1 = Math.max(max1,parseInt(this.width,10));
+						} else {
+							max2 = Math.max(max2,parseInt(this.width,10));
+						}
+					}
+				});
+				maxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;
+				ind = $(obj).jqGrid("getInd",rowid);
+				$(obj.p.colModel).each( function(i) {
+					nm = this.name;
+					setme = false;
+					// hidden fields are included in the form
+					if(this.editrules && this.editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = this.hidden === true ? true : false;
+					}
+					dc = hc ? "style='display:none'" : "";
+					viewfld = (typeof this.viewable != 'boolean') ? true : this.viewable;
+					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {
+						if(ind === false) {
+							tmp = "";
+						} else {
+							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
+							} else {
+								tmp = $("td:eq("+i+")",obj.rows[ind]).html();
+							}
+						}
+						setme = this.align === 'right' && maxw !==0 ? true : false;
+						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
+						frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),
+						rp = parseInt(frmopt.rowpos,10) || cnt+1,
+						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
+						if(frmopt.rowabove) {
+							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
+							$(tb).append(newdata);
+							newdata[0].rp = rp;
+						}
+						trdata = $(tb).find("tr[rowpos="+rp+"]");
+						if ( trdata.length===0 ) {
+							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm);
+							$(trdata).append(tmpl);
+							$(tb).append(trdata);
+							trdata[0].rp = rp;
+						}
+						$("td:eq("+(cp-2)+")",trdata[0]).html('<b>'+ (typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label)+'</b>');
+						$("td:eq("+(cp-1)+")",trdata[0]).append("<span>"+tmp+"</span>").attr("id","v_"+nm);
+						if(setme){
+							$("td:eq("+(cp-1)+") span",trdata[0]).css({'text-align':'right',width:maxw+"px"});
+						}
+						retpos[cnt] = i;
+						cnt++;
+					}
+				});
+				if( cnt > 0) {
+					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
+					idrow[0].rp = cnt+99;
+					$(tb).append(idrow);
+				}
+				return retpos;
+			}
+			function fillData(rowid,obj){
+				var nm, hc,cnt=0,tmp, opt,trv;
+				trv = $(obj).jqGrid("getInd",rowid,true);
+				if(!trv) { return; }
+				$('td',trv).each( function(i) {
+					nm = obj.p.colModel[i].name;
+					// hidden fields are included in the form
+					if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
+						hc = false;
+					} else {
+						hc = obj.p.colModel[i].hidden === true ? true : false;
+					}
+					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {
+						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
+							tmp = $(this).text();
+						} else {
+							tmp = $(this).html();
+						}
+						opt = $.extend({},obj.p.colModel[i].editoptions || {});
+						nm = $.jgrid.jqID("v_"+nm);
+						$("#"+nm+" span","#"+frmtb).html(tmp);
+						if (hc) { $("#"+nm,"#"+frmtb).parents("tr:first").hide(); }
+						cnt++;
+					}
+				});
+				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
+			}
+		});
+	},
+	delGridRow : function(rowids,p) {
+		p = $.extend({
+			top : 0,
+			left: 0,
+			width: 240,
+			height: 'auto',
+			dataheight : 'auto',
+			modal: false,
+			drag: true,
+			resize: true,
+			url : '',
+			mtype : "POST",
+			reloadAfterSubmit: true,
+			beforeShowForm: null,
+			afterShowForm: null,
+			beforeSubmit: null,
+			onclickSubmit: null,
+			afterSubmit: null,
+			jqModal : true,
+			closeOnEscape : false,
+			delData: {},
+			delicon : [],
+			cancelicon : [],
+			onClose : null,
+			ajaxDelOptions : {},
+			processing : false,
+			serializeDelData : null,
+			useDataProxy : false
+		}, $.jgrid.del, p ||{});
+		rp_ge = p;
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid ) { return; }
+			if(!rowids) { return; }
+			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false,
+			onAfterShow = typeof p.afterShowForm === 'function' ? true: false,
+			gID = $t.p.id, onCS = {},
+			dtbl = "DelTbl_"+gID,postd, idname, opers, oper,
+			IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};
+			if (jQuery.isArray(rowids)) { rowids = rowids.join(); }
+			if ( $("#"+IDs.themodal).html() != null ) {
+				$("#DelData>td","#"+dtbl).text(rowids);
+				$("#DelError","#"+dtbl).hide();
+				if( rp_ge.processing === true) {
+					rp_ge.processing=false;
+					$("#dData", "#"+dtbl).removeClass('ui-state-active');
+				}
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,jqM: false, modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			} else {
+				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
+				var tbl = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
+				tbl += "<table class='DelTable'><tbody>";
+				// error data 
+				tbl += "<tr id='DelError' style='display:none'><td class='ui-state-error'></td></tr>";
+				tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>";
+				tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+p.msg+"</td></tr><tr><td >&#160;</td></tr>";
+				// buttons at footer
+				tbl += "</tbody></table></div>";
+				var bS  = "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
+				bC  = "<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
+				tbl += "<table cellspacing='0' cellpadding='0' border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr><td class='DataTD ui-widget-content'></td></tr><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DelButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
+				p.gbox = "#gbox_"+gID;
+				createModal(IDs,tbl,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
+				$(".fm-button","#"+dtbl+"_2").hover(
+				   function(){$(this).addClass('ui-state-hover');}, 
+				   function(){$(this).removeClass('ui-state-hover');}
+				);
+				p.delicon = $.extend([true,"left","ui-icon-scissors"],p.delicon);
+				p.cancelicon = $.extend([true,"left","ui-icon-cancel"],p.cancelicon);
+				if(p.delicon[0]===true) {
+					$("#dData","#"+dtbl+"_2").addClass(p.delicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.delicon[2]+"'></span>");
+				}
+				if(p.cancelicon[0]===true) {
+					$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
+					.append("<span class='ui-icon "+p.cancelicon[2]+"'></span>");
+				}				
+				$("#dData","#"+dtbl+"_2").click(function(e){
+					var ret=[true,""]; onCS = {};
+					var postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
+					if( typeof p.onclickSubmit === 'function' ) { onCS = p.onclickSubmit(rp_ge, postdata) || {}; }
+					if( typeof p.beforeSubmit === 'function' ) { ret = p.beforeSubmit(postdata); }
+					if(ret[0] && !rp_ge.processing) {
+						rp_ge.processing = true;
+						$(this).addClass('ui-state-active');
+						opers = $t.p.prmNames;
+						postd = $.extend({},rp_ge.delData, onCS);
+						oper = opers.oper;
+						postd[oper] = opers.deloper;
+						idname = opers.id;
+						postd[idname] = postdata;
+
+						var ajaxOptions = $.extend({
+							url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
+							type: p.mtype,
+							data: $.isFunction(p.serializeDelData) ? p.serializeDelData(postd) : postd,
+							complete:function(data,Status){
+								if(Status != "success") {
+									ret[0] = false;
+									if ($.isFunction(rp_ge.errorTextFormat)) {
+										ret[1] = rp_ge.errorTextFormat(data);
+									} else {
+										ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
+									}
+								} else {
+									// data is posted successful
+									// execute aftersubmit with the returned data from server
+									if( typeof rp_ge.afterSubmit === 'function' ) {
+										ret = rp_ge.afterSubmit(data,postd);
+									}
+								}
+								if(ret[0] === false) {
+									$("#DelError>td","#"+dtbl).html(ret[1]);
+									$("#DelError","#"+dtbl).show();
+								} else {
+									if(rp_ge.reloadAfterSubmit) {
+										$($t).trigger("reloadGrid");
+									} else {
+										var toarr = [];
+										toarr = postdata.split(",");
+										if($t.p.treeGrid===true){
+												try {$($t).jqGrid("delTreeNode",toarr[0]);} catch(e){}
+										} else {
+											for(var i=0;i<toarr.length;i++) {
+												$($t).jqGrid("delRowData",toarr[i]);
+											}
+										}
+										$t.p.selrow = null;
+										$t.p.selarrrow = [];
+									}
+									if($.isFunction(rp_ge.afterComplete)) {
+										setTimeout(function(){rp_ge.afterComplete(data,postdata);},500);
+									}
+								}
+								rp_ge.processing=false;
+								$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
+								if(ret[0]) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose}); }
+							},
+							error:function(xhr,st,err){
+								$("#DelError>td","#"+dtbl).html(st+ " : "+err);
+								$("#DelError","#"+dtbl).show();
+								rp_ge.processing=false;
+									$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
+							}
+						}, $.jgrid.ajaxOptions, p.ajaxDelOptions);
+
+
+						if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
+							if ($.isFunction($t.p.dataProxy)) {
+								rp_ge['useDataProxy'] = true;
+							} else {
+								ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
+							}
+						}
+						if (ret[0]) {
+							if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id) }
+							else { $.ajax(ajaxOptions) }
+						}
+					}
+
+					if(ret[0] === false) {
+						$("#DelError>td","#"+dtbl).html(ret[1]);
+						$("#DelError","#"+dtbl).show();
+					}
+					return false;
+				});
+				$("#eData", "#"+dtbl+"_2").click(function(e){
+					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
+					return false;
+				});
+				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
+				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,modal:p.modal});
+				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
+			}
+			if(p.closeOnEscape===true) {
+				setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
+			}
+		});
+	},
+	navGrid : function (elem, o, pEdit,pAdd,pDel,pSearch, pView) {
+		o = $.extend({
+			edit: true,
+			editicon: "ui-icon-pencil",
+			add: true,
+			addicon:"ui-icon-plus",
+			del: true,
+			delicon:"ui-icon-trash",
+			search: true,
+			searchicon:"ui-icon-search",
+			refresh: true,
+			refreshicon:"ui-icon-refresh",
+			refreshstate: 'firstpage',
+			view: false,
+			viewicon : "ui-icon-document",
+			position : "left",
+			closeOnEscape : true,
+			beforeRefresh : null,
+			afterRefresh : null,
+			cloneToTop : false
+		}, $.jgrid.nav, o ||{});
+		return this.each(function() {       
+			var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'},
+			$t = this, vwidth, vheight, twd, tdw;
+			if(!$t.grid || typeof elem != 'string') { return; }
+			if ($("#"+alertIDs.themodal).html() === null) {
+				if (typeof window.innerWidth != 'undefined') {
+					vwidth = window.innerWidth;
+					vheight = window.innerHeight;
+				} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth !== 0) {
+					vwidth = document.documentElement.clientWidth;
+					vheight = document.documentElement.clientHeight;
+				} else {
+					vwidth=1024;
+					vheight=768;
+				}
+				createModal(alertIDs,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>",{gbox:"#gbox_"+$t.p.id,jqModal:true,drag:true,resize:true,caption:o.alertcap,top:vheight/2-25,left:vwidth/2-100,width:200,height:'auto',closeOnEscape:o.closeOnEscape},"","",true);
+			}
+			var clone = 1;
+			if(o.cloneToTop && $t.p.toppager) { clone = 2; }
+			for(var i = 0; i<clone; i++) {
+				var tbd,
+				navtbl = $("<table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table navtable' style='float:left;table-layout:auto;'><tbody><tr></tr></tbody></table>"),
+				sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
+				pgid, elemids;
+				if(i===0) {
+					pgid = elem;
+					elemids = $t.p.id;
+					if(pgid == $t.p.toppager) {
+						elemids += "_top";
+						clone = 1;
+					}
+				} else {
+					pgid = $t.p.toppager;
+					elemids = $t.p.id+"_top";
+				}
+				if($t.p.direction == "rtl") { $(navtbl).attr("dir","rtl").css("float","right"); }
+				if (o.add) {
+					pAdd = pAdd || {};
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.addicon+"'></span>"+o.addtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							if (typeof o.addfunc == 'function') {
+								o.addfunc();
+							} else {
+								$($t).jqGrid("editGridRow","new",pAdd);
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.edit) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pEdit = pEdit || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.editicon+"'></span>"+o.edittext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							var sr = $t.p.selrow;
+							if (sr) {
+								if(typeof o.editfunc == 'function') {
+									o.editfunc(sr);
+								} else {
+									$($t).jqGrid("editGridRow",sr,pEdit);
+								}
+							} else {
+								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
+								$("#jqg_alrt").focus();
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.view) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pView = pView || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.viewicon+"'></span>"+o.viewtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							var sr = $t.p.selrow;
+							if (sr) {
+								$($t).jqGrid("viewGridRow",sr,pView);
+							} else {
+								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
+								$("#jqg_alrt").focus();
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.del) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pDel = pDel || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.delicon+"'></span>"+o.deltext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							var dr;
+							if($t.p.multiselect) {
+								dr = $t.p.selarrrow;
+								if(dr.length===0) { dr = null; }
+							} else {
+								dr = $t.p.selrow;
+							}
+							if(dr){
+								if("function" == typeof o.delfunc){
+									o.delfunc(dr);
+								}else{
+									$($t).jqGrid("delGridRow",dr,pDel);
+								}
+							} else  {
+								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true}); $("#jqg_alrt").focus();
+							}
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if(o.add || o.edit || o.del || o.view) { $("tr",navtbl).append(sep); }
+				if (o.search) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					pSearch = pSearch || {};
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.searchicon+"'></span>"+o.searchtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							$($t).jqGrid("searchGrid",pSearch);
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				if (o.refresh) {
+					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
+					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.refreshicon+"'></span>"+o.refreshtext+"</div>");
+					$("tr",navtbl).append(tbd);
+					$(tbd,navtbl)
+					.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})
+					.click(function(){
+						if (!$(this).hasClass('ui-state-disabled')) {
+							if($.isFunction(o.beforeRefresh)) { o.beforeRefresh(); }
+							$t.p.search = false;
+							try {
+								var gID = $t.p.id;
+								$("#fbox_"+gID).searchFilter().reset();
+							    if($.isFunction($t.clearToolbar)) { $t.clearToolbar(false); }
+							} catch (e) {}
+							switch (o.refreshstate) {
+								case 'firstpage':
+								    $($t).trigger("reloadGrid", [{page:1}]);
+									break;
+								case 'current':
+								    $($t).trigger("reloadGrid", [{current:true}]);
+									break;
+							}
+							if($.isFunction(o.afterRefresh)) { o.afterRefresh(); }
+						}
+						return false;
+					}).hover(
+						function () {
+							if (!$(this).hasClass('ui-state-disabled')) {
+								$(this).addClass("ui-state-hover");
+							}
+						},
+						function () {$(this).removeClass("ui-state-hover");}
+					);
+					tbd = null;
+				}
+				tdw = $(".ui-jqgrid").css("font-size") || "11px";
+				$('body').append("<div id='testpg2' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
+				twd = $(navtbl).clone().appendTo("#testpg2").width();
+				$("#testpg2").remove();
+				$(pgid+"_"+o.position,pgid).append(navtbl);
+				if($t.p._nvtd) {
+					if(twd > $t.p._nvtd[0] ) {
+						$(pgid+"_"+o.position,pgid).width(twd);
+						$t.p._nvtd[0] = twd;
+					}
+					$t.p._nvtd[1] = twd;
+				}
+				tdw =null; twd=null; navtbl =null;
+			}
+		});
+	},
+	navButtonAdd : function (elem, p) {
+		p = $.extend({
+			caption : "newButton",
+			title: '',
+			buttonicon : 'ui-icon-newwin',
+			onClickButton: null,
+			position : "last",
+			cursor : 'pointer'
+		}, p ||{});
+		return this.each(function() {
+			if( !this.grid)  { return; }
+			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
+			var findnav = $(".navtable",elem)[0], $t = this;
+			if (findnav) {
+				var tbd = $("<td></td>");
+				if(p.buttonicon.toString().toUpperCase() == "NONE") {
+                    $(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'>"+p.caption+"</div>");
+				} else	{
+					$(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'><span class='ui-icon "+p.buttonicon+"'></span>"+p.caption+"</div>");
+				}
+				if(p.id) {$(tbd).attr("id",p.id);}
+				if(p.position=='first'){
+					if(findnav.rows[0].cells.length ===0 ) {
+						$("tr",findnav).append(tbd);
+					} else {
+						$("tr td:eq(0)",findnav).before(tbd);
+					}
+				} else {
+					$("tr",findnav).append(tbd);
+				}
+				$(tbd,findnav)
+				.attr("title",p.title  || "")
+				.click(function(e){
+					if (!$(this).hasClass('ui-state-disabled')) {
+						if ($.isFunction(p.onClickButton) ) { p.onClickButton.call($t,e); }
+					}
+					return false;
+				})
+				.hover(
+					function () {
+						if (!$(this).hasClass('ui-state-disabled')) {
+							$(this).addClass('ui-state-hover');
+						}
+					},
+					function () {$(this).removeClass("ui-state-hover");}
+				);
+			}
+		});
+	},
+	navSeparatorAdd:function (elem,p) {
+		p = $.extend({
+			sepclass : "ui-separator",
+			sepcontent: ''
+		}, p ||{});		
+		return this.each(function() {
+			if( !this.grid)  { return; }
+			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
+			var findnav = $(".navtable",elem)[0];
+			if(findnav) {
+				var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>";
+				$("tr",findnav).append(sep);
+			}
+		});
+	},
+	GridToForm : function( rowid, formid ) {
+		return this.each(function(){
+			var $t = this;
+			if (!$t.grid) { return; } 
+			var rowdata = $($t).jqGrid("getRowData",rowid);
+			if (rowdata) {
+				for(var i in rowdata) {
+					if ( $("[name="+i+"]",formid).is("input:radio") || $("[name="+i+"]",formid).is("input:checkbox"))  {
+						$("[name="+i+"]",formid).each( function() {
+							if( $(this).val() == rowdata[i] ) {
+								$(this).attr("checked","checked");
+							} else {
+								$(this).attr("checked","");
+							}
+						});
+					} else {
+					// this is very slow on big table and form.
+						$("[name="+i+"]",formid).val(rowdata[i]);
+					}
+				}
+			}
+		});
+	},
+	FormToGrid : function(rowid, formid, mode, position){
+		return this.each(function() {
+			var $t = this;
+			if(!$t.grid) { return; }
+			if(!mode) { mode = 'set'; }
+			if(!position) { position = 'first'; }
+			var fields = $(formid).serializeArray();
+			var griddata = {};
+			$.each(fields, function(i, field){
+				griddata[field.name] = field.value;
+			});
+			if(mode=='add') { $($t).jqGrid("addRowData",rowid,griddata, position); }
+			else if(mode=='set') { $($t).jqGrid("setRowData",rowid,griddata); }
+		});
+	}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.formedit.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.import.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.import.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.import.js	(revision 178)
@@ -0,0 +1,199 @@
+;(function($){
+/*
+ * jqGrid extension for constructing Grid Data from external file
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+    $.jgrid.extend({
+        jqGridImport : function(o) {
+            o = $.extend({
+                imptype : "xml", // xml, json, xmlstring, jsonstring
+                impstring: "",
+                impurl: "",
+                mtype: "GET",
+                impData : {},
+                xmlGrid :{
+                    config : "roots>grid",
+                    data: "roots>rows"
+                },
+                jsonGrid :{
+                    config : "grid",
+                    data: "data"
+                },
+                ajaxOptions :{}
+            }, o || {});
+            return this.each(function(){
+                var $t = this;
+                var XmlConvert = function (xml,o) {
+                    var cnfg = $(o.xmlGrid.config,xml)[0];
+                    var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1;
+                    if(xmlJsonClass.xml2json && $.jgrid.parse) {
+                        jstr = xmlJsonClass.xml2json(cnfg," ");
+                        jstr = $.jgrid.parse(jstr);
+                        for(var key in jstr) {
+                            if(jstr.hasOwnProperty(key)) {
+                                jstr1=jstr[key];
+                            }
+                        }
+                        if(xmldata) {
+                        // save the datatype
+                            var svdatatype = jstr.grid.datatype;
+                            jstr.grid.datatype = 'xmlstring';
+                            jstr.grid.datastr = xml;
+                            $($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
+                        } else {
+                            $($t).jqGrid( jstr1 );
+                        }
+                        jstr = null;jstr1=null;
+                    } else {
+                        alert("xml2json or parse are not present");
+                    }
+                };
+                var JsonConvert = function (jsonstr,o){
+                    if (jsonstr && typeof jsonstr == 'string') {
+                        var json = $.jgrid.parse(jsonstr);
+                        var gprm = json[o.jsonGrid.config];
+                        var jdata = json[o.jsonGrid.data];
+                        if(jdata) {
+                            var svdatatype = gprm.datatype;
+                            gprm.datatype = 'jsonstring';
+                            gprm.datastr = jdata;
+                            $($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype});
+                        } else {
+                            $($t).jqGrid( gprm );
+                        }
+                    }
+                };
+                switch (o.imptype){
+                    case 'xml':
+                        $.ajax($.extend({
+                            url:o.impurl,
+                            type:o.mtype,
+                            data: o.impData,
+                            dataType:"xml",
+                            complete: function(xml,stat) {
+                                if(stat == 'success') {
+                                    XmlConvert(xml.responseXML,o);
+                                    if($.isFunction(o.importComplete)) {
+                                        o.importComplete(xml);
+                                    }
+                                }
+                                xml=null;
+                            }
+                        }, o.ajaxOptions));
+                        break;
+                    case 'xmlstring' :
+                        // we need to make just the conversion and use the same code as xml
+                        if(o.impstring && typeof o.impstring == 'string') {
+                            var xmld = $.jgrid.stringToDoc(o.impstring);
+                            if(xmld) {
+                                XmlConvert(xmld,o);
+                                if($.isFunction(o.importComplete)) {
+                                    o.importComplete(xmld);
+                                }
+                                o.impstring = null;
+                            }
+                            xmld = null;
+                        }
+                        break;
+                    case 'json':
+                        $.ajax($.extend({
+                            url:o.impurl,
+                            type:o.mtype,
+                            data: o.impData,
+                            dataType:"json",
+                            complete: function(json,stat) {
+                                if(stat == 'success') {
+                                    JsonConvert(json.responseText,o );
+                                    if($.isFunction(o.importComplete)) {
+                                        o.importComplete(json);
+                                    }
+                                }
+                                json=null;
+                            }
+                        }, o.ajaxOptions ));
+                        break;
+                    case 'jsonstring' :
+                        if(o.impstring && typeof o.impstring == 'string') {
+                            JsonConvert(o.impstring,o );
+                            if($.isFunction(o.importComplete)) {
+                                o.importComplete(o.impstring);
+                            }
+                            o.impstring = null;
+                        }
+                        break;
+                }
+            });
+        },
+        jqGridExport : function(o) {
+            o = $.extend({
+                exptype : "xmlstring",
+                root: "grid",
+                ident: "\t"
+            }, o || {});
+            var ret = null;
+            this.each(function () {
+                if(!this.grid) { return;}
+                var gprm = $.extend({},$(this).jqGrid("getGridParam"));
+                // we need to check for:
+                // 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames
+                if(gprm.rownumbers) {
+                    gprm.colNames.splice(0,1);
+                    gprm.colModel.splice(0,1);
+                }
+                if(gprm.multiselect) {
+                    gprm.colNames.splice(0,1);
+                    gprm.colModel.splice(0,1);
+                }
+                if(gprm.subGrid) {
+                    gprm.colNames.splice(0,1);
+                    gprm.colModel.splice(0,1);
+                }
+                gprm.knv = null;
+                if(gprm.treeGrid) {
+                    for (var key in gprm.treeReader) {
+                        if(gprm.treeReader.hasOwnProperty(key)) {
+                            gprm.colNames.splice(gprm.colNames.length-1);
+                            gprm.colModel.splice(gprm.colModel.length-1);
+                        }
+                    }
+                }
+                switch (o.exptype) {
+                    case 'xmlstring' :
+                        ret = "<"+o.root+">"+xmlJsonClass.json2xml(gprm,o.ident)+"</"+o.root+">";
+                        break;
+                    case 'jsonstring' :
+                        ret = "{"+ xmlJsonClass.toJson(gprm,o.root,o.ident)+"}";
+                        if(gprm.postData.filters !== undefined) {
+                            ret=ret.replace(/filters":"/,'filters":');
+                            ret=ret.replace(/}]}"/,'}]}');
+                        }
+                        break;
+                }
+            });
+            return ret;
+        },
+        excelExport : function(o) {
+            o = $.extend({
+                exptype : "remote",
+                url : null,
+                oper: "oper",
+                tag: "excel",
+                exportOptions : {}
+            }, o || {});
+            return this.each(function(){
+                $t = this;
+                if(!this.grid) { return;}
+                if(o.exptype == "remote") {
+                    var pdata = $.extend({},this.p.postData);
+                    pdata[o.oper] = o.tag;
+                    var params = jQuery.param(pdata);
+                    window.location = o.url+"?"+params;
+                }
+            });
+        }
+    });
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.import.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.custom.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.custom.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.custom.js	(revision 178)
@@ -0,0 +1,816 @@
+;(function($){
+/**
+ * jqGrid extension for custom methods
+ * Tony Tomov tony@trirand.com
+ * http://trirand.com/blog/ 
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+**/ 
+$.jgrid.extend({
+	getColProp : function(colname){
+		var ret ={}, $t = this[0];
+		if ( !$t.grid ) { return; }
+		var cM = $t.p.colModel;
+		for ( var i =0;i<cM.length;i++ ) {
+			if ( cM[i].name == colname ) {
+				ret = cM[i];
+				break;
+			}
+		}
+		return ret;
+	},
+	setColProp : function(colname, obj){
+		//do not set width will not work
+		return this.each(function(){
+			if ( this.grid ) {
+				if ( obj ) {
+					var cM = this.p.colModel;
+					for ( var i =0;i<cM.length;i++ ) {
+						if ( cM[i].name == colname ) {
+							$.extend(this.p.colModel[i],obj);
+							break;
+						}
+					}
+				}
+			}
+		});
+	},
+	sortGrid : function(colname,reload, sor){
+		return this.each(function(){
+			var $t=this,idx=-1;
+			if ( !$t.grid ) { return;}
+			if ( !colname ) { colname = $t.p.sortname; }
+			for ( var i=0;i<$t.p.colModel.length;i++ ) {
+				if ( $t.p.colModel[i].index == colname || $t.p.colModel[i].name==colname ) {
+					idx = i;
+					break;
+				}
+			}
+			if ( idx!=-1 ){
+				var sort = $t.p.colModel[idx].sortable;
+				if ( typeof sort !== 'boolean' ) { sort =  true; }
+				if ( typeof reload !=='boolean' ) { reload = false; }
+				if ( sort ) { $t.sortData("jqgh_"+colname, idx, reload, sor); }
+			}
+		});
+	},
+	GridDestroy : function () {
+		return this.each(function(){
+			if ( this.grid ) { 
+				if ( this.p.pager ) { // if not part of grid
+					$(this.p.pager).remove();
+				}
+				var gid = this.id;
+				try {
+					$("#gbox_"+gid).remove();
+				} catch (_) {}
+			}
+		});
+	},
+	GridUnload : function(){
+		return this.each(function(){
+			if ( !this.grid ) {return;}
+			var defgrid = {id: $(this).attr('id'),cl: $(this).attr('class')};
+			if (this.p.pager) {
+				$(this.p.pager).empty().removeClass("ui-state-default ui-jqgrid-pager corner-bottom");
+			}
+			var newtable = document.createElement('table');
+			$(newtable).attr({id:defgrid.id});
+			newtable.className = defgrid.cl;
+			var gid = this.id;
+			$(newtable).removeClass("ui-jqgrid-btable");
+			if( $(this.p.pager).parents("#gbox_"+gid).length === 1 ) {
+				$(newtable).insertBefore("#gbox_"+gid).show();
+				$(this.p.pager).insertBefore("#gbox_"+gid);
+			} else {
+				$(newtable).insertBefore("#gbox_"+gid).show();
+			}
+			$("#gbox_"+gid).remove();
+		});
+	},
+    setGridState : function(state) {
+		return this.each(function(){
+			if ( !this.grid ) {return;}
+            var $t = this;
+            if(state == 'hidden'){
+				$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$t.p.id).slideUp("fast");
+				if($t.p.pager) {$($t.p.pager).slideUp("fast");}
+				if($t.p.toppager) {$($t.p.toppager).slideUp("fast");}
+				if($t.p.toolbar[0]===true) {
+					if( $t.p.toolbar[1]=='both') {
+						$($t.grid.ubDiv).slideUp("fast");
+					}
+					$($t.grid.uDiv).slideUp("fast");
+				}
+				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideUp("fast"); }
+				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
+				$t.p.gridstate = 'hidden';
+            } else if(state=='visible') {
+				$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$t.p.id).slideDown("fast");
+				if($t.p.pager) {$($t.p.pager).slideDown("fast");}
+				if($t.p.toppager) {$($t.p.toppager).slideDown("fast");}
+				if($t.p.toolbar[0]===true) {
+					if( $t.p.toolbar[1]=='both') {
+						$($t.grid.ubDiv).slideDown("fast");
+					}
+					$($t.grid.uDiv).slideDown("fast");
+				}
+				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideDown("fast"); }
+				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
+				$t.p.gridstate = 'visible';
+            }
+            
+        });
+    },
+	updateGridRows : function (data, rowidname, jsonreader) {
+		var nm, success=false, title;
+		this.each(function(){
+			var t = this, vl, ind, srow, sid;
+			if(!t.grid) {return false;}
+			if(!rowidname) { rowidname = "id"; }
+			if( data  && data.length >0 ) {
+				$(data).each(function(j){
+					srow = this;
+					ind = t.rows.namedItem(srow[rowidname]);
+					if(ind) {
+						sid = srow[rowidname];
+						if(jsonreader === true){
+							if(t.p.jsonReader.repeatitems === true) {
+								if(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}
+								for (var k=0;k<srow.length;k++) {
+									vl = t.formatter( sid, srow[k], k, srow, 'edit');
+									title = t.p.colModel[k].title ? {"title":$.jgrid.stripHtml(vl)} : {};
+									if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
+										$("td:eq("+k+") > span:first",ind).html(vl).attr(title);
+									} else {
+										$("td:eq("+k+")",ind).html(vl).attr(title); 
+									}
+								}
+								success = true;
+								return true;
+							}
+						} 
+						$(t.p.colModel).each(function(i){
+							nm = jsonreader===true ? this.jsonmap || this.name :this.name;
+							if( srow[nm] !== undefined) {
+								vl = t.formatter( sid, srow[nm], i, srow, 'edit');
+								title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
+								if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
+									$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
+								} else {
+									$("td:eq("+i+")",ind).html(vl).attr(title); 
+								}
+								success = true;
+							}
+						});
+					}
+				});
+			}
+		});
+		return success;
+	},
+	filterGrid : function(gridid,p){
+		p = $.extend({
+			gridModel : false,
+			gridNames : false,
+			gridToolbar : false,
+			filterModel: [], // label/name/stype/defval/surl/sopt
+			formtype : "horizontal", // horizontal/vertical
+			autosearch: true, // if set to false a serch button should be enabled.
+			formclass: "filterform",
+			tableclass: "filtertable",
+			buttonclass: "filterbutton",
+			searchButton: "Search",
+			clearButton: "Clear",
+			enableSearch : false,
+			enableClear: false,
+			beforeSearch: null,
+			afterSearch: null,
+			beforeClear: null,
+			afterClear: null,
+			url : '',
+			marksearched: true
+		},p  || {});
+		return this.each(function(){
+			var self = this;
+			this.p = p;
+			if(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert("No filter is set"); return;}
+			if( !gridid) {alert("No target grid is set!"); return;}
+			this.p.gridid = gridid.indexOf("#") != -1 ? gridid : "#"+gridid;
+			var gcolMod = $(this.p.gridid).jqGrid("getGridParam",'colModel');
+			if(gcolMod) {
+				if( this.p.gridModel === true) {
+					var thegrid = $(this.p.gridid)[0];
+					var sh;
+					// we should use the options search, edittype, editoptions
+					// additionally surl and defval can be added in grid colModel
+					$.each(gcolMod, function (i,n) {
+						var tmpFil = [];
+						this.search = this.search === false ? false : true;
+						if(this.editrules && this.editrules.searchhidden === true) {
+							sh = true;
+						} else {
+							if(this.hidden === true ) {
+								sh = false;
+							} else {
+								sh = true;
+							}
+						}
+						if( this.search === true && sh === true) {
+							if(self.p.gridNames===true) {
+								tmpFil.label = thegrid.p.colNames[i];
+							} else {
+								tmpFil.label = '';
+							}
+							tmpFil.name = this.name;
+							tmpFil.index = this.index || this.name;
+							// we support only text and selects, so all other to text
+							tmpFil.stype = this.edittype || 'text';
+							if(tmpFil.stype != 'select' ) {
+								tmpFil.stype = 'text';
+							}
+							tmpFil.defval = this.defval || '';
+							tmpFil.surl = this.surl || '';
+							tmpFil.sopt = this.editoptions || {};
+							tmpFil.width = this.width;
+							self.p.filterModel.push(tmpFil);
+						}
+					});
+				} else {
+					$.each(self.p.filterModel,function(i,n) {
+						for(var j=0;j<gcolMod.length;j++) {
+							if(this.name == gcolMod[j].name) {
+								this.index = gcolMod[j].index || this.name;
+								break;
+							}
+						}
+						if(!this.index) {
+							this.index = this.name;
+						}
+					});
+				}
+			} else {
+				alert("Could not get grid colModel"); return;
+			}
+			var triggerSearch = function() {
+				var sdata={}, j=0, v;
+				var gr = $(self.p.gridid)[0], nm;
+                gr.p.searchdata = {};
+				if($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}
+				$.each(self.p.filterModel,function(i,n){
+                    nm = this.index;
+					switch (this.stype) {
+						case 'select' :
+							v = $("select[name="+nm+"]",self).val();
+							if(v) {
+								sdata[nm] = v;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch (e) {}
+							}
+							break;
+						default:
+							v = $("input[name="+nm+"]",self).val();
+							if(v) {
+								sdata[nm] = v;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch(e) {}
+							}
+					}
+				});
+				var sd =  j>0 ? true : false;
+                $.extend(gr.p.postData,sdata);
+				var saveurl;
+				if(self.p.url) {
+					saveurl = $(gr).jqGrid("getGridParam",'url');
+					$(gr).jqGrid("setGridParam",{url:self.p.url});
+				}
+			    $(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
+				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(self.p.afterSearch)){self.p.afterSearch();}
+			};
+			var clearSearch = function(){
+				var sdata={}, v, j=0;
+				var gr = $(self.p.gridid)[0], nm;
+				if($.isFunction(self.p.beforeClear)){self.p.beforeClear();}
+				$.each(self.p.filterModel,function(i,n){
+                    nm = this.index;
+					v = (this.defval) ? this.defval : "";
+					if(!this.stype){this.stype='text';}
+					switch (this.stype) {
+						case 'select' :
+							var v1;
+							$("select[name="+nm+"] option",self).each(function (i){
+                                if(i===0) { this.selected = true; }
+								if ($(this).text() == v) {
+									this.selected = true;
+									v1 = $(this).val();
+									return false;
+								}
+							});
+							if(v1) {
+								// post the key and not the text
+								sdata[nm] = v1;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch (e) {}
+							}
+							break;
+						case 'text':
+							$("input[name="+nm+"]",self).val(v);
+							if(v) {
+								sdata[nm] = v;
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
+								}
+								j++;
+							} else {
+								if(self.p.marksearched){
+									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
+								}
+                                try {
+                                    delete gr.p.postData[this.index];
+                                } catch (e) {}
+							}
+                            break;
+					}
+				});
+				var sd =  j>0 ? true : false;
+                $.extend(gr.p.postData,sdata);
+				var saveurl;
+				if(self.p.url) {
+					saveurl = $(gr).jqGrid("getGridParam",'url');
+					$(gr).jqGrid("setGridParam",{url:self.p.url});
+				}
+				$(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
+				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(self.p.afterClear)){self.p.afterClear();}
+			};
+			var formFill = function(){
+				var tr = document.createElement("tr");
+				var tr1, sb, cb,tl,td;
+				if(self.p.formtype=='horizontal'){
+					$(tbl).append(tr);
+				}
+				$.each(self.p.filterModel,function(i,n){
+					tl = document.createElement("td");
+					$(tl).append("<label for='"+this.name+"'>"+this.label+"</label>");
+					td = document.createElement("td");
+					var $t=this;
+					if(!this.stype) { this.stype='text';}
+					switch (this.stype)
+					{
+					case "select":
+						if(this.surl) {
+							// data returned should have already constructed html select
+							$(td).load(this.surl,function(){
+								if($t.defval) { $("select",this).val($t.defval); }
+								$("select",this).attr({name:$t.index || $t.name, id: "sg_"+$t.name});
+								if($t.sopt) { $("select",this).attr($t.sopt); }
+								if(self.p.gridToolbar===true && $t.width) {
+									$("select",this).width($t.width);
+								}
+								if(self.p.autosearch===true){
+									$("select",this).change(function(e){
+										triggerSearch();
+										return false;
+									});
+								}
+							});
+						} else {
+							// sopt to construct the values
+							if($t.sopt.value) {
+								var oSv = $t.sopt.value;
+								var elem = document.createElement("select");
+								$(elem).attr({name:$t.index || $t.name, id: "sg_"+$t.name}).attr($t.sopt);
+								var so, sv, ov;
+								if(typeof oSv === "string") {
+									so = oSv.split(";");
+									for(var k=0; k<so.length;k++){
+										sv = so[k].split(":");
+										ov = document.createElement("option");
+										ov.value = sv[0]; ov.innerHTML = sv[1];
+										if (sv[1]==$t.defval) { ov.selected ="selected"; }
+										elem.appendChild(ov);
+									}
+								} else if(typeof oSv === "object" ) {
+									for ( var key in oSv) {
+										if(oSv.hasOwnProperty(key)) {
+											i++;
+											ov = document.createElement("option");
+											ov.value = key; ov.innerHTML = oSv[key];
+											if (oSv[key]==$t.defval) { ov.selected ="selected"; }
+											elem.appendChild(ov);
+										}
+									}
+								}
+								if(self.p.gridToolbar===true && $t.width) {
+									$(elem).width($t.width);
+								}
+								$(td).append(elem);
+								if(self.p.autosearch===true){
+									$(elem).change(function(e){
+										triggerSearch();
+										return false;
+									});
+								}
+							}
+						}
+						break;
+					case 'text':
+						var df = this.defval ? this.defval: "";
+						$(td).append("<input type='text' name='"+(this.index || this.name)+"' id='sg_"+this.name+"' value='"+df+"'/>");
+						if($t.sopt) { $("input",td).attr($t.sopt); }
+						if(self.p.gridToolbar===true && $t.width) {
+							if($.browser.msie) {
+								$("input",td).width($t.width-4);
+							} else {
+								$("input",td).width($t.width-2);
+							}
+						}
+						if(self.p.autosearch===true){
+							$("input",td).keypress(function(e){
+								var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
+								if(key == 13){
+									triggerSearch();
+									return false;
+								}
+								return this;
+							});
+						}
+						break;
+					}
+					if(self.p.formtype=='horizontal'){
+						if(self.p.gridToolbar===true && self.p.gridNames===false) {
+							$(tr).append(td);
+						} else {
+							$(tr).append(tl).append(td);
+						}
+						$(tr).append(td);
+					} else {
+						tr1 = document.createElement("tr");
+						$(tr1).append(tl).append(td);
+						$(tbl).append(tr1);
+					}
+				});
+				td = document.createElement("td");
+				if(self.p.enableSearch === true){
+					sb = "<input type='button' id='sButton' class='"+self.p.buttonclass+"' value='"+self.p.searchButton+"'/>";
+					$(td).append(sb);
+					$("input#sButton",td).click(function(){
+						triggerSearch();
+						return false;
+					});
+				}
+				if(self.p.enableClear === true) {
+					cb = "<input type='button' id='cButton' class='"+self.p.buttonclass+"' value='"+self.p.clearButton+"'/>";
+					$(td).append(cb);
+					$("input#cButton",td).click(function(){
+						clearSearch();
+						return false;
+					});
+				}
+				if(self.p.enableClear === true || self.p.enableSearch === true) {
+					if(self.p.formtype=='horizontal') {
+						$(tr).append(td);
+					} else {
+						tr1 = document.createElement("tr");
+						$(tr1).append("<td>&#160;</td>").append(td);
+						$(tbl).append(tr1);
+					}
+				}
+			};
+			var frm = $("<form name='SearchForm' style=display:inline;' class='"+this.p.formclass+"'></form>");
+			var tbl =$("<table class='"+this.p.tableclass+"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
+			$(frm).append(tbl);
+			formFill();
+			$(this).append(frm);
+			this.triggerSearch = triggerSearch;
+			this.clearSearch = clearSearch;
+		});
+	},
+	filterToolbar : function(p){
+		p = $.extend({
+			autosearch: true,
+			searchOnEnter : true,
+			beforeSearch: null,
+			afterSearch: null,
+			beforeClear: null,
+			afterClear: null,
+			searchurl : '',
+			stringResult: false,
+			groupOp: 'AND'
+		},p  || {});
+		return this.each(function(){
+			var $t = this;
+			var triggerToolbar = function() {
+				var sdata={}, j=0, v, nm, sopt={};
+				$.each($t.p.colModel,function(i,n){
+                    nm = this.index || this.name;
+                    var so = (this.searchoptions && this.searchoptions.sopt) ? this.searchoptions.sopt[0] : "bw";
+					switch (this.stype) {
+						case 'select' :
+							v = $("select[name="+nm+"]",$t.grid.hDiv).val();
+							if(v) {
+								sdata[nm] = v;
+                                sopt[nm] = so;
+								j++;
+							} else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch (e) {}
+                            }
+							break;
+						case 'text':
+							v = $("input[name="+nm+"]",$t.grid.hDiv).val();
+							if(v) {
+								sdata[nm] = v;
+                                sopt[nm] = so;
+								j++;
+							} else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch (e) {}
+                            }
+                            break;
+					}
+				});
+				var sd =  j>0 ? true : false;
+                if(!p.stringResult) {
+                    $.extend($t.p.postData,sdata);
+                } else {
+                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
+                    var gi=0;
+                    $.each(sdata,function(i,n){
+                        if (gi > 0) {ruleGroup += ",";}
+                        ruleGroup += "{\"field\":\"" + i + "\",";
+                        ruleGroup += "\"op\":\"" + sopt[i] + "\",";
+                        ruleGroup += "\"data\":\"" + n + "\"}";
+                        gi++;
+                    });
+                    ruleGroup += "]}";
+                    $.extend($t.p.postData,{filters:ruleGroup});
+                }
+				var saveurl;
+				if($t.p.searchurl) {
+					saveurl = $t.p.url;
+					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
+				}
+				var bsr = false;
+				if($.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
+				if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); }
+				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(p.afterSearch)){p.afterSearch();}
+			};
+			var clearToolbar = function(trigger){
+				var sdata={}, v, j=0, nm;
+                trigger = (typeof trigger != 'boolean') ? true : trigger;
+				$.each($t.p.colModel,function(i,n){
+					v = (this.searchoptions && this.searchoptions.defaultValue) ? this.searchoptions.defaultValue : "";
+                    nm = this.index || this.name;
+					switch (this.stype) {
+						case 'select' :
+							var v1;
+							$("select[name="+nm+"] option",$t.grid.hDiv).each(function (i){
+                                if(i===0) { this.selected = true; }
+								if ($(this).text() == v) {
+									this.selected = true;
+									v1 = $(this).val();
+									return false;
+								}
+							});
+                            if (v1) {
+                                // post the key and not the text
+                                sdata[nm] = v1;
+                                j++;
+                            } else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch(e) {}
+                            }
+							break;
+						case 'text':
+							$("input[name="+nm+"]",$t.grid.hDiv).val(v);
+							if(v) {
+								sdata[nm] = v;
+								j++;
+							} else {
+                                try {
+                                    delete $t.p.postData[nm];
+                                } catch (e){}
+                            }
+                            break;
+					}
+				});
+				var sd =  j>0 ? true : false;
+                if(!p.stringResult) {
+                    $.extend($t.p.postData,sdata);
+                } else {
+                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
+                    var gi=0;
+                    $.each(sdata,function(i,n){
+                        if (gi > 0) {ruleGroup += ",";}
+                        ruleGroup += "{\"field\":\"" + i + "\",";
+                        ruleGroup += "\"op\":\"" + "eq" + "\",";
+                        ruleGroup += "\"data\":\"" + n + "\"}";
+                        gi++;
+                    });
+                    ruleGroup += "]}";
+                    $.extend($t.p.postData,{filters:ruleGroup});
+                }
+				var saveurl;
+				if($t.p.searchurl) {
+					saveurl = $t.p.url;
+					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
+				}
+				var bcv = false;
+				if($.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}
+				if(!bcv) {
+                    if(trigger) {
+                        $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
+                    }
+                }
+				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
+				if($.isFunction(p.afterClear)){p.afterClear();}
+			};
+			var toggleToolbar = function(){
+                var trow = $("tr.ui-search-toolbar",$t.grid.hDiv);
+                if(trow.css("display")=='none') { trow.show(); }
+                else { trow.hide(); }
+			};
+			// create the row
+			function bindEvents(selector, events) {
+				var jElem = $(selector);
+				if (jElem[0]) {
+				    jQuery.each(events, function() {
+				        if (this.data !== undefined) {
+				            jElem.bind(this.type, this.data, this.fn);
+				        } else {
+				            jElem.bind(this.type, this.fn);
+				        }
+				    });
+				}
+			}
+			var tr = $("<tr class='ui-search-toolbar' role='rowheader'></tr>");
+            var timeoutHnd;
+			$.each($t.p.colModel,function(i,n){
+				var cm=this, thd , th, soptions,surl,self;
+				th = $("<th role='columnheader' class='ui-state-default ui-th-column ui-th-"+$t.p.direction+"'></th>");
+				thd = $("<div style='width:100%;position:relative;height:100%;padding-right:0.3em;'></div>");
+				if(this.hidden===true) { $(th).css("display","none");}
+				this.search = this.search === false ? false : true;
+				if(typeof this.stype == 'undefined' ) {this.stype='text';}
+				soptions = $.extend({},this.searchoptions || {});
+				if(this.search){
+					switch (this.stype)
+					{
+					case "select":
+						surl = this.surl || soptions.dataUrl;
+						if(surl) {
+							// data returned should have already constructed html select
+							// primitive jQuery load
+							self = thd;
+							$.ajax($.extend({
+								url: surl,
+								dataType: "html",
+								complete: function(res,status) {
+									if(soptions.buildSelect !== undefined) {
+										var d = soptions.buildSelect(res);
+										if (d) { $(self).append(d); }
+									} else {
+										$(self).append(res.responseText);
+									}
+									if(soptions.defaultValue) { $("select",self).val(soptions.defaultValue); }
+									$("select",self).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
+									if(soptions.attr) {$("select",self).attr(soptions.attr);}
+									$("select",self).css({width: "100%"});
+									// preserve autoserch
+									if(soptions.dataInit !== undefined) { soptions.dataInit($("select",self)[0]); }
+									if(soptions.dataEvents !== undefined) { bindEvents($("select",self)[0],soptions.dataEvents); }
+									if(p.autosearch===true){
+										$("select",self).change(function(e){
+											triggerToolbar();
+											return false;
+										});
+									}
+									res=null;
+								}
+							}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {} ));
+						} else {
+							var oSv;
+							if(cm.searchoptions && cm.searchoptions.value) {
+								oSv = cm.searchoptions.value;
+							} else if(cm.editoptions && cm.editoptions.value) {
+								oSv = cm.editoptions.value;
+							}
+							if (oSv) {	
+								var elem = document.createElement("select");
+								elem.style.width = "100%";
+								$(elem).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
+								var so, sv, ov;
+								if(typeof oSv === "string") {
+									so = oSv.split(";");
+									for(var k=0; k<so.length;k++){
+										sv = so[k].split(":");
+										ov = document.createElement("option");
+										ov.value = sv[0]; ov.innerHTML = sv[1];
+										elem.appendChild(ov);
+									}
+								} else if(typeof oSv === "object" ) {
+									for ( var key in oSv) {
+										if(oSv.hasOwnProperty(key)) {
+											ov = document.createElement("option");
+											ov.value = key; ov.innerHTML = oSv[key];
+											elem.appendChild(ov);
+										}
+									}
+								}
+								if(soptions.defaultValue) { $(elem).val(soptions.defaultValue); }
+								if(soptions.attr) {$(elem).attr(soptions.attr);}
+								if(soptions.dataInit !== undefined) { soptions.dataInit(elem); }
+								if(soptions.dataEvents !== undefined) { bindEvents(elem, soptions.dataEvents); }
+								$(thd).append(elem);
+								if(p.autosearch===true){
+									$(elem).change(function(e){
+										triggerToolbar();
+										return false;
+									});
+								}
+							}
+						}
+						break;
+					case 'text':
+						var df = soptions.defaultValue ? soptions.defaultValue: "";
+						$(thd).append("<input type='text' style='width:95%;padding:0px;' name='"+(cm.index || cm.name)+"' id='gs_"+cm.name+"' value='"+df+"'/>");
+						if(soptions.attr) {$("input",thd).attr(soptions.attr);}
+						if(soptions.dataInit !== undefined) { soptions.dataInit($("input",thd)[0]); }
+						if(soptions.dataEvents !== undefined) { bindEvents($("input",thd)[0], soptions.dataEvents); }
+						if(p.autosearch===true){
+                            if(p.searchOnEnter) {
+                                $("input",thd).keypress(function(e){
+                                    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
+                                    if(key == 13){
+                                        triggerToolbar();
+                                        return false;
+                                    }
+                                    return this;
+                                });
+                            } else {
+                                $("input",thd).keydown(function(e){
+                                    var key = e.which;
+									switch (key) {
+										case 9 :
+										case 16:
+										case 37:
+										case 38:
+										case 39:
+										case 40:
+										case 27:
+											break;
+										default :
+	                                        if(timeoutHnd) { clearTimeout(timeoutHnd); }
+	                                        timeoutHnd = setTimeout(function(){triggerToolbar();},500);
+									}
+                                });
+                            }
+						}
+						break;
+					}
+				}
+				$(th).append(thd);
+				$(tr).append(th);
+			});
+			$("table thead",$t.grid.hDiv).append(tr);
+			this.triggerToolbar = triggerToolbar;
+			this.clearToolbar = clearToolbar;
+			this.toggleToolbar = toggleToolbar;
+		});
+	}
+});
+})(jQuery);
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.custom.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.base.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.base.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.base.js	(revision 178)
@@ -0,0 +1,2360 @@
+;(function ($) {
+/*
+ * jqGrid  3.6.5 - jQuery Grid
+ * Copyright (c) 2008, Tony Tomov, tony@trirand.com
+ * Dual licensed under the MIT and GPL licenses
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ * Date: 2010-05-05 
+ */
+$.jgrid = $.jgrid || {};
+$.extend($.jgrid,{
+	htmlDecode : function(value){
+		if(value=='&nbsp;' || value=='&#160;' || (value.length==1 && value.charCodeAt(0)==160)) { return "";}
+		return !value ? value : String(value).replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"');
+	},
+	htmlEncode : function (value){
+		return !value ? value : String(value).replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/\"/g, "&quot;");
+	},
+	format : function(format){ //jqgformat
+		var args = $.makeArray(arguments).slice(1);
+		if(format===undefined) { format = ""; }
+		return format.replace(/\{(\d+)\}/g, function(m, i){
+			return args[i];
+		});
+	},
+	getCellIndex : function (cell) {
+		cell = $(cell);
+		cell = (!cell.is('td') && !cell.is('th') ? cell.closest("td,th") : cell)[0];
+		if ($.browser.msie) { return $.inArray(cell, cell.parentNode.cells); }
+		return cell.cellIndex;
+	},
+	stripHtml : function(v) {
+		v = v+"";
+		var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
+		if (v) {
+			v = v.replace(regexp,"");
+			return (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\"/g,"'") : "";
+		} else {
+			return v;
+		}
+	},
+	stringToDoc : function (xmlString) {
+		var xmlDoc;
+		if(typeof xmlString !== 'string') { return xmlString; }
+		try	{
+			var parser = new DOMParser();
+			xmlDoc = parser.parseFromString(xmlString,"text/xml");
+		}
+		catch(e) {
+			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+			xmlDoc.async=false;
+			xmlDoc.loadXML(xmlString);
+		}
+		return (xmlDoc && xmlDoc.documentElement && xmlDoc.documentElement.tagName != 'parsererror') ? xmlDoc : null;
+	},
+	parse : function(jsonString) {
+		var js = jsonString;
+		if (js.substr(0,9) == "while(1);") { js = js.substr(9); }
+		if (js.substr(0,2) == "/*") { js = js.substr(2,js.length-4); }
+		if(!js) { js = "{}"; }
+		return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function') ?
+		    JSON.parse(js) :
+		    eval('(' + js + ')');
+	},
+	jqID : function(sid){
+		sid = sid + "";
+		return sid.replace(/([\.\:\[\]])/g,"\\$1");
+	},
+	ajaxOptions: {},
+	extend : function(methods) {
+		$.extend($.fn.jqGrid,methods);
+		if (!this.no_legacy_api) {
+			$.fn.extend(methods);
+		}
+	}
+});
+
+$.fn.jqGrid = function( pin ) {
+	if (typeof pin == 'string') {
+		var fn = $.fn.jqGrid[pin];
+		if (!fn) {
+			throw ("jqGrid - No such method: " + pin);
+		}
+		var args = $.makeArray(arguments).slice(1);
+		return fn.apply(this,args);
+	}
+	return this.each( function() {
+		if(this.grid) {return;}
+
+		var p = $.extend(true,{
+			url: "",
+			height: 150,
+			page: 1,
+			rowNum: 20,
+			records: 0,
+			pager: "",
+			pgbuttons: true,
+			pginput: true,
+			colModel: [],
+			rowList: [],
+			colNames: [],
+			sortorder: "asc",
+			sortname: "",
+			datatype: "xml",
+			mtype: "GET",
+			altRows: false,
+			selarrrow: [],
+			savedRow: [],
+			shrinkToFit: true,
+			xmlReader: {},
+			jsonReader: {},
+			subGrid: false,
+			subGridModel :[],
+			reccount: 0,
+			lastpage: 0,
+			lastsort: 0,
+			selrow: null,
+			beforeSelectRow: null,
+			onSelectRow: null,
+			onSortCol: null,
+			ondblClickRow: null,
+			onRightClickRow: null,
+			onPaging: null,
+			onSelectAll: null,
+			loadComplete: null,
+			gridComplete: null,
+			loadError: null,
+			loadBeforeSend: null,
+			afterInsertRow: null,
+			beforeRequest: null,
+			onHeaderClick: null,
+			viewrecords: false,
+			loadonce: false,
+			multiselect: false,
+			multikey: false,
+			editurl: null,
+			search: false,
+			caption: "",
+			hidegrid: true,
+			hiddengrid: false,
+			postData: {},
+			userData: {},
+			treeGrid : false,
+			treeGridModel : 'nested',
+			treeReader : {},
+			treeANode : -1,
+			ExpandColumn: null,
+			tree_root_level : 0,
+			prmNames: {page:"page",rows:"rows", sort: "sidx",order: "sord", search:"_search", nd:"nd", id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del", subgridid:"id", npage: null},
+			forceFit : false,
+			gridstate : "visible",
+			cellEdit: false,
+			cellsubmit: "remote",
+			nv:0,
+			loadui: "enable",
+			toolbar: [false,""],
+			scroll: false,
+			multiboxonly : false,
+			deselectAfterSort : true,
+			scrollrows : false,
+			autowidth: false,
+			scrollOffset :18,
+			cellLayout: 5,
+			subGridWidth: 20,
+			multiselectWidth: 20,
+			gridview: false,
+			rownumWidth: 25,
+			rownumbers : false,
+			pagerpos: 'center',
+			recordpos: 'right',
+			footerrow : false,
+			userDataOnFooter : false,
+			hoverrows : true,
+			altclass : 'ui-priority-secondary',
+			viewsortcols : [false,'vertical',true],
+			resizeclass : '',
+			autoencode : false,
+			remapColumns : [],
+			ajaxGridOptions :{},
+			direction : "ltr",
+			toppager: false,
+			headertitles: false,
+			scrollTimeout: 200
+		}, $.jgrid.defaults, pin || {});
+		var grid={
+			headers:[],
+			cols:[],
+			footers: [],
+			dragStart: function(i,x,y) {
+				this.resizing = { idx: i, startX: x.clientX, sOL : y[0]};
+				this.hDiv.style.cursor = "col-resize";
+				this.curGbox = $("#rs_m"+p.id,"#gbox_"+p.id);
+				this.curGbox.css({display:"block",left:y[0],top:y[1],height:y[2]});
+				if($.isFunction(p.resizeStart)) { p.resizeStart.call(this,x,i); }
+				document.onselectstart=function(){return false;};
+			},
+			dragMove: function(x) {
+				if(this.resizing) {
+					var diff = x.clientX-this.resizing.startX,
+					h = this.headers[this.resizing.idx],
+					newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn;
+					if(newWidth > 33) {
+						this.curGbox.css({left:this.resizing.sOL+diff});
+						if(p.forceFit===true ){
+							hn = this.headers[this.resizing.idx+p.nv];
+							nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff;
+							if(nWn >33) {
+								h.newWidth = newWidth;
+								hn.newWidth = nWn;
+							}
+						} else {
+							this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff;
+							h.newWidth = newWidth;
+						}
+					}
+				}
+			},
+			dragEnd: function() {
+				this.hDiv.style.cursor = "default";
+				if(this.resizing) {
+					var idx = this.resizing.idx,
+					nw = this.headers[idx].newWidth || this.headers[idx].width;
+					nw = parseInt(nw,10);
+					this.resizing = false;
+					$("#rs_m"+p.id).css("display","none");
+					p.colModel[idx].width = nw;
+					this.headers[idx].width = nw;
+					this.headers[idx].el.style.width = nw + "px";
+					if(this.cols.length>0) {this.cols[idx].style.width = nw+"px";}
+					if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";}
+					if(p.forceFit===true){
+						nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;
+						this.headers[idx+p.nv].width = nw;
+						this.headers[idx+p.nv].el.style.width = nw + "px";
+						if(this.cols.length>0) { this.cols[idx+p.nv].style.width = nw+"px"; }
+						if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";}
+						p.colModel[idx+p.nv].width = nw;
+					} else {
+						p.tblwidth = this.newWidth || p.tblwidth;
+						$('table:first',this.bDiv).css("width",p.tblwidth+"px");
+						$('table:first',this.hDiv).css("width",p.tblwidth+"px");
+						this.hDiv.scrollLeft = this.bDiv.scrollLeft;
+						if(p.footerrow) {
+							$('table:first',this.sDiv).css("width",p.tblwidth+"px");
+							this.sDiv.scrollLeft = this.bDiv.scrollLeft;
+						}
+					}
+					if($.isFunction(p.resizeStop)) { p.resizeStop.call(this,nw,idx); }
+				}
+				this.curGbox = null;
+				document.onselectstart=function(){return true;};
+			},
+			populateVisible: function() {
+				if (grid.timer) { clearTimeout(grid.timer); }
+				grid.timer = null;
+
+				var dh = $(grid.bDiv).height();
+				if (!dh) { return; }
+				var table = $("table:first", grid.bDiv);
+				var rows = $("> tbody > tr:visible:first", table);
+				var rh = rows.outerHeight() || grid.prevRowHeight;
+				if (!rh) { return; }
+				grid.prevRowHeight = rh;
+				var rn = p.rowNum;
+				var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;
+				var ttop = Math.round(table.position().top) - scrollTop;
+				var tbot = ttop + table.height();
+				var div = rh * rn;
+				var page, npage, empty;
+				// tbot < dh &&
+			    if (ttop <= 0 &&  
+                    (p.lastpage===undefined||parseInt((tbot + scrollTop + div - 1) / div,10) <= p.lastpage))
+                {
+					npage = parseInt((dh - tbot + div - 1) / div,10);
+					if (tbot >= 0 || npage < 2 || p.scroll === true) {
+						page = Math.round((tbot + scrollTop) / div) + 1;
+						ttop = -1;
+					} else {
+						ttop = 1;
+					}
+				}
+				if (ttop > 0) {
+					page = parseInt(scrollTop / div,10) + 1;
+					npage = parseInt((scrollTop + dh) / div,10) + 2 - page;
+					empty = true;
+				}
+				if (npage) {
+					if (p.lastpage && page > p.lastpage) {
+						return;
+					}
+					if (grid.hDiv.loading) {
+						grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
+					} else {
+						p.page = page;
+						if (empty) {
+							grid.selectionPreserver(table[0]);
+							grid.emptyRows(grid.bDiv,false);
+						}
+						grid.populate(npage);
+					}
+				}
+			},
+			scrollGrid: function() {
+				if(p.scroll) {
+					var scrollTop = grid.bDiv.scrollTop;
+					if (scrollTop != grid.scrollTop) {
+						grid.scrollTop = scrollTop;
+						if (grid.timer) { clearTimeout(grid.timer); }
+						grid.timer = setTimeout(grid.populateVisible, 200);
+					}
+				}
+				grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
+				if(p.footerrow) {
+					grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;
+				}
+			},
+			selectionPreserver : function(ts) {
+				var p = ts.p;
+				var sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;
+				var left = ts.grid.bDiv.scrollLeft;
+				var complete = p.gridComplete;
+				p.gridComplete = function() {
+					p.selrow = null;
+					p.selarrrow = [];
+					if(p.multiselect && sra && sra.length>0) {
+						for(var i=0;i<sra.length;i++){
+							if (sra[i] != sr) {
+								$(ts).jqGrid("setSelection",sra[i],false);
+							}
+						}
+					}
+					if (sr) {
+						$(ts).jqGrid("setSelection",sr,false);
+					}
+					ts.grid.bDiv.scrollLeft = left;
+					p.gridComplete = complete;
+					if (p.gridComplete) {
+						complete();
+					}
+				};
+			}
+		};
+		this.p = p ;
+		var i, dir,ts;
+		if(this.p.colNames.length === 0) {
+			for (i=0;i<this.p.colModel.length;i++){
+				this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;
+			}
+		}
+		if( this.p.colNames.length !== this.p.colModel.length ) {
+			alert($.jgrid.errors.model);
+			return;
+		}
+		var gv = $("<div class='ui-jqgrid-view'></div>"), ii,
+		isMSIE = $.browser.msie ? true:false,
+		isSafari = $.browser.safari ? true : false;
+		ts = this;
+		ts.p.direction = $.trim(ts.p.direction.toLowerCase());
+		if($.inArray(ts.p.direction,["ltr","rtl"]) == -1) { ts.p.direction = "ltr"; }
+		dir = ts.p.direction;
+
+		$(gv).insertBefore(this);
+		$(this).appendTo(gv).removeClass("scroll");
+		var eg = $("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");
+		$(eg).insertBefore(gv).attr({"id" : "gbox_"+this.id,"dir":dir});
+		$(gv).appendTo(eg).attr("id","gview_"+this.id);
+		if (isMSIE && $.browser.version <= 6) {
+			ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
+		} else { ii="";}
+		$("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(ii).insertBefore(gv);
+		$("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(gv);
+		$(this).attr({cellSpacing:"0",cellPadding:"0",border:"0","role":"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});
+		var sortkeys = ["shiftKey","altKey","ctrlKey"],
+		intNum = function(val,defval) {
+			val = parseInt(val,10);
+			if (isNaN(val)) { return defval ? defval : 0;}
+			else {return val;}
+		},
+		formatCol = function (pos, rowInd, tv){
+			var cm = ts.p.colModel[pos],
+			ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name;
+			if(ral) { result += "text-align:"+ral+";"; }
+			if(cm.hidden===true) { result += "display:none;"; }
+			if(rowInd===0) {
+				result += "width: "+grid.headers[pos].width+"px;";
+			}
+			result += "\"" + (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :"");
+			result += " aria-describedby=\""+ts.p.id+"_"+nm+"\"";
+			return result;
+		},
+		cellVal =  function (val) {
+			return val === undefined || val === null || val === "" ? "&#160;" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : val+"");
+		},
+		formatter = function (rowId, cellval , colpos, rwdat, _act){
+			var cm = ts.p.colModel[colpos],v;
+			if(typeof cm.formatter !== 'undefined') {
+				var opts= {rowId: rowId, colModel:cm, gid:ts.p.id };
+				if($.isFunction( cm.formatter ) ) {
+					v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
+				} else if($.fmatter){
+					v = $.fn.fmatter(cm.formatter, cellval,opts, rwdat, _act);
+				} else {
+					v = cellVal(cellval);
+				}
+			} else {
+				v = cellVal(cellval);
+			}
+			return v;
+		},
+		addCell = function(rowId,cell,pos,irow, srvr) {
+			var v,prp;
+			v = formatter(rowId,cell,pos,srvr,'add');
+			prp = formatCol( pos,irow, v);
+			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
+		},
+		addMulti = function(rowid,pos,irow){
+			var	v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\" name=\"jqg_"+rowid+"\"/>",
+			prp = formatCol(pos,irow,'');
+			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_cb\" "+prp+">"+v+"</td>";
+		},
+		addRowNum = function (pos,irow,pG,rN) {
+			var v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,
+			prp = formatCol(pos,irow,'');
+			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">"+v+"</td>";
+		},
+		reader = function (datatype) {
+			var field, f=[], j=0, i;
+			for(i =0; i<ts.p.colModel.length; i++){
+				field = ts.p.colModel[i];
+				if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {
+					f[j] = (datatype=="xml") ? field.xmlmap || field.name : field.jsonmap || field.name;
+					j++;
+				}
+			}
+			return f;
+		},
+		orderedCols = function (offset) {
+			var order = ts.p.remapColumns;
+			if (!order || !order.length) {
+				order = $.map(ts.p.colModel, function(v,i) { return i; });
+			}
+			if (offset) {
+				order = $.map(order, function(v) { return v<offset?null:v-offset; });
+			}
+			return order;
+		},
+		emptyRows = function (parent, scroll) {
+			if(ts.p.deepempty) { $("tbody:first tr", parent).remove(); }
+			else { $("tbody:first", parent).empty(); }
+			if (scroll && ts.p.scroll) {
+				$(">div:first", parent).css({height:"auto"}).children("div:first").css({height:0,display:"none"});
+				parent.scrollTop = 0;
+			}
+		},
+		getAccessor = function(obj, expr) {
+			var ret,p,prm, i;
+			if( typeof expr === 'function') { return expr(obj); }
+			ret = obj[expr];
+			if(ret===undefined) {
+			    if ( typeof expr === 'string' ) {
+					prm = expr.split('.');
+				}
+				try {
+					i = prm.length; 
+					if( i ) {
+						ret = obj;
+					    while (ret && i--) {
+							p = prm.shift();
+							ret = ret[p];
+						}
+					}
+				} catch (e) {}
+			}
+			return ret;
+		},
+		addXmlData = function (xml,t, rcnt, more, adjust) {
+			var startReq = new Date();
+			ts.p.reccount = 0;
+			if($.isXMLDoc(xml)) {
+				if(ts.p.treeANode===-1 && !ts.p.scroll) {
+					emptyRows(t,false);
+					rcnt=0;
+				} else { rcnt = rcnt > 0 ? rcnt :0; }
+			} else { return; }
+			var i,fpos,ir=0,v,row,gi=0,si=0,ni=0,idn, getId,f=[],F,rd ={}, rl= ts.rows.length, xmlr,rid, rowData=[],ari=0, cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1;
+			if(!ts.p.xmlReader.repeatitems) {f = reader("xml");}
+			if( ts.p.keyIndex===false) {
+				idn = ts.p.xmlReader.id;
+			} else {
+				idn = ts.p.keyIndex;
+			}
+			if(f.length>0 && !isNaN(idn)) {
+				if (ts.p.remapColumns && ts.p.remapColumns.length) {
+					idn = $.inArray(idn, ts.p.remapColumns);
+				}
+				idn=f[idn];
+			}
+			if( (idn+"").indexOf("[") === -1 ) {
+				if (f.length) {
+					getId = function( trow, k) {return $(idn,trow).text() || k;};
+				} else {
+					getId = function( trow, k) {return $(ts.p.xmlReader.cell,trow).eq(idn).text() || k;};
+				}
+			}
+			else {
+				getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;};
+			}
+			ts.p.userData = {};
+			$(ts.p.xmlReader.page,xml).each(function() {ts.p.page = this.textContent  || this.text || 0; });
+			$(ts.p.xmlReader.total,xml).each(function() {ts.p.lastpage = this.textContent  || this.text; if(ts.p.lastpage===undefined) { ts.p.lastpage=1; } }  );
+			$(ts.p.xmlReader.records,xml).each(function() {ts.p.records = this.textContent  || this.text  || 0; }  );
+			$(ts.p.xmlReader.userdata,xml).each(function() {ts.p.userData[this.getAttribute("name")]=this.textContent || this.text;});
+			var gxml = $(ts.p.xmlReader.root+" "+ts.p.xmlReader.row,xml),gl = gxml.length, j=0;
+			if(gxml && gl){
+			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1,altr;
+			if (adjust) { rn *= adjust+1; }
+			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
+			while (j<gl) {
+				xmlr = gxml[j];
+				rid = getId(xmlr,br+j);
+				altr = rcnt === 0 ? 0 : rcnt+1;
+				cn1 = (altr+j)%2 == 1 ? cn : '';
+				rowData[ari++] = "<tr id=\""+rid+"\" role=\"row\" class =\"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
+				if(ts.p.rownumbers===true) {
+					rowData[ari++] = addRowNum(0,j,ts.p.page,ts.p.rowNum);
+					ni=1;
+				}
+				if(ts.p.multiselect===true) {
+					rowData[ari++] = addMulti(rid,ni,j);
+					gi=1;
+				}
+				if (ts.p.subGrid===true) {
+					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,j+rcnt);
+					si= 1;
+				}
+				if(ts.p.xmlReader.repeatitems){
+					if (!F) { F=orderedCols(gi+si+ni); }
+					var cells = $(ts.p.xmlReader.cell,xmlr);
+					$.each(F, function (k) {
+						var cell = cells[this];
+						if (!cell) { return false; }
+						v = cell.textContent || cell.text;
+						rd[ts.p.colModel[k+gi+si+ni].name] = v;
+						rowData[ari++] = addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr);
+					});
+				} else {
+					for(i = 0; i < f.length;i++) {
+						v = $(f[i],xmlr).text();
+						rd[ts.p.colModel[i+gi+si+ni].name] = v;
+						rowData[ari++] = addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr);
+					}
+				}
+				rowData[ari++] = "</tr>";
+				if(ts.p.gridview === false ) {
+					if( ts.p.treeGrid === true) {
+						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
+						row = $(rowData.join(''))[0]; // speed overhead
+						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
+						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[j+fpos+rcnt]).after(row); }
+					} else {
+						$("tbody:first",t).append(rowData.join(''));
+					}
+					if (ts.p.subGrid===true) {
+						try {$(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
+					}
+					if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}
+					rowData=[];ari=0;
+				}
+				rd={};
+				ir++;
+				j++;
+				if(ir==rn) {break;}
+			}
+			}
+			if(ts.p.gridview === true) {
+				$("tbody:first",t).append(rowData.join(''));
+			}
+			ts.p.totaltime = new Date() - startReq;
+			if(ir>0) { ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=gl;} }
+			rowData =null;
+			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
+			ts.p.reccount=ir;
+			ts.p.treeANode = -1;
+			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
+			if (!more) { updatepager(false,true); }
+		},
+		addJSONData = function(data,t, rcnt, more, adjust) {
+			var startReq = new Date();
+			ts.p.reccount = 0;
+			if(data) {
+				if(ts.p.treeANode === -1 && !ts.p.scroll) {
+					emptyRows(t,false);
+					rcnt=0;
+				} else { rcnt = rcnt > 0 ? rcnt :0; }
+			} else { return; }
+			var ir=0,v,i,j,row,f=[],F,cur,gi=0,si=0,ni=0,len,drows,idn,rd={}, fpos,rl = ts.rows.length,idr,rowData=[],ari=0,cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1,lp;
+			ts.p.page = getAccessor(data,ts.p.jsonReader.page) || 0;
+			lp = getAccessor(data,ts.p.jsonReader.total);
+			ts.p.lastpage= lp === undefined ? 1 : lp;
+			ts.p.records= getAccessor(data,ts.p.jsonReader.records) || 0;
+			ts.p.userData = getAccessor(data,ts.p.jsonReader.userdata) || {};
+			if(!ts.p.jsonReader.repeatitems) {
+				F = f = reader("json");
+			}
+			if( ts.p.keyIndex===false ) {
+				idn = ts.p.jsonReader.id;
+			} else {
+				idn = ts.p.keyIndex;
+			}
+			if(f.length>0 && !isNaN(idn)) {
+				if (ts.p.remapColumns && ts.p.remapColumns.length) {
+					idn = $.inArray(idn, ts.p.remapColumns);
+				}
+				idn=f[idn];
+			}
+			drows = getAccessor(data,ts.p.jsonReader.root);
+			if (drows) {
+			len = drows.length; i=0;
+			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1, altr;
+			if (adjust) { rn *= adjust+1; }
+			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
+			while (i<len) {
+				cur = drows[i];
+				idr = getAccessor(cur,idn);
+				if(idr === undefined) {
+					idr = br+i;
+					if(f.length===0){
+						if(ts.p.jsonReader.cell){
+							var ccur = cur[ts.p.jsonReader.cell];
+							idr = ccur[idn] || idr;
+							ccur=null;
+						}
+					}
+				}
+				altr = rcnt === 0 ? 0 : rcnt+1;
+				cn1 = (altr+i)%2 == 1 ? cn : '';
+				rowData[ari++] = "<tr id=\""+ idr +"\" role=\"row\" class= \"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
+				if(ts.p.rownumbers===true) {
+					rowData[ari++] = addRowNum(0,i,ts.p.page,ts.p.rowNum);
+					ni=1;
+				}
+				if(ts.p.multiselect){
+					rowData[ari++] = addMulti(idr,ni,i);
+					gi = 1;
+				}
+				if (ts.p.subGrid) {
+					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,i+rcnt);
+					si= 1;
+				}
+				if (ts.p.jsonReader.repeatitems) {
+					if(ts.p.jsonReader.cell) {cur = getAccessor(cur,ts.p.jsonReader.cell);}
+					if (!F) { F=orderedCols(gi+si+ni); }
+				}
+				for (j=0;j<F.length;j++) {
+					v = getAccessor(cur,F[j]);
+					rowData[ari++] = addCell(idr,v,j+gi+si+ni,i+rcnt,cur);
+					rd[ts.p.colModel[j+gi+si+ni].name] = v;
+				}
+				rowData[ari++] = "</tr>";
+				if(ts.p.gridview === false ) {
+					if( ts.p.treeGrid === true) {
+						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
+						row = $(rowData.join(''))[0];
+						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
+						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[i+fpos+rcnt]).after(row); }
+					} else {
+						$("tbody:first",t).append(rowData.join(''));
+					}
+					if(ts.p.subGrid === true ) {
+						try { $(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
+					}
+					if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}
+					rowData=[];ari=0;
+				}
+				rd={};
+				ir++;
+				i++;
+				if(ir==rn) { break; }
+			}
+			if(ts.p.gridview === true ) {
+				$("tbody:first",t).append(rowData.join(''));
+			}
+			ts.p.totaltime = new Date() - startReq;
+			if(ir>0) {ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=len; } }
+			}
+			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
+			ts.p.reccount=ir;
+			ts.p.treeANode = -1;
+			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
+			if (!more) { updatepager(false,true); }
+		},
+		updatepager = function(rn, dnd) {
+			var cp, last, base, from,to,tot,fmt, pgboxes = "";
+			base = parseInt(ts.p.page,10)-1;
+			if(base < 0) { base = 0; }
+			base = base*parseInt(ts.p.rowNum,10);
+			to = base + ts.p.reccount;
+			if (ts.p.scroll) {
+				var rows = $("tbody:first > tr", ts.grid.bDiv);
+				base = to - rows.length;
+				var rh = rows.outerHeight();
+				if (rh) {
+					var top = base * rh;
+					var height = parseInt(ts.p.records,10) * rh;
+				    $(">div:first",ts.grid.bDiv).css({height : height}).children("div:first").css({height:top,display:top?"":"none"});
+				}
+			}
+			pgboxes = ts.p.pager ? ts.p.pager : "";
+			pgboxes += ts.p.toppager ?  (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : "";
+			if(pgboxes) {
+				fmt = $.jgrid.formatter.integer || {};
+				if (ts.p.loadonce) {
+					cp = last = 1;
+					ts.p.lastpage = ts.page =1;
+					$(".selbox",pgboxes).attr("disabled",true);
+				} else {
+					cp = intNum(ts.p.page);
+					last = intNum(ts.p.lastpage);
+					$(".selbox",pgboxes).attr("disabled",false);
+				}
+				if(ts.p.pginput===true) {
+					$('.ui-pg-input',pgboxes).val(ts.p.page);
+					$('#sp_1',pgboxes).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);
+					
+				}
+				if (ts.p.viewrecords){
+					if(ts.p.reccount === 0) {
+						$(".ui-paging-info",pgboxes).html(ts.p.emptyrecords);
+					} else {
+						from = base+1;
+						tot=ts.p.records;
+						if($.fmatter) {
+							from = $.fmatter.util.NumberFormat(from,fmt);
+							to = $.fmatter.util.NumberFormat(to,fmt);
+							tot = $.fmatter.util.NumberFormat(tot,fmt);
+						}
+						$(".ui-paging-info",pgboxes).html($.jgrid.format(ts.p.recordtext,from,to,tot));
+					}
+				}
+				if(ts.p.pgbuttons===true) {
+					if(cp<=0) {cp = last = 0;}
+					if(cp==1 || cp === 0) {
+						$("#first, #prev",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
+						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
+					} else {
+						$("#first, #prev",ts.p.pager).removeClass('ui-state-disabled');
+						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).removeClass('ui-state-disabled'); }
+					}
+					if(cp==last || cp === 0) {
+						$("#next, #last",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
+						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
+					} else {
+						$("#next, #last",ts.p.pager).removeClass('ui-state-disabled');
+						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).removeClass('ui-state-disabled'); }
+					}
+				}
+			}
+			if(rn===true && ts.p.rownumbers === true) {
+				$("td.jqgrid-rownum",ts.rows).each(function(i){
+					$(this).html(base+1+i);
+				});
+			}
+			if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}
+			if($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
+		},
+		populate = function (npage) {
+			if(!ts.grid.hDiv.loading) {
+				var pvis = ts.p.scroll && npage === false;
+				var prm = {}, dt, dstr, pN=ts.p.prmNames;
+				if(ts.p.page <=0) { ts.p.page = 1; }
+				if(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}
+				if(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}
+				if(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}
+				var lc = ts.p.loadComplete;
+				var lcf = $.isFunction(lc);
+				if (!lcf) { lc = null; }
+				var adjust = 0;
+				npage = npage || 1;
+				if (npage > 1) {
+					if(pN.npage !== null) {
+						prm[pN.npage] = npage;
+						adjust = npage - 1;
+						npage = 1;
+					} else {
+						lc = function(req) {
+							if (lcf) {
+								ts.p.loadComplete.call(ts,req);
+							}
+							ts.grid.hDiv.loading = false;
+							ts.p.page++;
+							populate(npage-1);
+						};
+					}
+				} else if (pN.npage !== null) {
+					delete ts.p.postData[pN.npage];
+				}
+				$.extend(ts.p.postData,prm);
+				var rcnt = !ts.p.scroll ? 0 : ts.rows.length-1; 
+				if ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id); return;}
+				else if($.isFunction(ts.p.beforeRequest)) {ts.p.beforeRequest.call(ts);}
+				dt = ts.p.datatype.toLowerCase();
+				switch(dt)
+				{
+				case "json":
+				case "jsonp":
+				case "xml":
+				case "script":
+					$.ajax($.extend({
+						url:ts.p.url,
+						type:ts.p.mtype,
+						dataType: dt ,
+						data: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,
+						success:function(req,st) {
+							if(dt === "xml") { addXmlData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
+							else { addJSONData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
+							if(lc) { lc.call(ts,req); }
+							if (pvis) { ts.grid.populateVisible(); }
+							if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
+							req=null;
+							endReq();
+						},
+						error:function(xhr,st,err){
+							if($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }
+							endReq();
+							xhr=null;
+						},
+						beforeSend: function(xhr){
+							beginReq();
+							if($.isFunction(ts.p.loadBeforeSend)) { ts.p.loadBeforeSend.call(ts,xhr); }
+						}
+					},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
+				break;
+				case "xmlstring":
+					beginReq();
+					dstr = $.jgrid.stringToDoc(ts.p.datastr);
+					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
+					addXmlData(dstr,ts.grid.bDiv);
+					ts.p.datatype = "local";
+					ts.p.datastr = null;
+					endReq();
+				break;
+				case "jsonstring":
+					beginReq();
+					if(typeof ts.p.datastr == 'string') { dstr = $.jgrid.parse(ts.p.datastr); }
+					else { dstr = ts.p.datastr; }
+					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
+					addJSONData(dstr,ts.grid.bDiv);
+					ts.p.datatype = "local";
+					ts.p.datastr = null;
+					endReq();
+				break;
+				case "local":
+				case "clientside":
+					beginReq();
+					ts.p.datatype = "local";
+					if(lcf) {ts.p.loadComplete.call(ts,"");}
+					sortArrayData();
+					updatepager(true,true);
+					endReq();
+				break;
+				}
+			}
+		},
+		beginReq = function() {
+			ts.grid.hDiv.loading = true;
+			if(ts.p.hiddengrid) { return;}
+			switch(ts.p.loadui) {
+				case "disable":
+					break;
+				case "enable":
+					$("#load_"+ts.p.id).show();
+					break;
+				case "block":
+					$("#lui_"+ts.p.id).show();
+					$("#load_"+ts.p.id).show();
+					break;
+			}
+		},
+		endReq = function() {
+			ts.grid.hDiv.loading = false;
+			switch(ts.p.loadui) {
+				case "disable":
+					break;
+				case "enable":
+					$("#load_"+ts.p.id).hide();
+					break;
+				case "block":
+					$("#lui_"+ts.p.id).hide();
+					$("#load_"+ts.p.id).hide();
+					break;
+			}
+		},
+		sortArrayData = function() {
+			var stripNum = /[\$,%]/g;
+			var rows=[], col=0, st, sv, findSortKey,newDir = (ts.p.sortorder == "asc") ? 1 :-1, reverse=false, cm;
+			$.each(ts.p.colModel,function(i,v){
+				if(this.index == ts.p.sortname || this.name == ts.p.sortname){
+					if(ts.p.lastsort == i) { reverse = true; }
+					col = i;
+					st = this.sorttype;
+					return false;
+				}
+			});
+			if (st == 'float' || st== 'number' || st== 'currency') {
+				findSortKey = function($cell) {
+					var key = parseFloat($cell.replace(stripNum, ''));
+					return isNaN(key) ? 0 : key;
+				};
+			} else if (st=='int' || st=='integer') {
+				findSortKey = function($cell) {
+					return intNum($cell.replace(stripNum, ''),0);
+				};
+			} else if(st == 'date' || st == 'datetime') {
+				findSortKey = function($cell) {
+					var fd = ts.p.colModel[col].datefmt || "Y-m-d";
+					return parseDate(fd,$cell).getTime();
+				};
+			} else if($.isFunction(st)) {
+				findSortKey = st;
+			} else {
+				findSortKey = function($cell) {
+					return $.trim($cell.toUpperCase());
+				};
+			}
+			cm = ts.p.colModel[col];
+			$.each(ts.rows, function(index, row) {
+				try { sv = $.unformat($(row).children('td').eq(col),{rowId:row.id, colModel:cm},col,true);}
+				catch (_) { sv = $(row).children('td').eq(col).text(); }
+				row.sortKey = findSortKey(sv);
+				rows[index] = this;
+			});
+			if(ts.p.treeGrid) {
+				$(ts).jqGrid("SortTree",newDir);
+			} else {
+				if(reverse) {
+					rows.reverse();
+				} else {
+					rows.sort(function(a, b) {
+						if (a.sortKey < b.sortKey) {return -newDir;}
+						if (a.sortKey > b.sortKey) {return newDir;}
+						return 0;
+					});
+				}
+				if(rows[0]){
+					$("td",rows[0]).each( function( k ) {
+						$(this).css("width",grid.headers[k].width+"px");
+					});
+					ts.grid.cols = rows[0].cells;
+				}
+				var cn = "";
+				if(ts.p.altRows) { cn = ts.p.altclass; }
+				$.each(rows, function(i, row) {
+					if(cn) {
+						if(i%2 ==1) {$(row).addClass(cn);}
+						else {$(row).removeClass(cn);}
+					}
+					$('tbody',ts.grid.bDiv).append(row);
+					row.sortKey = null;
+				});
+			}
+			ts.grid.bDiv.scrollTop = 0;
+		},
+		parseDate = function(format, date) {
+			var tsp = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0},k,hl,dM;
+			date = $.trim(date);
+			if(date){
+				date = date.split(/[\\\/:_;.\t\T\s-]/);
+				format = format.split(/[\\\/:_;.\t\T\s-]/);
+				var dfmt  = $.jgrid.formatter.date.monthNames;
+				var afmt  = $.jgrid.formatter.date.AmPm;
+				var h12to24 = function(ampm, h){
+					if (ampm === 0){ if (h == 12) { h = 0;} }
+					          else { if (h != 12) { h += 12; } }
+					return h;
+				}; 
+				for(k=0,hl=format.length;k<hl;k++){
+					if(format[k] == 'M') {
+						dM = $.inArray(date[k],dfmt);
+						if(dM !== -1 && dM < 12){date[k] = dM+1;}
+					}
+					if(format[k] == 'F') {
+						dM = $.inArray(date[k],dfmt);
+						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
+					}
+					if(format[k] == 'a') {
+						dM = $.inArray(date[k],afmt);
+						if(dM !== -1 && dM < 2 && date[k] == afmt[dM]){
+							date[k] = dM;
+							tsp.h = h12to24(date[k], tsp.h);
+						}
+					}
+					if(format[k] == 'A') {
+						dM = $.inArray(date[k],afmt);
+						if(dM !== -1 && dM > 1 && date[k] == afmt[dM]){
+							date[k] = dM-2;
+							tsp.h = h12to24(date[k], tsp.h);
+						}
+					}
+					tsp[format[k].toLowerCase()] = parseInt(date[k],10);
+				}
+				tsp.m = parseInt(tsp.m,10)-1;
+				var ty = tsp.y;
+				if (ty >= 70 && ty <= 99) {tsp.y = 1900+tsp.y;}
+				else if (ty >=0 && ty <=69) {tsp.y= 2000+tsp.y;}
+			}
+			return new Date(tsp.y, tsp.m, tsp.d, tsp.h, tsp.i, tsp.s,0);
+		},
+		setPager = function (pgid, tp){
+			var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
+			pginp = "",
+			pgl="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",
+			str="", pgcnt, lft, cent, rgt, twd, tdw, i,
+			clearVals = function(onpaging){
+				var ret;
+				if ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging); }
+				ts.p.selrow = null;
+				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
+				ts.p.savedRow = [];
+				if(ret=='stop') {return false;}
+				return true;
+			};
+			//pgid= $(ts.p.pager).attr("id") || 'pager',
+			pgid = pgid.substr(1);
+			pgcnt = "pg_"+pgid;
+			lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right";
+			$("#"+pgid)
+			.append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>")
+			.attr("dir","ltr"); //explicit setting
+			if(ts.p.rowList.length >0){
+				str = "<td dir='"+dir+"'>";
+				str +="<select class='ui-pg-selbox' role='listbox'>";
+				for(i=0;i<ts.p.rowList.length;i++){
+					str +="<option role='option' value='"+ts.p.rowList[i]+"'"+((ts.p.rowNum == ts.p.rowList[i])?' selected':'')+">"+ts.p.rowList[i]+"</option>";
+				}
+				str +="</select></td>";
+			}
+			if(dir=="rtl") { pgl += str; }
+			if(ts.p.pginput===true) { pginp= "<td dir='"+dir+"'>"+$.jgrid.format(ts.p.pgtext || "","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>","<span id='sp_1'></span>")+"</td>";}
+			if(ts.p.pgbuttons===true) {
+				var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp]; if(dir=="rtl") { po.reverse(); }
+				pgl += "<td id='"+po[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";
+				pgl += "<td id='"+po[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";
+				pgl += pginp !="" ? sep+pginp+sep:"";
+				pgl += "<td id='"+po[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";
+				pgl += "<td id='"+po[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>";
+			} else if (pginp !="") { pgl += pginp; }
+			if(dir=="ltr") { pgl += str; }
+			pgl += "</tr></tbody></table>";
+			if(ts.p.viewrecords===true) {$("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' style='text-align:"+ts.p.recordpos+"' class='ui-paging-info'></div>");}
+			$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl);
+			tdw = $(".ui-jqgrid").css("font-size") || "11px";
+			$('body').append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
+			twd = $(pgl).clone().appendTo("#testpg").width();
+			$("#testpg").remove();
+			if(twd > 0) {
+				if(pginp !="") { twd += 50; } //should be param
+				$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd);
+			}
+			ts.p._nvtd = [];
+			ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);
+			ts.p._nvtd[1] = 0;
+			pgl=null;
+			$('.ui-pg-selbox',"#"+pgcnt).bind('change',function() { 
+				ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;
+				ts.p.rowNum = this.value;
+				if(tp) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }
+				else if(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }
+				if(!clearVals('records')) { return false; }
+				populate();
+				return false;
+			});
+			if(ts.p.pgbuttons===true) {
+			$(".ui-pg-button","#"+pgcnt).hover(function(e){
+				if($(this).hasClass('ui-state-disabled')) {
+					this.style.cursor='default';
+				} else {
+					$(this).addClass('ui-state-hover');
+					this.style.cursor='pointer';
+				}
+			},function(e) {
+				if($(this).hasClass('ui-state-disabled')) {
+				} else {
+					$(this).removeClass('ui-state-hover');
+					this.style.cursor= "default";
+				}
+			});
+			$("#first"+tp+", #prev"+tp+", #next"+tp+", #last"+tp,"#"+pgid).click( function(e) {
+				var cp = intNum(ts.p.page,1),
+				last = intNum(ts.p.lastpage,1), selclick = false,
+				fp=true, pp=true, np=true,lp=true;
+				if(last ===0 || last===1) {fp=false;pp=false;np=false;lp=false; }
+				else if( last>1 && cp >=1) {
+					if( cp === 1) { fp=false; pp=false; } 
+					else if( cp>1 && cp <last){ }
+					else if( cp===last){ np=false;lp=false; }
+				} else if( last>1 && cp===0 ) { np=false;lp=false; cp=last-1;}
+				if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;} 
+				if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;} 
+				if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;} 
+				if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}
+				if(selclick) {
+					if(!clearVals(this.id)) { return false; }
+					populate();
+				}
+				return false;
+			});
+			}
+			if(ts.p.pginput===true) {
+			$('input.ui-pg-input',"#"+pgcnt).keypress( function(e) {
+				var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
+				if(key == 13) {
+					ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;
+					if(!clearVals('user')) { return false; }
+					populate();
+					return false;
+				}
+				return this;
+			});
+			}
+		},
+		sortData = function (index, idxcol,reload,sor){
+			if(!ts.p.colModel[idxcol].sortable) { return; }
+			var so;
+			if(ts.p.savedRow.length > 0) {return;}
+			if(!reload) {
+				if( ts.p.lastsort == idxcol ) {
+					if( ts.p.sortorder == 'asc') {
+						ts.p.sortorder = 'desc';
+					} else if(ts.p.sortorder == 'desc') { ts.p.sortorder = 'asc';}
+				} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }
+				ts.p.page = 1;
+			}
+			if(sor) {
+				if(ts.p.lastsort == idxcol && ts.p.sortorder == sor && !reload) { return; }
+				else { ts.p.sortorder = sor; }
+			}
+			var thd= $("thead:first",ts.grid.hDiv).get(0);
+			$("tr th:eq("+ts.p.lastsort+") span.ui-grid-ico-sort",thd).addClass('ui-state-disabled');
+			$("tr th:eq("+ts.p.lastsort+")",thd).attr("aria-selected","false");
+			$("tr th:eq("+idxcol+") span.ui-icon-"+ts.p.sortorder,thd).removeClass('ui-state-disabled');
+			$("tr th:eq("+idxcol+")",thd).attr("aria-selected","true");
+			if(!ts.p.viewsortcols[0]) {
+				if(ts.p.lastsort != idxcol) {
+					$("tr th:eq("+ts.p.lastsort+") span.s-ico",thd).hide();
+					$("tr th:eq("+idxcol+") span.s-ico",thd).show();
+				}
+			}
+			index = index.substring(5);
+			ts.p.sortname = ts.p.colModel[idxcol].index || index;
+			so = ts.p.sortorder;
+			if($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts,index,idxcol,so)=='stop') {ts.p.lastsort = idxcol; return;}}
+			if(ts.p.datatype == "local") {
+				if(ts.p.deselectAfterSort) {$(ts).jqGrid("resetSelection");}
+			} else {
+				ts.p.selrow = null;
+				if(ts.p.multiselect){$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
+				ts.p.selarrrow =[];
+				ts.p.savedRow =[];
+				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
+			}
+			if(ts.p.subGrid && ts.p.datatype=='local') {
+				$("td.sgexpanded","#"+ts.p.id).each(function(){
+					$(this).trigger("click");
+				});
+			}
+			populate();
+			ts.p.lastsort = idxcol;
+			if(ts.p.sortname != index && idxcol) {ts.p.lastsort = idxcol;}
+		},
+		setColWidth = function () {
+			var initwidth = 0, brd=ts.p.cellLayout, vc=0, lvc, scw=ts.p.scrollOffset,cw,hs=false,aw,tw=0,gw=0,
+			cl = 0, cr;
+			if (isSafari) { brd=0; }
+			$.each(ts.p.colModel, function(i) {
+				if(typeof this.hidden === 'undefined') {this.hidden=false;}
+				if(this.hidden===false){
+					initwidth += intNum(this.width,0);
+					if(this.fixed) {
+						tw += this.width;
+						gw += this.width+brd;
+					} else {
+						vc++;
+					}
+					cl++;
+				}
+			});
+			if(isNaN(ts.p.width)) {ts.p.width = grid.width = initwidth;}
+			else { grid.width = ts.p.width;}
+			ts.p.tblwidth = initwidth;
+			if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}
+			if(ts.p.shrinkToFit===true && vc > 0) {
+				aw = grid.width-brd*vc-gw;
+				if(isNaN(ts.p.height)) {
+				} else {
+					aw -= scw;
+					hs = true;
+				}
+				initwidth =0;
+				$.each(ts.p.colModel, function(i) {
+					if(this.hidden === false && !this.fixed){
+						cw = Math.round(aw*this.width/(ts.p.tblwidth-tw));
+						this.width =cw;
+						initwidth += cw;
+						lvc = i;
+					}
+				});
+				cr =0;
+				if (hs) {
+					if(grid.width-gw-(initwidth+brd*vc) !== scw){
+						cr = grid.width-gw-(initwidth+brd*vc)-scw;
+					}
+				} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {
+					cr = grid.width-gw-(initwidth+brd*vc);
+				}
+				ts.p.colModel[lvc].width += cr;
+				ts.p.tblwidth = initwidth+cr+tw+cl*brd;
+				if(ts.p.tblwidth > ts.p.width) {
+					ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));
+					ts.p.tblwidth = ts.p.width;
+				}
+			}
+		},
+		nextVisible= function(iCol) {
+			var ret = iCol, j=iCol, i;
+			for (i = iCol+1;i<ts.p.colModel.length;i++){
+				if(ts.p.colModel[i].hidden !== true ) {
+					j=i; break;
+				}
+			}
+			return j-ret;
+		},
+		getOffset = function (iCol) {
+			var i, ret = {}, brd1 = isSafari ? 0 : ts.p.cellLayout;
+			ret[0] =  ret[1] = ret[2] = 0;
+			for(i=0;i<=iCol;i++){
+				if(ts.p.colModel[i].hidden === false ) {
+					ret[0] += ts.p.colModel[i].width+brd1;
+				}
+			}
+			if(ts.p.direction=="rtl") { ret[0] = ts.p.width - ret[0]; }
+			ret[0] = ret[0] - ts.grid.bDiv.scrollLeft;
+			if($(ts.grid.cDiv).is(":visible")) {ret[1] += $(ts.grid.cDiv).height() +parseInt($(ts.grid.cDiv).css("padding-top"),10)+parseInt($(ts.grid.cDiv).css("padding-bottom"),10);}
+			if(ts.p.toolbar[0]===true && (ts.p.toolbar[1]=='top' || ts.p.toolbar[1]=='both')) {ret[1] += $(ts.grid.uDiv).height()+parseInt($(ts.grid.uDiv).css("border-top-width"),10)+parseInt($(ts.grid.uDiv).css("border-bottom-width"),10);}
+			if(ts.p.toppager) {ret[1] += $(ts.grid.topDiv).height()+parseInt($(ts.grid.topDiv).css("border-bottom-width"),10);}
+			ret[2] += $(ts.grid.bDiv).height() + $(ts.grid.hDiv).height();
+			return ret;
+		};
+		this.p.id = this.id;
+		if ($.inArray(ts.p.multikey,sortkeys) == -1 ) {ts.p.multikey = false;}
+		ts.p.keyIndex=false;
+		for (i=0; i<ts.p.colModel.length;i++) {
+			if (ts.p.colModel[i].key===true) {
+				ts.p.keyIndex = i;
+				break;
+			}
+		}
+		ts.p.sortorder = ts.p.sortorder.toLowerCase();
+		if(this.p.treeGrid === true) {
+			try { $(this).jqGrid("setTreeGrid");} catch (_) {}
+		}
+		if(this.p.subGrid) {
+			try { $(ts).jqGrid("setSubGrid");} catch (_){}
+		}
+		if(this.p.multiselect) {
+			this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");
+			this.p.colModel.unshift({name:'cb',width:isSafari ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
+		}
+		if(this.p.rownumbers) {
+			this.p.colNames.unshift("");
+			this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
+		}
+		ts.p.xmlReader = $.extend(true,{
+			root: "rows",
+			row: "row",
+			page: "rows>page",
+			total: "rows>total",
+			records : "rows>records",
+			repeatitems: true,
+			cell: "cell",
+			id: "[id]",
+			userdata: "userdata",
+			subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"}
+		}, ts.p.xmlReader);
+		ts.p.jsonReader = $.extend(true,{
+			root: "rows",
+			page: "page",
+			total: "total",
+			records: "records",
+			repeatitems: true,
+			cell: "cell",
+			id: "id",
+			userdata: "userdata",
+			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
+		},ts.p.jsonReader);
+		if(ts.p.scroll){
+			ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];
+		}
+		var thead = "<thead><tr class='ui-jqgrid-labels' role='rowheader'>",
+		tdc, idn, w, res, sort,
+		td, ptr, tbody, imgs,iac="",idc="";
+		if(ts.p.shrinkToFit===true && ts.p.forceFit===true) {
+			for (i=ts.p.colModel.length-1;i>=0;i--){
+				if(!ts.p.colModel[i].hidden) {
+					ts.p.colModel[i].resizable=false;
+					break;
+				}
+			}
+		}
+		if(ts.p.viewsortcols[1] == 'horizontal') {iac=" ui-i-asc";idc=" ui-i-desc";}
+		tdc = isMSIE ?  "class='ui-th-div-ie'" :"";
+		imgs = "<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+dir+"'></span>";
+		imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+dir+"'></span></span>";
+		for(i=0;i<this.p.colNames.length;i++){
+			var tooltip = ts.p.headertitles ? (" title=\""+$.jgrid.stripHtml(ts.p.colNames[i])+"\"") :"";
+			thead += "<th id='"+ts.p.id+"_"+ts.p.colModel[i].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+dir+"'"+ tooltip+">";
+			idn = ts.p.colModel[i].index || ts.p.colModel[i].name;
+			thead += "<div id='jqgh_"+ts.p.colModel[i].name+"' "+tdc+">"+ts.p.colNames[i];
+			if(!ts.p.colModel[i].width)  { ts.p.colModel[i].width = 150; }
+			else { ts.p.colModel[i].width = parseInt(ts.p.colModel[i].width,10); }
+			if(typeof(ts.p.colModel[i].title) !== "boolean") { ts.p.colModel[i].title = true; }
+			if (idn == ts.p.sortname) {
+				ts.p.lastsort = i;
+			} 
+			thead += imgs+"</div></th>";
+		}
+		thead += "</tr></thead>";
+		$(this).append(thead);
+		$("thead tr:first th",this).hover(function(){$(this).addClass('ui-state-hover');},function(){$(this).removeClass('ui-state-hover');});
+		if(this.p.multiselect) {
+			var emp=[], chk;
+			$('#cb_'+$.jgrid.jqID(ts.p.id),this).bind('click',function(){
+				if (this.checked) {
+					$("[id^=jqg_]",ts.rows).attr("checked",true);
+					$(ts.rows).each(function(i) {
+						if(!$(this).hasClass("subgrid")){
+						$(this).addClass("ui-state-highlight").attr("aria-selected","true");
+						ts.p.selarrrow[i]= ts.p.selrow = this.id; 
+						}
+					});
+					chk=true;
+					emp=[];
+				}
+				else {
+					$("[id^=jqg_]",ts.rows).attr("checked",false);
+					$(ts.rows).each(function(i) {
+						if(!$(this).hasClass("subgrid")){
+							$(this).removeClass("ui-state-highlight").attr("aria-selected","false");
+							emp[i] = this.id;
+						}
+					});
+					ts.p.selarrrow = []; ts.p.selrow = null;
+					chk=false;
+				}
+				if($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}
+			});
+		}
+		
+		if(ts.p.autowidth===true) {
+			var pw = $(eg).innerWidth();
+			ts.p.width = pw > 0?  pw: 'nw';
+		}
+		setColWidth();
+		$(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'>&#160;</div>");
+		$(gv).css("width",grid.width+"px");
+		thead = $("thead:first",ts).get(0);
+		var	tfoot = "<table role='grid' style='width:"+ts.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+dir+"'>";
+		var thr = $("tr:first",thead);
+		ts.p.disableClick=false;
+		$("th",thr).each(function ( j ) {
+			w = ts.p.colModel[j].width;
+			if(typeof ts.p.colModel[j].resizable === 'undefined') {ts.p.colModel[j].resizable = true;}
+			if(ts.p.colModel[j].resizable){
+				res = document.createElement("span");
+				$(res).html("&#160;").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir);
+				if(!$.browser.opera) { $(res).css("cursor","col-resize"); }
+				$(this).addClass(ts.p.resizeclass);
+			} else {
+				res = "";
+			}
+			$(this).css("width",w+"px").prepend(res);
+			if( ts.p.colModel[j].hidden ) { $(this).css("display","none"); }
+			grid.headers[j] = { width: w, el: this };
+			sort = ts.p.colModel[j].sortable;
+			if( typeof sort !== 'boolean') {ts.p.colModel[j].sortable =  true; sort=true;}
+			var nm = ts.p.colModel[j].name;
+			if( !(nm == 'cb' || nm=='subgrid' || nm=='rn') ) {
+				if(ts.p.viewsortcols[2]){
+					$("div",this).addClass('ui-jqgrid-sortable');
+				}
+			}
+			if(sort) {
+				if(ts.p.viewsortcols[0]) {$("div span.s-ico",this).show(); if(j==ts.p.lastsort){ $("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}}
+				else if( j == ts.p.lastsort) {$("div span.s-ico",this).show();$("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}
+			}
+			tfoot += "<td role='gridcell' "+formatCol(j,0,'')+">&#160;</td>";
+		}).mousedown(function(e) {
+			if ($(e.target).closest("th>span.ui-jqgrid-resize").length != 1) { return; }
+			var ci = $.jgrid.getCellIndex(this);
+			if(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}
+			grid.dragStart(ci, e, getOffset(ci));
+			return false;
+		}).click(function(e) {
+			if (ts.p.disableClick) {
+				ts.p.disableClick = false;
+				return false;
+			}
+			var s = "th>div.ui-jqgrid-sortable",r,d;
+			if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; }
+			var t = $(e.target).closest(s);
+			if (t.length != 1) { return; }
+			var ci = $.jgrid.getCellIndex(this);
+			if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); }
+			sortData($('div',this)[0].id,ci,r,d);
+			return false;
+		});
+		if (ts.p.sortable && $.fn.sortable) {
+			try {
+				$(ts).jqGrid("sortableColumns", thr);
+			} catch (e){}
+		}
+		tfoot += "</tr></tbody></table>";
+		
+		tbody = document.createElement("tbody");
+		this.appendChild(tbody);
+		$(this).addClass('ui-jqgrid-btable');
+		var hTable = $("<table class='ui-jqgrid-htable' style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(thead),
+		hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,
+		hb = $("<div class='ui-jqgrid-hbox" + (dir=="rtl" ? "-rtl" : "" )+"'></div>");
+		grid.hDiv = document.createElement("div");
+		$(grid.hDiv)
+			.css({ width: grid.width+"px"})
+			.addClass("ui-state-default ui-jqgrid-hdiv")
+			.append(hb);
+		$(hb).append(hTable);
+		if(hg) { $(grid.hDiv).hide(); }
+		if(ts.p.pager){
+			if(typeof ts.p.pager == "string") {if(ts.p.pager.substr(0,1) !="#") { ts.p.pager = "#"+ts.p.pager;} }
+			else { ts.p.pager = "#"+ $(ts.p.pager).attr("id");}
+			$(ts.p.pager).css({width: grid.width+"px"}).appendTo(eg).addClass('ui-state-default ui-jqgrid-pager ui-corner-bottom');
+			if(hg) {$(ts.p.pager).hide();}
+			setPager(ts.p.pager,'');
+		}
+		if( ts.p.cellEdit === false && ts.p.hoverrows === true) {
+		$(ts).bind('mouseover',function(e) {
+			ptr = $(e.target).closest("tr.jqgrow");
+			if($(ptr).attr("class") !== "subgrid") {
+				$(ptr).addClass("ui-state-hover");
+			}
+			return false;
+		}).bind('mouseout',function(e) {
+			ptr = $(e.target).closest("tr.jqgrow");
+			$(ptr).removeClass("ui-state-hover");
+			return false;
+		});
+		}
+		var ri,ci;
+		$(ts).before(grid.hDiv).click(function(e) {
+			td = e.target;
+			var scb = $(td).hasClass("cbox");
+			ptr = $(td,ts.rows).closest("tr.jqgrow");
+			if($(ptr).length === 0 ) {
+				return this;
+			}
+			var cSel = true;
+			if($.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts,ptr[0].id, e); }
+			if (td.tagName == 'A' || ((td.tagName == 'INPUT' || td.tagName == 'TEXTAREA' || td.tagName == 'OPTION' || td.tagName == 'SELECT' ) && !scb) ) { return this; }
+			if(cSel === true) {
+				if(ts.p.cellEdit === true) {
+					if(ts.p.multiselect && scb){
+						$(ts).jqGrid("setSelection",ptr[0].id,true);
+					} else {
+						ri = ptr[0].rowIndex;
+						ci = $.jgrid.getCellIndex(td);
+						try {$(ts).jqGrid("editCell",ri,ci,true);} catch (_) {}
+					}
+				} else if ( !ts.p.multikey ) {
+					if(ts.p.multiselect && ts.p.multiboxonly) {
+						if(scb){$(ts).jqGrid("setSelection",ptr[0].id,true);}
+						else {
+							$(ts.p.selarrrow).each(function(i,n){
+								var ind = ts.rows.namedItem(n);
+								$(ind).removeClass("ui-state-highlight");
+								$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
+							});
+							ts.p.selarrrow = [];
+							$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);
+							$(ts).jqGrid("setSelection",ptr[0].id,true);
+						}
+					} else {
+						$(ts).jqGrid("setSelection",ptr[0].id,true);
+					}
+				} else {
+					if(e[ts.p.multikey]) {
+						$(ts).jqGrid("setSelection",ptr[0].id,true);
+					} else if(ts.p.multiselect && scb) {
+						scb = $("[id^=jqg_]",ptr).attr("checked");
+						$("[id^=jqg_]",ptr).attr("checked",!scb);
+					}
+				}
+				if($.isFunction(ts.p.onCellSelect)) {
+					ri = ptr[0].id;
+					ci = $.jgrid.getCellIndex(td);
+					ts.p.onCellSelect.call(ts,ri,ci,$(td).html(),e);
+				}
+				e.stopPropagation();
+			} else {
+				return this;
+			}
+		}).bind('reloadGrid', function(e,opts) {
+			if(ts.p.treeGrid ===true) {	ts.p.datatype = ts.p.treedatatype;}
+			if (opts && opts.current) {
+				ts.grid.selectionPreserver(ts);
+			}
+			if(ts.p.datatype=="local"){ $(ts).jqGrid("resetSelection");}
+			else if(!ts.p.treeGrid) {
+				ts.p.selrow=null;
+				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
+				ts.p.savedRow = [];
+				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
+			}
+			if (opts && opts.page) {
+				var page = opts.page;
+				if (page > ts.p.lastpage) { page = ts.p.lastpage; }
+				if (page < 1) { page = 1; }
+				ts.p.page = page;
+				if (ts.grid.prevRowHeight) {
+					ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;
+				} else {
+					ts.grid.bDiv.scrollTop = 0;
+				}
+			}
+			if (ts.grid.prevRowHeight && ts.p.scroll) {
+                delete ts.p.lastpage;
+				ts.grid.populateVisible();
+			} else {
+				ts.grid.populate();
+			}
+			return false;
+		});
+		if( $.isFunction(this.p.ondblClickRow) ) {
+			$(this).dblclick(function(e) {
+				td = e.target;
+				ptr = $(td,ts.rows).closest("tr.jqgrow");
+				if($(ptr).length === 0 ){return false;}
+				ri = ptr[0].rowIndex;
+				ci = $.jgrid.getCellIndex(td);
+				ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
+				return false;
+			});
+		}
+		if ($.isFunction(this.p.onRightClickRow)) {
+			$(this).bind('contextmenu', function(e) {
+				td = e.target;
+				ptr = $(td,ts.rows).closest("tr.jqgrow");
+				if($(ptr).length === 0 ){return false;}
+				if(!ts.p.multiselect) {	$(ts).jqGrid("setSelection",ptr[0].id,true);	}
+				ri = ptr[0].rowIndex;
+				ci = $.jgrid.getCellIndex(td);
+				ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
+				return false;
+			});
+		}
+		grid.bDiv = document.createElement("div");
+		$(grid.bDiv)
+			.append($('<div style="position:relative;'+(isMSIE && $.browser.version < 8 ? "height:0.01%;" : "")+'"></div>').append('<div></div>').append(this))
+			.addClass("ui-jqgrid-bdiv")
+			.css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width)+"px"})
+			.scroll(grid.scrollGrid);
+		$("table:first",grid.bDiv).css({width:ts.p.tblwidth+"px"});
+		if( isMSIE ) {
+			if( $("tbody",this).size() == 2 ) { $("tbody:first",this).remove();}
+			if( ts.p.multikey) {$(grid.bDiv).bind("selectstart",function(){return false;});}
+		} else {
+			if( ts.p.multikey) {$(grid.bDiv).bind("mousedown",function(){return false;});}
+		}
+		if(hg) {$(grid.bDiv).hide();}
+		grid.cDiv = document.createElement("div");
+		var arf = ts.p.hidegrid===true ? $("<a role='link' href='javascript:void(0)'/>").addClass('ui-jqgrid-titlebar-close HeaderButton').hover(
+			function(){ arf.addClass('ui-state-hover');},
+			function() {arf.removeClass('ui-state-hover');})
+		.append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css((dir=="rtl"?"left":"right"),"0px") : "";
+		$(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title"+(dir=="rtl" ? "-rtl" :"" )+"'>"+ts.p.caption+"</span>")
+		.addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");
+		$(grid.cDiv).insertBefore(grid.hDiv);
+		if( ts.p.toolbar[0] ) {
+			grid.uDiv = document.createElement("div");
+			if(ts.p.toolbar[1] == "top") {$(grid.uDiv).insertBefore(grid.hDiv);}
+			else if (ts.p.toolbar[1]=="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);}
+			if(ts.p.toolbar[1]=="both") {
+				grid.ubDiv = document.createElement("div");
+				$(grid.uDiv).insertBefore(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
+				$(grid.ubDiv).insertAfter(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);
+				if(hg)  {$(grid.ubDiv).hide();}
+			} else {
+				$(grid.uDiv).width(grid.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
+			}
+			if(hg) {$(grid.uDiv).hide();}
+		}
+		if(ts.p.toppager) {
+			ts.p.toppager = ts.p.id+"_toppager";
+			grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0];
+			ts.p.toppager = "#"+ts.p.toppager;
+			$(grid.topDiv).insertBefore(grid.hDiv).addClass('ui-state-default ui-jqgrid-toppager').width(grid.width);
+			setPager(ts.p.toppager,'_t');
+		}
+		if(ts.p.footerrow) {
+			grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0];
+			hb = $("<div class='ui-jqgrid-hbox"+(dir=="rtl"?"-rtl":"")+"'></div>");
+			$(grid.sDiv).append(hb).insertAfter(grid.hDiv).width(grid.width);
+			$(hb).append(tfoot);
+			grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells;
+			if(ts.p.rownumbers) { grid.footers[0].className = 'ui-state-default jqgrid-rownum'; }
+			if(hg) {$(grid.sDiv).hide();}
+		}
+		if(ts.p.caption) {
+			var tdt = ts.p.datatype;
+			if(ts.p.hidegrid===true) {
+				$(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
+					var onHdCl = $.isFunction(ts.p.onHeaderClick);
+					if(ts.p.gridstate == 'visible') {
+						$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+ts.p.id).slideUp("fast");
+						if(ts.p.pager) {$(ts.p.pager).slideUp("fast");}
+						if(ts.p.toppager) {$(ts.p.toppager).slideUp("fast");}
+						if(ts.p.toolbar[0]===true) {
+							if( ts.p.toolbar[1]=='both') {
+								$(grid.ubDiv).slideUp("fast");
+							}
+							$(grid.uDiv).slideUp("fast");
+						}
+						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideUp("fast"); }
+						$("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
+						ts.p.gridstate = 'hidden';
+						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).hide(); }
+						if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
+					} else if(ts.p.gridstate == 'hidden'){
+						$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+ts.p.id).slideDown("fast");
+						if(ts.p.pager) {$(ts.p.pager).slideDown("fast");}
+						if(ts.p.toppager) {$(ts.p.toppager).slideDown("fast");}
+						if(ts.p.toolbar[0]===true) {
+							if( ts.p.toolbar[1]=='both') {
+								$(grid.ubDiv).slideDown("fast");
+							}
+							$(grid.uDiv).slideDown("fast");
+						}
+						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideDown("fast"); }
+						$("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
+						if(hg) {ts.p.datatype = tdt;populate();hg=false;}
+						ts.p.gridstate = 'visible';
+						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).show(); }
+						if(onHdCl) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}
+					}
+					return false;
+				});
+				if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");}
+			}
+		} else {$(grid.cDiv).hide();}
+		$(grid.hDiv).after(grid.bDiv)
+		.mousemove(function (e) {
+			if(grid.resizing){grid.dragMove(e);return false;}
+		});
+		$(".ui-jqgrid-labels",grid.hDiv).bind("selectstart", function () { return false; });
+		$(document).mouseup(function (e) {
+			if(grid.resizing) {	grid.dragEnd(); return false;}
+			return true;
+		});
+		this.updateColumns = function () {
+			var r = this.rows[0], self =this;
+			if(r) {
+				$("td",r).each( function( k ) {
+					$(this).css("width",self.grid.headers[k].width+"px");
+				});
+				this.grid.cols = r.cells;
+			}
+			return this;
+		};
+		ts.formatCol = formatCol;
+		ts.sortData = sortData;
+		ts.updatepager = updatepager;
+		ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};
+		$.extend(grid,{populate : populate, emptyRows: emptyRows});
+		this.grid = grid;
+		ts.addXmlData = function(d) {addXmlData(d,ts.grid.bDiv);};
+		ts.addJSONData = function(d) {addJSONData(d,ts.grid.bDiv);};
+		populate();ts.p.hiddengrid=false;
+		$(window).unload(function () {
+			ts = null;
+		});
+	});
+};
+$.jgrid.extend({
+	getGridParam : function(pName) {
+		var $t = this[0];
+		if (!$t.grid) {return;}
+		if (!pName) { return $t.p; }
+		else {return typeof($t.p[pName]) != "undefined" ? $t.p[pName] : null;}
+	},
+	setGridParam : function (newParams){
+		return this.each(function(){
+			if (this.grid && typeof(newParams) === 'object') {$.extend(true,this.p,newParams);}
+		});
+	},
+	getDataIDs : function () {
+		var ids=[], i=0, len;
+		this.each(function(){
+			len = this.rows.length;
+			if(len && len>0){
+				while(i<len) {
+					ids[i] = this.rows[i].id;
+					i++;
+				}
+			}
+		});
+		return ids;
+	},
+	setSelection : function(selection,onsr) {
+		return this.each(function(){
+			var $t = this, stat,pt, ner, ia, tpsr;
+			if(selection === undefined) { return; }
+			onsr = onsr === false ? false : true;
+			pt=$t.rows.namedItem(selection+"");
+			if(!pt) { return; }
+			function scrGrid(iR){
+				var ch = $($t.grid.bDiv)[0].clientHeight,
+				st = $($t.grid.bDiv)[0].scrollTop,
+				rpos = $t.rows[iR].offsetTop,
+				rh = $t.rows[iR].clientHeight;
+				if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }
+				else if(rpos < ch+st) {
+					if(rpos < st) {
+						$($t.grid.bDiv)[0].scrollTop = rpos;
+					}
+				}
+			}
+			if($t.p.scrollrows===true) {
+				ner = $t.rows.namedItem(selection).rowIndex;
+				if(ner >=0 ){
+					scrGrid(ner);
+				}
+			}
+			if(!$t.p.multiselect) {
+				if(pt.className !== "ui-subgrid") {
+				if( $t.p.selrow ) { $($t.rows.namedItem($t.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected","false"); }
+				$t.p.selrow = pt.id;
+				$(pt).addClass("ui-state-highlight").attr("aria-selected","true");
+				if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, true); }
+				}
+			} else {
+				$t.p.selrow = pt.id;
+				ia = $.inArray($t.p.selrow,$t.p.selarrrow);
+				if (  ia === -1 ){ 
+					if(pt.className !== "ui-subgrid") { $(pt).addClass("ui-state-highlight").attr("aria-selected","true");}
+					stat = true;
+					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
+					$t.p.selarrrow.push($t.p.selrow);
+					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
+				} else {
+					if(pt.className !== "ui-subgrid") { $(pt).removeClass("ui-state-highlight").attr("aria-selected","false");}
+					stat = false;
+					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
+					$t.p.selarrrow.splice(ia,1);
+					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
+					tpsr = $t.p.selarrrow[0];
+					$t.p.selrow = (tpsr === undefined) ? null : tpsr;
+				}
+			}
+		});
+	},
+	resetSelection : function(){
+		return this.each(function(){
+			var t = this, ind;
+			if(!t.p.multiselect) {
+				if(t.p.selrow) {
+					$("tr#"+$.jgrid.jqID(t.p.selrow),t.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");
+					t.p.selrow = null;
+				}
+			} else {
+				$(t.p.selarrrow).each(function(i,n){
+					ind = t.rows.namedItem(n);
+					$(ind).removeClass("ui-state-highlight").attr("aria-selected","false");
+					$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
+				});
+				$("#cb_"+$.jgrid.jqID(t.p.id),t.grid.hDiv).attr("checked",false);
+				t.p.selarrrow = [];
+			}
+			t.p.savedRow = [];
+		});
+	},
+	getRowData : function( rowid ) {
+		var res = {}, resall, getall=false, len, j=0;
+		this.each(function(){
+			var $t = this,nm,ind;
+			if(typeof(rowid) == 'undefined') {
+				getall = true;
+				resall = [];
+				len = $t.rows.length;
+			} else {
+				ind = $t.rows.namedItem(rowid);
+				if(!ind) { return res; }
+				len = 1;
+			}
+			while(j<len){
+				if(getall) { ind = $t.rows[j]; }
+				$('td',ind).each( function(i) {
+					nm = $t.p.colModel[i].name; 
+					if ( nm !== 'cb' && nm !== 'subgrid') {
+						if($t.p.treeGrid===true && nm == $t.p.ExpandColumn) {
+							res[nm] = $.jgrid.htmlDecode($("span:first",this).html());
+						} else {
+							try {
+								res[nm] = $.unformat(this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
+							} catch (e){
+								res[nm] = $.jgrid.htmlDecode($(this).html());
+							}
+						}
+					}
+				});
+				j++;
+				if(getall) { resall.push(res); res={}; }
+			}
+		});
+		return resall ? resall: res;
+	},
+	delRowData : function(rowid) {
+		var success = false, rowInd, ia, ri;
+		this.each(function() {
+			var $t = this;
+			rowInd = $t.rows.namedItem(rowid);
+			if(!rowInd) {return false;}
+			else {
+				ri = rowInd.rowIndex;
+				$(rowInd).remove();
+				$t.p.records--;
+				$t.p.reccount--;
+				$t.updatepager(true,false);
+				success=true;
+				if($t.p.multiselect) {
+					ia = $.inArray(rowid,$t.p.selarrrow);
+					if(ia != -1) { $t.p.selarrrow.splice(ia,1);}
+				}  
+				if(rowid == $t.p.selrow) {$t.p.selrow=null;}
+			}
+			if( ri === 0 && success ) {
+				$t.updateColumns();
+			}
+			if( $t.p.altRows === true && success ) {
+				var cn = $t.p.altclass;
+				$($t.rows).each(function(i){
+					if(i % 2 ==1) { $(this).addClass(cn); }
+					else { $(this).removeClass(cn); }
+				});
+			}
+		});
+		return success;
+	},
+	setRowData : function(rowid, data, cssp) {
+		var nm, success=false, title;
+		this.each(function(){
+			var t = this, vl, ind, cp = typeof cssp;
+			if(!t.grid) {return false;}
+			ind = t.rows.namedItem(rowid);
+			if(!ind) { return false; }
+			if( data ) {
+				$(this.p.colModel).each(function(i){
+					nm = this.name;
+					if( data[nm] !== undefined) {
+						vl = t.formatter( rowid, data[nm], i, data, 'edit');
+						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
+						if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
+							$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
+						} else {
+							$("td:eq("+i+")",ind).html(vl).attr(title); 
+						}
+						success = true;
+					}
+				});
+			}
+			if(cp === 'string') {$(ind).addClass(cssp);} else if(cp === 'object') {$(ind).css(cssp);}
+		});
+		return success;
+	},
+	addRowData : function(rowid,rdata,pos,src) {
+		if(!pos) {pos = "last";}
+		var success = false, nm, row, gi, si, ni,sind, i, v, prp="", aradd, cnm, cn, data;
+		if(rdata) {
+			if($.isArray(rdata)) {
+				aradd=true;
+				pos = "last";
+				cnm = rowid;
+			} else {
+				rdata = [rdata];
+				aradd = false;
+			}
+			this.each(function() {
+				var t = this, datalen = rdata.length;
+				ni = t.p.rownumbers===true ? 1 :0;
+				gi = t.p.multiselect ===true ? 1 :0;
+				si = t.p.subGrid===true ? 1 :0;
+				if(!aradd) {
+					if(typeof(rowid) != 'undefined') { rowid = rowid+"";}
+					else {
+						rowid = (t.p.records+1)+"";
+						if(t.p.keyIndex !== false) {
+							cnm = t.p.colModel[t.p.keyIndex+gi+si+ni].name;
+							if(typeof rdata[0][cnm] != "undefined") { rowid = rdata[0][cnm]; }
+						}
+					}
+				}
+				cn = t.p.altclass;
+				var k = 0, cna ="",
+				air = $.isFunction(t.p.afterInsertRow) ? true : false;
+				while(k < datalen) {
+					data = rdata[k];
+					row="";
+					if(aradd) {
+						try {rowid = data[cnm];}
+						catch (e) {rowid = t.p.records+1;}
+						cna = t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? cn : "" : "";
+					}
+					if(ni){
+						prp = t.formatCol(ni,1,'');
+						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">0</td>";
+					}
+					if(gi) {
+						v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\"/>";
+						prp = t.formatCol(ni,1,'');
+						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_cb\" "+prp+">"+v+"</td>";
+					}
+					if(si) {
+						row += $(t).jqGrid("addSubGridCell",gi+ni,1);
+					}
+					for(i = gi+si+ni; i < this.p.colModel.length;i++){
+						nm = this.p.colModel[i].name;
+						v = t.formatter( rowid, data[nm], i, data, 'add');
+						prp = t.formatCol(i,1,v);
+						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_"+nm+"\" "+prp+">"+v+"</td>";
+					}
+					row = "<tr id=\""+rowid+"\" role=\"row\" class=\"ui-widget-content jqgrow ui-row-"+t.p.direction+" "+cna+"\">" + row+"</tr>";
+					if(t.p.subGrid===true) {
+						row = $(row)[0]; 
+						$(t).jqGrid("addSubGrid",row,gi+ni);
+					}
+					if(t.rows.length === 0){
+						$("table:first",t.grid.bDiv).append(row);
+					} else {
+					switch (pos) {
+						case 'last':
+							$(t.rows[t.rows.length-1]).after(row);
+							break;
+						case 'first':
+							$(t.rows[0]).before(row);
+							break;
+						case 'after':
+							sind = t.rows.namedItem(src);
+							if (sind) {
+								if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }
+								else { $(sind).after(row); }
+							}
+							break;
+						case 'before':
+							sind = t.rows.namedItem(src);
+							if(sind) {$(sind).before(row);sind=sind.rowIndex;}
+							break;
+					}
+					}
+					t.p.records++;
+					t.p.reccount++;
+					if(!t.grid.cols || !t.grid.cols.length) { t.grid.cols = t.rows[0].cells; }
+					if(pos==='first' || (pos==='before' && sind <= 1) ||  t.rows.length === 1 ){
+						t.updateColumns();
+					}
+					if(air) { t.p.afterInsertRow.call(t,rowid,data,data); }
+					k++;
+				}
+				if( t.p.altRows === true && !aradd) {
+					if (pos == "last") {
+						if ((t.rows.length-1)%2 == 1)  {$(t.rows[t.rows.length-1]).addClass(cn);}
+					} else {
+						$(t.rows).each(function(i){
+							if(i % 2 ==1) { $(this).addClass(cn); }
+							else { $(this).removeClass(cn); }
+						});
+					}
+				}
+				t.updatepager(true,true);
+				success = true;
+			});
+		}
+		return success;
+	},
+	footerData : function(action,data, format) {
+		var nm, success=false, res={}, title;
+		function isEmpty(obj) {
+			for(var i in obj) {
+				if (obj.hasOwnProperty(i)) { return false; }
+			}
+			return true;
+		}
+		if(typeof(action) == "undefined") { action = "get"; }
+		if(typeof(format) != "boolean") { format  = true; }
+		action = action.toLowerCase();
+		this.each(function(){
+			var t = this, vl;
+			if(!t.grid || !t.p.footerrow) {return false;}
+			if(action == "set") { if(isEmpty(data)) { return false; } }
+			success=true;
+			$(this.p.colModel).each(function(i){
+				nm = this.name;
+				if(action == "set") {
+					if( data[nm] !== undefined) {
+						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
+						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
+						$("tr.footrow td:eq("+i+")",t.grid.sDiv).html(vl).attr(title); 
+						success = true;
+					}
+				} else if(action == "get") {
+					res[nm] = $("tr.footrow td:eq("+i+")",t.grid.sDiv).html();
+				}
+			});
+		});
+		return action == "get" ? res : success;
+	},
+	ShowHideCol : function(colname,show) {
+		return this.each(function() {
+			var $t = this, fndh=false;
+			if (!$t.grid ) {return;}
+			if( typeof colname === 'string') {colname=[colname];}
+			show = show !="none" ? "" : "none";
+			var sw = show == "" ? true :false;
+			$(this.p.colModel).each(function(i) {
+				if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {
+					$("tr",$t.grid.hDiv).each(function(){
+						$("th:eq("+i+")",this).css("display",show);
+					});
+					$($t.rows).each(function(j){
+						$("td:eq("+i+")",$t.rows[j]).css("display",show);
+					});
+					if($t.p.footerrow) { $("td:eq("+i+")",$t.grid.sDiv).css("display", show); }
+					if(show == "none") { $t.p.tblwidth -= this.width;} else {$t.p.tblwidth += this.width;}
+					this.hidden = !sw;
+					fndh=true;
+				}
+			});
+			if(fndh===true) {
+				$("table:first",$t.grid.hDiv).width($t.p.tblwidth);
+				$("table:first",$t.grid.bDiv).width($t.p.tblwidth);
+				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
+				if($t.p.footerrow) {
+					$("table:first",$t.grid.sDiv).width($t.p.tblwidth);
+					$t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
+				}
+			}
+		});
+	},
+	hideCol : function (colname) {
+		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"none");});
+	},
+	showCol : function(colname) {
+		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"");});
+	},
+	remapColumns : function(permutation, updateCells, keepHeader)
+	{
+		function resortArray(a) {
+			var ac;
+			if (a.length) {
+				ac = $.makeArray(a);
+			} else {
+				ac = $.extend({}, a);
+			}
+			$.each(permutation, function(i) {
+				a[i] = ac[this];
+			});
+		}
+		var ts = this.get(0);
+		function resortRows(parent, clobj) {
+			$(">tr"+(clobj||""), parent).each(function() {
+				var row = this;
+				var elems = $.makeArray(row.cells);
+				$.each(permutation, function() {
+					var e = elems[this];
+					if (e) {
+						row.appendChild(e);
+					}
+				});
+			});
+		}
+		resortArray(ts.p.colModel);
+		resortArray(ts.p.colNames);
+		resortArray(ts.grid.headers);
+		resortRows($("thead:first", ts.grid.hDiv), keepHeader && ":not(.ui-jqgrid-labels)");
+		if (updateCells) {
+			resortRows($("tbody:first", ts.grid.bDiv), ".jqgrow");
+		}
+		if (ts.p.footerrow) {
+			resortRows($("tbody:first", ts.grid.sDiv));
+		}
+		if (ts.p.remapColumns) {
+			if (!ts.p.remapColumns.length){
+				ts.p.remapColumns = $.makeArray(permutation);
+			} else {
+				resortArray(ts.p.remapColumns);
+			}
+		}
+		ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);
+		if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }
+	},
+	setGridWidth : function(nwidth, shrink) {
+		return this.each(function(){
+			var $t = this, cw,
+			initwidth = 0, brd=$t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, tw=0,
+			cl = 0,cr;
+			if (!$t.grid ) {return;}
+			if(typeof shrink != 'boolean') {
+				shrink=$t.p.shrinkToFit;
+			}
+			if(isNaN(nwidth)) {return;}
+			else { nwidth = parseInt(nwidth,10); $t.grid.width = $t.p.width = nwidth;}
+			$("#gbox_"+$t.p.id).css("width",nwidth+"px");
+			$("#gview_"+$t.p.id).css("width",nwidth+"px");
+			$($t.grid.bDiv).css("width",nwidth+"px");
+			$($t.grid.hDiv).css("width",nwidth+"px");
+			if($t.p.pager ) {$($t.p.pager).css("width",nwidth+"px");}
+			if($t.p.toppager ) {$($t.p.toppager).css("width",nwidth+"px");}
+			if($t.p.toolbar[0] === true){
+				$($t.grid.uDiv).css("width",nwidth+"px");
+				if($t.p.toolbar[1]=="both") {$($t.grid.ubDiv).css("width",nwidth+"px");}
+			}
+			if($t.p.footerrow) { $($t.grid.sDiv).css("width",nwidth+"px"); }
+			if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}			
+			if(shrink===true) {
+				if ($.browser.safari) { brd=0;}
+				$.each($t.p.colModel, function(i) {
+					if(this.hidden===false){
+						initwidth += parseInt(this.width,10);
+						if(this.fixed) {
+							tw += this.width;
+							gw += this.width+brd;
+						} else {
+							vc++;
+						}
+						cl++;
+					}
+				});
+				if(vc  === 0) { return; }
+				$t.p.tblwidth = initwidth;
+				aw = nwidth-brd*vc-gw;
+				if(!isNaN($t.p.height)) {
+					if($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight){
+						hs = true;
+						aw -= scw;
+					}
+				}
+				initwidth =0;
+				var cle = $t.grid.cols.length >0;
+				$.each($t.p.colModel, function(i) {
+					if(this.hidden === false && !this.fixed){
+						cw = Math.round(aw*this.width/($t.p.tblwidth-tw));
+						if (cw < 0) { return; }
+						this.width =cw;
+						initwidth += cw;
+						$t.grid.headers[i].width=cw;
+						$t.grid.headers[i].el.style.width=cw+"px";
+						if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; }
+						if(cle) { $t.grid.cols[i].style.width = cw+"px"; }
+						lvc = i;
+					}
+				});
+				cr =0;
+				if (hs) {
+					if(nwidth-gw-(initwidth+brd*vc) !== scw){
+						cr = nwidth-gw-(initwidth+brd*vc)-scw;
+					}
+				} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {
+					cr = nwidth-gw-(initwidth+brd*vc);
+				}
+				$t.p.colModel[lvc].width += cr;
+				$t.p.tblwidth = initwidth+cr+tw+brd*cl;
+				if($t.p.tblwidth > nwidth) {
+					var delta = $t.p.tblwidth - parseInt(nwidth,10);
+					$t.p.tblwidth = nwidth;
+					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;
+				} else {
+					cw= $t.p.colModel[lvc].width;
+				}
+				$t.grid.headers[lvc].width = cw;
+				$t.grid.headers[lvc].el.style.width=cw+"px";
+				if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; }
+				$('table:first',$t.grid.bDiv).css("width",$t.p.tblwidth+"px");
+				$('table:first',$t.grid.hDiv).css("width",$t.p.tblwidth+"px");
+				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
+				if($t.p.footerrow) {
+					$t.grid.footers[lvc].style.width = cw+"px";
+					$('table:first',$t.grid.sDiv).css("width",$t.p.tblwidth+"px");
+				}
+			}
+		});
+	},
+	setGridHeight : function (nh) {
+		return this.each(function (){
+			var $t = this;
+			if(!$t.grid) {return;}
+			$($t.grid.bDiv).css({height: nh+(isNaN(nh)?"":"px")});
+			$t.p.height = nh;
+			if ($t.p.scroll) { $t.grid.populateVisible(); }
+		});
+	},
+	setCaption : function (newcap){
+		return this.each(function(){
+			this.p.caption=newcap;
+			$("span.ui-jqgrid-title",this.grid.cDiv).html(newcap);
+			$(this.grid.cDiv).show();
+		});
+	},
+	setLabel : function(colname, nData, prop, attrp ){
+		return this.each(function(){
+			var $t = this, pos=-1;
+			if(!$t.grid) {return;}
+			if(isNaN(colname)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name == colname) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(colname,10);}
+			if(pos>=0) {
+				var thecol = $("tr.ui-jqgrid-labels th:eq("+pos+")",$t.grid.hDiv);
+				if (nData){
+					var ico = $(".s-ico",thecol);
+					$("[id^=jqgh_]",thecol).empty().html(nData).append(ico);
+					$t.p.colNames[pos] = nData;
+				}
+				if (prop) {
+					if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}
+				}
+				if(typeof attrp === 'object') {$(thecol).attr(attrp);}
+			}
+		});
+	},
+	setCell : function(rowid,colname,nData,cssp,attrp, forceupd) {
+		return this.each(function(){
+			var $t = this, pos =-1,v, title;
+			if(!$t.grid) {return;}
+			if(isNaN(colname)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name == colname) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(colname,10);}
+			if(pos>=0) {
+				var ind = $t.rows.namedItem(rowid);
+				if (ind){
+					var tcell = $("td:eq("+pos+")",ind);
+					if(nData !== "" || forceupd === true) {
+						v = $t.formatter(rowid, nData, pos,ind,'edit');
+						title = $t.p.colModel[pos].title ? {"title":$.jgrid.stripHtml(v)} : {};
+						if($t.p.treeGrid && $(".tree-wrap",$(tcell)).length>0) {
+							$("span",$(tcell)).html(v).attr(title);
+						} else {
+							$(tcell).html(v).attr(title);
+						}
+					}
+					if(typeof cssp === 'string'){
+						$(tcell).addClass(cssp);
+					} else if(cssp) {
+						$(tcell).css(cssp);
+					}
+					if(typeof attrp === 'object') {$(tcell).attr(attrp);}
+				}
+			}
+		});
+	},
+	getCell : function(rowid,col) {
+		var ret = false;
+		this.each(function(){
+			var $t=this, pos=-1;
+			if(!$t.grid) {return;}
+			if(isNaN(col)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name === col) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(col,10);}
+			if(pos>=0) {
+				var ind = $t.rows.namedItem(rowid);
+				if(ind) {
+					try {
+						ret = $.unformat($("td:eq("+pos+")",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);
+					} catch (e){
+						ret = $.jgrid.htmlDecode($("td:eq("+pos+")",ind).html());
+					}
+				}
+			}
+		});
+		return ret;
+	},
+	getCol : function (col, obj, mathopr) {
+		var ret = [], val, sum=0;
+		obj = typeof (obj) != 'boolean' ? false : obj;
+		if(typeof mathopr == 'undefined') { mathopr = false; }
+		this.each(function(){
+			var $t=this, pos=-1;
+			if(!$t.grid) {return;}
+			if(isNaN(col)) {
+				$($t.p.colModel).each(function(i){
+					if (this.name === col) {
+						pos = i;return false;
+					}
+				});
+			} else {pos = parseInt(col,10);}
+			if(pos>=0) {
+				var ln = $t.rows.length, i =0;
+				if (ln && ln>0){
+					while(i<ln){
+						try {
+							val = $.unformat($($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);
+						} catch (e) {
+							val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);
+						}
+						if(mathopr) { sum += parseFloat(val); }
+						else if(obj) { ret.push({id:$t.rows[i].id,value:val}); }
+						else { ret[i]=val; }
+						i++;
+					}
+					if(mathopr) {
+						switch(mathopr.toLowerCase()){
+							case 'sum': ret =sum; break;
+							case 'avg': ret = sum/ln; break;
+							case 'count': ret = ln; break;
+						}
+					}
+				}
+			}
+		});
+		return ret;
+	},
+	clearGridData : function(clearfooter) {
+		return this.each(function(){
+			var $t = this;
+			if(!$t.grid) {return;}
+			if(typeof clearfooter != 'boolean') { clearfooter = false; }
+			$("tbody:first tr", $t.grid.bDiv).remove();
+			if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html("&#160;"); }
+			$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];
+			$t.p.records = 0;$t.p.page='0';$t.p.lastpage='0';$t.p.reccount=0;
+			$t.updatepager(true,false);
+		});
+	},
+	getInd : function(rowid,rc){
+		var ret =false,rw;
+		this.each(function(){
+			rw = this.rows.namedItem(rowid);
+			if(rw) {
+				ret = rc===true ? rw: rw.rowIndex;
+			}
+		});
+		return ret;
+	}
+});
+})(jQuery);

Property changes on: controlies/trunk/applications/controlies/static/js/jdgrid/src/grid.base.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/img/bg_green.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/img/bg_green.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/img/bg_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/img/bg_blue.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/img/bg_orange.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/img/bg_orange.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.js	(revision 178)
@@ -0,0 +1,171 @@
+/*!
+ * jquery.tzineClock.js - Tutorialzine Colorful Clock Plugin
+ *
+ * Copyright (c) 2009 Martin Angelov
+ * http://tutorialzine.com/
+ *
+ * Licensed under MIT
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * Launch  : December 2009
+ * Version : 1.0
+ * Released: Monday 28th December, 2009 - 00:00
+ */
+
+(function($){
+	
+	// A global array used by the functions of the plug-in:
+	var gVars = {};
+
+	// Extending the jQuery core:
+	$.fn.tzineClock = function(opts){
+	
+		// "this" contains the elements that were selected when calling the plugin: $('elements').tzineClock();
+		// If the selector returned more than one element, use the first one:
+		
+		var container = this.eq(0);
+	
+		if(!container)
+		{
+			try{
+				console.log("Invalid selector!");
+			} catch(e){}
+			
+			return false;
+		}
+		
+		if(!opts) opts = {}; 
+		
+		var defaults = {
+			/* Additional options will be added in future versions of the plugin. */
+		};
+		
+		/* Merging the provided options with the default ones (will be used in future versions of the plugin): */
+		$.each(defaults,function(k,v){
+			opts[k] = opts[k] || defaults[k];
+		})
+
+		// Calling the setUp function and passing the container,
+		// will be available to the setUp function as "this":
+		setUp.call(container);
+		
+		return this;
+	}
+	
+	function setUp()
+	{
+		// The colors of the dials:
+		var colors = ['orange','blue','green'];
+		
+		var tmp;
+		
+		for(var i=0;i<3;i++)
+		{
+			// Creating a new element and setting the color as a class name:
+			
+			tmp = $('<div>').attr('class',colors[i]+' clock').html(
+				'<div class="display"></div>'+
+				
+				'<div class="front left"></div>'+
+				
+				'<div class="rotate left">'+
+					'<div class="bg left"></div>'+
+				'</div>'+
+				
+				'<div class="rotate right">'+
+					'<div class="bg right"></div>'+
+				'</div>'
+			);
+			
+			// Appending to the container:
+			$(this).append(tmp);
+			
+			// Assigning some of the elements as variables for speed:
+			tmp.rotateLeft = tmp.find('.rotate.left');
+			tmp.rotateRight = tmp.find('.rotate.right');
+			tmp.display = tmp.find('.display');
+			
+			// Adding the dial as a global variable. Will be available as gVars.colorName
+			gVars[colors[i]] = tmp;
+		}
+		
+		// Setting up a interval, executed every 1000 milliseconds:
+		setInterval(function(){
+		
+			var currentTime = new Date();
+			var h = currentTime.getHours();
+			var m = currentTime.getMinutes();
+			var s = currentTime.getSeconds();
+			
+			animation(gVars.green, s, 60);
+			animation(gVars.blue, m, 60);
+			animation(gVars.orange, h, 24);
+		
+		},1000);
+	}
+	
+	function animation(clock, current, total)
+	{
+		// Calculating the current angle:
+		var angle = (360/total)*(current+1);
+	
+		var element;
+
+		if(current==0)
+		{
+			// Hiding the right half of the background:
+			clock.rotateRight.hide();
+			
+			// Resetting the rotation of the left part:
+			rotateElement(clock.rotateLeft,0);
+		}
+		
+		if(angle<=180)
+		{
+			// The left part is rotated, and the right is currently hidden:
+			element = clock.rotateLeft;
+		}
+		else
+		{
+			// The first part of the rotation has completed, so we start rotating the right part:
+			clock.rotateRight.show();
+			clock.rotateLeft.show();
+			
+			rotateElement(clock.rotateLeft,180);
+			
+			element = clock.rotateRight;
+			angle = angle-180;
+		}
+
+		rotateElement(element,angle);
+		
+		// Setting the text inside of the display element, inserting a leading zero if needed:
+		clock.display.html(current<10?'0'+current:current);
+	}
+	
+	function rotateElement(element,angle)
+	{
+		// Rotating the element, depending on the browser:
+		var rotate = 'rotate('+angle+'deg)';
+		
+		if(element.css('MozTransform')!=undefined)
+			element.css('MozTransform',rotate);
+			
+		else if(element.css('WebkitTransform')!=undefined)
+			element.css('WebkitTransform',rotate);
+	
+		// A version for internet explorer using filters, works but is a bit buggy (no surprise here):
+		else if(element.css("filter")!=undefined)
+		{
+			var cos = Math.cos(Math.PI * 2 / 360 * angle);
+			var sin = Math.sin(Math.PI * 2 / 360 * angle);
+			
+			element.css("filter","progid:DXImageTransform.Microsoft.Matrix(M11="+cos+",M12=-"+sin+",M21="+sin+",M22="+cos+",SizingMethod='auto expand',FilterType='nearest neighbor')");
+	
+			element.css("left",-Math.floor((element.width()-200)/2));
+			element.css("top",-Math.floor((element.height()-200)/2));
+		}
+	
+	}
+	
+})(jQuery)
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.css
===================================================================
--- controlies/trunk/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.css	(revision 178)
@@ -0,0 +1,71 @@
+.clock{
+	/* The .clock div. Created dynamically by jQuery */
+
+	height:200px;
+	width:200px;
+	position:relative;
+	overflow:hidden;
+	float:left;
+	left:16%;
+	margin-top:50px;
+}
+
+.clock .rotate{
+	/* There are two .rotate divs - one for each half of the background */
+	position:absolute;
+	width:200px;
+	height:200px;
+	top:0;
+	left:0;
+}
+
+.rotate.right{
+	display:none;
+	z-index:11;
+}
+
+.clock .bg, .clock .front{
+	width:100px;
+	height:200px;
+
+	position:absolute;
+	top:0;
+}
+
+.clock .display{
+	/* Holds the number of seconds, minutes or hours respectfully */
+	position:absolute;
+	width:200px;
+	font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif;
+	z-index:20;
+	color:#F5F5F5;
+	font-size:60px;
+	text-align:center;
+	top:65px;
+	left:0;
+	
+	/* CSS3 text shadow: */
+	text-shadow:4px 4px 5px #333333;
+}
+
+/* The left part of the background: */
+
+.clock .bg.left{ left:0; }
+
+/* Individual styles for each color: */
+.orange .bg.left{ background:url(img/bg_orange.png) no-repeat left top; }
+.green .bg.left{ background:url(img/bg_green.png) no-repeat left top; }
+.blue .bg.left{	background:url(img/bg_blue.png) no-repeat left top; }
+
+/* The right part of the background: */
+.clock .bg.right{ left:100px; }
+
+.orange .bg.right{ background:url(img/bg_orange.png) no-repeat right top; }
+.green .bg.right{ background:url(img/bg_green.png) no-repeat right top; }
+.blue .bg.right{ background:url(img/bg_blue.png) no-repeat right top; }
+
+
+.clock .front.left{
+	left:0;
+	z-index:10;
+}
Index: controlies/trunk/applications/controlies/static/js/superfish.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/superfish.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/superfish.js	(revision 178)
@@ -0,0 +1,121 @@
+
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * 	http://www.opensource.org/licenses/mit-license.php
+ * 	http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($){
+	$.fn.superfish = function(op){
+
+		var sf = $.fn.superfish,
+			c = sf.c,
+			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
+			over = function(){
+				var $$ = $(this), menu = getMenu($$);
+				clearTimeout(menu.sfTimer);
+				$$.showSuperfishUl().siblings().hideSuperfishUl();
+			},
+			out = function(){
+				var $$ = $(this), menu = getMenu($$), o = sf.op;
+				clearTimeout(menu.sfTimer);
+				menu.sfTimer=setTimeout(function(){
+					o.retainPath=($.inArray($$[0],o.$path)>-1);
+					$$.hideSuperfishUl();
+					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
+				},o.delay);	
+			},
+			getMenu = function($menu){
+				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+				sf.op = sf.o[menu.serial];
+				return menu;
+			},
+			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
+			
+		return this.each(function() {
+			var s = this.serial = sf.o.length;
+			var o = $.extend({},sf.defaults,op);
+			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
+					.filter('li:has(ul)').removeClass(o.pathClass);
+			});
+			sf.o[s] = sf.op = o;
+			
+			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+				if (o.autoArrows) addArrow( $('>a:first-child',this) );
+			})
+			.not('.'+c.bcClass)
+				.hideSuperfishUl();
+			
+			var $a = $('a',this);
+			$a.each(function(i){
+				var $li = $a.eq(i).parents('li');
+				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
+			});
+			o.onInit.call(this);
+			
+		}).each(function() {
+			var menuClasses = [c.menuClass];
+			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
+			$(this).addClass(menuClasses.join(' '));
+		});
+	};
+
+	var sf = $.fn.superfish;
+	sf.o = [];
+	sf.op = {};
+	sf.IE7fix = function(){
+		var o = sf.op;
+		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+			this.toggleClass(sf.c.shadowClass+'-off');
+		};
+	sf.c = {
+		bcClass     : 'sf-breadcrumb',
+		menuClass   : 'sf-js-enabled',
+		anchorClass : 'sf-with-ul',
+		arrowClass  : 'sf-sub-indicator',
+		shadowClass : 'sf-shadow'
+	};
+	sf.defaults = {
+		hoverClass	: 'sfHover',
+		pathClass	: 'overideThisToUse',
+		pathLevels	: 1,
+		delay		: 800,
+		animation	: {opacity:'show'},
+		speed		: 'normal',
+		autoArrows	: true,
+		dropShadows : true,
+		disableHI	: false,		// true disables hoverIntent detection
+		onInit		: function(){}, // callback functions
+		onBeforeShow: function(){},
+		onShow		: function(){},
+		onHide		: function(){}
+	};
+	$.fn.extend({
+		hideSuperfishUl : function(){
+			var o = sf.op,
+				not = (o.retainPath===true) ? o.$path : '';
+			o.retainPath = false;
+			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+					.find('>ul').hide().css('visibility','hidden');
+			o.onHide.call($ul);
+			return this;
+		},
+		showSuperfishUl : function(){
+			var o = sf.op,
+				sh = sf.c.shadowClass+'-off',
+				$ul = this.addClass(o.hoverClass)
+					.find('>ul:hidden').css('visibility','visible');
+			sf.IE7fix.call($ul);
+			o.onBeforeShow.call($ul);
+			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
+			return this;
+		}
+	});
+
+})(jQuery);
Index: controlies/trunk/applications/controlies/static/js/calendar.js
===================================================================
--- controlies/trunk/applications/controlies/static/js/calendar.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/js/calendar.js	(revision 178)
@@ -0,0 +1,42 @@
+/* Copyright Notice for Dynarch Date Time Picker */
+/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
+ * -----------------------------------------------------------
+ *
+ * The DHTML Calendar, version 1.0 "It is happening again"
+ *
+ * Details and latest version at:
+ * www.dynarch.com/projects/calendar
+ *
+ * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
+ *
+ * This script is distributed under the GNU Lesser General Public License.
+ * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
+ */
+
+// Calendar EN language
+// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
+// Encoding: any
+// Distributed under the same terms as the calendar itself.
+/* End Copyright Notice for Dynarch Date Time Picker */
+
+Calendar=function(J,K,H,G){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=H||null;this.onClose=G||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT.DEF_DATE_FORMAT;this.ttDateFormat=Calendar._TT.TT_DATE_FORMAT;this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof J=="number"?J:Calendar._FD;this.showsOtherMonths=false;this.dateStr=K;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined"){Calendar._SDN_len=3}var L=new Array();for(var I=8;I>0;){L[--I]=Calendar._DN[I].substr(0,Calendar._SDN_len)}Calendar._SDN=L;if(typeof Calendar._SMN_len=="undefined"){Calendar._SMN_len=3}L=new Array();for(var I=12;I>0;){L[--I]=Calendar._MN[I].substr(0,Calendar._SMN_len)}Calendar._SMN=L}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(I){var G=0,J=0;var K=/^div$/i.test(I.tagName);if(K&&I.scrollLeft){G=I.scrollLeft}if(K&&I.scrollTop){J=I.scrollTop}var H={x:I.offsetLeft-G,y:I.offsetTop-J};if(I.offsetParent){var L=this.getAbsolutePos(I.offsetParent);H.x+=L.x;H.y+=L.y}return H};Calendar.isRelated=function(G,E){var F=E.relatedTarget;if(!F){var H=E.type;if(H=="mouseover"){F=E.fromElement}else{if(H=="mouseout"){F=E.toElement}}}while(F){if(F==G){return true}F=F.parentNode}return false};Calendar.removeClass=function(G,H){if(!(G&&G.className)){return }var F=G.className.split(" ");var J=new Array();for(var I=F.length;I>0;){if(F[--I]!=H){J[J.length]=F[I]}}G.className=J.join(" ")};Calendar.addClass=function(D,C){Calendar.removeClass(D,C);D.className+=" "+C};Calendar.getElement=function(C){var D=Calendar.is_ie?window.event.srcElement:C.currentTarget;while(D.nodeType!=1||/^div$/i.test(D.tagName)){D=D.parentNode}return D};Calendar.getTargetElement=function(C){var D=Calendar.is_ie?window.event.srcElement:C.target;while(D.nodeType!=1){D=D.parentNode}return D};Calendar.stopEvent=function(B){B||(B=window.event);if(Calendar.is_ie){B.cancelBubble=true;B.returnValue=false}else{B.preventDefault();B.stopPropagation()}return false};Calendar.addEvent=function(D,E,F){if(D.attachEvent){D.attachEvent("on"+E,F)}else{if(D.addEventListener){D.addEventListener(E,F,true)}else{D["on"+E]=F}}};Calendar.removeEvent=function(D,E,F){if(D.detachEvent){D.detachEvent("on"+E,F)}else{if(D.removeEventListener){D.removeEventListener(E,F,true)}else{D["on"+E]=null}}};Calendar.createElement=function(E,F){var D=null;if(document.createElementNS){D=document.createElementNS("http://www.w3.org/1999/xhtml",E)}else{D=document.createElement(E)}if(typeof F!="undefined"){F.appendChild(D)}return D};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true)}}};Calendar.findMonth=function(B){if(typeof B.month!="undefined"){return B}else{if(typeof B.parentNode.month!="undefined"){return B.parentNode}}return null};Calendar.findYear=function(B){if(typeof B.year!="undefined"){return B}else{if(typeof B.parentNode.year!="undefined"){return B.parentNode}}return null};Calendar.showMonthsCombo=function(){var I=Calendar._C;if(!I){return false}var I=I;var H=I.activeDiv;var J=I.monthsCombo;if(I.hilitedMonth){Calendar.removeClass(I.hilitedMonth,"hilite")}if(I.activeMonth){Calendar.removeClass(I.activeMonth,"active")}var K=I.monthsCombo.getElementsByTagName("div")[I.date.getMonth()];Calendar.addClass(K,"active");I.activeMonth=K;var L=J.style;L.display="block";if(H.navtype<0){L.left=H.offsetLeft+"px"}else{var G=J.offsetWidth;if(typeof G=="undefined"){G=50}L.left=(H.offsetLeft+H.offsetWidth-G)+"px"}L.top=(H.offsetTop+H.offsetHeight)+"px"};Calendar.showYearsCombo=function(K){var N=Calendar._C;if(!N){return false}var N=N;var L=N.activeDiv;var S=N.yearsCombo;if(N.hilitedYear){Calendar.removeClass(N.hilitedYear,"hilite")}if(N.activeYear){Calendar.removeClass(N.activeYear,"active")}N.activeYear=null;var M=N.date.getFullYear()+(K?1:-1);var P=S.firstChild;var Q=false;for(var T=12;T>0;--T){if(M>=N.minYear&&M<=N.maxYear){P.innerHTML=M;P.year=M;P.style.display="block";Q=true}else{P.style.display="none"}P=P.nextSibling;M+=K?N.yearStep:-N.yearStep}if(Q){var O=S.style;O.display="block";if(L.navtype<0){O.left=L.offsetLeft+"px"}else{var R=S.offsetWidth;if(typeof R=="undefined"){R=50}O.left=(L.offsetLeft+L.offsetWidth-R)+"px"}O.top=(L.offsetTop+L.offsetHeight)+"px"}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false}if(cal.timeout){clearTimeout(cal.timeout)}var el=cal.activeDiv;if(!el){return false}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev)}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev)}};Calendar.tableMouseOver=function(X){var T=Calendar._C;if(!T){return }var R=T.activeDiv;var b=Calendar.getTargetElement(X);if(b==R||b.parentNode==R){Calendar.addClass(R,"hilite active");Calendar.addClass(R.parentNode,"rowhilite")}else{if(typeof R.navtype=="undefined"||(R.navtype!=50&&(R.navtype==0||Math.abs(R.navtype)>2))){Calendar.removeClass(R,"active")}Calendar.removeClass(R,"hilite");Calendar.removeClass(R.parentNode,"rowhilite")}X||(X=window.event);if(R.navtype==50&&b!=R){var Y=Calendar.getAbsolutePos(R);var V=R.offsetWidth;var W=X.clientX;var U;var Z=true;if(W>Y.x+V){U=W-Y.x-V;Z=false}else{U=Y.x-W}if(U<0){U=0}var e=R._range;var c=R._current;var d=Math.floor(U/10)%e.length;for(var f=e.length;--f>=0;){if(e[f]==c){break}}while(d-->0){if(Z){if(--f<0){f=e.length-1}}else{if(++f>=e.length){f=0}}}var S=e[f];R.innerHTML=S;T.onUpdateTime()}var Q=Calendar.findMonth(b);if(Q){if(Q.month!=T.date.getMonth()){if(T.hilitedMonth){Calendar.removeClass(T.hilitedMonth,"hilite")}Calendar.addClass(Q,"hilite");T.hilitedMonth=Q}else{if(T.hilitedMonth){Calendar.removeClass(T.hilitedMonth,"hilite")}}}else{if(T.hilitedMonth){Calendar.removeClass(T.hilitedMonth,"hilite")}var a=Calendar.findYear(b);if(a){if(a.year!=T.date.getFullYear()){if(T.hilitedYear){Calendar.removeClass(T.hilitedYear,"hilite")}Calendar.addClass(a,"hilite");T.hilitedYear=a}else{if(T.hilitedYear){Calendar.removeClass(T.hilitedYear,"hilite")}}}else{if(T.hilitedYear){Calendar.removeClass(T.hilitedYear,"hilite")}}}return Calendar.stopEvent(X)};Calendar.tableMouseDown=function(B){if(Calendar.getTargetElement(B)==Calendar.getElement(B)){return Calendar.stopEvent(B)}};Calendar.calDragIt=function(J){var I=Calendar._C;if(!(I&&I.dragging)){return false}var G;var H;if(Calendar.is_ie){H=window.event.clientY+document.body.scrollTop;G=window.event.clientX+document.body.scrollLeft}else{G=J.pageX;H=J.pageY}I.hideShowCovered();var F=I.element.style;F.left=(G-I.xOffs)+"px";F.top=(H-I.yOffs)+"px";return Calendar.stopEvent(J)};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev)}cal.hideShowCovered()};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300){with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver)}else{addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver)}addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp)}}else{if(cal.isPopup){cal._dragStart(ev)}}if(el.navtype==-1||el.navtype==1){if(cal.timeout){clearTimeout(cal.timeout)}cal.timeout=setTimeout("Calendar.showMonthsCombo()",250)}else{if(el.navtype==-2||el.navtype==2){if(cal.timeout){clearTimeout(cal.timeout)}cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250)}else{cal.timeout=null}}return Calendar.stopEvent(ev)};Calendar.dayMouseDblClick=function(B){Calendar.cellClick(Calendar.getElement(B),B||window.event);if(Calendar.is_ie){document.selection.empty()}};Calendar.dayMouseOver=function(D){var C=Calendar.getElement(D);if(Calendar.isRelated(C,D)||Calendar._C||C.disabled){return false}if(C.ttip){if(C.ttip.substr(0,1)=="_"){C.ttip=C.caldate.print(C.calendar.ttDateFormat)+C.ttip.substr(1)}C.calendar.tooltips.innerHTML=C.ttip}if(C.navtype!=300){Calendar.addClass(C,"hilite");if(C.caldate){Calendar.addClass(C.parentNode,"rowhilite")}}return Calendar.stopEvent(D)};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled){return false}removeClass(el,"hilite");if(el.caldate){removeClass(el.parentNode,"rowhilite")}if(el.calendar){el.calendar.tooltips.innerHTML=_TT.SEL_DATE}return stopEvent(ev)}};Calendar.cellClick=function(d,U){var Q=d.calendar;var a=false;var X=false;var c=null;if(typeof d.navtype=="undefined"){if(Q.currentDateEl){Calendar.removeClass(Q.currentDateEl,"selected");Calendar.addClass(d,"selected");a=(Q.currentDateEl==d);if(!a){Q.currentDateEl=d}}Q.date.setDateOnly(d.caldate);c=Q.date;var R=!(Q.dateClicked=!d.otherMonth);if(!R&&!Q.currentDateEl){Q._toggleMultipleDate(new Date(c))}else{X=!d.disabled}if(R){Q._init(Q.firstDayOfWeek,c)}}else{if(d.navtype==200){Calendar.removeClass(d,"hilite");Q.callCloseHandler();return }c=new Date(Q.date);if(d.navtype==0){c.setDateOnly(new Date())}Q.dateClicked=false;var V=c.getFullYear();var b=c.getMonth();function S(B){var A=c.getDate();var C=c.getMonthDays(B);if(A>C){c.setDate(C)}c.setMonth(B)}switch(d.navtype){case 400:Calendar.removeClass(d,"hilite");var T=Calendar._TT.ABOUT;if(typeof T!="undefined"){T+=Q.showsTime?Calendar._TT.ABOUT_TIME:""}else{T='Help and about box text is not translated into this language.\nIf you know this language and you feel generous please update\nthe corresponding file in "lang" subdir to match calendar-en.js\nand send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\nThank you!\nhttp://dynarch.com/mishoo/calendar.epl\n'}alert(T);return ;case -2:if(V>Q.minYear){c.setFullYear(V-1)}break;case -1:if(b>0){S(b-1)}else{if(V-->Q.minYear){c.setFullYear(V);S(11)}}break;case 1:if(b<11){S(b+1)}else{if(V<Q.maxYear){c.setFullYear(V+1);S(0)}}break;case 2:if(V<Q.maxYear){c.setFullYear(V+1)}break;case 100:Q.setFirstDayOfWeek(d.fdow);return ;case 50:var Y=d._range;var W=d.innerHTML;for(var Z=Y.length;--Z>=0;){if(Y[Z]==W){break}}if(U&&U.shiftKey){if(--Z<0){Z=Y.length-1}}else{if(++Z>=Y.length){Z=0}}var P=Y[Z];d.innerHTML=P;Q.onUpdateTime();return ;case 0:if((typeof Q.getDateStatus=="function")&&Q.getDateStatus(c,c.getFullYear(),c.getMonth(),c.getDate())){return false}break}if(!c.equalsTo(Q.date)){Q.setDate(c);X=true}else{if(d.navtype==0){X=a=true}}}if(X){U&&Q.callHandler()}if(a){Calendar.removeClass(d,"hilite");U&&Q.callCloseHandler()}};Calendar.prototype.create=function(Y){var Z=null;if(!Y){Z=document.getElementsByTagName("body")[0];this.isPopup=true}else{Z=Y;this.isPopup=false}this.date=this.dateStr?new Date(this.dateStr):new Date();var V=Calendar.createElement("table");this.table=V;V.cellSpacing=0;V.cellPadding=0;V.calendar=this;Calendar.addEvent(V,"mousedown",Calendar.tableMouseDown);var T=Calendar.createElement("div");this.element=T;T.className="calendar";if(this.isPopup){T.style.position="absolute";T.style.display="none"}T.appendChild(V);var b=Calendar.createElement("thead",V);var X=null;var U=null;var S=this;var f=function(A,B,C){X=Calendar.createElement("td",U);X.colSpan=B;X.className="button";if(C!=0&&Math.abs(C)<=2){X.className+=" nav"}Calendar._add_evs(X);X.calendar=S;X.navtype=C;X.innerHTML="<div unselectable='on'>"+A+"</div>";return X};U=Calendar.createElement("tr",b);var R=6;(this.isPopup)&&--R;(this.weekNumbers)&&++R;f("?",1,400).ttip=Calendar._TT.INFO;this.title=f("",R,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT.DRAG_TO_MOVE;this.title.style.cursor="move";f("&#x00d7;",1,200).ttip=Calendar._TT.CLOSE}U=Calendar.createElement("tr",b);U.className="headrow";this._nav_py=f("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT.PREV_YEAR;this._nav_pm=f("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT.PREV_MONTH;this._nav_now=f(Calendar._TT.TODAY,this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT.GO_TODAY;this._nav_nm=f("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT.NEXT_MONTH;this._nav_ny=f("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT.NEXT_YEAR;U=Calendar.createElement("tr",b);U.className="daynames";if(this.weekNumbers){X=Calendar.createElement("td",U);X.className="name wn";X.innerHTML=Calendar._TT.WK}for(var c=7;c>0;--c){X=Calendar.createElement("td",U);if(!c){X.navtype=100;X.calendar=this;Calendar._add_evs(X)}}this.firstdayname=(this.weekNumbers)?U.firstChild.nextSibling:U.firstChild;this._displayWeekdays();var d=Calendar.createElement("tbody",V);this.tbody=d;for(c=6;c>0;--c){U=Calendar.createElement("tr",d);if(this.weekNumbers){X=Calendar.createElement("td",U)}for(var e=7;e>0;--e){X=Calendar.createElement("td",U);X.calendar=this;Calendar._add_evs(X)}}if(this.showsTime){U=Calendar.createElement("tr",d);U.className="time";X=Calendar.createElement("td",U);X.className="time";X.colSpan=2;X.innerHTML=Calendar._TT.TIME||"&nbsp;";X=Calendar.createElement("td",U);X.className="time";X.colSpan=this.weekNumbers?4:3;(function(){function F(P,N,O,L){var K=Calendar.createElement("span",X);K.className=P;K.innerHTML=N;K.calendar=S;K.ttip=Calendar._TT.TIME_PART;K.navtype=50;K._range=[];if(typeof O!="number"){K._range=O}else{for(var J=O;J<=L;++J){var M;if(J<10&&L>=10){M="0"+J}else{M=""+J}K._range[K._range.length]=M}}Calendar._add_evs(K);return K}var B=S.date.getHours();var I=S.date.getMinutes();var A=!S.time24;var H=(B>12);if(A&&H){B-=12}var D=F("hour",B,A?1:0,A?12:23);var E=Calendar.createElement("span",X);E.innerHTML=":";E.className="colon";var G=F("minute",I,0,59);var C=null;X=Calendar.createElement("td",U);X.className="time";X.colSpan=2;if(A){C=F("ampm",H?"pm":"am",["am","pm"])}else{X.innerHTML="&nbsp;"}S.onSetTime=function(){var K,L=this.date.getHours(),J=this.date.getMinutes();if(A){K=(L>=12);if(K){L-=12}if(L==0){L=12}C.innerHTML=K?"pm":"am"}D.innerHTML=(L<10)?("0"+L):L;G.innerHTML=(J<10)?("0"+J):J};S.onUpdateTime=function(){var K=this.date;var J=parseInt(D.innerHTML,10);if(A){if(/pm/i.test(C.innerHTML)&&J<12){J+=12}else{if(/am/i.test(C.innerHTML)&&J==12){J=0}}}var N=K.getDate();var M=K.getMonth();var L=K.getFullYear();K.setHours(J);K.setMinutes(parseInt(G.innerHTML,10));K.setFullYear(L);K.setMonth(M);K.setDate(N);this.dateClicked=false;this.callHandler()}})()}else{this.onSetTime=this.onUpdateTime=function(){}}var a=Calendar.createElement("tfoot",V);U=Calendar.createElement("tr",a);U.className="footrow";X=f(Calendar._TT.SEL_DATE,this.weekNumbers?8:7,300);X.className="ttip";if(this.isPopup){X.ttip=Calendar._TT.DRAG_TO_MOVE;X.style.cursor="move"}this.tooltips=X;T=Calendar.createElement("div",this.element);this.monthsCombo=T;T.className="combo";for(c=0;c<Calendar._MN.length;++c){var Q=Calendar.createElement("div");Q.className=Calendar.is_ie?"label-IEfix":"label";Q.month=c;Q.innerHTML=Calendar._SMN[c];T.appendChild(Q)}T=Calendar.createElement("div",this.element);this.yearsCombo=T;T.className="combo";for(c=12;c>0;--c){var W=Calendar.createElement("div");W.className=Calendar.is_ie?"label-IEfix":"label";T.appendChild(W)}this._init(this.firstDayOfWeek,this.date);Z.appendChild(this.element)};Calendar._keyEvent=function(T){var Q=window._dynarch_popupCalendar;if(!Q||Q.multiple){return false}(Calendar.is_ie)&&(T=window.event);var V=(Calendar.is_ie||T.type=="keypress"),S=T.keyCode;if(T.ctrlKey){switch(S){case 37:V&&Calendar.cellClick(Q._nav_pm);break;case 38:V&&Calendar.cellClick(Q._nav_py);break;case 39:V&&Calendar.cellClick(Q._nav_nm);break;case 40:V&&Calendar.cellClick(Q._nav_ny);break;default:return false}}else{switch(S){case 32:Calendar.cellClick(Q._nav_now);break;case 27:V&&Q.callCloseHandler();break;case 37:case 38:case 39:case 40:if(V){var Z,R,U,X,O,K;Z=S==37||S==38;K=(S==37||S==39)?1:7;function P(){O=Q.currentDateEl;var A=O.pos;R=A&15;U=A>>4;X=Q.ar_days[U][R]}P();function Y(){var A=new Date(Q.date);A.setDate(A.getDate()-K);Q.setDate(A)}function W(){var A=new Date(Q.date);A.setDate(A.getDate()+K);Q.setDate(A)}while(1){switch(S){case 37:if(--R>=0){X=Q.ar_days[U][R]}else{R=6;S=38;continue}break;case 38:if(--U>=0){X=Q.ar_days[U][R]}else{Y();P()}break;case 39:if(++R<7){X=Q.ar_days[U][R]}else{R=0;S=40;continue}break;case 40:if(++U<Q.ar_days.length){X=Q.ar_days[U][R]}else{W();P()}break}break}if(X){if(!X.disabled){Calendar.cellClick(X)}else{if(Z){Y()}else{W()}}}}break;case 13:if(V){Calendar.cellClick(Q.currentDateEl,T)}break;default:return false}}return Calendar.stopEvent(T)};Calendar.prototype._init=function(q,e){var f=new Date(),l=f.getFullYear(),c=f.getMonth(),AB=f.getDate();this.table.style.visibility="hidden";var v=e.getFullYear();if(v<this.minYear){v=this.minYear;e.setFullYear(v)}else{if(v>this.maxYear){v=this.maxYear;e.setFullYear(v)}}this.firstDayOfWeek=q;this.date=new Date(e);var d=e.getMonth();var a=e.getDate();var b=e.getMonthDays();e.setDate(1);var k=(e.getDay()-this.firstDayOfWeek)%7;if(k<0){k+=7}e.setDate(0-k);e.setDate(e.getDate()+1);var y=this.tbody.firstChild;var s=Calendar._SMN[d];var o=this.ar_days=new Array();var p=Calendar._TT.WEEKEND;var z=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,y=y.nextSibling){var AC=y.firstChild;if(this.weekNumbers){AC.className="day wn";AC.innerHTML=e.getWeekNumber();AC=AC.nextSibling}y.className="daysrow";var g=false,x,AA=o[i]=[];for(var j=0;j<7;++j,AC=AC.nextSibling,e.setDate(x+1)){x=e.getDate();var w=e.getDay();AC.className="day";AC.pos=i<<4|j;AA[j]=AC;var r=(e.getMonth()==d);if(!r){if(this.showsOtherMonths){AC.className+=" othermonth";AC.otherMonth=true}else{AC.className="emptycell";AC.innerHTML="&nbsp;";AC.disabled=true;continue}}else{AC.otherMonth=false;g=true}AC.disabled=false;AC.innerHTML=this.getDateText?this.getDateText(e,x):x;if(z){z[e.print("%Y%m%d")]=AC}if(this.getDateStatus){var n=this.getDateStatus(e,v,d,x);if(this.getDateToolTip){var u=this.getDateToolTip(e,v,d,x);if(u){AC.title=u}}if(n===true){AC.className+=" disabled";AC.disabled=true}else{if(/disabled/i.test(n)){AC.disabled=true}AC.className+=" "+n}}if(!AC.disabled){AC.caldate=new Date(e);AC.ttip="_";if(!this.multiple&&r&&x==a&&this.hiliteToday){AC.className+=" selected";this.currentDateEl=AC}if(e.getFullYear()==l&&e.getMonth()==c&&x==AB){AC.className+=" today";AC.ttip+=Calendar._TT.PART_TODAY}if(p.indexOf(w.toString())!=-1){AC.className+=AC.otherMonth?" oweekend":" weekend"}}}if(!(g||this.showsOtherMonths)){y.className="emptyrow"}}this.title.innerHTML=Calendar._MN[d]+", "+v;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates()};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var F in this.multiple){var D=this.datesCells[F];var E=this.multiple[F];if(!E){continue}if(D){D.className+=" selected"}}}};Calendar.prototype._toggleMultipleDate=function(H){if(this.multiple){var G=H.print("%Y%m%d");var E=this.datesCells[G];if(E){var F=this.multiple[G];if(!F){Calendar.addClass(E,"selected");this.multiple[G]=H}else{Calendar.removeClass(E,"selected");delete this.multiple[G]}}}};Calendar.prototype.setDateToolTipHandler=function(B){this.getDateToolTip=B};Calendar.prototype.setDate=function(B){if(!B.equalsTo(this.date)){this._init(this.firstDayOfWeek,B)}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)};Calendar.prototype.setFirstDayOfWeek=function(B){this._init(B,this.date);this._displayWeekdays()};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(B){this.getDateStatus=B};Calendar.prototype.setRange=function(C,D){this.minYear=C;this.maxYear=D};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat))}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this)}this.hideShowCovered()};Calendar.prototype.destroy=function(){var B=this.element.parentNode;B.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null};Calendar.prototype.reparent=function(D){var C=this.element;C.parentNode.removeChild(C);D.appendChild(C)};Calendar._checkCalendar=function(F){var E=window._dynarch_popupCalendar;if(!E){return false}var D=Calendar.is_ie?Calendar.getElement(F):Calendar.getTargetElement(F);for(;D!=null&&D!=E.element;D=D.parentNode){}if(D==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(F)}};Calendar.prototype.show=function(){var I=this.table.getElementsByTagName("tr");for(var J=I.length;J>0;){var H=I[--J];Calendar.removeClass(H,"rowhilite");var K=H.getElementsByTagName("td");for(var L=K.length;L>0;){var G=K[--L];Calendar.removeClass(G,"hilite");Calendar.removeClass(G,"active")}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar)}this.hideShowCovered()};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar)}this.element.style.display="none";this.hidden=true;this.hideShowCovered()};Calendar.prototype.showAt=function(D,E){var F=this.element.style;F.left=D+"px";F.top=E+"px";this.show()};Calendar.prototype.showAtElement=function(I,H){var F=this;var G=Calendar.getAbsolutePos(I);if(!H||typeof H!="string"){this.showAt(G.x,G.y+I.offsetHeight);return true}function J(B){if(B.x<0){B.x=0}if(B.y<0){B.y=0}var A=document.createElement("div");var C=A.style;C.position="absolute";C.right=C.bottom=C.width=C.height="0px";document.body.appendChild(A);var D=Calendar.getAbsolutePos(A);document.body.removeChild(A);if(Calendar.is_ie){D.y+=document.body.scrollTop;D.x+=document.body.scrollLeft}else{D.y+=window.scrollY;D.x+=window.scrollX}var E=B.x+B.width-D.x;if(E>0){B.x-=E}E=B.y+B.height-D.y;if(E>0){B.y-=E}}this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var D=F.element.offsetWidth;var B=F.element.offsetHeight;F.element.style.display="none";var C=H.substr(0,1);var A="l";if(H.length>1){A=H.substr(1,1)}switch(C){case"T":G.y-=B;break;case"B":G.y+=I.offsetHeight;break;case"C":G.y+=(I.offsetHeight-B)/2;break;case"t":G.y+=I.offsetHeight-B;break;case"b":break}switch(A){case"L":G.x-=D;break;case"R":G.x+=I.offsetWidth;break;case"C":G.x+=(I.offsetWidth-D)/2;break;case"l":G.x+=I.offsetWidth-D;break;case"r":break}G.width=D;G.height=B+40;F.monthsCombo.style.display="none";J(G);F.showAt(G.x,G.y)};if(Calendar.is_khtml){setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10)}else{Calendar.continuation_for_the_fucking_khtml_browser()}};Calendar.prototype.setDateFormat=function(B){this.dateFormat=B};Calendar.prototype.setTtDateFormat=function(B){this.ttDateFormat=B};Calendar.prototype.parseDate=function(D,C){if(!C){C=this.dateFormat}this.setDate(Date.parseDate(D,C))};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera){return }function S(A){var B=A.style.visibility;if(!B){if(document.defaultView&&typeof (document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml){B=document.defaultView.getComputedStyle(A,"").getPropertyValue("visibility")}else{B=""}}else{if(A.currentStyle){B=A.currentStyle.visibility}else{B=""}}}return B}var U=new Array("applet","iframe","select");var R=this.element;var T=Calendar.getAbsolutePos(R);var e=T.x;var Q=R.offsetWidth+e;var V=T.y;var W=R.offsetHeight+V;for(var c=U.length;c>0;){var d=document.getElementsByTagName(U[--c]);var f=null;for(var a=d.length;a>0;){f=d[--a];T=Calendar.getAbsolutePos(f);var X=T.x;var Y=f.offsetWidth+X;var Z=T.y;var b=f.offsetHeight+Z;if(this.hidden||(X>Q)||(Y<e)||(Z>W)||(b<V)){if(!f.__msh_save_visibility){f.__msh_save_visibility=S(f)}f.style.visibility=f.__msh_save_visibility}else{if(!f.__msh_save_visibility){f.__msh_save_visibility=S(f)}f.style.visibility="hidden"}}}};Calendar.prototype._displayWeekdays=function(){var J=this.firstDayOfWeek;var F=this.firstdayname;var H=Calendar._TT.WEEKEND;for(var I=0;I<7;++I){F.className="day name";var G=(I+J)%7;if(I){F.ttip=Calendar._TT.DAY_FIRST.replace("%s",Calendar._DN[G]);F.navtype=100;F.calendar=this;F.fdow=G;Calendar._add_evs(F)}if(H.indexOf(G.toString())!=-1){Calendar.addClass(F,"weekend")}F.innerHTML=Calendar._SDN[(I+J)%7];F=F.nextSibling}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none"};Calendar.prototype._dragStart=function(ev){if(this.dragging){return }this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd)}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(X,Q){var W=new Date();var V=0;var P=-1;var Y=0;var T=X.split(/\W+/);var U=Q.match(/%./g);var Z=0,N=0;var S=0;var O=0;for(Z=0;Z<T.length;++Z){if(!T[Z]){continue}switch(U[Z]){case"%d":case"%e":Y=parseInt(T[Z],10);break;case"%m":P=parseInt(T[Z],10)-1;break;case"%Y":case"%y":V=parseInt(T[Z],10);(V<100)&&(V+=(V>29)?1900:2000);break;case"%b":case"%B":for(N=0;N<12;++N){if(Calendar._MN[N].substr(0,T[Z].length).toLowerCase()==T[Z].toLowerCase()){P=N;break}}break;case"%H":case"%I":case"%k":case"%l":S=parseInt(T[Z],10);break;case"%P":case"%p":if(/pm/i.test(T[Z])&&S<12){S+=12}else{if(/am/i.test(T[Z])&&S>=12){S-=12}}break;case"%M":O=parseInt(T[Z],10);break}}if(isNaN(V)){V=W.getFullYear()}if(isNaN(P)){P=W.getMonth()}if(isNaN(Y)){Y=W.getDate()}if(isNaN(S)){S=W.getHours()}if(isNaN(O)){O=W.getMinutes()}if(V!=0&&P!=-1&&Y!=0){return new Date(V,P,Y,S,O,0)}V=0;P=-1;Y=0;for(Z=0;Z<T.length;++Z){if(T[Z].search(/[a-zA-Z]+/)!=-1){var R=-1;for(N=0;N<12;++N){if(Calendar._MN[N].substr(0,T[Z].length).toLowerCase()==T[Z].toLowerCase()){R=N;break}}if(R!=-1){if(P!=-1){Y=P+1}P=R}}else{if(parseInt(T[Z],10)<=12&&P==-1){P=T[Z]-1}else{if(parseInt(T[Z],10)>31&&V==0){V=parseInt(T[Z],10);(V<100)&&(V+=(V>29)?1900:2000)}else{if(Y==0){Y=T[Z]}}}}}if(V==0){V=W.getFullYear()}if(P!=-1&&Y!=0){return new Date(V,P,Y,S,O,0)}return W};Date.prototype.getMonthDays=function(D){var C=this.getFullYear();if(typeof D=="undefined"){D=this.getMonth()}if(((0==(C%4))&&((0!=(C%100))||(0==(C%400))))&&D==1){return 29}else{return Date._MD[D]}};Date.prototype.getDayOfYear=function(){var D=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var E=new Date(this.getFullYear(),0,0,0,0,0);var F=D-E;return Math.floor(F/Date.DAY)};Date.prototype.getWeekNumber=function(){var E=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var F=E.getDay();E.setDate(E.getDate()-(F+6)%7+3);var D=E.valueOf();E.setMonth(0);E.setDate(4);return Math.round((D-E.valueOf())/(7*86400000))+1};Date.prototype.equalsTo=function(B){return((this.getFullYear()==B.getFullYear())&&(this.getMonth()==B.getMonth())&&(this.getDate()==B.getDate())&&(this.getHours()==B.getHours())&&(this.getMinutes()==B.getMinutes()))};Date.prototype.setDateOnly=function(C){var D=new Date(C);this.setDate(1);this.setFullYear(D.getFullYear());this.setMonth(D.getMonth());this.setDate(D.getDate())};Date.prototype.print=function(d){var U=this.getMonth();var e=this.getDate();var c=this.getFullYear();var a=this.getWeekNumber();var Z=this.getDay();var V={};var Y=this.getHours();var T=(Y>=12);var g=(T)?(Y-12):Y;var W=this.getDayOfYear();if(g==0){g=12}var S=this.getMinutes();var f=this.getSeconds();V["%a"]=Calendar._SDN[Z];V["%A"]=Calendar._DN[Z];V["%b"]=Calendar._SMN[U];V["%B"]=Calendar._MN[U];V["%C"]=1+Math.floor(c/100);V["%d"]=(e<10)?("0"+e):e;V["%e"]=e;V["%H"]=(Y<10)?("0"+Y):Y;V["%I"]=(g<10)?("0"+g):g;V["%j"]=(W<100)?((W<10)?("00"+W):("0"+W)):W;V["%k"]=Y;V["%l"]=g;V["%m"]=(U<9)?("0"+(1+U)):(1+U);V["%M"]=(S<10)?("0"+S):S;V["%n"]="\n";V["%p"]=T?"PM":"AM";V["%P"]=T?"pm":"am";V["%s"]=Math.floor(this.getTime()/1000);V["%S"]=(f<10)?("0"+f):f;V["%t"]="\t";V["%U"]=V["%W"]=V["%V"]=(a<10)?("0"+a):a;V["%u"]=Z+1;V["%w"]=Z;V["%y"]=(""+c).substr(2,2);V["%Y"]=c;V["%%"]="%";var X=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml){return d.replace(X,function(A){return V[A]||A})}var b=d.match(X);for(var i=0;i<b.length;i++){var R=V[b[i]];if(R){X=new RegExp(b[i],"g");d=d.replace(X,R)}}return d};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(D){var C=new Date(this);C.__msh_oldSetFullYear(D);if(C.getMonth()!=this.getMonth()){this.setDate(28)}this.__msh_oldSetFullYear(D)};window._dynarch_popupCalendar=null;Calendar._DN=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");Calendar._SDN=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun");Calendar._FD=0;Calendar._MN=new Array("January","February","March","April","May","June","July","August","September","October","November","December");Calendar._SMN=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");Calendar._TT={};Calendar._TT.INFO="About the calendar";Calendar._TT.ABOUT="DHTML Date/Time Selector\n(c) dynarch.com 2002-2005 / Author: Mihai Bazon\nFor latest version visit: http://www.dynarch.com/projects/calendar/\nDistributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details.\n\nDate selection:\n- Use the \xab, \xbb buttons to select year\n- Use the "+String.fromCharCode(8249)+", "+String.fromCharCode(8250)+" buttons to select month\n- Hold mouse button on any of the above buttons for faster selection.";Calendar._TT.ABOUT_TIME="\n\nTime selection:\n- Click on any of the time parts to increase it\n- or Shift-click to decrease it\n- or click and drag for faster selection.";Calendar._TT.PREV_YEAR="Prev. year (hold for menu)";Calendar._TT.PREV_MONTH="Prev. month (hold for menu)";Calendar._TT.GO_TODAY="Go Today";Calendar._TT.NEXT_MONTH="Next month (hold for menu)";Calendar._TT.NEXT_YEAR="Next year (hold for menu)";Calendar._TT.SEL_DATE="Select date";Calendar._TT.DRAG_TO_MOVE="Drag to move";Calendar._TT.PART_TODAY=" (today)";Calendar._TT.DAY_FIRST="Display %s first";Calendar._TT.WEEKEND="0,6";Calendar._TT.CLOSE="Close";Calendar._TT.TODAY="Today";Calendar._TT.TIME_PART="(Shift-)Click or drag to change value";Calendar._TT.DEF_DATE_FORMAT="%Y-%m-%d";Calendar._TT.TT_DATE_FORMAT="%a, %b %e";Calendar._TT.WK="wk";Calendar._TT.TIME="Time:";Calendar.setup=function(I){function J(B,A){if(typeof I[B]=="undefined"){I[B]=A}}J("inputField",null);J("displayArea",null);J("button",null);J("eventName","click");J("ifFormat","%Y/%m/%d");J("daFormat","%Y/%m/%d");J("singleClick",true);J("disableFunc",null);J("dateStatusFunc",I.disableFunc);J("dateText",null);J("firstDay",null);J("align","Br");J("range",[1900,2999]);J("weekNumbers",true);J("flat",null);J("flatCallback",null);J("onSelect",null);J("onClose",null);J("onUpdate",null);J("date",null);J("showsTime",false);J("timeFormat","24");J("electric",true);J("step",2);J("position",null);J("cache",false);J("showOthers",false);J("multiple",null);var M=["inputField","displayArea","button"];for(var N in M){if(typeof I[M[N]]=="string"){I[M[N]]=document.getElementById(I[M[N]])}}if(!(I.flat||I.multiple||I.inputField||I.displayArea||I.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false}function H(B){var C=B.params;var A=(B.dateClicked||C.electric);if(A&&C.inputField){C.inputField.value=B.date.print(C.ifFormat);if(typeof C.inputField.onchange=="function"){C.inputField.onchange()}}if(A&&C.displayArea){C.displayArea.innerHTML=B.date.print(C.daFormat)}if(A&&typeof C.onUpdate=="function"){C.onUpdate(B)}if(A&&C.flat){if(typeof C.flatCallback=="function"){C.flatCallback(B)}}if(A&&C.singleClick&&B.dateClicked){B.callCloseHandler()}}if(I.flat!=null){if(typeof I.flat=="string"){I.flat=document.getElementById(I.flat)}if(!I.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false}var K=new Calendar(I.firstDay,I.date,I.onSelect||H);K.showsOtherMonths=I.showOthers;K.showsTime=I.showsTime;K.time24=(I.timeFormat=="24");K.params=I;K.weekNumbers=I.weekNumbers;K.setRange(I.range[0],I.range[1]);K.setDateStatusHandler(I.dateStatusFunc);K.getDateText=I.dateText;if(I.ifFormat){K.setDateFormat(I.ifFormat)}if(I.inputField&&typeof I.inputField.value=="string"){K.parseDate(I.inputField.value)}K.create(I.flat);K.show();return false}var L=I.button||I.displayArea||I.inputField;L["on"+I.eventName]=function(){var E=I.inputField||I.displayArea;var C=I.inputField?I.ifFormat:I.daFormat;var F=false;var A=window.calendar;if(E){I.date=Date.parseDate(E.value||E.innerHTML,C)}if(!(A&&I.cache)){window.calendar=A=new Calendar(I.firstDay,I.date,I.onSelect||H,I.onClose||function(P){P.hide()});A.showsTime=I.showsTime;A.time24=(I.timeFormat=="24");A.weekNumbers=I.weekNumbers;F=true}else{if(I.date){A.setDate(I.date)}A.hide()}if(I.multiple){A.multiple={};for(var D=I.multiple.length;--D>=0;){var G=I.multiple[D];var B=G.print("%Y%m%d");A.multiple[B]=G}}A.showsOtherMonths=I.showOthers;A.yearStep=I.step;A.setRange(I.range[0],I.range[1]);A.params=I;A.setDateStatusHandler(I.dateStatusFunc);A.getDateText=I.dateText;A.setDateFormat(C);if(F){A.create()}A.refresh();if(!I.position){A.showAtElement(I.button||I.displayArea||I.inputField,I.align)}else{A.showAt(I.position[0],I.position[1])}return false};return K};
+
+/*
+   http://keith-wood.name/timeEntry.html
+   Time entry for jQuery v1.4.8.
+   Written by Keith Wood (kbwood{at}iinet.com.au) June 2007.
+   Minor changes by Massimo Di Pierro Nov 2010 (simplified and changed behavior)
+   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
+   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
+   Please attribute the author if you use it.
+
+   Turn an input field into an entry point for a time value.
+   The time can be entered via directly typing the value,
+   via the arrow keys.
+   It is configurable to show 12 or 24-hour time, to show or hide seconds,
+   to enforce a minimum and/or maximum time, to change the spinner image.
+
+   Example:  jQuery('input.time').timeEntry();
+*/
+
+(function(a){var d=12,k="ampmNames",i="show24Hours",m="showSeconds",l="character",b=10,f=false,j="string",e=-1,c=null,h=true,g="timeEntry";function o(){this._disabledInputs=[];this._defaults={showSeconds:h,defaultTime:c,minTime:c,maxTime:c,show24Hours:h,ampmNames:["am","pm"]};a.extend(this._defaults)}a.extend(o.prototype,{markerClassName:"hasTimeEntry",setDefaults:function(a){n(this._defaults,a||{});return this},_connectTimeEntry:function(e,f){var c=this,d=a(e);if(d.hasClass(c.markerClassName))return;var b={};b.options=a.extend({},f);b._selectedHour=0;b._selectedMinute=0;b._selectedSecond=0;b._field=0;b.input=a(e);a.data(e,g,b);d.addClass(c.markerClassName).bind("focus.timeEntry",c._doFocus).bind("blur.timeEntry",c._doBlur).bind("click.timeEntry",c._doClick).bind("keydown.timeEntry",c._doKeyDown).bind("keypress.timeEntry",c._doKeyPress);a.browser.mozilla&&d.bind("input.timeEntry",function(){a.timeEntry._parseTime(b)});a.browser.msie&&d.bind("paste.timeEntry",function(){setTimeout(function(){a.timeEntry._parseTime(b)},1)})},_isDisabledTimeEntry:function(b){return a.inArray(b,this._disabledInputs)>e},_changeTimeEntry:function(e,b,f){var c=a.data(e,g);if(c){if(typeof b==j){var h=b;b={};b[h]=f}var d=this._extractTime(c);n(c.options,b||{});d&&this._setTime(c,new Date(0,0,0,d[0],d[1],d[2]))}a.data(e,g,c)},_destroyTimeEntry:function(d){var b=this;jQueryinput=a(d);if(!jQueryinput.hasClass(b.markerClassName))return;jQueryinput.removeClass(b.markerClassName).unbind(".timeEntry");b._disabledInputs=a.map(b._disabledInputs,function(a){return a==d?c:a});jQueryinput.parent().replaceWith(jQueryinput);a.removeData(d,g)},_setTimeTimeEntry:function(e,b){var d=a.data(e,g);d&&this._setTime(d,b?typeof b=="object"?new Date(b.getTime()):b:c)},_getTimeTimeEntry:function(e){var d=a.data(e,g),b=d?this._extractTime(d):c;return !b?c:new Date(0,0,0,b[0],b[1],b[2])},_getOffsetTimeEntry:function(e){var d=a.data(e,g),b=d?this._extractTime(d):c;return !b?0:(b[0]*3600+b[1]*60+b[2])*1e3},_doFocus:function(e){var d=e.nodeName&&e.nodeName.toLowerCase()=="input"?e:this;if(a.timeEntry._lastInput==d||a.timeEntry._isDisabledTimeEntry(d)){a.timeEntry._focussed=f;return}var i=a.data(d,g);a.timeEntry._focussed=h;a.timeEntry._lastInput=d;a.timeEntry._blurredInput=c;a.data(d,g,i);a.timeEntry._parseTime(i);setTimeout(function(){a.timeEntry._showField(i)},b)},_doBlur:function(){a.timeEntry._blurredInput=a.timeEntry._lastInput;a.timeEntry._lastInput=c},_doClick:function(k){var h=k.target,d=a.data(h,g);if(!a.timeEntry._focussed){var i=3;d._field=0;if(h.selectionStart!=c)for(var e=0;e<=Math.max(1,d._secondField,d._ampmField);e++){var m=e!=d._ampmField?e*i+2:d._ampmField*i+2;d._field=e;if(h.selectionStart<m)break}else if(h.createTextRange)for(var n=a(k.srcElement),j=h.createTextRange(),o=function(a){return ({thin:2,medium:4,thick:6})[a]||a},p=k.clientX+document.documentElement.scrollLeft-(n.offset().left+parseInt(o(n.css("border-left-width")),b))-j.offsetLeft,e=0;e<=Math.max(1,d._secondField,d._ampmField);e++){var m=e!=d._ampmField?e*i+2:d._ampmField*i+2;j.collapse();j.moveEnd(l,m);d._field=e;if(p<j.boundingWidth)break}}a.data(h,g,d);a.timeEntry._showField(d);a.timeEntry._focussed=f},_doKeyDown:function(c){if(c.keyCode>=48)return h;var b=a.data(c.target,g);switch(c.keyCode){case 9:var d=a(":input");d.eq(d.index(this)+(c.shiftKey?e:+1)).focus();break;case 37:a.timeEntry._changeField(b,e,f);break;case 38:a.timeEntry._adjustField(b,e);break;case 16:!c.shiftKey&&a.timeEntry._changeField(b,+1,f);break;case 39:a.timeEntry._changeField(b,+1,f);break;case 40:a.timeEntry._adjustField(b,+1);break;case 32:case 46:a.timeEntry._setValue(b,"")}return f},_doKeyPress:function(b){var c=String.fromCharCode(b.charCode==undefined?b.keyCode:b.charCode);if(c<" ")return h;var d=a.data(b.target,g);a.timeEntry._handleKeyPress(d,c);return f},_get:function(d,b){return d.options[b]!=c?d.options[b]:a.timeEntry._defaults[b]},_parseTime:function(a){var b=this,c=b._extractTime(a),d=b._get(a,m);if(c){a._selectedHour=c[0];a._selectedMinute=c[1];a._selectedSecond=c[2]}else{var f=b._constrainTime(a);a._selectedHour=f[0];a._selectedMinute=f[1];a._selectedSecond=d?f[2]:0}a._secondField=d?2:e;a._ampmField=b._get(a,i)?e:d?3:2;a._lastChr="";a._field=Math.max(0,Math.min(Math.max(1,a._secondField,a._ampmField),0));a.input.val()!=""&&b._showTime(a)},_extractTime:function(h,g){var n=this;g=g||h.input.val();var f=g.split(":"),p=n._get(h,k),o=n._get(h,i);if(f.length>=2){var r=!o&&g.indexOf(p[0])>e,q=!o&&g.indexOf(p[1])>e,a=parseInt(f[0],b);a=isNaN(a)?0:a;a=((r||q)&&a==d?0:a)+(q?d:0);var j=parseInt(f[1],b);j=isNaN(j)?0:j;var l=f.length>=3?parseInt(f[2],b):0;l=isNaN(l)||!n._get(h,m)?0:l;return n._constrainTime(h,[a,j,l])}return c},_constrainTime:function(d,a){var e=a!=c;if(!e){var b=this._determineTime(d,this._get(d,"defaultTime"))||new Date;a=[b.getHours(),b.getMinutes(),b.getSeconds()]}return a},_showTime:function(a){var b=this,c=b._get(a,i),e=b._formatNumber(c?a._selectedHour:(a._selectedHour+11)%d+1)+":"+b._formatNumber(a._selectedMinute)+(b._get(a,m)?":"+b._formatNumber(a._selectedSecond):"")+(c?"":b._get(a,k)[a._selectedHour<d?0:1]);b._setValue(a,e);b._showField(a)},_showField:function(b){var c=b.input[0];if(b.input.is(":hidden")||a.timeEntry._lastInput!=c)return;var f=3,e=b._field==b._ampmField?b._ampmField*f-1:b._field*f,g=e+(b._field==b._ampmField?2:2);if(c.setSelectionRange)c.setSelectionRange(e,g);else if(c.createTextRange){var d=c.createTextRange();d.moveStart(l,e);d.moveEnd(l,g-b.input.val().length);d.select()}!c.disabled&&c.focus()},_formatNumber:function(a){return (a<b?"0":"")+a},_setValue:function(b,a){a!=b.input.val()&&b.input.val(a).trigger("change")},_changeField:function(b,d,f){var c=b.input.val()==""||b._field==(d==e?0:Math.max(1,b._secondField,b._ampmField));if(!c)b._field+=d;this._showField(b);b._lastChr="";a.data(b.input[0],g,b);return c&&f},_adjustField:function(a,b){if(a.input.val()=="")b=0;this._setTime(a,new Date(0,0,0,a._selectedHour+(a._field==0?b:0)+(a._field==a._ampmField?b*d:0),a._selectedMinute+(a._field==1?b:0),a._selectedSecond+(a._field==a._secondField?b:0)))},_setTime:function(d,b){var e=this;b=e._determineTime(d,b);var i=e._constrainTime(d,b?[b.getHours(),b.getMinutes(),b.getSeconds()]:c);b=new Date(0,0,0,i[0],i[1],i[2]);var b=e._normaliseTime(b),h=e._normaliseTime(e._determineTime(d,e._get(d,"minTime"))),f=e._normaliseTime(e._determineTime(d,e._get(d,"maxTime")));b=h&&b<h?h:f&&b>f?f:b;d._selectedHour=b.getHours();d._selectedMinute=b.getMinutes();d._selectedSecond=b.getSeconds();e._showTime(d);a.data(d.input[0],g,d)},_normaliseTime:function(a){if(!a)return c;a.setFullYear(1900);a.setMonth(0);a.setDate(0);return a},_determineTime:function(g,d){var e=function(b){var a=new Date;a.setTime(a.getTime()+b*1e3);return a},f=function(f){var d=a.timeEntry._extractTime(g,f),c=new Date,k=d?d[0]:c.getHours(),i=d?d[1]:c.getMinutes(),j=d?d[2]:c.getSeconds();if(!d){var h=/([+-]?[0-9]+)\s*(s|S|m|M|h|H)?/g,e=h.exec(f);while(e){switch(e[2]||"s"){case "s":case "S":j+=parseInt(e[1],b);break;case "m":case "M":i+=parseInt(e[1],b);break;case "h":case "H":k+=parseInt(e[1],b)}e=h.exec(f)}}c=new Date(0,0,b,k,i,j,0);if(/^!/.test(f))if(c.getDate()>b)c=new Date(0,0,b,23,59,59);else if(c.getDate()<b)c=new Date(0,0,b,0,0,0);return c};return d?typeof d==j?f(d):typeof d=="number"?e(d):d:c},_handleKeyPress:function(a,c){var g=this;if(c==":")g._changeField(a,+1,f);else if(c>="0"&&c<="9"){var h=parseInt(c,b),e=parseInt(a._lastChr+c,b),m=g._get(a,i),q=a._field!=0?a._selectedHour:m?e<24?e:h:(e>=1&&e<=d?e:h>0?h:a._selectedHour)%d+(a._selectedHour>=d?d:0),o=a._field!=1?a._selectedMinute:e<60?e:h,p=a._field!=a._secondField?a._selectedSecond:e<60?e:h,j=g._constrainTime(a,[q,o,p]);g._setTime(a,new Date(0,0,0,j[0],j[1],j[2]));a._lastChr=c}else if(!g._get(a,i)){c=c.toLowerCase();var l=g._get(a,k);if(c==l[0].substring(0,1).toLowerCase()&&a._selectedHour>=d||c==l[1].substring(0,1).toLowerCase()&&a._selectedHour<d){var n=a._field;a._field=a._ampmField;g._adjustField(a,+1);a._field=n;g._showField(a)}}}});function n(b,d){a.extend(b,d);for(var e in d)if(d[e]==c)b[e]=c;return b}var p=["getOffset","getTime","isDisabled"];a.fn.timeEntry=function(b){var c="TimeEntry",d=Array.prototype.slice.call(arguments,1);if(typeof b==j&&a.inArray(b,p)>e)return a.timeEntry["_"+b+c].apply(a.timeEntry,[this[0]].concat(d));return this.each(function(){var e=this,g=e.nodeName.toLowerCase();if(g=="input")if(typeof b==j)a.timeEntry["_"+b+c].apply(a.timeEntry,[e].concat(d));else{var f=a.fn.metadata?a(e).metadata():{};a.timeEntry._connectTimeEntry(e,a.extend(f,b))}})};a.timeEntry=new o})(jQuery)
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/js/calendar.js
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/robots.txt
===================================================================
--- controlies/trunk/applications/controlies/static/robots.txt	(nonexistent)
+++ controlies/trunk/applications/controlies/static/robots.txt	(revision 178)
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /welcome/default/user
Index: controlies/trunk/applications/controlies/static/css/default.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/default.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/default.css	(revision 178)
@@ -0,0 +1,138 @@
+@charset "UTF-8";
+
+/** 
+ * Adobe CSS Drop-Down Menu Theme
+ *
+ * @file		default.css
+ * @name		Adobe
+ * @version		0.1
+ * @type		transitional
+ * @browsers	Windows: IE6+, Opera7+, Firefox1+
+ *				Mac OS: Safari2+, Firefox2+
+ *
+ * @link		http://www.lwis.net/
+ * @copyright	2008 Live Web Institute. All Rights Reserved.
+ *
+ * Module Classes: *.dir {} *.on {} *.open {} li.hover {} li.first {} li.last {}
+ * Expected directory tag - li
+ *
+ */
+
+
+/*------------------------------------------------------------------------------------------------------/
+ * @section		Base Drop-Down Styling
+ * @structure	ul (unordered list)
+ *				ul li (list item)
+ *				ul li a (links)
+ *				*(.class|:hover)
+ * @level sep	ul
+ */
+
+
+/* ----- ALL LEVELS (incl. first) */
+
+ul.dropdown {
+ font: bold 12px Arial, Helvetica, sans-serif;
+}
+
+	ul.dropdown li {
+	 padding: 7px 12px;
+	 background-color: #000;
+	 color: #fff;
+	}
+
+	ul.dropdown li.hover,
+	ul.dropdown li:hover {
+	 background-color: #222;
+	}
+
+	ul.dropdown a:link,
+	ul.dropdown a:visited { color: #fff; text-decoration: none; }
+	ul.dropdown a:hover { color: #fff; text-decoration: underline; }
+	ul.dropdown a:active { color: #fff; }
+
+
+/* ----- END LEVEL */
+
+
+	/* ----- NON-FIRST LEVEL */
+
+	ul.dropdown ul {
+	 margin-left: -6px;
+	 width: 170px;
+	 padding-bottom: 9px;
+	 background: url(images/dropdown_pane.png) 0 100% no-repeat;
+	 color: #000;
+	 font-size: 11px;
+	 font-weight: normal;
+	}
+
+		ul.dropdown ul li {
+		 background-color: transparent;
+		 color: #000;
+		}
+
+		ul.dropdown ul li.hover,
+		ul.dropdown ul li:hover {
+		 background-color: transparent;
+		}
+
+		ul.dropdown ul li.empty {
+		 padding: 3px 10px 3px !important;
+		 font-weight: bold;
+			background-color:#DDD;
+		}
+
+		ul.dropdown ul a:link,
+		ul.dropdown ul a:visited { color: #000; }
+		ul.dropdown ul a:hover { color: #000; text-decoration: none; }
+		ul.dropdown ul a:active { color: #000; }
+
+			ul.dropdown ul ul {
+			 display: none;
+			}
+
+			ul.dropdown ul ul li {}
+
+/* ----- END LEVEL */
+
+
+
+/*------------------------------------------------------------------------------------------------------/
+ * @section	Support Class 'dir'
+ * @level sep	ul, .class
+ */
+
+
+/* ----- ALL LEVELS (incl. first) */
+
+ul.dropdown *.dir {
+ padding-right: 12px;
+ background-image: none;
+ background-position: 100% 50%;
+ background-repeat: no-repeat;
+}
+
+/* ----- END LEVEL */
+
+
+
+
+/* Components override */
+
+ul.dropdown-horizontal ul *.dir {
+ padding-right: 15px;
+ background-image: url(images/nav-arrow-right.png);
+ background-position: 100% 50%;
+ background-repeat: no-repeat;
+}
+
+ul.dropdown-vertical *.dir {
+ background-image: url(images/nav-arrow-right.png);
+}
+
+ul.dropdown-vertical-rtl *.dir {
+ padding-right: 15px;
+ background-image: url(images/nav-arrow-left.png);
+ background-position: 0 50%;
+}
Index: controlies/trunk/applications/controlies/static/css/handheld.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/handheld.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/handheld.css	(revision 178)
@@ -0,0 +1,7 @@
+
+* {
+  float: none;       /* Screens are not big enough to account for floats */
+  font-size: 80%;    /* Slightly reducing font size to reduce need to scroll */ 
+  background: #fff;  /*  As much contrast as possible */
+  color: #000;
+}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/css/default.advanced.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/default.advanced.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/default.advanced.css	(revision 178)
@@ -0,0 +1,68 @@
+@charset "UTF-8";
+
+/** 
+ * Abobe Advanced CSS Drop-Down Menu Theme
+ *
+ * @file		default.advanced.css
+ * @name		Adobe
+ * @version		0.1
+ * @type		transitional
+ * @browsers	Windows: IE5+, Opera7+, Firefox1+
+ *				Mac OS: Safari2+, Firefox2+
+ *
+ * @link		http://www.lwis.net/
+ * @copyright	2008 Live Web Institute. All Rights Reserved.
+ *
+ */
+
+@import "default.css";
+
+
+ul.dropdown li a { /* Moved from 'custom' section */
+ display: block;
+ padding: 7px 12px;
+}
+
+
+/* ------------- Override default */
+
+ul.dropdown li {
+ padding: 0;
+}
+
+
+/* ------------- Reinitiate default: post-override activities  */
+
+ul.dropdown li.dir {
+ padding: 7px 20px 7px 12px;
+}
+
+ul.dropdown ul li.dir {
+ padding-right: 15px;
+}
+
+
+/* ------------- Custom */
+
+ul.dropdown li {
+
+}
+
+
+/* Especially for IE6 or lower */
+
+ul.dropdown ul a {
+ padding: 4px 5px 4px 12px;
+ /*width: 139px;*/
+}
+
+ul.dropdown ul a:hover {
+ padding: 3px 5px 3px 11px;
+ border: solid 1px #ddd;
+ background-color: #eee;
+ font-weight: bold;
+}
+
+ul.dropdown ul a.dir {
+ /*width: 129px;*/
+}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/css/superfish.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/superfish.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/superfish.css	(revision 178)
@@ -0,0 +1,143 @@
+/*** ESSENTIAL STYLES ***/
+.sf-menu, .sf-menu * {
+    margin:         0;
+    padding:        0;
+    list-style:     none;
+}
+.sf-menu {
+    line-height:    1.0;
+}
+.sf-menu ul {
+    position:       absolute;
+    top:            -999em;
+    width:          10em; /* left offset of submenus need to match (see below) */
+}
+.sf-menu ul li {
+    width:          100%;
+}
+.sf-menu li:hover {
+    visibility:     inherit; /* fixes IE7 'sticky bug' */
+}
+.sf-menu li {
+    float:          left;
+    position:       relative;
+}
+.sf-menu a {
+    display:        block;
+    position:       relative;
+}
+.sf-menu li:hover ul,
+.sf-menu li.sfHover ul {
+    left:           0;
+    top:            2.5em; /* match top ul list item height */
+    z-index:        99;
+}
+ul.sf-menu li:hover li ul,
+ul.sf-menu li.sfHover li ul {
+    top:            -999em;
+}
+ul.sf-menu li li:hover ul,
+ul.sf-menu li li.sfHover ul {
+    left:           10em; /* match ul width */
+    top:            0;
+}
+ul.sf-menu li li:hover li ul,
+ul.sf-menu li li.sfHover li ul {
+    top:            -999em;
+}
+ul.sf-menu li li li:hover ul,
+ul.sf-menu li li li.sfHover ul {
+    left:           10em; /* match ul width */
+    top:            0;
+}
+
+/*** DEMO SKIN ***/
+.sf-menu {
+    float:          left;
+    /*margin-bottom:    1em;*/
+}
+.sf-menu a {
+    border-left:    1px solid #0;
+    /*border-top:       1px solid #CFDEFF;*/
+    padding:        .75em 1em;
+    text-decoration:none;
+}
+.sf-menu a, .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
+/*    color: #275b90;/*#13a;*/
+    color: #0;
+}
+.sf-menu li {
+    /*background: #dadada;/*#BDD2FF;*/
+    background: #4c4c4c;
+}
+.sf-menu li li {
+/*    background:     #AABDE6;*/
+    background:     #555;
+}
+.sf-menu li li a {
+    /*color: #13a;*/
+}
+.sf-menu li li li {
+/*    background:     #9AAEDB;*/
+        background:     #555;
+}
+.sf-menu li:hover, .sf-menu li.sfHover,
+.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
+/*    background:     #CFDEFF;*/
+    background:     #777;
+    outline:        0;
+}
+
+/*** arrows **/
+.sf-menu a.sf-with-ul {
+    padding-right:  2.25em;
+    min-width:      1px; /* trigger IE7 hasLayout so spans position accurately */
+}
+.sf-sub-indicator {
+    position:       absolute;
+    display:        block;
+    right:          .75em;
+    top:            1.05em; /* IE6 only */
+    width:          10px;
+    height:         10px;
+    text-indent:    -999em;
+    overflow:       hidden;
+    background:     url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
+}
+a > .sf-sub-indicator {  /* give all except IE6 the correct values */
+    top:            .8em;
+    background-position: 0 -100px; /* use translucent arrow for modern browsers*/
+}
+/* apply hovers to modern browsers */
+a:focus > .sf-sub-indicator,
+a:hover > .sf-sub-indicator,
+a:active > .sf-sub-indicator,
+li:hover > a > .sf-sub-indicator,
+li.sfHover > a > .sf-sub-indicator {
+    background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/* point right for anchors in subs */
+.sf-menu ul .sf-sub-indicator { background-position:  -10px 0; }
+.sf-menu ul a > .sf-sub-indicator { background-position:  0 0; }
+/* apply hovers to modern browsers */
+.sf-menu ul a:focus > .sf-sub-indicator,
+.sf-menu ul a:hover > .sf-sub-indicator,
+.sf-menu ul a:active > .sf-sub-indicator,
+.sf-menu ul li:hover > a > .sf-sub-indicator,
+.sf-menu ul li.sfHover > a > .sf-sub-indicator {
+    background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
+
+/*** shadows for all but IE6 ***/
+.sf-shadow ul {
+    background: url('../images/shadow.png') no-repeat bottom right;
+    padding: 0 8px 9px 0;
+    -moz-border-radius-bottomleft: 17px;
+    -moz-border-radius-topright: 17px;
+    -webkit-border-top-right-radius: 17px;
+    -webkit-border-bottom-left-radius: 17px;
+}
+.sf-shadow ul.sf-shadow-off {
+    background: transparent;
+}
Index: controlies/trunk/applications/controlies/static/css/calendar.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/calendar.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/calendar.css	(revision 178)
@@ -0,0 +1 @@
+.calendar{z-index:99;position:relative;display:none;border-top:2px solid #fff;border-right:2px solid #000;border-bottom:2px solid #000;border-left:2px solid #fff;font-size:11px;color:#000;cursor:default;background:#d4d0c8;font-family:tahoma,verdana,sans-serif;}.calendar table{border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;font-size:11px;color:#000;cursor:default;background:#d4d0c8;font-family:tahoma,verdana,sans-serif;}.calendar .button{text-align:center;padding:1px;border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;}.calendar .nav{background:transparent}.calendar thead .title{font-weight:bold;padding:1px;border:1px solid #000;background:#848078;color:#fff;text-align:center;}.calendar thead .name{border-bottom:1px solid #000;padding:2px;text-align:center;background:#f4f0e8;}.calendar thead .weekend{color:#f00;}.calendar thead .hilite{border-top:2px solid #fff;border-right:2px solid #000;border-bottom:2px solid #000;border-left:2px solid #fff;padding:0;background-color:#e4e0d8;}.calendar thead .active{padding:2px 0 0 2px;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;background-color:#c4c0b8;}.calendar tbody .day{width:2em;text-align:right;padding:2px 4px 2px 2px;}.calendar tbody .day.othermonth{font-size:80%;color:#aaa;}.calendar tbody .day.othermonth.oweekend{color:#faa;}.calendar table .wn{padding:2px 3px 2px 2px;border-right:1px solid #000;background:#f4f0e8;}.calendar tbody .rowhilite td{background:#e4e0d8;}.calendar tbody .rowhilite td.wn{background:#d4d0c8;}.calendar tbody td.hilite{padding:1px 3px 1px 1px;border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;}.calendar tbody td.active{padding:2px 2px 0 2px;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;}.calendar tbody td.selected{font-weight:bold;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;padding:2px 2px 0 2px;background:#e4e0d8;}.calendar tbody td.weekend{color:#f00;}.calendar tbody td.today{font-weight:bold;color:#00f;}.calendar tbody .disabled{color:#999;}.calendar tbody .emptycell{visibility:hidden;}.calendar tbody .emptyrow{display:none;}.calendar tfoot .ttip{background:#f4f0e8;padding:1px;border:1px solid #000;background:#848078;color:#fff;text-align:center;}.calendar tfoot .hilite{border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;padding:1px;background:#e4e0d8;}.calendar tfoot .active{padding:2px 0 0 2px;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;}.calendar .combo{position:absolute;display:none;width:4em;top:0;left:0;cursor:default;border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;background:#e4e0d8;font-size:90%;padding:1px;z-index:100;}.calendar .combo .label,.calendar .combo .label-IEfix{text-align:center;padding:1px;}.calendar .combo .label-IEfix{width:4em;}.calendar .combo .active{background:#c4c0b8;padding:0;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;}.calendar .combo .hilite{background:#048;color:#fea;}.calendar td.time{border-top:1px solid #000;padding:1px 0;text-align:center;background-color:#f4f0e8;}.calendar td.time .hour,.calendar td.time .minute,.calendar td.time .ampm{padding:0 3px 0 4px;border:1px solid #889;font-weight:bold;background-color:#fff;}.calendar td.time .ampm{text-align:center;}.calendar td.time .colon{padding:0 2px 0 3px;font-weight:bold;}.calendar td.time span.hilite{border-color:#000;background-color:#766;color:#fff;}.calendar td.time span.active{border-color:#f00;background-color:#000;color:#0f0;}#CP_hourcont{z-index:99;padding:0;position:absolute;border:1px dashed #666;background-color:#eee;display:none;}#CP_minutecont{z-index:99;background-color:#ddd;padding:1px;position:absolute;width:45px;display:none;}.floatleft{float:left;}.CP_hour{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:35px;}.CP_minute{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:auto;}.CP_over{background-color:#fff;z-index:99}
\ No newline at end of file

Property changes on: controlies/trunk/applications/controlies/static/css/calendar.css
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/css/base.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/base.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/base.css	(revision 178)
@@ -0,0 +1,563 @@
+@charset "UTF-8";
+
+/* This file is contains the following sections:
+
+Update: Revision: 20101102 by Martin Mulone
+
+- The new revision contains:
+- Html5, good practice and normalization support.
+- Diferent hacks.
+- The normalization and some tags come from
+  diferent sites so i keep the credits and comments.
+  but the base of support html5 come from:
+  http://html5boilerplate.com/
+
+- ez.css (http://www.ez-css.org/layouts)
+- reset common tags
+- choose default fonts
+- choose link style
+- add bottom line to table rows
+- labels bold and occasionally centered
+- make all input fields the same size
+- add proper separation between h1-h6 and text
+- always indent the first line and add space below paragraphs
+- bullets and numbers style and indent
+- form and table padding
+- code blocks
+- left and right padding to quoted text
+- page layout alignment, width and padding (change this for spaces)
+- column widths (change this to use left_sidebar and right_sidebar)
+- backrgound images and colors (change this for colors)
+- web2py specific (.flash, .error)
+
+Notice:
+- even if you use a different layout/css you may need classes .flash and .error
+- this is all color neutral except for #349C01 (header, links, lines)
+- there are two backrgound images: images/background.png and images/header.png
+
+License: This file is released under BSD and MIT
+
+*/
+
+/*     
+  credit is left where credit is due.
+  additionally, much inspiration was taken from these projects:
+    yui.yahooapis.com/2.8.1/build/base/base.css
+    camendesign.com/design/
+    praegnanz.de/weblog/htmlcssjs-kickstart
+*/
+
+/* 
+  html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
+  v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark
+  html5doctor.com/html-5-reset-stylesheet/
+*/
+
+html, body, div, span, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+abbr, address, cite, code,
+del, dfn, em, img, ins, kbd, q, samp,
+small, strong, sub, sup, var,
+b, i,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section, summary,
+time, mark, audio, video {
+  margin:0;
+  padding:0;
+  border:0;
+  outline:0;
+  font-size:100%;
+  vertical-align:baseline;
+  background:transparent;
+}                  
+
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section { 
+    display:block;
+}
+
+nav ul { list-style:none; }
+
+blockquote, q { quotes:none; }
+
+blockquote:before, blockquote:after,
+q:before, q:after { content:''; content:none; }
+
+a { margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; }
+a:hover { text-decoration: underline }
+
+ins { background-color:#ff9; color:#000; text-decoration:none; }
+
+mark { background-color:#ff9; color:#000; font-style:italic; font-weight:bold; }
+
+del { text-decoration: line-through; }
+
+abbr[title], dfn[title] { border-bottom:1px dotted #000; cursor:help; }
+
+/* tables still need cellspacing="0" in the markup */
+table { border-collapse:collapse; border-spacing:0; }
+
+hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
+
+input, select { vertical-align:middle; }
+/* END RESET CSS */
+
+
+/*
+fonts.css from the YUI Library: developer.yahoo.com/yui/
+          Please refer to developer.yahoo.com/yui/fonts/ for font sizing percentages
+
+There are three custom edits:
+ * remove arial, helvetica from explicit font stack
+ * make the line-height relative and unit-less
+ * remove the pre, code styles
+*/
+body { font:13px/1.231 sans-serif; *font-size:small; } /* hack retained to preserve specificity */
+
+/*table { font-size:inherit; font:100%; }*/
+
+select, input, textarea, button { font:99% sans-serif; }
+
+
+/* normalize monospace sizing 
+ * en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome
+ */
+pre, code, kbd, samp { font-family: monospace, sans-serif; }
+
+/* 
+ * minimal base styles 
+ */
+
+/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */ 
+body, select, input, textarea { color:#444; }
+
+/* Headers (h1,h2,etc) have no default font-size or margin,
+   you'll want to define those yourself. */ 
+ 
+/* www.aestheticallyloyal.com/public/optimize-legibility/ */ 
+h1,h2,h3,h4,h5,h6 { font-weight: bold; }
+
+/* always force a scrollbar in non-IE */ 
+html { overflow-y: scroll; }
+ 
+/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
+a:hover, a:active { outline: none; }
+
+/*a, a:active, a:visited { color:#607890; }*/
+a, a:active, a:visited { color:#D9D9D9; }
+a:hover { color:#fff; }
+/*a:hover { color:#036; } */
+ul, ol { margin-left: 1.8em; }
+ol { list-style-type: decimal; }
+
+/* Remove margins for navigation lists */
+nav ul, nav li { margin: 0; } 
+
+small { font-size:85%; }
+strong, th { font-weight: bold; }
+
+td, td img { vertical-align:top; } 
+
+sub { vertical-align: sub; font-size: smaller; }
+sup { vertical-align: super; font-size: smaller; }
+
+pre { 
+  padding: 15px; 
+  
+  /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */
+  white-space: pre; /* CSS2 */
+  white-space: pre-wrap; /* CSS 2.1 */
+  white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
+  word-wrap: break-word; /* IE */
+}
+
+textarea { overflow: auto; } /* thnx ivannikolic! www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */
+
+.ie6 legend, .ie7 legend { margin-left: -7px; } /* thnx ivannikolic! */
+
+/* align checkboxes, radios, text inputs with their label
+   by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css  */
+input[type="radio"] { vertical-align: text-bottom; }
+input[type="checkbox"] { vertical-align: bottom; }
+.ie7 input[type="checkbox"] { vertical-align: baseline; }
+.ie6 input { vertical-align: text-bottom; }
+
+/* hand cursor on clickable input elements */
+label, input[type=button], input[type=submit], button { cursor: pointer; }
+
+/* webkit browsers add a 2px margin outside the chrome of form elements */  
+button, input, select, textarea { margin: 0; }
+
+/* colors for form validity */
+input:valid, textarea:valid   {  }
+input:invalid, textarea:invalid { 
+      border-radius: 1px;
+    -moz-box-shadow: 0px 0px 5px red; 
+ -webkit-box-shadow: 0px 0px 5px red; 
+         box-shadow: 0px 0px 5px red;
+}
+.no-boxshadow input:invalid, 
+.no-boxshadow textarea:invalid { background-color: #f0dddd; }
+
+
+/* These selection declarations have to be separate.
+   No text-shadow: twitter.com/miketaylr/status/12228805301 
+   Also: hot pink. */
+::-moz-selection{ background: #555; color:#fff; text-shadow: none; }
+::selection { background:#555; color:#fff; text-shadow: none; } 
+
+/*  j.mp/webkit-tap-highlight-color */
+a:link { -webkit-tap-highlight-color: #555; } 
+
+
+/* make buttons play nice in IE:    
+   www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
+button {  width: auto; overflow: visible; }
+ 
+/* bicubic resizing for non-native sized IMG: 
+   code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
+.ie7 img { -ms-interpolation-mode: bicubic; }
+
+/* 
+ * Non-semantic helper classes 
+ */
+
+/* for image replacement */
+.ir { display:block; text-indent:-999em; overflow:hidden; background-repeat: no-repeat; }
+
+/* Hide for both screenreaders and browsers
+   css-discuss.incutio.com/wiki/Screenreader_Visibility */
+.hidden { display:none; } 
+
+/* Hide only visually, but have it available for screenreaders 
+   www.webaim.org/techniques/css/invisiblecontent/ 
+   Solution from: j.mp/visuallyhidden - Thanks Jonathan Neal! */
+.visuallyhidden { position:absolute !important;    
+  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px); }
+
+/* Hide visually and from screenreaders, but maintain layout */
+.invisible { visibility: hidden; }
+
+/* >> The Magnificent CLEARFIX: Updated to prevent margin-collapsing on child elements << j.mp/bestclearfix */
+.clearfix:before, .clearfix:after {
+  content: "\0020"; display: block; height: 0; visibility: hidden;    
+} 
+
+.clearfix:after { clear: both; }
+/* Fix clearfix: blueprintcss.lighthouseapp.com/projects/15318/tickets/5-extra-margin-padding-bottom-of-page */
+.clearfix { zoom: 1; }
+
+
+/*********** layout info (ez.css) ***********/
+/* 2009 -2010 (c) | ez-css.org
+ * ez-plug-min.css :: version 1.1 :: 01182010
+ */
+.ez-wr:after,.ez-box:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ez-wr,.ez-box,.ez-last{display:inline-block;min-height:0}/* \*/ * html .ez-wr,* html .ez-box,* html .ez-last{height:1%}.ez-wr,.ez-box,.ez-last{display:block}/* */.ez-oh{overflow:hidden}* html .ez-oh{overflow:visible}.ez-oa{overflow:auto}.ez-dt{display:table}.ez-it{display:inline-table}.ez-tc{display:table-cell}.ez-ib{display:inline-block}.ez-fl{float:left}* html .ez-fl{margin-right:-3px}.ez-fr{float:right}* html .ez-fr{margin-left:-3px}.ez-25{width:25%}.ez-33{width:33.33%}.ez-50{width:50%}.ez-66{width:66.66%}.ez-75{width:75%}.ez-negmr{margin-right:-1px}* html .ez-negmr{margin-right:-4px}.ez-negmx{margin-right:-1px}.ez-negml{margin-left:-1px}* html .ez-negml{margin-left:-4px}
+
+
+/*********** add bottom line to table rows ***********/
+th, td { padding: 0.1em 0.5em 0.1em 0.5em;}
+
+/*********** labels bold and occasionally centered ***********/
+label {
+    white-space: nowrap;
+}
+label, b, th {
+    font-weight: bold;
+}
+thead th {
+    text-align: center;
+    border-bottom: 1px solid #444;
+}
+/*********** forms and table padding ***********/
+form, table {
+   padding: 5px 10px 5px 10px;
+}
+
+form p{ margin-bottom:10px; font-weight:bold;text-indent:5px;}
+
+/*********** code blocks ***********/
+code {
+   padding: 3px 5px;
+   font-family: Andale Mono, monospace;
+   font-size: 0.9em;
+}
+
+/*********** left and right padding to quoted text ***********/
+blockquote {
+   background: #cccccc;
+   border-left: 30px transparent;
+   border-right: 30px transparent;
+   /*padding: 5px;*/
+}
+
+input[type=text], input[type=password], textarea, select {
+    margin: 2px 15px 2px 5px;
+  /* width: 280px;      */
+    background: #fff;
+    color: #555;
+    border: 1px solid #dedede; 
+    -moz-border-radius: 2px;
+    -webkit-border-radius: 2px;
+    border-radius: 2px;       
+    font-size: 12px;
+}
+
+input[type=text], input[type=password], select {
+    height: 16px;  
+}
+
+select[multiple=multiple] {
+    height: 90px;  
+}
+
+input[type=submit], input[type=button], button {
+    margin: 0px;
+    /*width: 85px;*/
+    height: 22px;    
+    background: #eaeaea;
+    color: #555;
+    border: 1px solid #dedede;
+    -moz-border-radius: 2px;
+    -webkit-border-radius: 2px;
+    border-radius: 2px;    
+}
+
+fieldset { border: 1px solid #dedede; padding: 6px; }
+legend { font-weight: bold; }
+
+input:focus, textarea:focus { background: #fafafa; }
+
+p {text-indent:30px;}
+
+p, blockquote {    
+    margin-bottom: 10px;
+}
+
+h1,h2,h3,h4,h5,h6 { line-height: 170%; }
+h1 { margin-bottom: .5em; border-bottom: solid 1px #d9d9d9; font-family: Arial, Helvetica, sans-serif; font-weight: normal; font-size: 2.0em; text-indent: 5px; letter-spacing: -1px; }
+h1 .fontTitle { color:green; }
+h1 .subTitle { font-size:14px; }
+h2 {font-size: 1.8em;}
+h3 {font-size: 1.4em;}
+h4 {font-size: 1.2em;}
+h5 {font-size: 1.0em;}
+h6 {font-size: 0.8em;}
+
+/*********** page layout alignment, width and padding ***********/
+body { padding: 10px; background: #4c4c4c url(images/grad1.png) 0 0 repeat-x; color: #d9d9d9; font: 12px/normal Tahoma, Arial, Helvetica, sans-serif; }
+#container, #header, #page, #content, #statusbar,
+#footer, #wrapper { display:block; line-height: 170%; }
+#wrapper {width: 900px;}
+#container {
+    margin: 0 auto;
+    padding: 0;
+}
+#wrapper {margin: 0 auto;} 
+/*** #wrapper {background-color: #fff; padding: 5px;}  **/
+#statusbar { margin: 5px 0px 20px 0px;}
+#footer {    
+    margin-top: 30px;    
+    padding: 5px;    
+}
+#statusbar, #footer {    
+/***    background: #eaeaea;  **/
+    border-top: 1px #aaa solid;    
+}
+#logo {
+    width: 68px;
+    height: 62px;
+    background: url(../images/logo.png);
+}
+#appname {
+    color: #cccccc;
+}
+
+#right_sidebar { width: 160px; float:right; display: none; }
+#left_sidebar { width: 160px; float:left; display: none; }
+#content { float: left; /*width: 740px;*//*width: 63%;*/ /*width: 640px; float:left;*/ } /* uncomment this if you are going to use sidebars */
+ 
+.auth_navbar {
+   top: 0px;
+   float: right;
+   padding: 3px 10px 3px 10px; 
+}
+
+/*********** web2py specific ***********/
+div.flash {
+    font-weight: bold;
+    display: none;
+    position: fixed;    
+    padding: 10px;
+    top: 40px;
+    right: 10px;
+    min-width: 280px;
+    opacity: 0.85;
+    margin: 0px 0px 10px 10px;    
+    color: #fff;    
+    vertical-align: middle;
+    cursor: pointer;
+    background: #000;
+    border: 2px solid #fff;
+    -moz-border-radius: 5px;
+    -webkit-border-radius: 5px;
+    z-index: 2;
+}
+div.error {
+    background-color: red;
+    color: white;
+    padding: 3px;
+}
+
+/***************************
+ * CSS 3 Buttons
+ * http://github.com/michenriksen/css3buttons
+ * created by Michael Henriksen
+ * License: Unlicense 
+ * 
+ * *******************/
+
+a.button { display: inline-block; padding: 3px 5px 3px 5px; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 12px; color: #3C3C3D; text-shadow: 1px 1px 0 #FFFFFF; background: #ECECEC url('../images/css3buttons_backgrounds.png') 0 0 no-repeat; white-space: nowrap; overflow: visible; cursor: pointer; text-decoration: none; border: 1px solid #CACACA; -webkit-border-radius: 2px; -moz-border-radius: 2px; -webkit-background-clip: padding-box; border-radius: 2px; outline: none; position: relative; zoom: 1; *display: inline; }
+a.button.primary { font-weight: bold }
+a.button:hover { color: #FFFFFF; border-color: #388AD4; text-decoration: none; text-shadow: -1px -1px 0 rgba(0,0,0,0.3); background-position: 0 -40px; background-color: #2D7DC5; }
+a.button:active,
+a.button.active { background-position: 0 -81px; border-color: #347BBA; background-color: #0F5EA2; color: #FFFFFF; text-shadow: none; }
+a.button:active { top: 1px }
+a.button.negative:hover { color: #FFFFFF; background-position: 0 -121px; background-color: #D84743; border-color: #911D1B; }
+a.button.negative:active,
+a.button.negative.active { background-position: 0 -161px; background-color: #A5211E; border-color: #911D1B; }
+a.button.pill { -webkit-border-radius: 19px; -moz-border-radius: 19px; border-radius: 19px; padding: 2px 10px 2px 10px; }
+a.button.left { -webkit-border-bottom-right-radius: 0px; -webkit-border-top-right-radius: 0px; -moz-border-radius-bottomright: 0px; -moz-border-radius-topright: 0px; border-bottom-right-radius: 0px; border-top-right-radius: 0px; margin-right: 0px; }
+a.button.middle { margin-right: 0px; margin-left: 0px; -webkit-border-radius: 0px; -moz-border-radius: 0px; border-radius: 0px; border-right: none; border-left: none; }
+a.button.right { -webkit-border-bottom-left-radius: 0px; -webkit-border-top-left-radius: 0px; -moz-border-radius-bottomleft: 0px; -moz-border-radius-topleft: 0px; border-top-left-radius: 0px; border-bottom-left-radius: 0px; margin-left: 0px; }
+a.button.left:active,
+a.button.middle:active,
+a.button.right:active { top: 0px }
+a.button.big { font-size: 16px; padding-left: 17px; padding-right: 17px; }
+a.button span.icon { display: inline-block; width: 14px; height: 12px; margin: auto 7px auto auto; position: relative; top: 2px; background-image: url('../images/css3buttons_icons.png'); background-repeat: no-repeat; }
+a.big.button span.icon { top: 0px }
+a.button span.icon.book { background-position: 0 0 }
+a.button:hover span.icon.book { background-position: 0 -15px }
+a.button span.icon.calendar { background-position: 0 -30px }
+a.button:hover span.icon.calendar { background-position: 0 -45px }
+a.button span.icon.chat { background-position: 0 -60px }
+a.button:hover span.icon.chat { background-position: 0 -75px }
+a.button span.icon.check { background-position: 0 -90px }
+a.button:hover span.icon.check { background-position: 0 -103px }
+a.button span.icon.clock { background-position: 0 -116px }
+a.button:hover span.icon.clock { background-position: 0 -131px }
+a.button span.icon.cog { background-position: 0 -146px }
+a.button:hover span.icon.cog { background-position: 0 -161px }
+a.button span.icon.comment { background-position: 0 -176px }
+a.button:hover span.icon.comment { background-position: 0 -190px }
+a.button span.icon.cross { background-position: 0 -204px }
+a.button:hover span.icon.cross { background-position: 0 -219px }
+a.button span.icon.downarrow { background-position: 0 -234px }
+a.button:hover span.icon.downarrow { background-position: 0 -249px }
+a.button span.icon.fork { background-position: 0 -264px }
+a.button:hover span.icon.fork { background-position: 0 -279px }
+a.button span.icon.heart { background-position: 0 -294px }
+a.button:hover span.icon.heart { background-position: 0 -308px }
+a.button span.icon.home { background-position: 0 -322px }
+a.button:hover span.icon.home { background-position: 0 -337px }
+a.button span.icon.key { background-position: 0 -352px }
+a.button:hover span.icon.key { background-position: 0 -367px }
+a.button span.icon.leftarrow { background-position: 0 -382px }
+a.button:hover span.icon.leftarrow { background-position: 0 -397px }
+a.button span.icon.lock { background-position: 0 -412px }
+a.button:hover span.icon.lock { background-position: 0 -427px }
+a.button span.icon.loop { background-position: 0 -442px }
+a.button:hover span.icon.loop { background-position: 0 -457px }
+a.button span.icon.magnifier { background-position: 0 -472px }
+a.button:hover span.icon.magnifier { background-position: 0 -487px }
+a.button span.icon.mail { background-position: 0 -502px }
+a.button:hover span.icon.mail { background-position: 0 -514px }
+a.button span.icon.move { background-position: 0 -526px }
+a.button:hover span.icon.move { background-position: 0 -541px }
+a.button span.icon.pen { background-position: 0 -556px }
+a.button:hover span.icon.pen { background-position: 0 -571px }
+a.button span.icon.pin { background-position: 0 -586px }
+a.button:hover span.icon.pin { background-position: 0 -601px }
+a.button span.icon.plus { background-position: 0 -616px }
+a.button:hover span.icon.plus { background-position: 0 -631px }
+a.button span.icon.reload { background-position: 0 -646px }
+a.button:hover span.icon.reload { background-position: 0 -660px }
+a.button span.icon.rightarrow { background-position: 0 -674px }
+a.button:hover span.icon.rightarrow { background-position: 0 -689px }
+a.button span.icon.rss { background-position: 0 -704px }
+a.button:hover span.icon.rss { background-position: 0 -719px }
+a.button span.icon.tag { background-position: 0 -734px }
+a.button:hover span.icon.tag { background-position: 0 -749px }
+a.button span.icon.trash { background-position: 0 -764px }
+a.button:hover span.icon.trash { background-position: 0 -779px }
+a.button span.icon.unlock { background-position: 0 -794px }
+a.button:hover span.icon.unlock { background-position: 0 -809px }
+a.button span.icon.uparrow { background-position: 0 -824px }
+a.button:hover span.icon.uparrow { background-position: 0 -839px }
+a.button span.icon.user { background-position: 0 -854px }
+a.button:hover span.icon.user { background-position: 0 -869px }
+
+
+
+
+
+
+/*****************************************************
+ *  HERE YOU CAN START TO WRITE YOUR OWN DIVS
+ */
+
+
+
+
+
+
+
+/*
+ * Media queries for responsive design
+ */
+
+@media all and (orientation:portrait) { 
+  /* Style adjustments for portrait mode goes here */
+  
+}
+
+@media all and (orientation:landscape) { 
+  /* Style adjustments for landscape mode goes here */
+  
+}
+
+/* Grade-A Mobile Browsers (Opera Mobile, iPhone Safari, Android Chrome)  
+   Consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
+@media screen and (max-device-width: 480px) {
+  
+  
+  /* Uncomment if you don't want iOS and WinMobile to mobile-optimize the text for you
+     j.mp/textsizeadjust 
+  html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
+}
+
+
+/* 
+ * print styles
+ * inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/ 
+ */
+@media print {
+  * { background: transparent !important; color: #444 !important; text-shadow: none !important; }
+  a, a:visited { color: #444 !important; text-decoration: underline; }
+  a:after { content: " (" attr(href) ")"; } 
+  abbr:after { content: " (" attr(title) ")"; }
+  .ir a:after { content: ""; }  /* Don't show links for images */
+  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
+  thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */ 
+  tr, img { page-break-inside: avoid; }
+  @page { margin: 0.5cm; }
+  p, h2, h3 { orphans: 3; widows: 3; }
+  h2, h3{ page-break-after: avoid; }
+}
+
+
+.centerAuth{ position:absolute; left:50%; margin-left:-190px; width:370px; top:50%; margin-top:150px; }
Index: controlies/trunk/applications/controlies/static/css/dropdown.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/dropdown.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/dropdown.css	(revision 178)
@@ -0,0 +1,67 @@
+@charset "UTF-8";
+
+/**
+ * Horizontal CSS Drop-Down Menu Module
+ *
+ * @file		dropdown.css
+ * @package		Dropdown
+ * @version		0.7.1
+ * @type		Transitional
+ * @stacks		597-599
+ * @browsers	Windows: IE6+, Opera7+, Firefox1+
+ *				Mac OS: Safari2+, Firefox2+
+ *
+ * @link		http://www.lwis.net/
+ * @copyright	2006-2008 Live Web Institute. All Rights Reserved.
+ *
+ */
+
+ul.dropdown,
+ul.dropdown li,
+ul.dropdown ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+ul.dropdown {
+ position: relative;
+ z-index: 597;
+ float: left;
+}
+
+ul.dropdown li {
+ float: left;
+ line-height: 1.3em;
+ vertical-align: middle;
+ zoom: 1;
+}
+
+ul.dropdown li.hover,
+ul.dropdown li:hover {
+ position: relative;
+ z-index: 599;
+ cursor: default;
+}
+
+ul.dropdown ul {
+ visibility: hidden;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 598;
+ width: 100%;
+}
+
+ul.dropdown ul li {
+ float: none;
+}
+
+ul.dropdown ul ul {
+ top: 1px;
+ left: 99%;
+}
+
+ul.dropdown li:hover > ul {
+ visibility: visible;
+}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/css/images/grad1.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/css/images/grad1.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/css/images/dropdown_pane.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/css/images/dropdown_pane.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/css/images/dropdown_pane_8bit.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/css/images/dropdown_pane_8bit.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/css/images/icon.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/css/images/icon.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/css/images/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/css/images/favicon.ico
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/css/helper.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/helper.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/helper.css	(revision 178)
@@ -0,0 +1,23 @@
+
+* { margin: 0; padding: 0; }
+body { padding: 10px; background: #4c4c4c url(images/grad1.png) 0 0 repeat-x; color: #d9d9d9; font: 12px/normal Tahoma, Arial, Helvetica, sans-serif; }
+h1 { margin-bottom: .5em; border-bottom: solid 1px #d9d9d9; font-family: Arial, Helvetica, sans-serif; font-weight: normal; font-size: 220%; text-indent: 5px; letter-spacing: -1px; }
+h1 .fontTitle { color:green; }
+h1 .subTitle { font-size:14px; }
+cite { float: right; }
+ul.classic { list-style: disc; margin-bottom: 1em; padding-left: 2em; }
+div.section { clear: both; padding-top: 50px; }
+
+.table1 { float: right; margin-bottom: 2em; border: solid 1px #eee; }
+.table1 caption { color: #fff; text-align: center; padding-bottom: 5px; }
+.table1 th, .table1 td { padding: 7px; }
+.table1 th, .table1 thead td { background-color: lightyellow; color: #000; }
+.table1 tbody td { background-color: #fff; color: #000; }
+.table1 tbody th { text-align: right; }
+
+* html ul.dropdown ul { background-image: url(images/dropdown_pane_8bit.png); }
+
+
+
+form p{ margin-bottom:10px; font-weight:bold;}
+form input{ border:1px solid #DDD; }
Index: controlies/trunk/applications/controlies/static/css/superfish-navbar.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/superfish-navbar.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/superfish-navbar.css	(revision 178)
@@ -0,0 +1,93 @@
+
+/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
+.sf-navbar {
+	background:		#BDD2FF;
+	height:			2.5em;
+	padding-bottom:	2.5em;
+	position:		relative;
+}
+.sf-navbar li {
+	background:		#AABDE6;
+	position:		static;
+}
+.sf-navbar a {
+	border-top:		none;
+}
+.sf-navbar li ul {
+	width:			44em; /*IE6 soils itself without this*/
+}
+.sf-navbar li li {
+	background:		#BDD2FF;
+	position:		relative;
+}
+.sf-navbar li li ul {
+	width:			13em;
+}
+.sf-navbar li li li {
+	width:			100%;
+}
+.sf-navbar ul li {
+	width:			auto;
+	float:			left;
+}
+.sf-navbar a, .sf-navbar a:visited {
+	border:			none;
+}
+.sf-navbar li.current {
+	background:		#BDD2FF;
+}
+.sf-navbar li:hover,
+.sf-navbar li.sfHover,
+.sf-navbar li li.current,
+.sf-navbar a:focus, .sf-navbar a:hover, .sf-navbar a:active {
+	background:		#BDD2FF;
+}
+.sf-navbar ul li:hover,
+.sf-navbar ul li.sfHover,
+ul.sf-navbar ul li:hover li,
+ul.sf-navbar ul li.sfHover li,
+.sf-navbar ul a:focus, .sf-navbar ul a:hover, .sf-navbar ul a:active {
+	background:		#D1DFFF;
+}
+ul.sf-navbar li li li:hover,
+ul.sf-navbar li li li.sfHover,
+.sf-navbar li li.current li.current,
+.sf-navbar ul li li a:focus, .sf-navbar ul li li a:hover, .sf-navbar ul li li a:active {
+	background:		#E6EEFF;
+}
+ul.sf-navbar .current ul,
+ul.sf-navbar ul li:hover ul,
+ul.sf-navbar ul li.sfHover ul {
+	left:			0;
+	top:			2.5em; /* match top ul list item height */
+}
+ul.sf-navbar .current ul ul {
+	top: 			-999em;
+}
+
+.sf-navbar li li.current > a {
+	font-weight:	bold;
+}
+
+/*** point all arrows down ***/
+/* point right for anchors in subs */
+.sf-navbar ul .sf-sub-indicator { background-position: -10px -100px; }
+.sf-navbar ul a > .sf-sub-indicator { background-position: 0 -100px; }
+/* apply hovers to modern browsers */
+.sf-navbar ul a:focus > .sf-sub-indicator,
+.sf-navbar ul a:hover > .sf-sub-indicator,
+.sf-navbar ul a:active > .sf-sub-indicator,
+.sf-navbar ul li:hover > a > .sf-sub-indicator,
+.sf-navbar ul li.sfHover > a > .sf-sub-indicator {
+	background-position: -10px -100px; /* arrow hovers for modern browsers*/
+}
+
+/*** remove shadow on first submenu ***/
+.sf-navbar > li > ul {
+	background: transparent;
+	padding: 0;
+	-moz-border-radius-bottomleft: 0;
+	-moz-border-radius-topright: 0;
+	-webkit-border-top-right-radius: 0;
+	-webkit-border-bottom-left-radius: 0;
+}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/css/superfish-vertical.css
===================================================================
--- controlies/trunk/applications/controlies/static/css/superfish-vertical.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/css/superfish-vertical.css	(revision 178)
@@ -0,0 +1,23 @@
+/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/
+.sf-vertical, .sf-vertical li {
+	width:	10em;
+}
+/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */
+.sf-vertical li:hover ul,
+.sf-vertical li.sfHover ul {
+	left:	10em; /* match ul width */
+	top:	0;
+}
+
+/*** alter arrow directions ***/
+.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */
+.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/
+
+/* hover arrow direction for modern browsers*/
+.sf-vertical a:focus > .sf-sub-indicator,
+.sf-vertical a:hover > .sf-sub-indicator,
+.sf-vertical a:active > .sf-sub-indicator,
+.sf-vertical li:hover > a > .sf-sub-indicator,
+.sf-vertical li.sfHover > a > .sf-sub-indicator {
+	background-position: -10px 0; /* arrow hovers for modern browsers*/
+}
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/ui/js/jquery-ui-1.8.5.custom.min.js
===================================================================
--- controlies/trunk/applications/controlies/static/ui/js/jquery-ui-1.8.5.custom.min.js	(nonexistent)
+++ controlies/trunk/applications/controlies/static/ui/js/jquery-ui-1.8.5.custom.min.js	(revision 178)
@@ -0,0 +1,778 @@
+/*!
+ * jQuery UI 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.5",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
+NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
+"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
+if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind("mousedown.ui-disableSelection selectstart.ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
+"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c.style(this,h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c.style(this,
+h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
+c(function(){var a=document.createElement("div"),b=document.body;c.extend(a.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.appendChild(a).offsetHeight===100;b.removeChild(a).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,
+d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
+;/*!
+ * jQuery UI Widget 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
+a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)===
+"_")return h;e?this.each(function(){var g=b.data(this,a);if(!g)throw"cannot call methods on "+a+" prior to initialization; attempted to call method '"+d+"'";if(!b.isFunction(g[d]))throw"no such method '"+d+"' for "+a+" widget instance";var i=g[d].apply(g,f);if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",
+widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}b.each(d,function(f,h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",
+false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
+;/*!
+ * jQuery UI Mouse 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&
+this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();
+return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&
+this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-
+a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
+;/*
+ * jQuery UI Position 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Position
+ */
+(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.scrollTo&&d.document){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j=
+{top:b.of.pageY,left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/
+2;if(b.at[1]==="bottom")j.top+=k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+parseInt(c.curCSS(this,"marginRight",true))||0,w=m+q+parseInt(c.curCSS(this,"marginBottom",true))||0,i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]===
+"center")i.top-=m/2;i.left=parseInt(i.left);i.top=parseInt(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();
+b.left=d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];
+b.left+=a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=
+c(b),g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
+;/*
+ * jQuery UI Draggable 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Draggables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
+"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
+this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
+this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
+d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
+this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,
+b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
+a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
+0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
+this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
+(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
+"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&
+a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),
+10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
+this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
+f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+
+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+
+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-
+this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=
+this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.5"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");
+if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;
+c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=
+1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;
+this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=
+this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=
+d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;
+if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!=
+"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-
+b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
+c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
+width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&
+o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=
+p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&
+(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
+10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
+;/*
+ * jQuery UI Droppable 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Droppables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.draggable.js
+ */
+(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
+a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
+this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
+this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
+d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
+a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.5"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
+switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
+i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
+"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
+a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
+d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
+;/*
+ * jQuery UI Resizable 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
+_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
+top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
+this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
+nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
+String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
+this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
+if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
+d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
+this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
+this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
+b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
+f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
+b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=
+a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
+k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),
+c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
+this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,
+arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,
+{version:"1.8.5"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,
+function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=
+(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=
+false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-
+a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",
+b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top",
+"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,
+f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=
+a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+
+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&
+e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",
+height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=
+d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
+;/*
+ * jQuery UI Selectable 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
+selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
+c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
+c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
+this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
+a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
+!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
+e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.5"})})(jQuery);
+;/*
+ * jQuery UI Sortable 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Sortables
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
+this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
+arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
+c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
+{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
+if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
+a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
+if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
+c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
+document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",
+null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):
+d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||
+"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+
+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?
+2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},
+_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=
+this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=
+this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");
+if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=
+0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=
+this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},
+update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=
+null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));
+this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,
+null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||
+d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a==
+"string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition==
+"absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==
+"relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},
+_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-
+this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),
+10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?
+this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=
+this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+
+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?
+g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
+e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==
+f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",
+f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",
+g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=
+0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
+this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});
+d.extend(d.ui.sortable,{version:"1.8.5"})})(jQuery);
+;/*
+ * jQuery UI Accordion 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
+a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
+if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var f=d.closest(".ui-accordion-header");a.active=f.length?f:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",function(g){return a._keydown(g)}).next().attr("role",
+"tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(g){a._clickHandler.call(a,g,this);g.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);
+this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
+this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
+b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,f=this.headers.index(a.target),g=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:g=this.headers[(f+1)%d];break;case b.LEFT:case b.UP:g=this.headers[(f-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
+a.preventDefault()}if(g){c(a.target).attr("tabIndex",-1);c(g).attr("tabIndex",0);g.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
+c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
+if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
+a.next().addClass("ui-accordion-content-active")}h=a.next();f=this.active.next();g={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):h,oldContent:f};d=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(h,f,g,b,d)}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
+this.active.next().addClass("ui-accordion-content-active");var f=this.active.next(),g={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:f},h=this.active=c([]);this._toggle(h,f,g)}},_toggle:function(a,b,d,f,g){var h=this,e=h.options;h.toShow=a;h.toHide=b;h.data=d;var j=function(){if(h)return h._completed.apply(h,arguments)};h._trigger("changestart",null,h.data);h.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&f?{toShow:c([]),toHide:b,complete:j,
+down:g,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:g,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;f=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!f[k]&&!c.easing[k])k="slide";f[k]||(f[k]=function(l){this.slide(l,{easing:k,duration:i||700})});
+f[k](d)}else{if(e.collapsible&&f)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.5",animations:{slide:function(a,
+b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),f=0,g={},h={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){h[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);g[i]={value:j[1],
+unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(h,{step:function(j,i){if(i.prop=="height")f=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=f*g[i.prop].value+g[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",
+paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
+;/*
+ * jQuery UI Autocomplete 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *	jquery.ui.position.js
+ */
+(function(e){e.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var a=this,b=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!a.options.disabled){var d=e.ui.keyCode;switch(c.keyCode){case d.PAGE_UP:a._move("previousPage",
+c);break;case d.PAGE_DOWN:a._move("nextPage",c);break;case d.UP:a._move("previous",c);c.preventDefault();break;case d.DOWN:a._move("next",c);c.preventDefault();break;case d.ENTER:case d.NUMPAD_ENTER:a.menu.element.is(":visible")&&c.preventDefault();case d.TAB:if(!a.menu.active)return;a.menu.select(c);break;case d.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);
+break}}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("<ul></ul>").addClass("ui-autocomplete").appendTo(e(this.options.appendTo||"body",b)[0]).mousedown(function(c){var d=a.menu.element[0];
+c.target===d&&setTimeout(function(){e(document).one("mousedown",function(f){f.target!==a.element[0]&&f.target!==d&&!e.ui.contains(d,f.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,d){d=d.item.data("item.autocomplete");false!==a._trigger("focus",null,{item:d})&&/^key/.test(c.originalEvent.type)&&a.element.val(d.value)},selected:function(c,d){d=d.item.data("item.autocomplete");var f=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();
+a.previous=f}if(false!==a._trigger("select",c,{item:d})){a.term=d.value;a.element.val(d.value)}a.close(c);a.selectedItem=d},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
+this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a,b){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(e(b||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var a=this,b,c;if(e.isArray(this.options.source)){b=this.options.source;this.source=function(d,f){f(e.ui.autocomplete.filter(b,d.term))}}else if(typeof this.options.source==="string"){c=this.options.source;this.source=
+function(d,f){a.xhr&&a.xhr.abort();a.xhr=e.getJSON(c,d,function(g,i,h){h===a.xhr&&f(g);a.xhr=null})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search")!==false)return this._search(a)},_search:function(a){this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(a.length){a=
+this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return e.map(a,function(b){if(typeof b===
+"string")return{label:b,value:b};return e.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1),c;this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position(e.extend({of:this.element},this.options.position));a=b.width("").outerWidth();c=this.element.outerWidth();b.outerWidth(Math.max(a,c))},_renderMenu:function(a,b){var c=this;e.each(b,function(d,f){c._renderItem(a,f)})},
+_renderItem:function(a,b){return e("<li></li>").data("item.autocomplete",b).append(e("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},
+filter:function(a,b){var c=new RegExp(e.ui.autocomplete.escapeRegex(b),"i");return e.grep(a,function(d){return c.test(d.label||d.value||d)})}})})(jQuery);
+(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(e(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
+-1).mouseenter(function(b){a.activate(b,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.attr("scrollTop"),f=this.element.height();if(c<0)this.element.attr("scrollTop",d+c);else c>=f&&this.element.attr("scrollTop",d+c-f+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})},
+deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);
+a.length?this.activate(c,a):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(":first"));else{var b=this.active.offset().top,c=this.element.height(),d=this.element.children("li").filter(function(){var f=e(this).offset().top-b-c+e(this).height();return f<10&&f>-10});d.length||(d=this.element.children(":last"));this.activate(a,d)}else this.activate(a,this.element.children(!this.active||
+this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last"));else{var b=this.active.offset().top,c=this.element.height();result=this.element.children("li").filter(function(){var d=e(this).offset().top-b+c-e(this).height();return d<10&&d>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},
+hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
+;/*
+ * jQuery UI Button 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
+i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
+function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
+b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
+g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
+c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=
+this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
+this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
+true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
+c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
+this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":visible").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end().end()},
+destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
+;/*
+ * jQuery UI Dialog 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ *  jquery.ui.button.js
+ *	jquery.ui.draggable.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.position.js
+ *	jquery.ui.resizable.js
+ */
+(function(c,j){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");
+if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",f=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog",
+"aria-labelledby":f}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var e=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);
+return false}).appendTo(e);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",f).html(d).prependTo(e);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;e.find("*").add(e).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&
+g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");
+b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,f=d.options;if(f.modal&&!a||!f.stack&&!f.modal)return d._trigger("focus",b);if(f.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=
+f.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);
+a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(f){if(f.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),e=g.filter(":first");g=g.filter(":last");if(f.target===g[0]&&!f.shiftKey){e.focus(1);return false}else if(f.target===e[0]&&f.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,
+f=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(f);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(e,h){h=c.isFunction(h)?{click:h,text:e}:h;e=c("<button></button>",h).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&e.button()});f.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(e){return{position:e.position,
+offset:e.offset}}var b=this,d=b.options,f=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(e,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",e,a(h))},drag:function(e,h){b._trigger("drag",e,a(h))},stop:function(e,h){d.position=[h.position.left-f.scrollLeft(),h.position.top-f.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);
+b._trigger("dragStop",e,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}a=a===j?this.options.resizable:a;var d=this,f=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:d._minHeight(),
+handles:a,start:function(e,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",e,b(h))},resize:function(e,h){d._trigger("resize",e,b(h))},stop:function(e,h){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();d._trigger("resizeStop",e,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,
+a.height)},_position:function(a){var b=[],d=[0,0],f;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,e){if(+b[g]===b[g]){d[g]=b[g];b[g]=e}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(f=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(a);
+f||this.uiDialog.hide()},_setOption:function(a,b){var d=this,f=d.uiDialog,g=f.is(":data(resizable)"),e=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);e=true;break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":f.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case "draggable":b?
+d._makeDraggable():f.draggable("destroy");break;case "height":e=true;break;case "maxHeight":g&&f.resizable("option","maxHeight",b);e=true;break;case "maxWidth":g&&f.resizable("option","maxWidth",b);e=true;break;case "minHeight":g&&f.resizable("option","minHeight",b);e=true;break;case "minWidth":g&&f.resizable("option","minWidth",b);e=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&f.resizable("destroy");g&&typeof b==="string"&&f.resizable("option","handles",b);!g&&b!==false&&
+d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break;case "width":e=true;break}c.Widget.prototype._setOption.apply(d,arguments);e&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:c.support.minHeight?"auto":Math.max(a.minHeight-
+b,0)}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.5",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),
+function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=
+(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,
+b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<
+b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
+;/*
+ * jQuery UI Slider 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.mouse.js
+ *	jquery.ui.widget.js
+ */
+(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");b.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
+this.range=d([]);if(b.range){if(b.range===true){this.range=d("<div></div>");if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(b.range==="min"||b.range==="max")this.range.addClass("ui-slider-range-"+b.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
+if(b.values&&b.values.length)for(;d(".ui-slider-handle",this.element).length<b.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();
+else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!a.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
+false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");h=a._start(c,f);if(h===false)return}break}i=a.options.step;h=a.options.values&&a.options.values.length?(g=a.values(f)):(g=a.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=a._valueMin();break;case d.ui.keyCode.END:g=a._valueMax();break;case d.ui.keyCode.PAGE_UP:g=a._trimAlignValue(h+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=a._trimAlignValue(h-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
+a._valueMax())return;g=a._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===a._valueMin())return;g=a._trimAlignValue(h-i);break}a._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(c,e);a._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
+this._mouseDestroy();return this},_mouseCapture:function(a){var b=this.options,c,e,f,h,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(b.range===true&&this.values(1)===b.min){g+=1;f=d(this.handles[g])}if(this._start(a,
+g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();b=f.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-f.width()/2,top:a.pageY-b.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
+this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
+this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
+c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var e;if(this.options.values&&this.options.values.length){e=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>e||b===1&&c<e))c=e;if(c!==this.values(b)){e=this.values();e[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
+a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
+this._trimAlignValue(a);this._refreshValue();this._change(null,0)}return this._value()},values:function(a,b){var c,e,f;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):this.value();
+else return this._values()},_setOption:function(a,b){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
+this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
+return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<this._valueMin())return this._valueMin();if(a>this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=a%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
+this.options.range,b=this.options,c=this,e=!this._animateOff?b.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},b.animate);if(k===1)c.range[e?"animate":"css"]({width:f-
+g+"%"},{queue:false,duration:b.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},b.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:b.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},
+b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.5"})})(jQuery);
+;/*
+ * jQuery UI Tabs 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ *	jquery.ui.widget.js
+ */
+(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(a,e){if(a=="selected")this.options.collapsible&&
+e==this.options.selected||this.select(e);else{this.options[a]=e;this._tabify()}},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var a=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[a].concat(d.makeArray(arguments)))},_ui:function(a,e){return{tab:a,panel:e,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var a=
+d(this);a.html(a.data("label.tabs")).removeData("label.tabs")})},_tabify:function(a){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var b=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
+(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))b.panels=b.panels.add(b._sanitizeSelector(i));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=b._tabId(f);f.href="#"+i;f=d("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(b.panels[g-1]||b.list);f.data("destroy.tabs",true)}b.panels=b.panels.add(f)}else c.disabled.push(g)});if(a){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
+this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(b._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
+this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return b.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
+if(c.selected>=0&&this.anchors.length){this.panels.eq(c.selected).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");b.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[c.selected],b.panels[c.selected]))});this.load(c.selected)}d(window).bind("unload",function(){b.lis.add(b.anchors).unbind(".tabs");b.lis=b.anchors=b.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[c.collapsible?"addClass":
+"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);a=0;for(var j;j=this.lis[a];a++)d(j)[d.inArray(a,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs",
+function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);b._trigger("show",
+null,b._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");b._trigger("show",null,b._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){b.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);b.element.dequeue("tabs")})}:function(g,f){b.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");b.element.dequeue("tabs")};this.anchors.bind(c.event+".tabs",
+function(){var g=this,f=d(g).closest("li"),i=b.panels.filter(":not(.ui-tabs-hide)"),l=d(b._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||b.panels.filter(":animated").length||b._trigger("select",null,b._ui(this,l[0]))===false){this.blur();return false}c.selected=b.anchors.index(this);b.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=-1;c.cookie&&b._cookie(c.selected,c.cookie);b.element.queue("tabs",
+function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&b._cookie(c.selected,c.cookie);b.element.queue("tabs",function(){r(g,l)});b.load(b.anchors.index(this));this.blur();return false}c.cookie&&b._cookie(c.selected,c.cookie);if(l.length){i.length&&b.element.queue("tabs",function(){s(g,i)});b.element.queue("tabs",function(){r(g,l)});b.load(b.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",
+function(){return false})},_getIndex:function(a){if(typeof a=="string")a=this.anchors.index(this.anchors.filter("[href$="+a+"]"));return a},destroy:function(){var a=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=
+e;var b=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){b.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});a.cookie&&this._cookie(null,a.cookie);return this},add:function(a,e,b){if(b===p)b=this.anchors.length;
+var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,a).replace(/#\{label\}/g,e));a=!a.indexOf("#")?a.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=d("#"+a);j.length||(j=d(h.panelTemplate).attr("id",a).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(b>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[b]);
+j.insertBefore(this.panels[b])}h.disabled=d.map(h.disabled,function(k){return k>=b?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[b],this.panels[b]));return this},remove:function(a){a=this._getIndex(a);var e=this.options,b=this.lis.eq(a).remove(),c=this.panels.eq(a).remove();
+if(b.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(a+(a+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=a}),function(h){return h>=a?--h:h});this._tabify();this._trigger("remove",null,this._ui(b.find("a")[0],c[0]));return this},enable:function(a){a=this._getIndex(a);var e=this.options;if(d.inArray(a,e.disabled)!=-1){this.lis.eq(a).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(b){return b!=a});this._trigger("enable",null,
+this._ui(this.anchors[a],this.panels[a]));return this}},disable:function(a){a=this._getIndex(a);var e=this.options;if(a!=e.selected){this.lis.eq(a).addClass("ui-state-disabled");e.disabled.push(a);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))}return this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;this.anchors.eq(a).trigger(this.options.event+".tabs");return this},
+load:function(a){a=this._getIndex(a);var e=this,b=this.options,c=this.anchors.eq(a)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(a).addClass("ui-state-processing");if(b.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(b.spinner)}this.xhr=d.ajax(d.extend({},b.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(c.hash)).html(k);e._cleanup();b.cache&&d.data(c,"cache.tabs",
+true);e._trigger("load",null,e._ui(e.anchors[a],e.panels[a]));try{b.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[a],e.panels[a]));try{b.ajaxOptions.error(k,n,a,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(a,
+e){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.5"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(a,e){var b=this,c=this.options,h=b._rotate||(b._rotate=function(j){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var k=c.selected;b.select(++k<b.anchors.length?k:0)},a);j&&j.stopPropagation()});e=b._unrotate||(b._unrotate=!e?function(j){j.clientX&&b.rotate(null)}:
+function(){t=c.selected;h()});if(a){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
+;/*
+ * jQuery UI Datepicker 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker
+ *
+ * Depends:
+ *	jquery.ui.core.js
+ */
+(function(d,G){function L(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
+"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
+"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
+minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}function E(a,b){d.extend(a,
+b);for(var c in b)if(b[c]==null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.5"}});var y=(new Date).getTime();d.extend(L.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=
+f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
+_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
+b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
+""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
+c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
+true);this._updateDatepicker(b);this._updateAlternate(b)}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});b=b&&b.constructor==
+Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);
+d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},
+_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=
+d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;
+for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&
+this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&
+!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass,b.dpDiv).add(d("td."+d.datepicker._currentClass,b.dpDiv));c[0]?d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();
+return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||
+a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,
+a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));
+var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||
+a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);
+d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&
+d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=d.datepicker._getBorders(b.dpDiv);b.dpDiv.find("iframe.ui-datepicker-cover").css({left:-i[0],top:-i[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,
+h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");
+this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");
+this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);var e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");
+a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus()},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),
+k=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>k&&k>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"];
+a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():
+"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&
+!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;
+b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=
+this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=
+d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,
+"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b==
+"object"?b.toString():b+"";if(b=="")return null;for(var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff,f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,k=c=-1,l=-1,u=-1,j=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"?4:p=="o"?
+3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,w,H){p=o(p)?H:w;for(w=0;w<p.length;w++)if(b.substr(s,p[w].length).toLowerCase()==p[w].toLowerCase()){s+=p[w].length;return w+1}throw"Unknown name at position "+s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(j)if(a.charAt(z)=="'"&&!o("'"))j=false;else r();else switch(a.charAt(z)){case "d":l=m("d");
+break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":k=m("m");break;case "M":k=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();k=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();k=v.getMonth()+1;l=v.getDate();break;case "'":if(o("'"))r();else j=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>
+-1){k=1;l=u;do{e=this._getDaysInMonth(c,k-1);if(l<=e)break;k++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,k-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=k||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*
+60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=j+1<a.length&&a.charAt(j+1)==o)&&j++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},k=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var j=0;j<a.length;j++)if(u)if(a.charAt(j)==
+"'"&&!i("'"))u=false;else l+=a.charAt(j);else switch(a.charAt(j)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=k("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=k("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+=
+"'";else u=true;break;default:l+=a.charAt(j)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},
+_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,
+this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,k=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,j=u.exec(h);j;){switch(j[2]||"d"){case "d":case "D":g+=
+parseInt(j[1],10);break;case "w":case "W":g+=parseInt(j[1],10)*7;break;case "m":case "M":l+=parseInt(j[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(k,l));break;case "y":case "Y":k+=parseInt(j[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(k,l));break}j=u.exec(h)}return new Date(k,l,g)};if(b=(b=b==null?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):b)&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},
+_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?
+"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),k=
+this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),j=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=j&&n<j?j:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,
+"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-k,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+k+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+
+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+k,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+k+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
+(c?"w":"e")+'">'+r+"</span></a>";k=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;k=!h?k:this.formatDate(k,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
+y+".datepicker._gotoToday('#"+a.id+"');\">"+k+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;k=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),w=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var N=
+"",D=0;D<i[1];D++){var J=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?
+f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,j,o,C>0||D>0,z,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=k?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
+A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!k?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,K=B&&!H||!F[0]||j&&q<j||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==J.getTime()&&g==a.selectedMonth&&
+a._keyEvent||M.getTime()==q.getTime()&&M.getTime()==J.getTime()?" "+this._dayOverClass:"")+(K?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!w?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!B||w)&&F[2]?' title="'+F[2]+'"':"")+(K?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!w?"&#xa0;":K?'<span class="ui-state-default">'+q.getDate()+
+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==J.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");N+=x}I+=N}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
+"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var k=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),j='<div class="ui-datepicker-title">',o="";if(h||!k)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+
+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(j+=o+(h||!(k&&l)?"&#xa0;":""));if(h||!l)j+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,
+i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(j+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)j+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";j+="</select>"}j+=this._get(a,"yearSuffix");if(u)j+=(h||!(k&&l)?"&#xa0;":"")+o;j+="</div>";return j},_adjustInstDate:function(a,b,c){var e=
+a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
+"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
+c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
+"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
+function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));
+return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new L;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.5";window["DP_jQuery_"+y]=d})(jQuery);
+;/*
+ * jQuery UI Progressbar 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar
+ *
+ * Depends:
+ *   jquery.ui.core.js
+ *   jquery.ui.widget.js
+ */
+(function(b,c){b.widget("ui.progressbar",{options:{value:0},min:0,max:100,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
+this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===c)return this._value();this._setOption("value",a);return this},_setOption:function(a,d){if(a==="value"){this.options.value=d;this._refreshValue();this._trigger("change")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.max,Math.max(this.min,a))},_refreshValue:function(){var a=this.value();this.valueDiv.toggleClass("ui-corner-right",
+a===this.max).width(a+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.5"})})(jQuery);
+;/*
+ * jQuery UI Effects 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/
+ */
+jQuery.effects||function(f,j){function l(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
+16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return m.transparent;return m[f.trim(c).toLowerCase()]}function r(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return l(b)}function n(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
+a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function o(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in s||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function t(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
+a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:f.fx.speeds[b]||f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=r(b.elem,a);b.end=l(b.end);b.colorInit=
+true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var m={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,
+183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,
+165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},p=["add","remove","toggle"],s={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.each(function(){var e=f(this),g=e.attr("style")||" ",h=o(n.call(this)),q,u=e.attr("className");f.each(p,function(v,
+i){c[i]&&e[i+"Class"](c[i])});q=o(n.call(this));e.attr("className",u);e.animate(t(h,q),a,b,function(){f.each(p,function(v,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)})})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?
+f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.5",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==
+null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();
+var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});
+c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c||
+typeof c=="number"||f.fx.speeds[c]||!f.effects[c])return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||!f.effects[c])return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||!f.effects[c]||typeof c==
+"boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,
+a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=
+e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+
+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/
+2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*
+a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
+return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,
+a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
+;/*
+ * jQuery UI Effects Blind 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Blind
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","left"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,g);b.effects.removeWrapper(a);
+c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
+;/*
+ * jQuery UI Effects Bounce 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Bounce
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","left"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
+3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
+b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
+;/*
+ * jQuery UI Effects Clip 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Clip
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","left","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,c/2)}var h={};h[g.size]=
+f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Drop 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Drop
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","left","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e=="show"?1:
+0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Explode 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Explode
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
+0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
+e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
+;/*
+ * jQuery UI Effects Fade 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fade
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Fold 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fold
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100*
+f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
+;/*
+ * jQuery UI Effects Highlight 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Highlight
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
+this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Pulsate 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Pulsate
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
+a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
+;/*
+ * jQuery UI Effects Scale 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Scale
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
+b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
+1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","left","width","height","overflow","opacity"],g=["position","top","left","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=c.effects.setMode(a,
+b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};if(m=="box"||m=="both"){if(d.from.y!=
+d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);a.css("overflow","hidden").css(a.from);
+if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);child.to=c.effects.setTransition(child,
+f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,n?e:g);c.effects.removeWrapper(a);b.callback&&
+b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Shake 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Shake
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","left"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=(h=="pos"?"-=":"+=")+
+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
+;/*
+ * jQuery UI Effects Slide 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Slide
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","left"],e=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(e=="show")a.css(f,b=="pos"?-g:g);var i={};i[f]=(e=="show"?b=="pos"?
+"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
+;/*
+ * jQuery UI Effects Transfer 1.8.5
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Transfer
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
+b.dequeue()})})}})(jQuery);
+;
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/jquery-ui-1.8.5.custom.css
===================================================================
--- controlies/trunk/applications/controlies/static/ui/css/cupertino/jquery-ui-1.8.5.custom.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/ui/css/cupertino/jquery-ui-1.8.5.custom.css	(revision 178)
@@ -0,0 +1,572 @@
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; }
+.ui-widget-content a { color: #362b36; }
+.ui-widget-header { border: 1px solid #aed0ea; background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.ui-widget-header a { color: #222222; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aed0ea; background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2779aa; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2779aa; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #74b2e2; background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #0070a3; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #2694e8; background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #f9dd34; background: #ffef8f url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_3d80b3_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_2694e8_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; }
+.ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+.ui-corner-top { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+.ui-corner-right {  -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
+.ui-corner-left { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
+.ui-corner-all { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
+.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }/*
+ * jQuery UI Autocomplete @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_72a7cf_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_72a7cf_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_2694e8_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_2694e8_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_3d80b3_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_3d80b3_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_ffffff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/jquery-ui-1.8.5.custom.css
===================================================================
--- controlies/trunk/applications/controlies/static/ui/css/redmond/jquery-ui-1.8.5.custom.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/ui/css/redmond/jquery-ui-1.8.5.custom.css	(revision 178)
@@ -0,0 +1,572 @@
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
+.ui-widget-content a { color: #222222; }
+.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; }
+.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-right {  -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
+.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
+.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }/*
+ * jQuery UI Autocomplete @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_6da8d5_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_6da8d5_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_469bdd_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_469bdd_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_217bc0_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_217bc0_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_d8e7f3_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_d8e7f3_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_f9bd01_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_f9bd01_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_cd0a0a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/redmond/images/ui-icons_cd0a0a_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/ui-lightness/jquery-ui-1.8.9.custom.css
===================================================================
--- controlies/trunk/applications/controlies/static/ui/css/ui-lightness/jquery-ui-1.8.9.custom.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/ui/css/ui-lightness/jquery-ui-1.8.9.custom.css	(revision 178)
@@ -0,0 +1,573 @@
+/*
+ * jQuery UI CSS Framework 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
+.ui-widget-content a { color: #333333; }
+.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
+.ui-widget-header a { color: #ffffff; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
+.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
+ * jQuery UI Resizable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu 1.8.9
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar 1.8.9
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/jquery-ui-1.8.5.custom.css
===================================================================
--- controlies/trunk/applications/controlies/static/ui/css/smoothness/jquery-ui-1.8.5.custom.css	(nonexistent)
+++ controlies/trunk/applications/controlies/static/ui/css/smoothness/jquery-ui-1.8.5.custom.css	(revision 178)
@@ -0,0 +1,572 @@
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
+
+
+/* Component containers
+----------------------------------*/
+.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
+.ui-widget .ui-widget { font-size: 1em; }
+.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
+.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
+.ui-widget-content a { color: #222222; }
+.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
+.ui-widget-header a { color: #222222; }
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
+.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
+.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
+.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
+.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
+.ui-widget :active { outline: none; }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
+.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
+.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
+.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
+.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
+.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
+.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
+.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
+.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
+.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
+.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
+.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
+
+/* positioning */
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-off { background-position: -96px -144px; }
+.ui-icon-radio-on { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
+.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
+.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
+.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
+.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
+
+/* Overlays */
+.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
+.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
+.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
+.ui-accordion .ui-accordion-li-fix { display: inline; }
+.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
+.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
+.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
+.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
+.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
+.ui-accordion .ui-accordion-content-active { display: block; }/*
+ * jQuery UI Autocomplete @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
+.ui-autocomplete { position: absolute; cursor: default; }	
+
+/* workarounds */
+* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
+
+/*
+ * jQuery UI Menu @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
+.ui-menu {
+	list-style:none;
+	padding: 2px;
+	margin: 0;
+	display:block;
+	float: left;
+}
+.ui-menu .ui-menu {
+	margin-top: -3px;
+}
+.ui-menu .ui-menu-item {
+	margin:0;
+	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
+	width: 100%;
+}
+.ui-menu .ui-menu-item a {
+	text-decoration:none;
+	display:block;
+	padding:.2em .4em;
+	line-height:1.5;
+	zoom:1;
+}
+.ui-menu .ui-menu-item a.ui-state-hover,
+.ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
+	margin: -1px;
+}
+/*
+ * jQuery UI Button @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
+button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
+.ui-button-icons-only { width: 3.4em; } 
+button.ui-button-icons-only { width: 3.7em; } 
+
+/*button text element */
+.ui-button .ui-button-text { display: block; line-height: 1.4;  }
+.ui-button-text-only .ui-button-text { padding: .4em 1em; }
+.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
+.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
+.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
+/* no icon support for input elements, provide padding by default */
+input.ui-button { padding: .4em 1em; }
+
+/*button icon element(s) */
+.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
+.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
+.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
+.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
+
+/*button sets*/
+.ui-buttonset { margin-right: 7px; }
+.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
+
+/* workarounds */
+button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
+/*
+ * jQuery UI Dialog @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
+.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
+.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+/*
+ * jQuery UI Slider @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Slider#theming
+ */
+.ui-slider { position: relative; text-align: left; }
+.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
+.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
+
+.ui-slider-horizontal { height: .8em; }
+.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
+.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
+.ui-slider-horizontal .ui-slider-range-min { left: 0; }
+.ui-slider-horizontal .ui-slider-range-max { right: 0; }
+
+.ui-slider-vertical { width: .8em; height: 100px; }
+.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
+.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
+.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
+.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
+.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
+.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
+.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
+.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
+.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-hide { display: none !important; }
+/*
+ * jQuery UI Datepicker @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
+.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
+.ui-datepicker .ui-datepicker-prev { left:2px; }
+.ui-datepicker .ui-datepicker-next { right:2px; }
+.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
+.ui-datepicker .ui-datepicker-next-hover { right:1px; }
+.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
+.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
+.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
+.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
+.ui-datepicker select.ui-datepicker-month, 
+.ui-datepicker select.ui-datepicker-year { width: 49%;}
+.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
+.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
+.ui-datepicker td { border: 0; padding: 1px; }
+.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
+.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
+.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi { width:auto; }
+.ui-datepicker-multi .ui-datepicker-group { float:left; }
+.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
+.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
+.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
+.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
+.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
+.ui-datepicker-row-break { clear:both; width:100%; }
+
+/* RTL support */
+.ui-datepicker-rtl { direction: rtl; }
+.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
+.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group { float:right; }
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
+
+/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
+.ui-datepicker-cover {
+    display: none; /*sorry for IE5*/
+    display/**/: block; /*sorry for IE5*/
+    position: absolute; /*must have*/
+    z-index: -1; /*must have*/
+    filter: mask(); /*must have*/
+    top: -4px; /*must have*/
+    left: -4px; /*must have*/
+    width: 200px; /*must have*/
+    height: 200px; /*must have*/
+}/*
+ * jQuery UI Progressbar @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
+.ui-progressbar { height:2em; text-align: left; }
+.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_454545_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_454545_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_888888_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/ui/css/smoothness/images/ui-icons_888888_256x240.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/favicon.ico
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/pcNone.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/pcNone.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/turnOff.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/turnOff.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/css3buttons_icons.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/css3buttons_icons.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/shadow.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/shadow.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/turnOn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/turnOn.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/warning.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/warning.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/warn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/warn.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/error.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/error.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/ok.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/ok.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/nobody.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/nobody.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/unlock.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/unlock.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/css3buttons_backgrounds.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/css3buttons_backgrounds.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/arrows-ffffff.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/arrows-ffffff.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/static/images/poweredby.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/applications/controlies/static/images/poweredby.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/trunk/applications/controlies/cron/crontab
===================================================================
--- controlies/trunk/applications/controlies/cron/crontab	(nonexistent)
+++ controlies/trunk/applications/controlies/cron/crontab	(revision 178)
@@ -0,0 +1 @@
+#crontab
\ No newline at end of file
Index: controlies/trunk/applications/controlies/languages/es-es.py
===================================================================
--- controlies/trunk/applications/controlies/languages/es-es.py	(nonexistent)
+++ controlies/trunk/applications/controlies/languages/es-es.py	(revision 178)
@@ -0,0 +1,323 @@
+# coding: utf8
+{
+'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"actualice" es una expresión opcional como "campo1=\'nuevo_valor\'". No se puede actualizar o eliminar resultados de un JOIN',
+'%Y-%m-%d': '%Y-%m-%d',
+'%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S',
+'%s rows deleted': '%s filas eliminadas',
+'%s rows updated': '%s filas actualizadas',
+'(something like "it-it")': '(algo como "it-it")',
+'A new version of web2py is available': 'Hay una nueva versión de web2py disponible',
+'A new version of web2py is available: %s': 'Hay una nueva versión de web2py disponible: %s',
+'ATTENTION: Login requires a secure (HTTPS) connection or running on localhost.': 'ATENCION: Inicio de sesión requiere una conexión segura (HTTPS) o localhost.',
+'ATTENTION: TESTING IS NOT THREAD SAFE SO DO NOT PERFORM MULTIPLE TESTS CONCURRENTLY.': 'ATENCION: NO EJECUTE VARIAS PRUEBAS SIMULTANEAMENTE, NO SON THREAD SAFE.',
+'ATTENTION: you cannot edit the running application!': 'ATENCION: no puede modificar la aplicación que se ejecuta!',
+'About': 'Acerca de',
+'About application': 'Acerca de la aplicación',
+'Access Control': 'Control de Acceso',
+'Admin is disabled because insecure channel': 'Admin deshabilitado, el canal no es seguro',
+'Admin is disabled because unsecure channel': 'Admin deshabilitado, el canal no es seguro',
+'Administrator Password:': 'Contraseña del Administrador:',
+'Ajax Recipes': 'Ajax Recipes',
+'Are you sure you want to delete file "%s"?': '¿Está seguro que desea eliminar el archivo "%s"?',
+'Are you sure you want to uninstall application "%s"': '¿Está seguro que desea desinstalar la aplicación "%s"',
+'Are you sure you want to uninstall application "%s"?': '¿Está seguro que desea desinstalar la aplicación "%s"?',
+'Authentication': 'Autenticación',
+'Available databases and tables': 'Bases de datos y tablas disponibles',
+'Buy this book': 'Buy this book',
+'Cannot be empty': 'No puede estar vacío',
+'Cannot compile: there are errors in your app.        Debug it, correct errors and try again.': 'No se puede compilar: hay errores en su aplicación. Depure, corrija errores y vuelva a intentarlo.',
+'Change Password': 'Cambie Contraseña',
+'Change password': 'Cambiar contraseña',
+'Check to delete': 'Marque para eliminar',
+'Check to delete:': 'Marca para borrarlo:',
+'Client IP': 'IP del Cliente',
+'Community': 'Community',
+'Controller': 'Controlador',
+'Controllers': 'Controladores',
+'Copyright': 'Derechos de autor',
+'Create new application': 'Cree una nueva aplicación',
+'Current request': 'Solicitud en curso',
+'Current response': 'Respuesta en curso',
+'Current session': 'Sesión en curso',
+'DB Model': 'Modelo "db"',
+'DESIGN': 'DISEÑO',
+'Database': 'Base de datos',
+'Date and Time': 'Fecha y Hora',
+'Delete': 'Elimine',
+'Delete:': 'Elimine:',
+'Demo': 'Demo',
+'Deploy on Google App Engine': 'Instale en Google App Engine',
+'Deployment Recipes': 'Deployment Recipes',
+'Description': 'Descripción',
+'Design for': 'Diseño para',
+'Documentation': 'Documentación',
+'Download': 'Descarga',
+'E-mail': 'Correo electrónico',
+'EDIT': 'EDITAR',
+'Edit': 'Editar',
+'Edit Profile': 'Editar Perfil',
+'Edit This App': 'Edite esta App',
+'Edit application': 'Editar aplicación',
+'Edit current record': 'Edite el registro actual',
+'Editing file': 'Editando archivo',
+'Editing file "%s"': 'Editando archivo "%s"',
+'Error logs for "%(app)s"': 'Bitácora de errores en "%(app)s"',
+'Errors': 'Errores',
+'FAQ': 'FAQ',
+'First name': 'Nombre',
+'Forms and Validators': 'Forms and Validators',
+'Free Applications': 'Free Applications',
+'Functions with no doctests will result in [passed] tests.': 'Funciones sin doctests equivalen a pruebas [aceptadas].',
+'Group %(group_id)s created': 'Group %(group_id)s created',
+'Group ID': 'ID de Grupo',
+'Group uniquely assigned to user %(id)s': 'Group uniquely assigned to user %(id)s',
+'Groups': 'Grupos',
+'Hello World': 'Hola Mundo',
+'Home': 'Inicio',
+'Import/Export': 'Importar/Exportar',
+'Index': 'Indice',
+'Installed applications': 'Aplicaciones instaladas',
+'Internal State': 'Estado Interno',
+'Introduction': 'Introducción',
+'Invalid Query': 'Consulta inválida',
+'Invalid action': 'Acción inválida',
+'Invalid email': 'Correo inválido',
+'Invalid login': 'Nombre de usuario inválido',
+'Invalid password': 'Contraseña inválida',
+'Language files (static strings) updated': 'Archivos de lenguaje (cadenas estáticas) actualizados',
+'Languages': 'Lenguajes',
+'Last name': 'Apellido',
+'Last saved on:': 'Guardado en:',
+'Layout': 'Diseño de página',
+'Layouts': 'Layouts',
+'License for': 'Licencia para',
+'Live chat': 'Live chat',
+'Logged in': 'Autenticado',
+'Logged out': 'Sesión finalizada',
+'Login': 'Inicio de sesión',
+'Login to the Administrative Interface': 'Inicio de sesión para la Interfaz Administrativa',
+'Logout': 'Fin de sesión',
+'Lost Password': 'Contraseña perdida',
+'Main Menu': 'Menú principal',
+'Menu Model': 'Modelo "menu"',
+'Models': 'Modelos',
+'Modules': 'Módulos',
+'NO': 'NO',
+'Name': 'Nombre',
+'New Record': 'Registro nuevo',
+'New password': 'Contraseña nueva',
+'No databases in this application': 'No hay bases de datos en esta aplicación',
+'Old password': 'Contraseña antigua',
+'Origin': 'Origen',
+'Original/Translation': 'Original/Traducción',
+'Other Recipes': 'Other Recipes',
+'Overview': 'Overview',
+'Password': 'Contraseña',
+"Password fields don't match": 'Las contraseñas no coinciden',
+'Peeking at file': 'Visualizando archivo',
+'Plugins': 'Plugins',
+'Powered by': 'Este sitio usa',
+'Preface': 'Preface',
+'Profile': 'Perfil',
+'Python': 'Python',
+'Query:': 'Consulta:',
+'Quick Examples': 'Quick Examples',
+'Recipes': 'Recipes',
+'Record %(id)s updated': 'Registro %(id)s actualizado',
+'Record ID': 'ID de Registro',
+'Record Updated': 'Registro actualizado',
+'Register': 'Registrese',
+'Registration identifier': 'Registration identifier',
+'Registration key': 'Contraseña de Registro',
+'Registration successful': 'Registration successful',
+'Remember me (for 30 days)': 'Recuérdame (durante 30 días)',
+'Reset Password key': 'Resetear contraseña',
+'Resolve Conflict file': 'archivo Resolución de Conflicto',
+'Resources': 'Resources',
+'Role': 'Rol',
+'Rows in table': 'Filas en la tabla',
+'Rows selected': 'Filas seleccionadas',
+'Saved file hash:': 'Hash del archivo guardado:',
+'Semantic': 'Semantic',
+'Services': 'Servicios',
+'Static files': 'Archivos estáticos',
+'Stylesheet': 'Hoja de estilo',
+'Submit': 'Enviar',
+'Support': 'Support',
+'Sure you want to delete this object?': '¿Está seguro que desea eliminar este objeto?',
+'Table name': 'Nombre de la tabla',
+'Testing application': 'Probando aplicación',
+'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La "consulta" es una condición como "db.tabla1.campo1==\'valor\'". Algo como "db.tabla1.campo1==db.tabla2.campo2" resulta en un JOIN SQL.',
+'The Core': 'The Core',
+'The Views': 'The Views',
+'The output of the file is a dictionary that was rendered by the view': 'La salida del archivo es un diccionario escenificado por la vista',
+'There are no controllers': 'No hay controladores',
+'There are no models': 'No hay modelos',
+'There are no modules': 'No hay módulos',
+'There are no static files': 'No hay archivos estáticos',
+'There are no translators, only default language is supported': 'No hay traductores, sólo el lenguaje por defecto es soportado',
+'There are no views': 'No hay vistas',
+'This App': 'Esta aplicación',
+'This is a copy of the scaffolding application': 'Esta es una copia de la aplicación de andamiaje',
+'This is the %(filename)s template': 'Esta es la plantilla %(filename)s',
+'Ticket': 'Tiquete',
+'Timestamp': 'Timestamp',
+'Twitter': 'Twitter',
+'Unable to check for upgrades': 'No es posible verificar la existencia de actualizaciones',
+'Unable to download': 'No es posible la descarga',
+'Unable to download app': 'No es posible descarga la aplicación',
+'Update:': 'Actualice:',
+'Upload existing application': 'Suba esta aplicación',
+'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Use (...)&(...) para AND, (...)|(...) para OR, y ~(...) para NOT, para crear consultas más complejas.',
+'User %(id)s Logged-in': 'Usuario %(id)s Autenticado',
+'User %(id)s Logged-out': 'User %(id)s Logged-out',
+'User %(id)s Password changed': 'User %(id)s Password changed',
+'User %(id)s Profile updated': 'User %(id)s Profile updated',
+'User %(id)s Registered': 'User %(id)s Registered',
+'User ID': 'ID de Usuario',
+'User Voice': 'User Voice',
+'Username': 'Usuario',
+'Verify Password': 'Verificar Contraseña',
+'Videos': 'Vídeos',
+'View': 'Vista',
+'Views': 'Vistas',
+'Web2py': 'Web2py',
+'Welcome': 'Bienvenido',
+'Welcome %s': 'Bienvenido %s',
+'Welcome to web2py': 'Bienvenido a web2py',
+'Which called the function': 'La cual llamó la función',
+'YES': 'SI',
+'You are successfully running web2py': 'Usted está ejecutando web2py exitosamente',
+'You can modify this application and adapt it to your needs': 'Usted puede modificar esta aplicación y adaptarla a sus necesidades',
+'You visited the url': 'Usted visitó la url',
+'about': 'acerca de',
+'additional code for your application': 'código adicional para su aplicación',
+'admin disabled because no admin password': ' por falta de contraseña',
+'admin disabled because not supported on google app engine': 'admin deshabilitado, no es soportado en GAE',
+'admin disabled because unable to access password file': 'admin deshabilitado, imposible acceder al archivo con la contraseña',
+'and rename it (required):': 'y renombrela (requerido):',
+'and rename it:': ' y renombrelo:',
+'appadmin': 'appadmin',
+'appadmin is disabled because insecure channel': 'admin deshabilitado, el canal no es seguro',
+'application "%s" uninstalled': 'aplicación "%s" desinstalada',
+'application compiled': 'aplicación compilada',
+'application is compiled and cannot be designed': 'la aplicación está compilada y no puede ser modificada',
+'cache': 'cache',
+'cache, errors and sessions cleaned': 'cache, errores y sesiones eliminados',
+'cannot create file': 'no es posible crear archivo',
+'cannot upload file "%(filename)s"': 'no es posible subir archivo "%(filename)s"',
+'change password': 'cambie contraseña',
+'check all': 'marcar todos',
+'clean': 'limpiar',
+'click here for online examples': 'Haga clic aquí para ver ejemplos en línea',
+'click here for the administrative interface': 'Haga clic aquí para usar la interfaz administrativa',
+'click to check for upgrades': 'haga clic para buscar actualizaciones',
+'compile': 'compilar',
+'compiled application removed': 'aplicación compilada removida',
+'controllers': 'controladores',
+'create file with filename:': 'cree archivo con nombre:',
+'create new application:': 'nombre de la nueva aplicación:',
+'crontab': 'crontab',
+'currently saved or': 'actualmente guardado o',
+'customize me!': 'Adaptame!',
+'data uploaded': 'datos subidos',
+'database': 'base de datos',
+'database %s select': 'selección en base de datos %s',
+'database administration': 'administración base de datos',
+'db': 'db',
+'defines tables': 'define tablas',
+'delete': 'eliminar',
+'delete all checked': 'eliminar marcados',
+'design': 'modificar',
+'documentation': 'documentación',
+'done!': 'listo!',
+'edit': 'editar',
+'edit controller': 'editar controlador',
+'edit profile': 'editar perfil',
+'errors': 'errores',
+'export as csv file': 'exportar como archivo CSV',
+'exposes': 'expone',
+'extends': 'extiende',
+'failed to reload module': 'recarga del módulo ha fallado',
+'file "%(filename)s" created': 'archivo "%(filename)s" creado',
+'file "%(filename)s" deleted': 'archivo "%(filename)s" eliminado',
+'file "%(filename)s" uploaded': 'archivo "%(filename)s" subido',
+'file "%(filename)s" was not deleted': 'archivo "%(filename)s" no fué eliminado',
+'file "%s" of %s restored': 'archivo "%s" de %s restaurado',
+'file changed on disk': 'archivo modificado en el disco',
+'file does not exist': 'archivo no existe',
+'file saved on %(time)s': 'archivo guardado %(time)s',
+'file saved on %s': 'archivo guardado %s',
+'forgot username?': '¿olvidó su nombre de usuario?',
+'help': 'ayuda',
+'htmledit': 'htmledit',
+'includes': 'incluye',
+'insert new': 'inserte nuevo',
+'insert new %s': 'inserte nuevo %s',
+'internal error': 'error interno',
+'invalid password': 'contraseña inválida',
+'invalid request': 'solicitud inválida',
+'invalid ticket': 'tiquete inválido',
+'language file "%(filename)s" created/updated': 'archivo de lenguaje "%(filename)s" creado/actualizado',
+'languages': 'lenguajes',
+'languages updated': 'lenguajes actualizados',
+'loading...': 'cargando...',
+'located in the file': 'localizada en el archivo',
+'login': 'inicio de sesión',
+'logout': 'fin de sesión',
+'lost password?': '¿olvido la contraseña?',
+'merge': 'combinar',
+'models': 'modelos',
+'modules': 'módulos',
+'new application "%s" created': 'nueva aplicación "%s" creada',
+'new record inserted': 'nuevo registro insertado',
+'next 100 rows': '100 filas siguientes',
+'or import from csv file': 'o importar desde archivo CSV',
+'or provide application url:': 'o provea URL de la aplicación:',
+'pack all': 'empaquetar todo',
+'pack compiled': 'empaquete compiladas',
+'password': 'contraseña',
+'please input your password again': 'introduzca su contraseña otra vez',
+'previous 100 rows': '100 filas anteriores',
+'profile': 'perfil',
+'record': 'registro',
+'record does not exist': 'el registro no existe',
+'record id': 'id de registro',
+'register': 'registrese',
+'remove compiled': 'eliminar compiladas',
+'restore': 'restaurar',
+'revert': 'revertir',
+'save': 'guardar',
+'selected': 'seleccionado(s)',
+'session expired': 'sesión expirada',
+'shell': 'shell',
+'site': 'sitio',
+'some files could not be removed': 'algunos archivos no pudieron ser removidos',
+'state': 'estado',
+'static': 'estáticos',
+'table': 'tabla',
+'test': 'probar',
+'the application logic, each URL path is mapped in one exposed function in the controller': 'la lógica de la aplicación, cada ruta URL se mapea en una función expuesta en el controlador',
+'the data representation, define database tables and sets': 'la representación de datos, define tablas y conjuntos de base de datos',
+'the presentations layer, views are also known as templates': 'la capa de presentación, las vistas también son llamadas plantillas',
+'these files are served without processing, your images go here': 'estos archivos son servidos sin procesar, sus imágenes van aquí',
+'to  previous version.': 'a la versión previa.',
+'translation strings for the application': 'cadenas de caracteres de traducción para la aplicación',
+'try': 'intente',
+'try something like': 'intente algo como',
+'unable to create application "%s"': 'no es posible crear la aplicación "%s"',
+'unable to delete file "%(filename)s"': 'no es posible eliminar el archivo "%(filename)s"',
+'unable to parse csv file': 'no es posible analizar el archivo CSV',
+'unable to uninstall "%s"': 'no es posible instalar "%s"',
+'uncheck all': 'desmarcar todos',
+'uninstall': 'desinstalar',
+'update': 'actualizar',
+'update all languages': 'actualizar todos los lenguajes',
+'upload application:': 'subir aplicación:',
+'upload file:': 'suba archivo:',
+'versioning': 'versiones',
+'view': 'vista',
+'views': 'vistas',
+'web2py Recent Tweets': 'Tweets Recientes de web2py',
+'web2py is up to date': 'web2py está actualizado',
+}
Index: controlies/trunk/applications/controlies/languages/fr-fr.py
===================================================================
--- controlies/trunk/applications/controlies/languages/fr-fr.py	(nonexistent)
+++ controlies/trunk/applications/controlies/languages/fr-fr.py	(revision 178)
@@ -0,0 +1,95 @@
+# coding: utf8
+{
+'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN',
+'%Y-%m-%d': '%Y-%m-%d',
+'%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S',
+'%s rows deleted': '%s rang\xc3\xa9es effac\xc3\xa9es',
+'%s rows updated': '%s rang\xc3\xa9es mises \xc3\xa0 jour',
+'Authentication': 'Authentication',
+'Available databases and tables': 'Available databases and tables',
+'Cannot be empty': 'Cannot be empty',
+'Check to delete': 'Check to delete',
+'Client IP': 'Client IP',
+'Controller': 'Controller',
+'Copyright': 'Copyright',
+'Current request': 'Current request',
+'Current response': 'Current response',
+'Current session': 'Current session',
+'DB Model': 'DB Model',
+'Database': 'Database',
+'Delete:': 'Delete:',
+'Description': 'Description',
+'E-mail': 'E-mail',
+'Edit': 'Edit',
+'Edit This App': 'Edit This App',
+'Edit current record': 'Edit current record',
+'First name': 'First name',
+'Group ID': 'Group ID',
+'Hello World': 'Bonjour Monde',
+'Import/Export': 'Import/Export',
+'Index': 'Index',
+'Internal State': 'Internal State',
+'Invalid Query': 'Requ\xc3\xaate Invalide',
+'Invalid email': 'Invalid email',
+'Last name': 'Last name',
+'Layout': 'Layout',
+'Login': 'Login',
+'Lost Password': 'Lost Password',
+'Main Menu': 'Main Menu',
+'Menu Model': 'Menu Model',
+'Name': 'Name',
+'New Record': 'New Record',
+'No databases in this application': 'No databases in this application',
+'Origin': 'Origin',
+'Password': 'Password',
+'Powered by': 'Powered by',
+'Query:': 'Query:',
+'Record ID': 'Record ID',
+'Register': 'Register',
+'Registration key': 'Registration key',
+'Role': 'Role',
+'Rows in table': 'Rows in table',
+'Rows selected': 'Rows selected',
+'Stylesheet': 'Stylesheet',
+'Sure you want to delete this object?': 'Souhaitez vous vraiment effacercet objet?',
+'Table name': 'Table name',
+'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.',
+'Timestamp': 'Timestamp',
+'Update:': 'Update:',
+'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.',
+'User ID': 'User ID',
+'View': 'View',
+'Welcome %s': 'Welcome %s',
+'Welcome to web2py': 'Bienvenue sur web2py',
+'appadmin is disabled because insecure channel': 'appadmin is disabled because insecure channel',
+'cache': 'cache',
+'change password': 'change password',
+'click here for online examples': 'cliquez ici pour voir des exemples enligne',
+'click here for the administrative interface': "cliquez ici pour aller\xc3\xa0 l'interface d'administration",
+'customize me!': 'customize me!',
+'data uploaded': 'donn\xc3\xa9es t\xc3\xa9l\xc3\xa9charg\xc3\xa9es',
+'database': 'database',
+'database %s select': 'database %s select',
+'db': 'db',
+'design': 'design',
+'done!': 'fait!',
+'edit profile': 'edit profile',
+'export as csv file': 'export as csv file',
+'insert new': 'insert new',
+'insert new %s': 'insert new %s',
+'invalid request': 'requ\xc3\xaate invalide',
+'login': 'login',
+'logout': 'logout',
+'new record inserted': 'nouvelle archive ins\xc3\xa9r\xc3\xa9e',
+'next 100 rows': 'next 100 rows',
+'or import from csv file': 'or import from csv file',
+'previous 100 rows': 'previous 100 rows',
+'record': 'record',
+'record does not exist': "l'archive n'existe pas",
+'record id': 'record id',
+'register': 'register',
+'selected': 'selected',
+'state': '\xc3\xa9tat',
+'table': 'table',
+'unable to parse csv file': "incapable d'analyser le fichier cvs",
+}
Index: controlies/trunk/applications/controlies/languages/it.py
===================================================================
--- controlies/trunk/applications/controlies/languages/it.py	(nonexistent)
+++ controlies/trunk/applications/controlies/languages/it.py	(revision 178)
@@ -0,0 +1,104 @@
+# coding: utf8
+{
+'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" è un\'espressione opzionale come "campo1=\'nuovo valore\'". Non si può fare "update" o "delete" dei risultati di un JOIN ',
+'%Y-%m-%d': '%d/%m/%Y',
+'%Y-%m-%d %H:%M:%S': '%d/%m/%Y %H:%M:%S',
+'%s rows deleted': '%s righe ("record") cancellate',
+'%s rows updated': '%s righe ("record") modificate',
+'Available databases and tables': 'Database e tabelle disponibili',
+'Cannot be empty': 'Non può essere vuoto',
+'Check to delete': 'Seleziona per cancellare',
+'Client IP': 'Client IP',
+'Controller': 'Controller',
+'Copyright': 'Copyright',
+'Current request': 'Richiesta (request) corrente',
+'Current response': 'Risposta (response) corrente',
+'Current session': 'Sessione (session) corrente',
+'DB Model': 'Modello di DB',
+'Database': 'Database',
+'Delete:': 'Cancella:',
+'Description': 'Descrizione',
+'E-mail': 'E-mail',
+'Edit': 'Modifica',
+'Edit This App': 'Modifica questa applicazione',
+'Edit current record': 'Modifica record corrente',
+'First name': 'Nome',
+'Group ID': 'ID Gruppo',
+'Hello World': 'Salve Mondo',
+'Hello World in a flash!': 'Salve Mondo in un flash!',
+'Import/Export': 'Importa/Esporta',
+'Index': 'Indice',
+'Internal State': 'Stato interno',
+'Invalid Query': 'Richiesta (query) non valida',
+'Invalid email': 'Email non valida',
+'Last name': 'Cognome',
+'Layout': 'Layout',
+'Main Menu': 'Menu principale',
+'Menu Model': 'Menu Modelli',
+'Name': 'Nome',
+'New Record': 'Nuovo elemento (record)',
+'No databases in this application': 'Nessun database presente in questa applicazione',
+'Origin': 'Origine',
+'Password': 'Password',
+'Powered by': 'Powered by',
+'Query:': 'Richiesta (query):',
+'Record ID': 'Record ID',
+'Registration key': 'Chiave di Registazione',
+'Reset Password key': 'Resetta chiave Password ',
+'Role': 'Ruolo',
+'Rows in table': 'Righe nella tabella',
+'Rows selected': 'Righe selezionate',
+'Stylesheet': 'Foglio di stile (stylesheet)',
+'Sure you want to delete this object?': 'Vuoi veramente cancellare questo oggetto?',
+'Table name': 'Nome tabella',
+'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La richiesta (query) è una condizione come ad esempio  "db.tabella1.campo1==\'valore\'". Una condizione come "db.tabella1.campo1==db.tabella2.campo2" produce un "JOIN" SQL.',
+'The output of the file is a dictionary that was rendered by the view': 'L\'output del file è un "dictionary" che è stato visualizzato dalla vista',
+'This is a copy of the scaffolding application': "Questa è una copia dell'applicazione di base (scaffold)",
+'Timestamp': 'Ora (timestamp)',
+'Update:': 'Aggiorna:',
+'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Per costruire richieste (query) più complesse si usano (...)&(...) come "e" (AND), (...)|(...) come "o" (OR), e ~(...) come negazione (NOT).',
+'User ID': 'ID Utente',
+'View': 'Vista',
+'Welcome %s': 'Benvenuto %s',
+'Welcome to web2py': 'Benvenuto su web2py',
+'Which called the function': 'che ha chiamato la funzione',
+'You are successfully running web2py': 'Stai eseguendo web2py con successo',
+'You can modify this application and adapt it to your needs': 'Puoi modificare questa applicazione adattandola alle tue necessità',
+'You visited the url': "Hai visitato l'URL",
+'appadmin is disabled because insecure channel': 'Amministrazione (appadmin) disabilitata: comunicazione non sicura',
+'cache': 'cache',
+'change password': 'Cambia password',
+'click here for online examples': 'clicca per vedere gli esempi',
+'click here for the administrative interface': "clicca per l'interfaccia amministrativa",
+'customize me!': 'Personalizzami!',
+'data uploaded': 'dati caricati',
+'database': 'database',
+'database %s select': 'database %s select',
+'db': 'db',
+'design': 'progetta',
+'documentation': 'documentazione',
+'done!': 'fatto!',
+'edit profile': 'modifica profilo',
+'export as csv file': 'esporta come file CSV',
+'hello world': 'salve mondo',
+'insert new': 'inserisci nuovo',
+'insert new %s': 'inserisci nuovo %s',
+'invalid request': 'richiesta non valida',
+'located in the file': 'presente nel file',
+'login': 'accesso',
+'logout': 'uscita',
+'lost password?': 'dimenticato la password?',
+'new record inserted': 'nuovo record inserito',
+'next 100 rows': 'prossime 100 righe',
+'not authorized': 'non autorizzato',
+'or import from csv file': 'oppure importa da file CSV',
+'previous 100 rows': '100 righe precedenti',
+'record': 'record',
+'record does not exist': 'il record non esiste',
+'record id': 'record id',
+'register': 'registrazione',
+'selected': 'selezionato',
+'state': 'stato',
+'table': 'tabella',
+'unable to parse csv file': 'non riesco a decodificare questo file CSV',
+}
Index: controlies/trunk/applications/controlies/languages/pt.py
===================================================================
--- controlies/trunk/applications/controlies/languages/pt.py	(nonexistent)
+++ controlies/trunk/applications/controlies/languages/pt.py	(revision 178)
@@ -0,0 +1,116 @@
+# coding: utf8
+{
+'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" é uma expressão opcional como "field1=\'newvalue\'". Não pode actualizar ou eliminar os resultados de um JOIN',
+'%Y-%m-%d': '%Y-%m-%d',
+'%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S',
+'%s rows deleted': '%s linhas eliminadas',
+'%s rows updated': '%s linhas actualizadas',
+'About': 'About',
+'Author Reference Auth User': 'Author Reference Auth User',
+'Author Reference Auth User.username': 'Author Reference Auth User.username',
+'Available databases and tables': 'bases de dados e tabelas disponíveis',
+'Cannot be empty': 'não pode ser vazio',
+'Category Create': 'Category Create',
+'Category Select': 'Category Select',
+'Check to delete': 'seleccione para eliminar',
+'Comment Create': 'Comment Create',
+'Comment Select': 'Comment Select',
+'Content': 'Content',
+'Controller': 'Controlador',
+'Copyright': 'Direitos de cópia',
+'Created By': 'Created By',
+'Created On': 'Created On',
+'Current request': 'pedido currente',
+'Current response': 'resposta currente',
+'Current session': 'sessão currente',
+'DB Model': 'Modelo de BD',
+'Database': 'Base de dados',
+'Delete:': 'Eliminar:',
+'Edit': 'Editar',
+'Edit This App': 'Edite esta aplicação',
+'Edit current record': 'Edição de registo currente',
+'Email': 'Email',
+'First Name': 'First Name',
+'For %s #%s': 'For %s #%s',
+'Hello World': 'Olá Mundo',
+'Import/Export': 'Importar/Exportar',
+'Index': 'Índice',
+'Internal State': 'Estado interno',
+'Invalid Query': 'Consulta Inválida',
+'Last Name': 'Last Name',
+'Layout': 'Esboço',
+'Main Menu': 'Menu Principal',
+'Menu Model': 'Menu do Modelo',
+'Modified By': 'Modified By',
+'Modified On': 'Modified On',
+'Name': 'Name',
+'New Record': 'Novo Registo',
+'No Data': 'No Data',
+'No databases in this application': 'Não há bases de dados nesta aplicação',
+'Password': 'Password',
+'Post Create': 'Post Create',
+'Post Select': 'Post Select',
+'Powered by': 'Suportado por',
+'Query:': 'Interrogação:',
+'Replyto Reference Post': 'Replyto Reference Post',
+'Rows in table': 'Linhas numa tabela',
+'Rows selected': 'Linhas seleccionadas',
+'Stylesheet': 'Folha de estilo',
+'Sure you want to delete this object?': 'Tem a certeza que deseja eliminar este objecto?',
+'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'A "query" é uma condição do tipo "db.table1.field1==\'value\'". Algo como "db.table1.field1==db.table2.field2" resultaria num SQL JOIN.',
+'Title': 'Title',
+'Update:': 'Actualização:',
+'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Utilize (...)&(...) para AND, (...)|(...) para OR, e ~(...)  para NOT para construir interrogações mais complexas.',
+'Username': 'Username',
+'View': 'Vista',
+'Welcome %s': 'Bem-vindo(a) %s',
+'Welcome to Gluonization': 'Bem vindo ao Web2py',
+'Welcome to web2py': 'Bem-vindo(a) ao web2py',
+'When': 'When',
+'appadmin is disabled because insecure channel': 'appadmin está desactivada pois o canal é inseguro',
+'cache': 'cache',
+'change password': 'alterar palavra-chave',
+'click here for online examples': 'Clique aqui para exemplos online',
+'click here for the administrative interface': 'Clique aqui para o painel administrativo',
+'create new category': 'create new category',
+'create new comment': 'create new comment',
+'create new post': 'create new post',
+'customize me!': 'Personaliza-me!',
+'data uploaded': 'informação enviada',
+'database': 'base de dados',
+'database %s select': 'selecção de base de dados %s',
+'db': 'bd',
+'design': 'design',
+'done!': 'concluído!',
+'edit category': 'edit category',
+'edit comment': 'edit comment',
+'edit post': 'edit post',
+'edit profile': 'Editar perfil',
+'export as csv file': 'exportar como ficheiro csv',
+'insert new': 'inserir novo',
+'insert new %s': 'inserir novo %s',
+'invalid request': 'Pedido Inválido',
+'login': 'login',
+'logout': 'logout',
+'new record inserted': 'novo registo inserido',
+'next 100 rows': 'próximas 100 linhas',
+'or import from csv file': 'ou importe a partir de ficheiro csv',
+'previous 100 rows': '100 linhas anteriores',
+'record': 'registo',
+'record does not exist': 'registo inexistente',
+'record id': 'id de registo',
+'register': 'register',
+'search category': 'search category',
+'search comment': 'search comment',
+'search post': 'search post',
+'select category': 'select category',
+'select comment': 'select comment',
+'select post': 'select post',
+'selected': 'seleccionado(s)',
+'show category': 'show category',
+'show comment': 'show comment',
+'show post': 'show post',
+'state': 'estado',
+'table': 'tabela',
+'unable to parse csv file': 'não foi possível carregar ficheiro csv',
+}
Index: controlies/trunk/applications/controlies/ABOUT
===================================================================
--- controlies/trunk/applications/controlies/ABOUT	(nonexistent)
+++ controlies/trunk/applications/controlies/ABOUT	(revision 178)
@@ -0,0 +1,2 @@
+Write something about this app.
+Developed with web2py.
\ No newline at end of file
Index: controlies/trunk/applications/controlies/__init__.py
===================================================================
Index: controlies/trunk/applications/__init__.py
===================================================================
Index: controlies/trunk/controlies-apache
===================================================================
--- controlies/trunk/controlies-apache	(nonexistent)
+++ controlies/trunk/controlies-apache	(revision 178)
@@ -0,0 +1,10 @@
+        WSGIScriptAlias /controlies /var/web2py/subwsgihandler.py
+        WSGIDaemonProcess web2py user=www-data group=www-data \
+                          home=/var processes=5 \
+                          maximum-requests=10000
+
+        <Location "/controlies">
+            Order deny,allow
+            Allow from all
+            WSGIProcessGroup web2py
+        </Location>
Index: controlies/trunk/subwsgihandler.py
===================================================================
--- controlies/trunk/subwsgihandler.py	(nonexistent)
+++ controlies/trunk/subwsgihandler.py	(revision 178)
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# Author: Fred Gansevles <fred@gansevles.net>
+# 
+# subwsgihandler.py -- a *hack* to make web2py sub-url mountable
+#
+# example apache config
+#
+#        WSGIScriptAlias /web2py /usr/local/www/wsgi-scripts/web2py/subwsgihandler.py
+#        WSGIDaemonProcess subweb2py user=www-data group=www-data \
+#                          home=/usr/local/www/wsgi-scripts processes=5 \
+#                          maximum-requests=10000
+#
+#        <Location "/web2py">
+#            Order deny,allow
+#            Allow from all
+#            WSGIProcessGroup subweb2py
+#        </Location>
+#
+# the web2p app is now mounted at http://localhost/web2py
+#
+
+import sys
+sys.path.insert(0, '')
+
+class SubWeb2py(object):
+    def __init__(self, application):
+        self.application = application
+
+        import gluon.html
+        self.gluon_html_URL = gluon.html.URL
+        gluon.html.URL = self.URL
+
+    def URL(self, *args, **kw):
+        # rewrite the generated URLs, so external referencens have the SCRIPT_NAME prefix
+        return self.script_name + self.gluon_html_URL(*args, **kw)
+
+    def start_response(self, status, headers, info=None):
+        # rewrite redirect URLs, so external referencens have the SCRIPT_NAME prefix
+        if not status.startswith('3'):
+            return self._start_response(status, headers, info)
+        # status: 3xx (redirect)
+        _headers = []
+        for key, value in headers:
+            if key == 'Set-Cookie':
+                # don't modify the cookie, it already has a modified location
+                return self._start_response(status, headers, info)
+            # relative URLs start with '/', absolute URLs start with 'http'
+            if key == 'Location' and value.startswith('/'):
+                value = self.script_name + value
+            _headers.append((key, value))
+        return self._start_response(status, _headers, info)
+
+    def __call__(self, environ, start_response):
+        self.script_name = environ['SCRIPT_NAME']
+        environ['SCRIPT_NAME'] = ''
+        if self.script_name and environ['REQUEST_URI'].startswith(self.script_name):
+            environ['REQUEST_URI'] = environ['REQUEST_URI'][len(self.script_name):]
+        self._start_response = start_response
+        return self.application(environ, self.start_response)
+
+from web2py.wsgihandler import application
+application = SubWeb2py(application)
Index: controlies/trunk/wsgihandler.py
===================================================================
--- controlies/trunk/wsgihandler.py	(nonexistent)
+++ controlies/trunk/wsgihandler.py	(revision 178)
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+"""
+This file is part of the web2py Web Framework
+Copyrighted by Massimo Di Pierro <mdipierro@cs.depaul.edu>
+License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
+
+
+This is a WSGI handler for Apache
+Requires apache+mod_wsgi.
+
+In httpd.conf put something like:
+
+    LoadModule wsgi_module modules/mod_wsgi.so
+    WSGIScriptAlias / /path/to/wsgihandler.py
+
+"""
+
+# change these parameters as required
+LOGGING = False
+SOFTCRON = False
+
+import sys
+import os
+
+path = os.path.dirname(os.path.abspath(__file__))
+os.chdir(path)
+sys.path = [path]+[p for p in sys.path if not p==path]
+
+import gluon.main
+
+if LOGGING:
+    application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
+                                        logfilename='httpserver.log',
+                                        profilerfilename=None)
+else:
+    application = gluon.main.wsgibase
+
+if SOFTCRON:
+    from gluon.settings import global_settings
+    global_settings.web2py_crontype = 'soft'
Index: controlies/trunk/VERSION
===================================================================
--- controlies/trunk/VERSION	(nonexistent)
+++ controlies/trunk/VERSION	(revision 178)
@@ -0,0 +1 @@
+Version 1.95.1 (2011-04-25 15:04:14)
Index: controlies/trunk/welcome.w2p
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/trunk/welcome.w2p
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/controlies-apache
===================================================================
--- controlies/branches/web2py/controlies-apache	(revision 177)
+++ controlies/branches/web2py/controlies-apache	(nonexistent)
@@ -1,10 +0,0 @@
-        WSGIScriptAlias /controlies /var/web2py/subwsgihandler.py
-        WSGIDaemonProcess web2py user=www-data group=www-data \
-                          home=/var processes=5 \
-                          maximum-requests=10000
-
-        <Location "/controlies">
-            Order deny,allow
-            Allow from all
-            WSGIProcessGroup web2py
-        </Location>
Index: controlies/branches/web2py/debian/links
===================================================================
--- controlies/branches/web2py/debian/links	(revision 177)
+++ controlies/branches/web2py/debian/links	(nonexistent)
@@ -1 +0,0 @@
-var/web2py/applications/controlies var/web2py/applications/init
Index: controlies/branches/web2py/debian/control
===================================================================
--- controlies/branches/web2py/debian/control	(revision 177)
+++ controlies/branches/web2py/debian/control	(nonexistent)
@@ -1,13 +0,0 @@
-Source: controlies
-Section: python
-Priority: extra
-Maintainer: José L. Redrejo Rodríguez <jredrejo@debian.org>
-Build-Depends: debhelper (>= 7.0.50~)
-Standards-Version: 3.8.4
-
-Package: controlies
-Architecture: all
-Depends: ${shlibs:Depends}, ${misc:Depends}, python-gluon, python-ldap, python-dev, libapache2-mod-wsgi, libapache2-mod-python, libapache2-mod-gnutls, openssl, ssl-cert
-Description: Gestión de LDAP para un centro educativo
- ControlIES gestiona cuentas de usuarios, grupos, aulas, departamentos,
- distintos tipos de ordenadores, importación de Rayuela, etc.
Index: controlies/branches/web2py/debian/dirs
===================================================================
--- controlies/branches/web2py/debian/dirs	(revision 177)
+++ controlies/branches/web2py/debian/dirs	(nonexistent)
@@ -1,4 +0,0 @@
-var/web2py
-etc/apache2/conf.d
-etc/ldap/ssl
-
Index: controlies/branches/web2py/debian/postinst
===================================================================
--- controlies/branches/web2py/debian/postinst	(revision 177)
+++ controlies/branches/web2py/debian/postinst	(nonexistent)
@@ -1,32 +0,0 @@
-#!/bin/sh
-# postinst script for controlies
-#
-# see: dh_installdeb(1)
-
-set -e
-
-case "$1" in
-    configure)
-
-	chown -R  www-data:www-data /var/web2py
-    a2enmod ssl
-    a2enmod wsgi
-    a2ensite default-ssl
-
-    ;;
-
-    abort-upgrade|abort-remove|abort-deconfigure)
-    ;;
-
-    *)
-        echo "postinst called with unknown argument \`$1'" >&2
-        exit 1
-    ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
Index: controlies/branches/web2py/debian/compat
===================================================================
--- controlies/branches/web2py/debian/compat	(revision 177)
+++ controlies/branches/web2py/debian/compat	(nonexistent)
@@ -1 +0,0 @@
-7
Index: controlies/branches/web2py/debian/install
===================================================================
--- controlies/branches/web2py/debian/install	(revision 177)
+++ controlies/branches/web2py/debian/install	(nonexistent)
@@ -1,6 +0,0 @@
-applications var/web2py
-wsgihandler.py var/web2py
-subwsgihandler.py var/web2py
-VERSION var/web2py
-controlies-apache etc/apache2/conf.d
-applications/__init__.py var/web2py
Index: controlies/branches/web2py/debian/changelog
===================================================================
--- controlies/branches/web2py/debian/changelog	(revision 177)
+++ controlies/branches/web2py/debian/changelog	(nonexistent)
@@ -1,30 +0,0 @@
-controlies (0.3-3) unstable; urgency=low
-
-  * Añade profesores al grupo teachers y alumnos al students
-
- -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Tue, 31 May 2011 13:52:41 +0200
-
-controlies (0.3-1) unstable; urgency=low
-
-  * Terminado de implementar en web2py todo lo que había con twisted
-
- -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Tue, 17 May 2011 13:08:40 +0200
-
-controlies (0.2-2) unstable; urgency=low
-
-  * Cambios en la configuración de apache: directorio en vez de vhost
-
- -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Mon, 16 May 2011 14:23:55 +0200
-
-controlies (0.2-1) unstable; urgency=low
-
-  * Completando funcionalidades
-
- -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Fri, 13 May 2011 14:37:17 +0200
-
-controlies (0.1-1) unstable; urgency=low
-
-  * First Debian package
-
- -- José L. Redrejo Rodríguez <jredrejo@debian.org>  Wed, 04 May 2011 19:20:55 +0200
-
Index: controlies/branches/web2py/debian/copyright
===================================================================
--- controlies/branches/web2py/debian/copyright	(revision 177)
+++ controlies/branches/web2py/debian/copyright	(nonexistent)
@@ -1,26 +0,0 @@
-This work was packaged for Debian by:
-
-    José L. Redrejo Rodríguez <jredrejo@debian.org> on Tue, 29 Jun 2010 20:40:58 +0200
-
-Upstream Author(s):
-
-    Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-    Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
-
-Copyright:
-
-    Copyright (C) 2011  Manuel Mora Gordillo
-                        Francisco Mendez Palma
-
-License:
-
-    ControlIES is Licensed under the LGPL license version 3 
-    see "/usr/share/common-licenses/LGPL-3".
-
-The Debian packaging is:
-
-    Copyright (C) 2010 José L. Redrejo Rodríguez <jredrejo@debian.org>
-
-and is licensed under the GPL version 3,
-see "/usr/share/common-licenses/GPL-3".
-
Index: controlies/branches/web2py/debian/rules
===================================================================
--- controlies/branches/web2py/debian/rules	(revision 177)
+++ controlies/branches/web2py/debian/rules	(nonexistent)
@@ -1,8 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-%:
-	dh $@ 

Property changes on: controlies/branches/web2py/debian/rules
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/welcome.w2p
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/welcome.w2p
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/VERSION
===================================================================
--- controlies/branches/web2py/VERSION	(revision 177)
+++ controlies/branches/web2py/VERSION	(nonexistent)
@@ -1 +0,0 @@
-Version 1.95.1 (2011-04-25 15:04:14)
Index: controlies/branches/web2py/applications/controlies/views/usuarios/form.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/usuarios/form.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/usuarios/form.html	(nonexistent)
@@ -1,95 +0,0 @@
-<script language="javascript">
-
-    $(function() {
-        $("#name").focus();
-        $("#saveButton").button({ icons: { primary: "ui-icon-disk"}});
-        $("#cancelButton")
-            .button({ icons: { primary: "ui-icon-close"}})
-            .click( function(){ $('#dialog-form').dialog('close'); });
-    });
-
-    function restartStyle(){
-        $("#form_data p span").css("color","black");
-        $('#message').html("");
-    }
-
-    function send(){
-
-        restartStyle();
-
-        jQuery.post('call/json/modify_user', jQuery("#form_data").serialize(), function(result) {
-            //var result = $.parseJSON(data);
-            switch(result.response){
-                case "OK":{
-                    jQuery('#message').html("Operación realizada correctamente").css("color","green").effect("highlight", {"color":"yellow"}, 1000);
-                    setTimeout("$('#dialog-form').dialog('close')",1000);
-                    jQuery("#list").trigger("reloadGrid");
-                    break;
-                }
-                case "fail":{
-                    jQuery('#message').html("Se produjo un error").effect("highlight", {"color":"yellow"}, 1000);
-                    break;
-                }
-                case "distinctPassword":{
-                    jQuery('#password2Tag').css("color","red");
-                    jQuery('#password2').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("La repetición no coincide").effect("highlight", {"color":"yellow"}, 1000);
-                    break;
-                }
-                case "userAlreadyExists":{
-                    jQuery('#userTag').css("color","red");
-                    jQuery('#user').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Ya existe ese nombre de usuario").effect("slide");                  
-                    break;
-                }
-                default:{
-                    jQuery('#'+result.response+"Tag").css("color","red");
-                    jQuery('#'+result.response).effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Hay campos vacíos o incorrectos").effect("slide");
-                    break;
-                }
-            }
-        });
-
-        return false;
-    }
-    
-    function searchUsername(){
-        if(jQuery("#form_data #action").val()=="add")
-            jQuery.post('call/json/searchUsername','name='+jQuery("#form_data #name").val()+'&surname='+jQuery("#form_data #surname").val(), function(data) {
-                //var result = $.parseJSON(data);
-                jQuery("#form_data #user").val(result.response);
-            });
-    }
-</script>
- 
-<form id="form_data" onsubmit="return send();">
-    <input type="hidden" id="action" name="action"/>
-    <div>
-        <div style="float:right;">
-            <p> {{=IMG(_src=URL('static','images/nobody.png'),_id='photo',_name='photo', _style='border:1px solid #BBB;')}} </p>
-        </div>
-        <div>
-            <p><span id="typeTag">Tipo Usuario</span><br>
-                <select type="text" id="type" name="type">
-                    <option value="none">Seleccione...</option>
-                    <option value="teacher">Profesor</option>
-                    <option value="student">Alumno</option>
-                </select>
-            </p>    
-            <p><span id="nameTag">Nombre y Apellidos</span><br><input type="text" id="name" name="name" onChange="searchUsername();"/></p>
-            <p><span id="surnameTag">Primer Apellido</span><br><input type="text" id="surname" name="surname"/></p> 
-            <p><span id="nifTag">NIF</span><br><input type="text" id="nif" name="nif"/></p>
-
-            <p><span id="departmentsTag">Departamentos</span><br><select type="text" id="departments" name="departments[]" multiple style="width:250px;"></select>
-            <p><span id="classroomsTag">Cursos</span><br><select type="text" id="classrooms" name="classrooms[]" multiple style="width:250px;"></select>    
-                    
-            <p><span id="userTag">Usuario</span><br><input type="text" id="user" name="user"/></p>
-            <p><span id="passwordTag">Contraseña</span><br><input type="text" id="password" name="password"/></p>
-            <p><span id="password2Tag">Repita Contraseña</span><br><input type="text" id="password2" name="password2"/></p>
-        </div>
-    </div>
-    <div id="message" style="text-align:center; font-weight:bold; color:red; padding:3px; "></div>
-    <div style="text-align:center;"><button id="saveButton" type="submit" style="width:100px;">Guardar</button>&nbsp;&nbsp;<button type="button" id="cancelButton" style="width:100px;">Cancelar</button></div>
-    <p style="padding-top:10px; text-align:center; font-size:10px;" id="messageForm"></p>       
-</form>
Index: controlies/branches/web2py/applications/controlies/views/usuarios/index.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/usuarios/index.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/usuarios/index.html	(nonexistent)
@@ -1,263 +0,0 @@
-<!-- Libreria Multiselect -->
-{{response.files.append(URL('static','js/multiselect/jquery.multiselect.css'))}}
-{{response.files.append(URL('static','js/multiselect/jquery.multiselect.min.js'))}}
-{{response.files.append(URL('static','js/multiselect/jquery.multiselect.es.js'))}}
-{{#response.files.append(URL('static','css/helper.css'))}}
-{{#response.files.append(URL('static','css/dropdown.css'))}}
-{{#response.files.append(URL('static','css/default.advanced.css'))}}
-
-
-
-
- 
-{{extend 'layout.html'}}
-
-
-
-
- 
-
-
-        <div id="tabla_clientes" class="centerGrid">
-            <table width="100%" align="center">
-            <tr>
-                <td style="width:2%"></td>
-                <td style="text-align:center;"><table id="list" width="100%"></table></td>
-                <td style="width:2%"></td>
-            </tr>
-            </table>
-            <div id="pager" style=""></div> 
-            <div id="filter" style="margin-left:30%;display:none">Buscar nada</div>
-        </div>
-
-        <div id="dialog-form"></div>
-
-        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
-        </div>
-
-        <div id="dialog-alert" title="Atención" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
-        </div>
-
-
-<script type="text/javascript">  
-    
-    jQuery(function() {
-        jQuery("#dialog-confirm").dialog({ autoOpen: false });
-        jQuery("#dialog-alert").dialog({ autoOpen: false });
-    });
-    
-                
-    function print_grid(){  
-          jQuery("#list").jqGrid({
-                url:"{{=URL(c='usuarios',f='call',args=['json','list'])}}",
-                data: "{}",
-                datatype: 'json',
-                mtype: 'GET',
-                contentType: "application/json; charset=utf-8",
-                complete: function(jsondata, stat) {
-                    if (stat == "success") {
-                        var thegrid = jQuery("#list")[0];
-                        thegrid.addJSONData(JSON.parse(jsondata.responseText).d);
-                    }
-                },
-                
-                colNames:['Tipo Usuario','Nombre','Usuario','ID usuario','ID Grupo','Identificación'],
-                colModel:[ 
-                    {name:'type',index:'type', width:60, align:"center",  stype:'select', editoptions:{value:":Todo;Profesor:Profesores;Alumno:Alumnos"}},                  
-                    {name:'cn',index:'cn', width:140, align:"left"},
-                    {name:'uid',index:'uid', width:90, align:"center"},
-                    {name:'uidNumber',index:'uidNumber', width:70, align:"center"},
-                    {name:'gidNumber',index:'gidNumber', width:70, align:"center"},
-                    {name:'employeeNumber',index:'employeeNumber', width:80, align:"center"}
-                ], 
-                rowNum:25,
-                height:335,
-                width: 900,
-                rowList:[25,50,75],  
-                pager: '#pager', 
-                sortname: 'cn', 
-                autowidth: false,
-                viewrecords: true, 
-                sortorder: "desc", 
-                caption:"Usuarios"    
-        
-          }); 
-          jQuery("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false});
-        
-            jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                    caption: "Insertar",
-                    buttonicon :'ui-icon-plus',
-                    onClickButton : function (){ 
-                        addRecord();
-                    } 
-            }); 
-            jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                    caption: "Modificar", 
-                    buttonicon :'ui-icon-pencil',
-                    onClickButton : function (){ 
-                        modifyRecord();
-                } 
-            }); 
-            jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                    caption: "Borrar", 
-                    buttonicon :'ui-icon-trash',
-                    onClickButton : function (){ 
-                        deleteRecord();
-                } 
-            }); 
-        
-          
-          jQuery("#list").jqGrid('filterToolbar'); 
-       
-    }
-    
-    
-    function rowSelected(){
-            var uid = jQuery("#list").jqGrid('getGridParam','selrow'); 
-        
-            if( uid == null ){
-                jQuery( "#dialog-alert" ).dialog({
-                    resizable: false,
-                    height:150,
-                    width:290,
-                    modal: true,
-                    buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
-                }).dialog('open');
-                return false;
-            }
-            return uid;
-    }           
-    
-    function addRecord(){
-    
-            jQuery("#messageLoading").show();
-        
-            jQuery("#dialog-form").html("").css("display","none");;
-            jQuery("#dialog-form").load("form.html", function() {
-                getAllGroups();
-                jQuery("#form_data #action").val("add");
-                jQuery("#form_data #messageForm").html("Todos los campos son obligatorios");                                     
-        
-                x = (jQuery(window).width()-300)/2;
-                y = (jQuery(window).height()-500)/2;
-        
-                jQuery("#messageLoading").hide();
-        
-                jQuery("#dialog-form").dialog({
-                    resizable: false,
-                    position: top,
-                    modal: true,
-                    width: 300,                     
-                    title: "Añadir Usuario"
-                }).dialog('option', 'position', [x, y]);
-            });
-    }
-    
-    function modifyRecord(){
-                    var uid;
-    
-                    jQuery("#messageLoading").show();
-                    
-                    var uid = rowSelected();
-                    if(uid==false)
-                        return false;
-    
-                    jQuery("#dialog-form").html("").css("display","none");
-                    jQuery("#dialog-form").load("form.html", function() {
-                        
-                        getAllGroups();
-                        
-                        jQuery("#form_data #action").val("modify");
-                        jQuery("#form_data #user").attr("readonly","true");
-                        jQuery("#form_data #user").css("background-color","#DDD");
-                        jQuery("#form_data #messageForm").html("Si deja la contraseña en blanco no se modificará<br>El resto de campos son obligatorios");
-                        
-                        jQuery.post('call/json/getUserData',{ username: uid }, function(result) {
-                            //var result = jQuery.parseJSON(data);
-    
-                            if(result.response['type']=="teacher")
-                                var textType = "Profesor";
-                            else
-                                var textType = "Alumno";
-                                
-                            var dep = Array(result.response['groups']['departments']);
-    
-                            jQuery("#form_data #type").replaceWith(textType+"<input type='hidden' id='type' name='type' value='"+result.response['type']+"'/>");
-                            jQuery("#form_data #name").val(result.response['name']);
-                            jQuery("#form_data #nif").val(result.response['nif']);       
-                            jQuery("#form_data #user").val(result.response['user']);
-                            jQuery("#form_data #surname").val(result.response['surname']);
-                            if (result.response['photo']!='')
-                                jQuery("#form_data #photo").attr("src","data:image/png;base64,"+result.response['photo']);                       
-    
-                            $.each(result.response['groups']['departments'], function(i, l){
-                                jQuery('#form_data input:checkbox[value='+l+']').attr('checked', true);                          
-                            });
-    
-                            $.each(result.response['groups']['classrooms'], function(i, l){
-                                jQuery('#form_data input:checkbox[value='+l+']').attr('checked', true);                          
-                            });                     
-    
-                            x = (jQuery(window).width()-300)/2;
-                            y = (jQuery(window).height()-500)/2;
-                            
-                            jQuery("#messageLoading").hide();
-                            
-                            jQuery("#dialog-form").dialog({
-                                resizable: false,
-                                modal: true,
-                                width: 300,
-                                title: "Modificar Usuario"
-                            }).dialog('option', 'position', [x, y]);                        
-                        });               
-                    });
-    }
-    
-    function deleteRecord(){
-        
-            var uid = rowSelected();
-            if(uid==false)
-                return false;
-        
-            jQuery( "#dialog-confirm" ).dialog({
-                resizable: false,
-                height:160,
-                width:350,
-                modal: true,
-                buttons: {
-                    "Borrar": function() {
-                        jQuery.post("call/json/delete","user="+uid, function(data){
-                            jQuery("#dialog-confirm").dialog( "close" );
-                            jQuery("#list").trigger("reloadGrid");
-                        });
-                    },
-                    "Cancelar": function() {
-                        $(this).dialog( "close" );
-                    }
-                }
-            }).dialog('open');
-    }
-    
-    function getAllGroups(){
-            $.post("{{=URL(c='grupos',f='call',args=['json','getAllGroups'])}}",   function(groups) {
-                //var groups = $.parseJSON(data);                 
-                
-                $.each( groups.departments, function(i, l){
-                    jQuery("#form_data #departments").append("<option value='"+l+"'>"+l+"</option>");
-                 });
-                $.each( groups.classrooms, function(i, l){
-                    jQuery("#form_data #classrooms").append("<option value='"+l+"'>"+l+"</option>");
-                 });                         
-                jQuery("#form_data #departments").multiselect(); 
-                jQuery("#form_data #classrooms").multiselect();                       
-            });             
-    }
-    
-</script>
-
-
-<script type="text/javascript">
-  jQuery(document).ready(function(){  print_grid();}); 
-</script>
Index: controlies/branches/web2py/applications/controlies/views/generic.xml
===================================================================
--- controlies/branches/web2py/applications/controlies/views/generic.xml	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/generic.xml	(nonexistent)
@@ -1,15 +0,0 @@
-{{
-###
-# response._vars contains the dictionary returned by thecontroller action
-###
-try:
-   from gluon.serializers import xml
-   response.write(xml(response._vars), escape=False)
-   response.headers['Content-Type'] = 'text/xml'
-except (TypeError, ValueError):
-	raise HTTP(405, 'XML serialization error')
-except ImportError:
-	raise HTTP(405, 'XML not available')
-except:
-	raise HTTP(405, 'XML error')
-}}
Index: controlies/branches/web2py/applications/controlies/views/web2py_ajax.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/web2py_ajax.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/web2py_ajax.html	(nonexistent)
@@ -1,116 +0,0 @@
-{{
-response.files.insert(0,URL('static','js/jquery/jquery.js'))
-response.files.insert(1,URL('static','js/jquery/jquery-ui.custom.min.js'))
-response.files.insert(2,URL('static','css/calendar.css'))
-response.files.insert(3,URL('static','js/calendar.js'))
-for _item in response.meta or []:}}
-     <meta name="{{=_item}}" content="{{=response.meta[_item]}}" />{{
-pass
-for _k,_file in enumerate(response.files or []):
-  if _file in response.files[:_k]:
-     continue
-  _file0=_file.lower().split('?')[0]
-  if _file0.endswith('.css'):}}
-     <link href="{{=_file}}" rel="stylesheet" type="text/css" />{{
-  elif _file0.endswith('.js'):}}
-     <script src="{{=_file}}" type="text/javascript"></script>{{
-  pass
-pass
-}}
-  
-<script type="text/javascript"><!--
-function popup(url) {
-  newwindow=window.open(url,'name','height=400,width=600');
-  if (window.focus) newwindow.focus();
-  return false;
-}
-function collapse(id) { jQuery('#'+id).slideToggle(); }
-function fade(id,value) { if(value>0) jQuery('#'+id).hide().fadeIn('slow'); else jQuery('#'+id).show().fadeOut('slow'); }
-function ajax(u,s,t) {
-    query = '';
-    if (typeof s == "string") {
-        d = jQuery(s).serialize();
-        if(d){ query = d; }
-    } else {
-        pcs = [];
-        for(i=0; i<s.length; i++) {
-            q = jQuery("[name="+s[i]+"]").serialize();
-            if(q){pcs.push(q);}
-        }
-        if (pcs.length>0){query = pcs.join("&");}
-    }
-    jQuery.ajax({type: "POST", url: u, data: query, success: function(msg) { if(t) { if(t==':eval') eval(msg); else jQuery("#" + t).html(msg); } } }); 
-}
-
-String.prototype.reverse = function () { return this.split('').reverse().join('');};
-function web2py_ajax_init() {
-  jQuery('.hidden').hide();
-  jQuery('.error').hide().slideDown('slow');
-  jQuery('.flash').click(function() { jQuery(this).fadeOut('slow'); return false; });
-  // jQuery('input[type=submit]').click(function(){var t=jQuery(this);t.hide();t.after('<input class="submit_disabled" disabled="disabled" type="submit" name="'+t.attr("name")+'_dummy" value="'+t.val()+'">')});
-  jQuery('input.integer').live('keyup', function(){this.value=this.value.reverse().replace(/[^0-9\-]|\-(?=.)/g,'').reverse();});
-  jQuery('input.double,input.decimal').live('keyup', function(){this.value=this.value.reverse().replace(/[^0-9\-\.,]|[\-](?=.)|[\.,](?=[0-9]*[\.,])/g,'').reverse();});
-  jQuery("input[type='checkbox'].delete").live('click', function(){ if(this.checked) if(!confirm("{{=T('Sure you want to delete this object?')}}")) this.checked=false; });
-  try {jQuery("input.date").live('focus',function() {Calendar.setup({
-     inputField:this, ifFormat:"{{=T('%Y-%m-%d')}}", showsTime:false
-  }); }); } catch(e) {};
-  try { jQuery("input.datetime").live('focus', function() {Calendar.setup({
-     inputField:this, ifFormat:"{{=T('%Y-%m-%d %H:%M:%S')}}", showsTime: true,timeFormat: "24"
-  }); }); } catch(e) {};
-
-  jQuery("input.time").live('focus', function() { var el = jQuery(this); 
-          if (!el.hasClass('hasTimeEntry')) try { el.timeEntry(); } catch(e) {}; 
-  });
-};
-
-jQuery(document).ready(function() {   
-   var flash = jQuery('.flash');
-   flash.hide();
-   if(flash.html()) flash.slideDown();
-   web2py_ajax_init();
-});
-function web2py_trap_form(action,target) {
-   jQuery('#'+target+' form').each(function(i){
-      var form=jQuery(this);
-      if(!form.hasClass('no_trap'))
-        form.submit(function(obj){
-         jQuery('.flash').hide().html('');
-         web2py_ajax_page('post',action,form.serialize(),target);
-         return false;
-      });
-   });
-}
-function web2py_ajax_page(method,action,data,target) {
-  jQuery.ajax({'type':method,'url':action,'data':data,
-    'beforeSend':function(xhr) {
-      xhr.setRequestHeader('web2py-component-location',document.location);
-      xhr.setRequestHeader('web2py-component-element',target);},
-    'complete':function(xhr,text){
-      var html=xhr.responseText;
-      var content=xhr.getResponseHeader('web2py-component-content'); 
-      var command=xhr.getResponseHeader('web2py-component-command');
-      var flash=xhr.getResponseHeader('web2py-component-flash');
-      var t = jQuery('#'+target);
-      if(content=='prepend') t.prepend(html); 
-      else if(content=='append') t.append(html);
-      else if(content!='hide') t.html(html);  
-      web2py_trap_form(action,target);
-      web2py_ajax_init();      
-      if(command) eval(command);
-      if(flash) jQuery('.flash').html(flash).slideDown();
-      }
-    });
-}
-function web2py_component(action,target) {
-  jQuery(document).ready(function(){ web2py_ajax_page('get',action,null,target); });
-}
-function web2py_comet(url,onmessage,onopen,onclose) {
-  if ("WebSocket" in window) {
-    var ws = new WebSocket(url);
-    ws.onopen = onopen?onopen:(function(){});
-    ws.onmessage = onmessage;
-    ws.onclose = onclose?onclose:(function(){});
-    return true; // supported
-  } else return false; // not supported
-}
-//--></script>
Index: controlies/branches/web2py/applications/controlies/views/grupos/form.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/grupos/form.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/grupos/form.html	(nonexistent)
@@ -1,76 +0,0 @@
-<script language="javascript">
-
-    $(function() {
-        $("#name").focus();
-        $("#saveButton").button({ icons: { primary: "ui-icon-disk"}});
-        $("#cancelButton")
-            .button({ icons: { primary: "ui-icon-close"}})
-            .click( function(){ $('#dialog-form').dialog('close'); });
-    });
-
-    function restartStyle(){
-        $("#form_data p span").css("color","black");
-        $('#message').html("");
-    }
-
-
-    function send(){
-
-        restartStyle();
-
-        jQuery.post('call/json/modify', jQuery("#form_data").serialize(), function(result) {
-            switch(result.response){
-                case "OK":{
-                    jQuery('#message').html("Operación realizada correctamente").css("color","green").effect("highlight", {"color":"yellow"}, 1000);
-                    setTimeout("$('#dialog-form').dialog('close')",1000);
-                    jQuery("#list").trigger("reloadGrid");
-                    break;
-                }
-                case "fail":{
-                    jQuery('#message').html("Se produjo un error").effect("highlight", {"color":"yellow"}, 1000);
-                    break;
-                }
-                case "distinctPassword":{
-                    jQuery('#password2Tag').css("color","red");
-                    jQuery('#password2').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("La repetición no coincide").effect("highlight", {"color":"yellow"}, 1000);
-                    break;
-                }
-                case "userAlreadyExists":{
-                    jQuery('#userTag').css("color","red");
-                    jQuery('#user').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Ya existe ese nombre de usuario").effect("slide");                  
-                    break;
-                }
-                default:{
-                    jQuery('#'+result.response+"Tag").css("color","red");
-                    jQuery('#'+result.response).effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Hay campos vacíos o incorrectos").effect("slide");
-                    break;
-                }
-            }
-        });
-
-        return false;
-    }
-    
-</script>
- 
-<form id="form_data" onsubmit="return send();">
-    <input type="hidden" id="action" name="action"/>
-    <p><span id="typeTag">Tipo Grupo</span><br>
-        <select id="type" name="type">
-            <option value="none">Seleccione...</option>
-            <option value="school_department">Departamento</option>
-            <option value="school_class">Curso</option>
-        </select>
-    </p>    
-    <p><span id="nameTag">Nombre </span><br><input type="text" id="name" name="name"/></p>
-
-    <p><span id="usersTag">Usuarios</span>
-       <div class="form_users"><input type="text" name="users" value="" id="users" /></div>
-    </p>
-    <p  style="margin-bottom:300px;"></p>
-    <div id="message" style="text-align:center; font-weight:bold; color:red; padding:3px; "></div>
-    <div style="text-align:center;"><button id="saveButton" type="submit" style="width:100px;">Guardar</button>&nbsp;&nbsp;<button type="button" id="cancelButton" style="width:100px;">Cancelar</button></div>      
-</form>
Index: controlies/branches/web2py/applications/controlies/views/grupos/index.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/grupos/index.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/grupos/index.html	(nonexistent)
@@ -1,256 +0,0 @@
-<!-- Libreria Multiselect -->
-{{response.files.append(URL('static','js/multiselect/jquery.multiselect.css'))}}
-{{response.files.append(URL('static','js/multiselect/jquery.multiselect.min.js'))}}
-{{response.files.append(URL('static','js/multiselect/jquery.multiselect.es.js'))}}
-
-{{response.files.append(URL('static','js/autocomplete/TextboxList.css'))}}
-{{response.files.append(URL('static','js/autocomplete/TextboxList.Autocomplete.css'))}}
-{{response.files.append(URL('static','js/autocomplete/GrowingInput.js'))}}
-{{response.files.append(URL('static','js/autocomplete/TextboxList.js'))}}
-{{response.files.append(URL('static','js/autocomplete/TextboxList.Autocomplete.js'))}}
-{{response.files.append(URL('static','js/autocomplete/TextboxList.Autocomplete.Binary.js'))}}
-
- 
-{{extend 'layout.html'}}
-
-        <div id="tabla_clientes" class="centerGrid">
-        <table width="100%">
-        <tr>
-            <td style="width:2%"></td>
-            <td><table id="list" width="100%"></table></td>
-            <td style="width:2%"></td>
-        </tr>
-        </table>
-        <div id="pager" style=""></div> 
-        <div id="filter" style="margin-left:30%;display:none">Search Invoices</div>
-        </div>
-
-        <div id="dialog-form"></div>
-
-        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
-        </div>
-
-        <div id="dialog-alert" title="Atención" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
-        </div>
-        
-        
-        
-
-
-
-
-
-<script type="text/javascript">  
-
-jQuery(function() {
-    jQuery("#dialog-confirm").dialog({ autoOpen: false });
-    jQuery("#dialog-alert").dialog({ autoOpen: false });
-});
-
-            
-function print_grid(){  
-      jQuery("#list").jqGrid({
-            url:"{{=URL(c='grupos',f='call',args=['json','list'])}}",
-            data: "{}",            
-            mtype: 'GET', 
-            datatype: "json", 
-            colNames:['Tipo Grupo','Nombre','ID Grupo','Nº Usuarios'],
-            colModel:[
-                {name:'type',index:'type', width:60, align:"center",  stype:'select', editoptions:{value:":Todo;Departamento:Departamentos;Aula:Cursos"}},                                      
-                {name:'cn',index:'cn', width:80, align:"center"},
-                {name:'gidNumber',index:'gidNumber', width:60, align:"center"},
-                {name:'usersNumber',index:'usersNumber', width:60, align:"center"}                      
-            ], 
-            rowNum:25,
-            height:335,
-            width: 900,
-            rowList:[25,50,75],  
-            pager: '#pager', 
-            sortname: 'cn', 
-            autowidth: false,
-            viewrecords: true, 
-            sortorder: "desc", 
-            caption:"Grupos"  
-    
-      }); 
-      jQuery("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false});
-    
-        jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                caption: "Insertar",
-                buttonicon :'ui-icon-plus',
-                onClickButton : function (){ 
-                    addRecord();
-                } 
-        }); 
-        jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                caption: "Modificar", 
-                buttonicon :'ui-icon-pencil',
-                onClickButton : function (){ 
-                    modifyRecord();
-            } 
-        }); 
-        jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                caption: "Borrar", 
-                buttonicon :'ui-icon-trash',
-                onClickButton : function (){ 
-                    deleteRecord();
-            } 
-        }); 
-    
-      
-      jQuery("#list").jqGrid('filterToolbar'); 
-   
-}
-
-
-function rowSelected(){
-        var uid = jQuery("#list").jqGrid('getGridParam','selrow'); 
-    
-        if( uid == null ){
-            jQuery( "#dialog-alert" ).dialog({
-                resizable: false,
-                height:150,
-                width:290,
-                modal: true,
-                buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
-            }).dialog('open');
-            return false;
-        }
-        return uid;
-}           
-
-function addRecord(){
-
-        jQuery("#messageLoading").show();
-    
-        jQuery("#dialog-form").html("");
-        jQuery("#dialog-form").load("form.html", function() {
-            jQuery("#form_data #action").val("add");
-            jQuery("#form_data #messageForm").html("Todos los campos son obligatorios");                                     
-    
-            x = (jQuery(window).width()-500)/2;
-            y = (jQuery(window).height()-500)/2;
-    
-            jQuery("#messageLoading").hide();
-    
-            jQuery("#dialog-form").dialog({
-                resizable: false,
-                position: top,
-                modal: true,
-                width: 500,                     
-                title: "Añadir Grupo"
-            }).dialog('option', 'position', [x, y]);
-            
-            var autoComplete = new jQuery.TextboxList('#users', {unique: true, plugins: {autocomplete: {
-                minLength: 2,
-                queryRemote: true,
-                remote: {url: "{{=URL(c='usuarios',f='call',args=['json','getAllUsers'])}}" }
-            }}}); 
-                                
-        });
-}
-
-
-
-var autoComplete;
-
-function modifyRecord(){
-                var uid;
-
-                jQuery("#messageLoading").show();
-                
-                var uid = rowSelected();
-                if(uid==false)
-                    return false;
-
-                jQuery("#dialog-form").html("").css("display","none");
-                jQuery("#dialog-form").load("form.html", function() {
-                    
-                jQuery("#form_data #action").val("modify");
-                    
-                    jQuery.post('call/json/getGroupData',{ name: uid }, function(result) {
-
-                        if(result.response['type']=="school_department")
-                            var textType = "Departamento";
-                        else
-                            var textType = "Curso";
-                            
-                        jQuery("#form_data #type").replaceWith(textType+"<input type='hidden' id='type' name='type' value='"+result.response['type']+"'/>");
-                        jQuery("#form_data #name").replaceWith(result.response['name']+"<input type='hidden' id='name' name='name' value='"+result.response['name']+"'/>");
-                                    
-                        x = (jQuery(window).width()-500)/2;
-                        y = (jQuery(window).height()-500)/2;
-                        
-                        jQuery("#messageLoading").hide();
-                        
-                        jQuery("#dialog-form").dialog({
-                            resizable: false,
-                            modal: true,
-                            width: 500,
-                            title: "Modificar Grupo"
-                        }).dialog('option', 'position', [x, y]);        
-                                        
-                        // Autocomplete with poll the server as you type
-                        autoComplete = new jQuery.TextboxList('#users', {unique: true, plugins: {autocomplete: {
-                            minLength: 2,
-                            queryRemote: true,
-                            remote: {url: "{{=URL(c='usuarios',f='call',args=['json','getAllUsers'])}}" }
-                        }}});
-
-                        $.each(result.response['memberuid'], function(i, l){
-                            autoComplete.add(l);        
-                        });                       
-                    });               
-                });
-}
-
-function deleteRecord(){
-    
-        var id = rowSelected();
-        if(id==false)
-            return false;
-    
-        jQuery( "#dialog-confirm" ).dialog({
-            resizable: false,
-            height:160,
-            width:350,
-            modal: true,
-            buttons: {
-                "Borrar": function() {
-                    jQuery.post("call/json/delete","name="+id, function(data){
-                        jQuery("#dialog-confirm").dialog( "close" );
-                        jQuery("#list").trigger("reloadGrid");
-                    });
-                },
-                "Cancelar": function() {
-                    $(this).dialog( "close" );
-                }
-            }
-        }).dialog('open');
-}
-
-
-
-function getAllUsers(){
-        $.post("{{=URL(c='usuarios',f='call',args=['json','getAllUsers'])}}",   function(users) {
-    
-    
-                          
-        });             
-}
-
-</script>
-
-
-
-
-
-
-
-
-
-<script type="text/javascript">
-  jQuery(document).ready(function(){  print_grid();}); 
-</script>
Index: controlies/branches/web2py/applications/controlies/views/generic.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/generic.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/generic.html	(nonexistent)
@@ -1,22 +0,0 @@
-{{extend 'layout.html'}}
-{{"""
-
-You should not modify this file. 
-It is used as default when a view is not provided for your controllers
-
-"""}}
-<h2>{{=' '.join(x.capitalize() for x in request.function.split('_'))}}</h2>
-{{if len(response._vars)==1:}}
-{{=response._vars.values()[0]}}
-{{elif len(response._vars)>1:}}
-{{=BEAUTIFY(response._vars)}}
-
-<button onclick="document.location='{{=URL("admin","default","design",args=request.application)}}'">admin</button>
-<button onclick="jQuery('#request').slideToggle()">request</button>
-<div class="hidden" id="request"><h2>request</h2>{{=BEAUTIFY(request)}}</div>
-<button onclick="jQuery('#session').slideToggle()">session</button>
-<div class="hidden" id="session"><h2>session</h2>{{=BEAUTIFY(session)}}</div>
-<button onclick="jQuery('#response').slideToggle()">response</button>
-<div class="hidden" id="response"><h2>response</h2>{{=BEAUTIFY(response)}}</div>
-<script>jQuery('.hidden').hide();</script>
-{{pass}}
Index: controlies/branches/web2py/applications/controlies/views/layout.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/layout.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/layout.html	(nonexistent)
@@ -1,143 +0,0 @@
-<!DOCTYPE html>
-<html lang="{{=T.accepted_language or 'en'}}" class="no-js"><!-- no-js need it for modernzr -->
-  <head>
-    
-    <meta charset="utf-8" />        
-    <!-- www.phpied.com/conditional-comments-block-downloads/ -->
-    <!--[if IE]><![endif]-->    
-    <!-- Always force latest IE rendering engine 
-     (even in intranet) & Chrome Frame 
-     Remove this if you use the .htaccess -->
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    
-    <title>{{=response.title or request.application}}</title>
-    
-    <!-- http://dev.w3.org/html5/markup/meta.name.html -->
-    <meta name="application-name" content="{{=request.application}}" /> 
-    
-    
-    <!-- Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references -->
-    <link rel="shortcut icon" href="{{=URL('static','favicon.ico')}}" type="image/x-icon">
-    <link rel="apple-touch-icon" href="{{=URL('static','favicon.png')}}">
-
-    <!-- For the less-enabled mobile browsers like Opera Mini -->
-    <link rel="stylesheet" media="handheld" href="{{=URL('static','css/handheld.css')}}">
-    
-    <!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements & feature detects -->
-    <script src="{{=URL('static','js/modernizr-1.7.min.js')}}"></script>
-    
-{{response.files.append(URL('static','js/jdgrid/css/ui.jqgrid.css'))}}
-{{response.files.append(URL('static','js/jquery/jquery.dropdown.js'))}}
-{{response.files.append(URL('static','js/jdgrid/grid.locale-sp.js'))}} 
-{{response.files.append(URL('static','js/jdgrid/jquery.jqGrid.min.js'))}}
-{{response.files.append(URL('static','js/jdgrid/src/grid.common.js'))}}
-{{response.files.append(URL('static','js/jdgrid/src/grid.formedit.js'))}}
-{{response.files.append(URL('static','js/jdgrid/src/grid.custom.js'))}}
-    
-    {{#------  require CSS and JS files for this page (read info in base.css) ------}}
-    {{response.files.append(URL('static','css/base.css'))}}
-    {{response.files.append(URL('static','css/superfish.css'))}}
-    {{response.files.append(URL('static','js/superfish.js'))}}
-
-    {{response.files.append(URL('static','ui/css/ui-lightness/jquery-ui-1.8.9.custom.css'))}}
-
-    
-   
-    
-    
-    {{#------ include web2py specific js code (jquery, calendar, form stuff) ------}}
-    {{include 'web2py_ajax.html'}}
-
-    {{
-    #using sidebars need to know what sidebar you want to use
-    #prior of using it, because of static width size of content, you can use
-    #left_sidebar, right_sidebar, both or none (False left and right)    
-    left_sidebar_enabled = globals().get('left_sidebar_enabled',False)
-    right_sidebar_enabled = globals().get('right_sidebar_enabled',False)
-    if left_sidebar_enabled and right_sidebar_enabled: width_content='63%'
-    elif left_sidebar_enabled != right_sidebar_enabled: width_content='740px'
-    else: width_content='100%'
-    if left_sidebar_enabled: left_sidebar_style = 'style="display: block;"'
-    else: left_sidebar_style = 'style="display: none;"'
-    if right_sidebar_enabled: right_sidebar_style = 'style="display: block;"'
-    else: right_sidebar_style = 'style="display: none;"'
-    style_content = 'style="width: %s"' % width_content
-    }}
-  </head>
-  
-  <body> 
-    
-    <div class="flash">{{=response.flash or ''}}</div> <!-- notification div -->
-    
-    <div id="container">                        
-      
-      <div id="wrapper">        
-    
-            <div id="header"> <!-- header and login nav -->
-              {{block header}} <!-- this is default header -->
-{{try:}}{{=SPAN(T('Welcome'),' ',auth.user.first_name,' [ ', A(T('logout'),_href=URL('default','user')+'/logout'), ']',_class='auth_navbar')}}{{except:pass}}   
-              
-                     
-<h1>&nbsp;&nbsp;Control<span class="fontTitle">IES</span>&nbsp;&nbsp;<span class="subTitle">Centros Educativos de Extremadura</span></h1>              
-
-              <div style="clear: both;"></div><!-- Clear the divs -->
-              {{end}}                                     
-            </div><!-- header  -->
-    
-            <div id="statusbar"><!-- statusbar is menu zone -->
-              {{block statusbar}} <!-- this is default statusbar -->
-              {{#------ superfish menu ------}}
-              {{if auth.user is not None:
-              =MENU(response.menu,_class='sf-menu') }}
-              
-              <script type="text/javascript">
-                jQuery(document).ready(function(){
-                jQuery('ul.sf-menu').superfish();});
-              </script>
-              {{pass}}
-              <div style="clear: both;"></div><!-- Clear the divs -->   
-              {{end}}               
-            </div><!-- statusbar -->
-    
-            <div id="page"> <!-- Here my central body -->     
-        
-                  {{if left_sidebar_enabled:}}
-                      <div id="left_sidebar" {{=XML(left_sidebar_style)}} >
-                        <div style="padding: 4px;">
-                      {{block left_sidebar}}Content Left Sidebar{{end}}       
-                        </div>
-                      </div><!-- left_sidebar -->
-                  {{pass}}
-        
-                  <!-- content -->
-                  <div id="content" {{=XML(style_content)}} >
-                  
-                  
-                      {{include}}           
-                  
-                  
-                  
-
-                  </div>
-                  <!-- content -->
-        
-                  {{if right_sidebar_enabled:}}
-                      <div id="right_sidebar" {{=XML(right_sidebar_style)}} >
-                        <div style="padding: 4px;">
-                          {{block right_sidebar}}Content Right Sidebar{{end}}
-                        </div>
-                  </div><!-- right_sidebar -->
-                      {{pass}}
-        
-        
-              <div style="clear: both;"></div><!-- Clear the divs -->
-              
-            </div><!-- page -->                         
-    
-         
-      </div><!-- wrapper -->
-    </div><!-- container -->        
-    
- 
-  </body>
-</html>
Index: controlies/branches/web2py/applications/controlies/views/generic.rss
===================================================================
--- controlies/branches/web2py/applications/controlies/views/generic.rss	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/generic.rss	(nonexistent)
@@ -1,20 +0,0 @@
-{{
-###
-# response._vars contains the dictionary returned by the controller action
-# for this to work the action must return something like
-#
-#   dict(title=...,link=...,description=...,created_on='...',items=...)
-#
-# items is a list of dictionaries each with title, link, description, pub_date.
-###
-try:
-   from gluon.serializers import rss   
-   response.write(rss(response._vars), escape=False)
-   response.headers['Content-Type'] = 'application/rss+xml'
-except (TypeError, ValueError):
-	raise HTTP(405, 'RSS serialization error')
-except ImportError:
-	raise HTTP(405, 'RSS not available')
-except:
-	raise HTTP(405, 'RSS error')
-}}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/views/layout_form_hosts.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/layout_form_hosts.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/layout_form_hosts.html	(nonexistent)
@@ -1,89 +0,0 @@
-<script language="javascript">
-
-    $(function() {
-        $("#name").focus();
-        $("#saveButton").button({ icons: { primary: "ui-icon-disk"}});
-          
-        $("#cancelButton")
-            .button({ icons: { primary: "ui-icon-close"}})
-            .click( function(){ $('#dialog-form').dialog('close'); });            
-    });
-
-    function restartStyle(){
-        $("#form_data p span").css("color","black");
-        $('#message').html("");
-    }
-
-
-    function send(){
-
-        restartStyle();
-
-{{block controlador}}               
-        jQuery.post('call/json/modify', jQuery("#form_data").serialize(), function(result) {
-{{end}}        
-            //var result = $.parseJSON(data);
-            switch(result.response){
-                case "OK":{
-                    jQuery('#message').html("Operación realizada correctamente").css("color","green").effect("highlight", {"color":"yellow"}, 1000);
-                    setTimeout("$('#dialog-form').dialog('close')",1000);
-                    jQuery("#list").trigger("reloadGrid");
-                    break;
-                }
-                case "fail":{
-                    jQuery('#message').html("Se produjo un error").effect("highlight", {"color":"yellow"}, 1000);
-                    break;
-                }
-                case "hostAlreadyExists":{
-                    jQuery('#nameTag').css("color","red");
-                    jQuery('#name').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Ya existe ese nombre de host").effect("slide");                 
-                    break;
-                }
-                case "macAlreadyExists":{
-                    jQuery('#macTag').css("color","red");
-                    jQuery('#mac').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Ya existe un host con esa MAC").effect("slide");                    
-                    break;
-                }
-                case "ipAlreadyExists":{
-                    jQuery('#ipTag').css("color","red");
-                    jQuery('#ip').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Ya existe un host con esa IP").effect("slide");                 
-                    break;
-                }                
-                case "groupOverflow":{
-                    jQuery('#groupTag').css("color","red");
-                    jQuery('#group').effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("El grupo escogido esta completo").effect("slide");                  
-                    break;  
-                }    
-                default:{
-                    jQuery('#'+result.response+"Tag").css("color","red");
-                    jQuery('#'+result.response).effect("highlight", {"color":"yellow"}, 1000).focus();
-                    jQuery('#message').html("Hay campos vacíos o incorrectos").effect("slide");
-                    break;
-                }
-            }
-        });
-
-        return false;
-    }
-    
-</script>
-
-
-<form id="form_data" onSubmit="return send();">
-    <input type="hidden" id="action" name="action"/>
-{{block form_table}}    
-   <input type="hidden" id="type" name="type" value="ltsp"/>
-    <p><span id="nameTag">Nombre del equipo:</span><br><input type="text" id="name" name="name" onChange="searchUsername();"/></p>
-    <p><span id="ipTag">Ip</span><br><input type="text" id="ip" name="ip"/></p> 
-    <p><span id="macTag">MAC</span><br><input type="text" id="mac" name="mac"/></p>
-
-{{end}}
-
-    <div id="message" style="text-align:center; font-weight:bold; color:red; padding:3px; "></div>
-    <div style="text-align:center;"><button id="saveButton" type="submit" style="width:100px;">Guardar</button>&nbsp;&nbsp;<button type="button" id="cancelButton" style="width:100px;">Cancelar</button></div>
-    <p style="padding-top:10px; text-align:center; font-size:10px;" id="messageForm"></p>       
-</form>
Index: controlies/branches/web2py/applications/controlies/views/generic.pdf
===================================================================
--- controlies/branches/web2py/applications/controlies/views/generic.pdf	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/generic.pdf	(nonexistent)
@@ -1,31 +0,0 @@
-{{
-import re
-from gluon.contrib.markmin.markmin2pdf import markmin2pdf
-def markmin_serializer(text,tag=None,attr={}):
-    if tag==None: return re.sub('\s+',' ',text)
-    if tag=='br': return '\n\n'
-    if tag=='h1': return '# '+text+'\n\n'
-    if tag=='h2': return '#'*2+' '+text+'\n\n'
-    if tag=='h3': return '#'*3+' '+text+'\n\n'
-    if tag=='h4': return '#'*4+' '+text+'\n\n'
-    if tag=='p': return text+'\n\n'
-    if tag=='li': return '\n- '+text.replace('\n',' ')
-    if tag=='tr': return text[3:].replace('\n',' ')+'\n'
-    if tag in ['table','blockquote']: return '\n-----\n'+text+'\n------\n'
-    if tag in ['td','th']: return ' | '+text
-    if tag in ['b','strong','label']: return '**%s**' % text
-    if tag in ['em','i']: return "''%s''" % text
-    if tag in ['tt','code']: return '``%s``' % text
-    if tag=='a': return '[[%s %s]]' % (text,attr.get('_href',''))
-    return text
-html=response.render('%s/%s.html' % (request.controller,request.function))
-markmin=TAG(html).element('#content').flatten(markmin_serializer)
-pdf,warnings,errors=markmin2pdf(markmin)
-if errors:
-   response.headers['Content-Type']='text'
-   response.write(HTML(BODY(H1('errors'),LU(*errors),H1('warnings'),LU(*warnings))))
-else:
-   response.headers['Content-Type']='application/pdf'
-   response.write(pdf,escape=False)
-pass
-}}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/views/default/user.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/default/user.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/default/user.html	(nonexistent)
@@ -1,69 +0,0 @@
-{{extend 'layout.html'}}
-
- <script type="text/javascript">
-     $(function() {
-            $( "#tabs" ).tabs();
-            $( "#authButton" ).button({ icons: { primary: "ui-icon-locked"}});
-        });
-</script>
-
-
-
-<h2>{{=T( request.args(0).replace('_',' ').capitalize() )}}</h2>
-<div id="web2py_user_form">
-
-
-    <div id="tabs" class="centerAuth"> 
-        <ul> 
-            <li><a href="#tabs-1">Autenticaci&oacute;n</a></li> 
-        </ul> 
-        <div id="tabs-1"> 
-
-        {{=IMG(_src=URL(r=request,c='static',f='images/unlock.png'),_style="float:right;")}} 
-
-            
-            {{=form.custom.begin}}
-         
-
-                <p><span>LDAP</span><br><input type="text" id="host" name="host" value="localhost"></p> 
-                <p><span>{{=form.custom.label.username}}</span><br>    {{=form.custom.widget.username}}</p> 
-                <p><span>{{=form.custom.label.password}}</span><br>{{=form.custom.widget.password}}</p><br> 
-                <p style="text-align:center;">
-                            {{form.custom.submit
-                            submit = form.element("input",_type="submit")
-                            submit["_value"] = "Autenticar"
-                            submit["_id"] = "authButton"
-                            =submit
-                            }}   
-            </p>
-
-            
-            {{=form.custom.end}}
-            
-        </div> 
-    </div> 
-
-
-
-
-
-
-
-
-
-
-{{if request.args(0)=='login':}}
-{{if not 'register' in auth.settings.actions_disabled:}}
-<br/><a href="{{=URL(r=request,args='register')}}">register</a>
-{{pass}}
-{{if not 'request_reset_password' in auth.settings.actions_disabled:}}
-<br/><a href="{{=URL(r=request,args='request_reset_password')}}">lost password</a>
-{{pass}}
-{{pass}}
-</div>
-
-<script language="javascript">
-<!--
- jQuery("#web2py_user_form input:visible:enabled:first").focus();
-//-->
-</script>
Index: controlies/branches/web2py/applications/controlies/views/default/index.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/default/index.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/default/index.html	(nonexistent)
@@ -1,45 +0,0 @@
-{{response.files.append(URL('static','js/jquery.tzineClock/jquery.tzineClock.css'))}}
- {{response.files.append(URL('static','js/jquery.tzineClock/jquery.tzineClock.js'))}}
-
- 
-{{left_sidebar_enabled=right_sidebar_enabled=False}}
-{{extend 'layout.html'}}
-
-{{if auth.user is not None:}}
-
-
- <script type="text/javascript">
-    jQuery(document).ready(function(){
-        jQuery('#fancyClock').tzineClock();
-    });
-</script>
-{{pass}}
- 
-
-
-{{if 'message' in globals():}}
-
-<h1>{{=message}}</h1>
-
-<hr />
-
- 
-
-
-
-
-
-
-
-
-
-
-
-{{else:}}
-{{=BEAUTIFY(response._vars)}}
-{{pass}}
-
-<div id="fancyClock" style="margin-left:190px;"></div>
-
-{{block left_sidebar}}New Left Sidebar Content{{end}}
-{{block right_sidebar}}New Right Sidebar Content{{end}}
Index: controlies/branches/web2py/applications/controlies/views/generic.json
===================================================================
--- controlies/branches/web2py/applications/controlies/views/generic.json	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/generic.json	(nonexistent)
@@ -1,15 +0,0 @@
-{{
-###
-# response._vars contains the dictionary returned by the controller action
-###
-try:
-	from gluon.serializers import json
-	response.write(json(response._vars), escape=False)
-	response.headers['Content-Type'] = 'application/json'
-except (TypeError, ValueError):
-	raise HTTP(405, 'JSON serialization error')
-except ImportError:
-	raise HTTP(405, 'JSON not available')
-except:
-	raise HTTP(405, 'JSON error')
-}}
Index: controlies/branches/web2py/applications/controlies/views/generic.load
===================================================================
--- controlies/branches/web2py/applications/controlies/views/generic.load	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/generic.load	(nonexistent)
@@ -1,30 +0,0 @@
-{{'''
-# License: Public Domain
-# Author: Iceberg at 21cn dot com
-
-With this generic.load file, you can use same function to serve two purposes.
-
-= regular action
-- ajax callback (when called with .load)
-
-Example modified from http://www.web2py.com/AlterEgo/default/show/252:
-
-def index():
-    return dict(
-		part1='hello world',
-        	part2=LOAD(url=URL(r=request,f='auxiliary.load'),ajax=True))
-
-def auxiliary():
-    form=SQLFORM.factory(Field('name'))
-    if form.accepts(request.vars):
-        response.flash = 'ok' 
-        return dict(message="Hello %s" % form.vars.name)
-    return dict(form=form)
-
-Notice:
-
-- no need to set response.headers['web2py-response-flash']
-- no need to return a string
-even if the function is called via ajax.
-
-'''}}{{if len(response._vars)==1:}}{{=response._vars.values()[0]}}{{else:}}{{=BEAUTIFY(response._vars)}}{{pass}}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/views/appadmin.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/appadmin.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/appadmin.html	(nonexistent)
@@ -1,198 +0,0 @@
-{{extend 'layout.html'}}
-<script><!--
-jQuery(document).ready(function(){
-  jQuery("table.sortable tbody tr").mouseover( function() {
-     jQuery(this).addClass("highlight"); }).mouseout( function() { 
-     jQuery(this).removeClass("highlight"); });
-  jQuery('table.sortable tbody tr:odd').addClass('odd');
-  jQuery('table.sortable tbody tr:even').addClass('even');
-});
-//--></script>
-
-{{if request.function=='index':}}
-  <h1>{{=T("Available databases and tables")}}</h1>
-  {{if not databases:}}{{=T("No databases in this application")}}{{pass}}
-  {{for db in sorted(databases):}}
-    {{for table in databases[db].tables:}}
-      {{qry='%s.%s.id>0'%(db,table)}}
-      {{tbl=databases[db][table]}}
-      {{if hasattr(tbl,'_primarykey'):}}
-        {{if tbl._primarykey:}}
-            {{firstkey=tbl[tbl._primarykey[0]]}}
-            {{if firstkey.type in ['string','text']:}}
-              {{qry='%s.%s.%s!=""'%(db,table,firstkey.name)}}
-            {{else:}}
-              {{qry='%s.%s.%s>0'%(db,table,firstkey.name)}}
-            {{pass}}
-        {{else:}}
-             {{qry=''}}
-             {{pass}}
-      {{pass}}
-      <h2>{{=A("%s.%s" % (db,table),_href=URL('select',args=[db],vars=dict(query=qry)))}}
-</h2>
-      [ {{=A(str(T('insert new'))+' '+table,_href=URL('insert',args=[db,table]))}} ]
-    <br /><br />
-    {{pass}}
-  {{pass}}
-
-{{elif request.function=='select':}}
-  <h1>{{=XML(str(T("database %s select"))%A(request.args[0],_href=URL('index'))) }}
-  </h1>
-   {{if table:}}
-  [ {{=A(str(T('insert new %s'))%table,_href=URL('insert',args=[request.args[0],table]))}} ]<br/><br/>
-    <h2>{{=T("Rows in table")}}</h2><br/>
-   {{else:}}
-    <h2>{{=T("Rows selected")}}</h2><br/>
-   {{pass}}
-   {{=form}}
-   <p>{{=T('The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.')}}<br/>
-      {{=T('Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.')}}<br/>
-      {{=T('"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN')}}</p>
-    <br/><br/>
-    <h3>{{=nrows}} {{=T("selected")}}</h3>
-    {{if start>0:}}[ {{=A(T('previous 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start-100)))}} ]{{pass}}
-    {{if stop<nrows:}}[ {{=A(T('next 100 rows'),_href=URL('select',args=request.args[0],vars=dict(start=start+100)))}} ]{{pass}}    
-    {{if rows:}}
-       <div style="overflow: auto;" width="80%">
-       {{linkto=URL('update',args=request.args[0])}}
-       {{upload=URL('download',args=request.args[0])}}    
-       {{=SQLTABLE(rows,linkto,upload,orderby=True,_class='sortable')}}
-       </div>
-    {{pass}}
-    <br/><br/><h2>{{=T("Import/Export")}}</h2><br/>
-    [ <a href="{{=URL('csv',args=request.args[0],vars=dict(query=query))}}">{{=T("export as csv file")}}</a> ]
-  {{if table:}}
-    {{=FORM(str(T('or import from csv file'))+" ",INPUT(_type='file',_name='csvfile'),INPUT(_type='hidden',_value=table,_name='table'),INPUT(_type='submit',_value='import'))}}
-  {{pass}}
-
-
-{{elif request.function=='insert':}}  
-  <h1>{{=T("database")}} {{=A(request.args[0],_href=URL('index'))}}
-    {{if hasattr(table,'_primarykey'):}}
-      {{fieldname=table._primarykey[0]}}
-      {{dbname=request.args[0]}}
-      {{tablename=request.args[1]}}
-      {{cond = table[fieldname].type in ['string','text'] and '!=""' or '>0'}}
-      {{=T("table")}} {{=A(tablename,_href=URL('select',args=dbname,vars=dict(query='%s.%s.%s%s'%(dbname,tablename,fieldname,cond))))}}
-    {{else:}}  
-      {{=T("table")}} {{=A(request.args[1],_href=URL('select',args=request.args[0],vars=dict(query='%s.%s.id>0'%tuple(request.args[:2]))))}}
-    {{pass}}
-  </h1>
-  <h2>{{=T("New Record")}}</h2><br/>
-  {{=form}}
-
-
-
-{{elif request.function=='update':}}
-  <h1>{{=T("database")}} {{=A(request.args[0],_href=URL('index'))}}
-    {{if hasattr(table,'_primarykey'):}}
-      {{fieldname=request.vars.keys()[0]}}
-      {{dbname=request.args[0]}}
-      {{tablename=request.args[1]}}
-      {{cond = table[fieldname].type in ['string','text'] and '!=""' or '>0'}}      
-      {{=T("table")}} {{=A(tablename,_href=URL('select',args=dbname,vars=dict(query='%s.%s.%s%s'%(dbname,tablename,fieldname,cond))))}}
-      {{=T("record")}} {{=A('%s=%s'%request.vars.items()[0],_href=URL('update',args=request.args[:2],vars=request.vars))}}
-    {{else:}}
-      {{=T("table")}} {{=A(request.args[1],_href=URL('select',args=request.args[0],vars=dict(query='%s.%s.id>0'%tuple(request.args[:2]))))}}
-      {{=T("record id")}} {{=A(request.args[2],_href=URL('update',args=request.args[:3]))}}
-    {{pass}}
-  </h1>
-  <h2>{{=T("Edit current record")}}</h2><br/><br/>{{=form}}
-
-
-
-{{elif request.function=='state':}}
-  <h1>{{=T("Internal State")}}</h1>
-  <h2>{{=T("Current request")}}</h2>
-  {{=BEAUTIFY(request)}}
-  <br/><h2>{{=T("Current response")}}</h2>
-  {{=BEAUTIFY(response)}}
-  <br/><h2>{{=T("Current session")}}</h2>
-  {{=BEAUTIFY(session)}}
-
-
-{{elif request.function == 'ccache':}}
-<h2>Cache</h2>
-<div class="wrapper">
-<div class="list">
-    <div class="list-header">
-        Statistics
-    </div>
-    <div class="content">
-        <h3>Overview</h3>
-        <p>
-            Hit Ratio: 
-            <strong>{{=total['ratio']}}%</strong> 
-            (<strong>{{=total['hits']}}</strong> hits 
-            and <strong>{{=total['misses']}}</strong> misses)
-        </p>
-        <p>
-            Size of cache: 
-            <strong>{{=total['objects']}}</strong> items, 
-            <strong>{{=total['bytes']}}</strong> bytes 
-            {{if total['bytes'] > 524287:}}
-                (<strong>{{="%.0d" % (total['bytes'] / 1048576)}} MB</strong>)
-            {{pass}}
-        </p>
-        <p>
-            Cache contains items up to 
-            <strong>{{="%02d" % total['oldest'][0]}}</strong> hours 
-            <strong>{{="%02d" % total['oldest'][1]}}</strong> minutes 
-            <strong>{{="%02d" % total['oldest'][2]}}</strong> seconds old.
-        </p>
-        <h3>RAM</h3>
-        <p>
-            Hit Ratio: 
-            <strong>{{=ram['ratio']}}%</strong> 
-            (<strong>{{=ram['hits']}}</strong> hits 
-            and <strong>{{=ram['misses']}}</strong> misses)
-        </p>
-        <p>
-            Size of cache: 
-            <strong>{{=ram['objects']}}</strong> items, 
-            <strong>{{=ram['bytes']}}</strong> bytes 
-            {{if ram['bytes'] > 524287:}}
-                (<strong>{{=ram['bytes'] / 1048576}} MB</strong>)
-            {{pass}}
-        </p>
-        <p>
-            RAM contains items up to 
-            <strong>{{="%02d" % ram['oldest'][0]}}</strong> hours 
-            <strong>{{="%02d" % ram['oldest'][1]}}</strong> minutes 
-            <strong>{{="%02d" % ram['oldest'][2]}}</strong> seconds old.
-        </p>
-        <h3>DISK</h3>
-        <p>
-            Hit Ratio: 
-            <strong>{{=disk['ratio']}}%</strong> 
-            (<strong>{{=disk['hits']}}</strong> hits 
-            and <strong>{{=disk['misses']}}</strong> misses)
-        </p>
-        <p>
-            Size of cache: 
-            <strong>{{=disk['objects']}}</strong> items, 
-            <strong>{{=disk['bytes']}}</strong> bytes 
-            {{if disk['bytes'] > 524287:}}
-                (<strong>{{=disk['bytes'] / 1048576}} MB</strong>)
-            {{pass}}
-        </p>
-        <p>
-            DISK contains items up to 
-            <strong>{{="%02d" % disk['oldest'][0]}}</strong> hours 
-            <strong>{{="%02d" % disk['oldest'][1]}}</strong> minutes 
-            <strong>{{="%02d" % disk['oldest'][2]}}</strong> seconds old.
-        </p>
-    </div>
-    
-    <div class="list-header">
-    Manage Cache
-    </div>
-    <div class="content">
-    <p>
-        {{=form}}
-    </p>
-    </div>
-</div>
-<div class="clear"></div>
-</div>
-{{pass}}
Index: controlies/branches/web2py/applications/controlies/views/hosts/form_ltspserver.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/hosts/form_ltspserver.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/hosts/form_ltspserver.html	(nonexistent)
@@ -1 +0,0 @@
-{{extend 'layout_form_hosts.html'}}
Index: controlies/branches/web2py/applications/controlies/views/hosts/ltspservers.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/hosts/ltspservers.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/hosts/ltspservers.html	(nonexistent)
@@ -1 +0,0 @@
-{{extend 'layout_hosts.html'}}
Index: controlies/branches/web2py/applications/controlies/views/hosts/ltspservers.html.mio
===================================================================
--- controlies/branches/web2py/applications/controlies/views/hosts/ltspservers.html.mio	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/hosts/ltspservers.html.mio	(nonexistent)
@@ -1,22 +0,0 @@
-{{extend 'layout.html'}}
-        <div id="tabla_clientes" class="centerGrid">
-        <table width="100%">
-        <tr>
-            <td style="width:2%"></td>
-            <td><table id="list" width="100%"></table></td>
-            <td style="width:2%"></td>
-        </tr>
-        </table>
-        <div id="pager" style=""></div> 
-        <div id="filter" style="margin-left:30%;display:none">Search Invoices</div>
-        </div>
-
-        <div id="dialog-form"></div>
-
-        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
-        </div>
-
-        <div id="dialog-alert" title="Atención" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
-        </div>
Index: controlies/branches/web2py/applications/controlies/views/hosts/form_thinclient.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/hosts/form_thinclient.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/hosts/form_thinclient.html	(nonexistent)
@@ -1,13 +0,0 @@
-{{extend 'layout_form_hosts.html'}}
-{{block form_table}}    
-    <input type="hidden" id="type" name="type" value="thinclient"/>
-    
-    <p><span id="groupTag">Grupo</span><br>
-        <select id="group" name="group">
-            <option value="none">Seleccione...</option>
-        </select>
-    </p>    
-        
-    <p><span id="nameTag">Nombre del equipo:</span><br><input type="text" id="name" name="name" onChange="searchUsername();"/></p>
-    <p><span id="macTag">MAC</span><br><input type="text" id="mac" name="mac"/></p>
-{{end}}
Index: controlies/branches/web2py/applications/controlies/views/hosts/thinclients.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/hosts/thinclients.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/hosts/thinclients.html	(nonexistent)
@@ -1,36 +0,0 @@
-{{extend 'layout_hosts.html'}}
-
-{{block camposgrid}}
-
-            colNames:['Nombre','MAC','Grupo'],
-            colModel:[ 
-                {name:'cn',index:'cn', width:80, align:"center"},
-                {name:'macAddress',index:'dhcpHWAddress', width:60, align:"center"},
-                {name:'groupName',index:'groupName', width:60, align:"center"}
-            ], 
-
-
-            postData:{type:'thinclient'}, 
-            caption:"Clientes ligeros",
-{{end}}
-{{block edit_form}}        
-        jQuery("#dialog-form").load("form_thinclient.html", function() {
-              getThinClientGroups(group);
-{{end}}   
-{{block edit2_form}}                       
-                    jQuery.post('call/json/getHostData',{ cn: hid,group:group,type:'thinclient' }, function(result) {
-                        jQuery("#form_data #name").val(result.response['cn']);
-                        jQuery("#form_data #mac").val(result.response['mac']);                    
-{{end}}
-
-{{block edit3_form}}                                                          
-                            title: "Modificar Cliente ligero"
-{{end}}
-
-{{block add_host}}
-            title: "Añadir cliente ligero"
-{{end}}
-
-{{block delete_host}}
-            jQuery.post("call/json/delete",{cn:cn,action:'delete',group:grupo,type:'thinclient'}, function(data){
-{{end}}
Index: controlies/branches/web2py/applications/controlies/views/hosts/workstations.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/hosts/workstations.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/hosts/workstations.html	(nonexistent)
@@ -1,23 +0,0 @@
-{{extend 'layout_hosts.html'}}
-
-{{block camposgrid}}
-            colNames:['Nombre','IP','mac'],
-            colModel:[ 
-                {name:'cn',index:'cn', width:80, align:"center"},
-                {name:'ipHostNumber',index:'ipHostNumber', width:60, align:"center"},
-                {name:'macAddress',index:'macAddress', width:60, align:"center"}
-            ], 
-
-            postData:{type:'workstation'}, 
-            caption:"Workstations",
-{{end}}
-{{block edit3_form}}                                                          
-                            title: "Modificar Workstation"
-{{end}}
-
-{{block add_host}}
-            title: "Añadir Workstation"
-{{end}}
-{{block delete_host}}
-            jQuery.post("call/json/delete",{cn:cn,action:'delete',group:grupo,type:'workstation'}, function(data){
-{{end}}
Index: controlies/branches/web2py/applications/controlies/views/layout_hosts.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/layout_hosts.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/layout_hosts.html	(nonexistent)
@@ -1,251 +0,0 @@
-{{extend 'layout.html'}}
-        <div id="tabla_clientes" class="centerGrid">
-        <table width="100%">
-        <tr>
-            <td style="width:2%"></td>
-            <td><table id="list" width="100%"></table></td>
-            <td style="width:2%"></td>
-        </tr>
-        </table>
-        <div id="pager" style=""></div> 
-        <div id="filter" style="margin-left:30%;display:none">Search Invoices</div>
-        </div>
-
-        <div id="dialog-form"></div>
-
-        <div id="dialog-confirm" title="¿Borrar el registro seleccionado?" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Este elemento quedará permanentemente eliminado. ¿Está seguro?</p>
-        </div>
-
-        <div id="dialog-alert" title="Atención" style="display:none;">
-            <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Para operar sobre un registro debe seleccionarlo previamente.</p>
-        </div>
-
-
-
-
-
-<script type="text/javascript">  
-    jQuery(function() {
-        jQuery("#dialog-confirm").dialog({ autoOpen: false });
-        jQuery("#dialog-alert").dialog({ autoOpen: false });
-    });
-
-    function print_grid(){  
-        jQuery("#list").jqGrid({
-            url:"{{=URL(c='hosts',f='call',args=['json','list'])}}",
-            data: "{}",
-            datatype: 'json',
-            mtype: 'GET',           
-            
-{{block camposgrid}}                               
-            colNames:['Nombre','IP','mac'],
-            colModel:[ 
-                {name:'cn',index:'cn', width:80, align:"center"},
-                {name:'ipHostNumber',index:'ipHostNumber', width:60, align:"center"},
-                {name:'macAddress',index:'macAddress', width:60, align:"center"}
-            ], 
-
-            postData:{type:'ltsp'}, 
-            caption:"Servidores de Aula (LTSP)",
-{{end}} 
-            rowNum:25,
-            height:335,
-            width: 800,
-            rowList:[25,50,75], 
-            pager: '#pager', 
-            sortname: 'cn', 
-            autowidth: false,
-            viewrecords: true, 
-            sortorder: "desc"
-            
-        }); 
-                      
-        jQuery("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false});
-        
-        jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                caption: "Insertar",
-                buttonicon :'ui-icon-plus',
-                onClickButton : function (){ 
-                    addRecord();
-                } 
-        }); 
-        jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                caption: "Modificar", 
-                buttonicon :'ui-icon-pencil',
-                onClickButton : function (){ 
-                    modifyRecord();
-            } 
-        }); 
-        jQuery("#list").jqGrid('navButtonAdd','#pager',{
-                caption: "Borrar", 
-                buttonicon :'ui-icon-trash',
-                onClickButton : function (){ 
-                    deleteRecord();
-            } 
-        });        
-          
-          jQuery("#list").jqGrid('filterToolbar'); 
-
-    }
-
-    function rowSelected(){
-            var id = jQuery("#list").jqGrid('getGridParam','selrow'); 
-        
-            if( id == null ){
-                jQuery( "#dialog-alert" ).dialog({
-                    resizable: false,
-                    height:150,
-                    width:290,
-                    modal: true,
-                    buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
-                }).dialog('open');
-                return false;
-            }
-            return id;
-    }        
-                
-                
-    function getCell (column) {
-        var rowid = jQuery("#list").jqGrid('getGridParam', 'selrow');
-        
-        if( rowid == null ){
-            jQuery( "#dialog-alert" ).dialog({
-                resizable: false,
-                height:150,
-                width:290,
-                modal: true,
-                buttons: { "Aceptar": function() { $( this ).dialog( "close" ); }}
-            }).dialog('open');
-            return false;
-        }
-        
-        var Cell = jQuery("#list").jqGrid('getCell', rowid, column);
-        
-        
-        return Cell;
-    }
-            
-    function getThinClientGroups(selected) {
-        jQuery.post('call/json/getThinclientGroups', function(result) {
-
-                var selectGrupos = document.getElementById("group");                
-    
-                for (i=0;i<result.response.groups.length;i++) {
-                    var optn = document.createElement("option");
-                    optn.text = result.response.groups[i];
-                    optn.value = result.response.groups[i];
-                    if (selected==optn.text) 
-                        optn.selected = true;
-                    selectGrupos.options.add (optn);
-                }
-        });
-    }                
-
-
-            function modifyRecord(){
-                var hid;
-                var group; 
-                jQuery("#messageLoading").show();
-                
-                var hid = rowSelected();
-                var group = getCell("groupName"); 
-                if(hid==false)
-                    return false;
-
-                jQuery("#dialog-form").html("").css("display","none");
-{{block edit_form}}                      
-                jQuery("#dialog-form").load("form_ltspserver.html", function() {
-                   
-
-{{end}}                     
-                    jQuery("#form_data #action").val("modify");
-                    jQuery("#form_data #name").attr("readonly","true");
-                    jQuery("#form_data #name").css("background-color","#DDD");
-                    jQuery("#form_data #group").attr("readonly","true");
-                    jQuery("#form_data #group").css("background-color","#DDD");
-{{block edit2_form}}                       
-                    jQuery.post('call/json/getHostData',{ cn: hid,group:group,type:'ltsp' }, function(result) {
-                        jQuery("#form_data #name").val(result.response['cn']);
-                        jQuery("#form_data #ip").val(result.response['ip']);                        
-                        jQuery("#form_data #mac").val(result.response['mac']);                           
-{{end}}                        
-                        x = (jQuery(window).width()-300)/2;
-                        y = (jQuery(window).height()-500)/2;
-                        
-                        jQuery("#messageLoading").hide();
-                        
-                        jQuery("#dialog-form").dialog({
-                            resizable: false,
-                            modal: true,
-                            width: 300,
-{{block edit3_form}}                                                          
-                            title: "Modificar Servidor de aula"
-{{end}}
-                        }).dialog('option', 'position', [x, y]);                        
-                    });               
-                });
-            }
-
-
-
-    function addRecord(){
-    
-        jQuery("#dialog-form").html("");
-{{block edit_form}}        
-        jQuery("#dialog-form").load("form_ltspserver.html", function() {
-{{end}}        
-            jQuery("#form_data #action").val("add");
-            jQuery("#form_data #messageForm").html("Todos los campos son obligatorios");                 
-        });
-    
-        x = (jQuery(window).width()-250)/2;
-        y = (jQuery(window).height()-400)/2;
-    
-        jQuery("#dialog-form").dialog({
-            resizable: false,
-            position: top,
-            modal: true,                       
-{{block add_host}}            
-            title: "Añadir Servidor de Aula (ltsp)"  
-{{end}}
-        }).dialog('option', 'position', [x, y]);
-    } 
-
-
-    
-function deleteRecord(){
-    
-        var cn = rowSelected();
-        var grupo = getCell("groupName");
-
-        if(cn==false)
-            return false;    
-    
-    
-        jQuery( "#dialog-confirm" ).dialog({
-            resizable: false,
-            height:160,
-            width:350,
-            modal: true,
-            buttons: {
-                "Borrar": function() {
-{{block delete_host}}                
-                    jQuery.post("call/json/delete",{cn:cn,action:'delete',group:grupo,type:'ltsp'}, function(data){
-{{end}}                    
-                        jQuery("#dialog-confirm").dialog( "close" );
-                        jQuery("#list").trigger("reloadGrid");
-                    });
-                },
-                "Cancelar": function() {
-                    $(this).dialog( "close" );
-                }
-            }
-        }).dialog('open');
-}    
-
-</script>
-
-<script type="text/javascript">
-  jQuery(document).ready(function(){  print_grid();}); 
-</script>
Index: controlies/branches/web2py/applications/controlies/views/gestion/servidores_aula.html
===================================================================
--- controlies/branches/web2py/applications/controlies/views/gestion/servidores_aula.html	(revision 177)
+++ controlies/branches/web2py/applications/controlies/views/gestion/servidores_aula.html	(nonexistent)
@@ -1,144 +0,0 @@
-<style>
-    #selectable .ui-selecting { background: #FECA40; }
-    #selectable .ui-selected { background: #F39814; color: white; }
-    #selectable { list-style-type: none; margin: 0; padding: 0; }
-    #selectable li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 80px; height: 95px; font-size: 1px; text-align: center; cursor:pointer; }
-
-    #selectableStudents .ui-selecting { background: #FECA40; }
-    #selectableStudents .ui-selected { background: #F39814; color: white; }
-    #selectableStudents { list-style-type: none; margin: 0; padding: 0; }
-    #selectableStudents li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 80px; height: 95px; font-size: 1px; text-align: center; cursor:pointer; } 
-</style>
-
-
-{{response.files.append(URL('static','js/utils.js'))}}
-
-{{extend 'layout.html'}}
-
-<script>
-    $(function() {
-        $("#tabsActions").tabs().css("font-size","13px");
-        $("#tabsServers").tabs().css("font-size","13px");
-        
-        $( "#selectAll" )
-            .css("font-size","11px")
-            .button({ icons: { primary: "ui-icon-circle-plus"}})
-            .click(function(){ selectAll() });
-
-        $( "#selectNone" )
-            .css("font-size","11px")
-            .button({ icons: { primary: "ui-icon-circle-minus"}})
-            .click(function(){ selectNone() });
-
-        $( "#turnOn" )
-            .css("font-size","11px")        
-            .button({ icons: { primary: "ui-icon-power"}})
-            .click(function(){ alert("En desarrollo");/*sendOrderSelected("wakeup","","cambiaconfig");*/ });
-
-        $( "#turnOff" )
-            .css("font-size","11px")        
-            .button({ icons: { primary: "ui-icon-circle-close"}})
-            .click(function(){ alert("En desarrollo");/*sendOrderSelected("sleep","","cambiaconfig");*/ });     
-
-        $( "#classroomDetails" )
-            .css("font-size","11px")        
-            .button({ icons: { primary: "ui-icon-circle-close"}})
-            .click(function(){ getClassroomDetails(); });       
-        
-        $( "#selectable" ).selectable();        
-
-        getLTSPServers();
-    });
-    
-    function getLTSPServers(){
-        jQuery.post('call/json/getLTSPServers', function(result) {                                                            
-            jQuery.each(result.response, function(i, l){
-                jQuery('#selectable').append('<li class="ui-state-default" id="selectable-'+l+'"><div id="pcName" style="font-size:11px;">'+l+'</div>{{=IMG(_src=URL(r=request,c="static",f="images/turnOff.png"),_class="thumb-image")}}<div id="userName" style="font-size:11px;"></div></li>');               
-            });
-            
-            getLTSPStatus();
-        });
-    }
-   
-   
-    function getLTSPStatus(){
-        
-        jQuery.post('call/json/getLTSPStatus', function(result) {     
-
-
-            jQuery('#selectable li .thumb-image').attr('src','{{=URL(r=request,c="static",f="images/turnOff.png")}}');
-            jQuery('#selectable li #userName').html('');
-            
-            jQuery.each(result.computers, function(i, l){                
-                jQuery('#selectable #selectable-'+l+' .thumb-image').attr('src','{{=URL(r=request,c="static",f="images/turnOn.png")}}');           
-            });
-
-            $.each(result.teachers, function(i, l){
-                var teacher = l.split(".");
-                var computer = teacher[0].split("@");
-                jQuery('#selectable #selectable-'+computer[1]+' #userName').html(computer[0]);
-               jQuery('#selectable #selectable-'+computer[1]+' .thumb-image').attr('src','{{=URL(r=request,c="static",f="images/nobody.png")}}');
-            });
-
-            //getLTSPClients();
-            
-            setTimeout("getLTSPStatus()",10000);            
-        });
-    }
-    
-
-
-
-</script>
-
-<table width="100" cellspacing="12">
-<tr>
-    <td style="vertical-align:top;" >
-        <div id="tabsActions">
-            <ul>
-                <li><a href="#tabs-1"><span id="actions">Acciones</span></a></li>
-            </ul>
-            <div id="tabs-1" style="padding:3px;">
-                <table width="100%">
-                    <tr>
-                        <td style="text-align:center;"><button id="selectAll" style="width:123px;">Selecc. Todo</button></td>
-                        <td style="text-align:center;"><button id="selectNone" style="width:123px;">Selecc. Ninguno</button></td>                       
-                    </tr>
-                    <tr>
-                        <td style="text-align:center;"><button id="turnOn" style="width:123px;">Encender</button></td>
-                        <td style="text-align:center;"><button id="turnOff" style="width:123px;">Apagar</button></td>
-                    </tr>
-                    <tr>
-                        <td style="text-align:center;"><button id="classroomDetails" style="width:123px;">Mostrar Aula</button></td>
-                        <td style="text-align:center;"></td>
-                    </tr>                   
-                </table>
-            </div>
-        </div>
-    </td></tr>
-    </table>
-    <table width="100" cellspacing="12">
-
-    <tr>
-
-    <td>
-    
-        <div id="tabsServers">
-            <ul>
-                <li><a href="#tabs-1"><span id="actions">Servidores</span></a></li>
-            </ul>
-            <div id="tabs-1" style="padding:3px;">  
-                <table>
-                    <tr>
-                        <td id="tableSelectable">
-                            <ol id="selectable" style="width:870px;"></ol>
-                        </td>
-                    </tr>
-                </table>
-            </div>
-        </div>              
-    </td>
-</tr>
-</table>
-
-<div id="dialog-details"></div>
Index: controlies/branches/web2py/applications/controlies/cron/crontab
===================================================================
--- controlies/branches/web2py/applications/controlies/cron/crontab	(revision 177)
+++ controlies/branches/web2py/applications/controlies/cron/crontab	(nonexistent)
@@ -1 +0,0 @@
-#crontab
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/models/menu.py
===================================================================
--- controlies/branches/web2py/applications/controlies/models/menu.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/models/menu.py	(nonexistent)
@@ -1,63 +0,0 @@
-# -*- coding: utf-8 -*-
-# this file is released under public domain and you can use without limitations
-#########################################################################
-## Customize your APP title, subtitle and menus here
-#########################################################################
-
-response.title = 'ControlIES'
-response.subtitle = 'Centros educativos de Extremadura'
-
-#http://dev.w3.org/html5/markup/meta.name.html
-response.meta.author = 'manuito chischo jredrejo'
-response.meta.description = 'Aplicación para la gestión de usuarios y máquinas en los centros educativos de Extremadura'
-response.meta.keywords = 'ldap, rayuela, linex,extremadura, institutos,usuarios,máquinas, workstations,ltsp'
-response.meta.generator = 'Web2py Enterprise Framework'
-response.meta.copyright = 'Copyright 2010-2011'
-
-
-##########################################
-## this is the main application menu
-## add/remove items as required
-##########################################
-
-response.menu = [
-    (T('Home'), False, URL('default','index'), [])
-    ]
-
-
-
-response.menu+=[
-    ('Administración', False,None,
-     [
-            ('Usuarios', False, URL( 'usuarios', 'index' )),
-            ('Grupos', False,URL( 'grupos', 'index' )),
-            ('Servidores LTSP',False, URL( 'hosts', 'ltspservers' )),
-            ('Workstations', False,URL( 'hosts', 'workstations' )),
-            ('Clientes Ligeros', False,URL( 'hosts', 'thinclients' )),         
-            ('Parámetros DHCP', False,URL( 'dhcpd', 'index' )),
-
-            ]
-   )]
-
-
-
-response.menu+=[('Gestión', False, None,
-     [            
-     ('Servidores de Aula', False,URL( 'gestion', 'servidores_aula')),   
-     
-    ('Importación de Rayuela', False, None,
-        [
-        ('Profesores', False, URL( 'gestion', 'rayuela_profesores')),
-        ('Alumnos', False, URL( 'gestion', 'rayuela_alumnos')),
-
-        ]),
-        
-    ('Mantenimiento de LDAP', False, None,
-        [
-        ('Limpieza de usuarios inexistentes en grupos', False, URL( 'gestion', 'limpieza_usuarios')),
-        ('Detección de uid o gid duplicados', False, URL( 'gestion', 'duplicados')),
-
-        ]),        
-
-    ]
-   )]
Index: controlies/branches/web2py/applications/controlies/models/db.py
===================================================================
--- controlies/branches/web2py/applications/controlies/models/db.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/models/db.py	(nonexistent)
@@ -1,97 +0,0 @@
-# -*- coding: utf-8 -*-
-# this file is released under public domain and you can use without limitations
-
-#########################################################################
-## This scaffolding model makes your app work on Google App Engine too
-#########################################################################
-
-if request.env.web2py_runtime_gae:            # if running on Google App Engine
-    db = DAL('gae')                           # connect to Google BigTable
-                                              # optional DAL('gae://namespace')
-    session.connect(request, response, db = db) # and store sessions and tickets there
-    ### or use the following lines to store sessions in Memcache
-    # from gluon.contrib.memdb import MEMDB
-    # from google.appengine.api.memcache import Client
-    # session.connect(request, response, db = MEMDB(Client()))
-else:                                         # else use a normal relational database
-    db = DAL('sqlite://storage.sqlite')       # if not, use SQLite or other DB
-## if no need for session
-# session.forget()
-
-#########################################################################
-## Here is sample code if you need for
-## - email capabilities
-## - authentication (registration, login, logout, ... )
-## - authorization (role based authorization)
-## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
-## - crud actions
-## (more options discussed in gluon/tools.py)
-#########################################################################
-
-from gluon.tools import *
-from gluon.contrib.login_methods.ldap_auth import ldap_auth
-
-
-
-
-mail = Mail()                                  # mailer
-auth = Auth(globals(),db)                      # authentication/authorization
-crud = Crud(globals(),db)                      # for CRUD helpers using auth
-service = Service(globals())                   # for json, xml, jsonrpc, xmlrpc, amfrpc
-plugins = PluginManager()
-
-auth.define_tables(username=True)
-
-
-mail.settings.server = 'logging' or 'smtp.gmail.com:587'  # your SMTP server
-mail.settings.sender = 'you@gmail.com'         # your email
-mail.settings.login = 'username:password'      # your credentials or None
-
-auth.settings.hmac_key = 'sha512:f649047b-106d-4ef5-ba95-ac9d43734978'   # before define_tables()
-auth.define_tables()                           # creates all needed tables
-auth.settings.mailer = mail                    # for user email verification
-auth.settings.registration_requires_verification = True
-auth.settings.registration_requires_approval = True
-auth.messages.verify_email = 'Click on the link http://'+request.env.http_host+URL('default','user',args=['verify_email'])+'/%(key)s to verify your email'
-auth.settings.reset_password_requires_verification = True
-#auth.settings.alternate_requires_registration = True 
-auth.messages.reset_password = 'Click on the link http://'+request.env.http_host+URL('default','user',args=['reset_password'])+'/%(key)s to reset your password'
-
-#########################################################################
-## If you need to use OpenID, Facebook, MySpace, Twitter, Linkedin, etc.
-## register with janrain.com, uncomment and customize following
-# from gluon.contrib.login_methods.rpx_account import RPXAccount
-# auth.settings.actions_disabled=['register','change_password','request_reset_password']
-auth.settings.actions_disabled=['register','profile','request_reset_password','retrieve_username']
-# auth.settings.login_form = RPXAccount(request, api_key='...',domain='...',
-#    url = "http://localhost:8000/%s/default/user/login" % request.application)
-## other login methods are in gluon/contrib/login_methods
-#########################################################################
-
-crud.settings.auth = None                      # =auth to enforce authorization on crud
-
-#########################################################################
-## Define your tables below (or better in another model file) for example
-##
-## >>> db.define_table('mytable',Field('myfield','string'))
-##
-## Fields can be 'string','text','password','integer','double','boolean'
-##       'date','time','datetime','blob','upload', 'reference TABLENAME'
-## There is an implicit 'id integer autoincrement' field
-## Consult manual for more options, validators, etc.
-##
-## More API examples for controllers:
-##
-## >>> db.mytable.insert(myfield='value')
-## >>> rows=db(db.mytable.myfield=='value').select(db.mytable.ALL)
-## >>> for row in rows: print row.id, row.myfield
-#########################################################################
-import applications.controlies.modules.LdapConnection as LdapConnection
-
-auth.settings.login_methods=[ldap_auth( server='localhost', base_dn='ou=People,dc=instituto,dc=extremadura,dc=es',secure=LdapConnection.ldap_secure,cert_path=LdapConnection.ldap_cert,mode='cn')]
-
-#auth.settings.login_onaccept=lambda form: session_ldap(form)
-def conecta():
-    l=LdapConnection.LdapConnection(session)
-    l.process()
-    return l
Index: controlies/branches/web2py/applications/controlies/controllers/default.py
===================================================================
--- controlies/branches/web2py/applications/controlies/controllers/default.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/controllers/default.py	(nonexistent)
@@ -1,67 +0,0 @@
-# -*- coding: utf-8 -*-
-# this file is released under public domain and you can use without limitations
-
-#########################################################################
-## This is a samples controller
-## - index is the default action of any application
-## - user is required for authentication and authorization
-## - download is for downloading files uploaded in the db (does streaming)
-## - call exposes all registered services (none by default)
-#########################################################################
-@auth.requires_login()
-def index():
-    """
-    example action using the internationalization operator T and flash
-    rendered by views/default/index.html or views/generic.html
-    """
-
-    return dict()
-
-def user():
-    """
-    exposes:
-    http://..../[app]/default/user/login
-    http://..../[app]/default/user/logout
-    http://..../[app]/default/user/register
-    http://..../[app]/default/user/profile
-    http://..../[app]/default/user/retrieve_password
-    http://..../[app]/default/user/change_password
-    use @auth.requires_login()
-        @auth.requires_membership('group name')
-        @auth.requires_permission('read','table name',record_id)
-    to decorate functions that need access control
-    """
-    if "host" in request.vars:
-        session.server=request.vars["host"]
-        session.username=request.vars["username"]        
-        session.password=request.vars["password"]
-        con_parameters=auth.settings.login_methods[0].func_defaults
-        if con_parameters[0] != request.vars["host"] or request.vars["username"] != 'admin':
-            #tengo que cambiar los parámetros con los que se llama a la función de logueo:
-            new_parameters=list(con_parameters)
-            new_parameters[0]=request.vars["host"]
-            if request.vars["username"] != 'admin' : new_parameters[3]='uid'
-            auth.settings.login_methods[0].func_defaults=tuple(new_parameters)
-
-
-
-    return dict(form=auth())
-
-@auth.requires_login()
-def download():
-    """
-    allows downloading of uploaded files
-    http://..../[app]/default/download/[filename]
-    """
-    return response.download(request,db)
-
-@auth.requires_login()
-def call():
-    """
-    exposes services. for example:
-    http://..../[app]/default/call/jsonrpc
-    decorate with @services.jsonrpc the functions to expose
-    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
-    """
-    session.forget()
-    return service()
Index: controlies/branches/web2py/applications/controlies/controllers/gestion.py
===================================================================
--- controlies/branches/web2py/applications/controlies/controllers/gestion.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/controllers/gestion.py	(nonexistent)
@@ -1,81 +0,0 @@
-# coding: utf8
-from applications.controlies.modules.Hosts import Hosts
-
-@service.json   
-@auth.requires_login()
-def servidores_aula():
-    return dict()
-    
-@service.json   
-@auth.requires_login()    
-def getClassroomDetails():
-    import xmlrpclib
-    from applications.controlies.modules.Users import Users
-    l=conecta()
-    objUser = Users(l,"","","","",request.vars['teacher'],"","","","")
-    teacherData = objUser.getUserData()
-
-    s = xmlrpclib.Server("http://" + request.vars['classroom'] + ":8900");
-
-    users = s.Users()
-
-    response = []
-    for u in users:
-        user = u.split("@")
-
-        objUser = Users(l,"","","","",user[0],"","","","")
-        photo = objUser.getUserPhoto()
-
-    #    response.append({ 'username': user[0], 'host': user[1], 'photo': photo })
-
-    #return json.dumps({ "teacher" : teacherData, "classroom" : request.args['classroom'][0], "students" : response })
-
-
-
-    return dict(message="hello from gestion.py")
-
-
-@auth.requires_login()    
-def rayuela_alumnos():
-    return dict()
-
-@auth.requires_login()    
-def rayuela_profesores():
-    return dict()
-
-@service.json   
-@auth.requires_login()    
-def getLTSPServers():
-    l=conecta()
-    h = Hosts (l,"","","","","")
-    response = h.getLTSPServers()
-    l.close()
-    return dict(response=response)
-
-@service.json   
-@auth.requires_login()    
-def getLTSPStatus():
-#esto no me gusta como está hecho
-#tiene problemas de seguridad, lo comento de momento:
-
-#    f = open('/tmp/controlIES.ltpsSevers', 'r')
-#    computers = f.read().split(" ")
-#    computers.sort()
-    
-#    f = open('/tmp/controlIES.ltpsTeachers', 'r')
-#    teachers = f.read().split(" ")
-#    teachers.sort()                
-
-    teachers=()
-    computers=()
-    return dict(computers=computers,teachers=teachers)
-
-def call():
-    """
-    exposes services. for example:
-    http://..../[app]/default/call/jsonrpc
-    decorate with @services.jsonrpc the functions to expose
-    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
-    """
-    session.forget()
-    return service()
Index: controlies/branches/web2py/applications/controlies/controllers/usuarios.py
===================================================================
--- controlies/branches/web2py/applications/controlies/controllers/usuarios.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/controllers/usuarios.py	(nonexistent)
@@ -1,78 +0,0 @@
-# coding: utf8
-from applications.controlies.modules.Users import Users
-
-def index():    
-    return dict()
-
-@service.json
-@auth.requires_login()
-def list():
-    l=conecta()
-    u = Users(l,"","","","","","","","","")
-    response = u.list(request.vars)
-    l.close()
-    return response    
-
-@service.json
-@auth.requires_login()    
-def searchUsername():
-    l=conecta()
-    u = Users(l,"",request.vars['name'],request.vars['surname'],"","","","","","")
-    response = u.searchNewUsername() 
-    l.close()                
-    return dict(response=response)
-    
-@service.json
-def getUserData():
-    l=conecta()
-    u = Users(l,"","","","",request.vars['username'],"","","","")
-    response = u.getUserData()
-    l.close()
-    return dict(response=response)
-
-
-@service.json      
-def getAllUsers():
-    import applications.controlies.modules.Utils.LdapUtils as LdapUtils
-    l=conecta()
-    response = LdapUtils.getAllUsers(l)
-    l.close()
-    return response
-
-@service.json
-@auth.requires_login()       
-def delete():
-    l=conecta()
-    u = Users(l,"","","","",request.vars['user'],"","","","")
-    response = u.delete()  
-    l.close()                          
-    return dict(response=response)
-
-@service.json
-@auth.requires_login()    
-def modify_user():
-    l=conecta() 
-    departments=[]
-    classrooms=[]                
-    if 'multiselect_departments' in request.vars: departments = request.vars['multiselect_departments']
-    if 'multiselect_classrooms' in request.vars:classrooms = request.vars['multiselect_classrooms']
-
-    u = Users(l,request.vars['type'],request.vars['name'],request.vars['surname'],request.vars['nif'],request.vars['user'],request.vars['password'],request.vars['password2'],departments,classrooms)
-    response = u.process(request.vars['action'])
-    l.close()
-    return dict(response = response)    
-    
-      
-
-def form():
-    return dict()
-    
-def call():
-    """
-    exposes services. for example:
-    http://..../[app]/default/call/jsonrpc
-    decorate with @services.jsonrpc the functions to expose
-    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
-    """
-    session.forget()
-    return service()
Index: controlies/branches/web2py/applications/controlies/controllers/grupos.py
===================================================================
--- controlies/branches/web2py/applications/controlies/controllers/grupos.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/controllers/grupos.py	(nonexistent)
@@ -1,66 +0,0 @@
-# coding: utf8
-from applications.controlies.modules.Groups import Groups
-                
-def index(): 
-    return dict()
-
-@service.json
-@auth.requires_login()
-def list():
-    l=conecta()
-    g = Groups(l,"","","")
-    a=request.vars
-    response = g.list(a)
-    l.close()
-    return response  
-    
-@service.json 
-def getAllGroups():
-    import applications.controlies.modules.Utils.LdapUtils as LdapUtils
-    l=conecta()
-    response = LdapUtils.getAllGroups(l)
-    l.close()
-    return response
-    
-@service.json
-@auth.requires_login()
-def modify():
-    l=conecta()
-    g = Groups(l,request.vars['type'], request.vars['name'], request.vars['users'])
-    response = g.process(request.vars['action'])    
-    l.close()
-    return dict(response=response)
-    
-
-@service.json  
-def getGroupData():
-    l=conecta()
-    g = Groups(l,"",request.vars['name'],"")
-    response = g.getGroupData()
-    l.close()
-    return dict(response=response)
-
-@service.json  
-@auth.requires_login()    
-def delete():
-    l=conecta()
-    g = Groups(l,"",request.vars['name'],"")
-    response = g.delete()
-    l.close()
-    return dict(response=response)
-    
-def search():
-    return dict()
-
-def form():
-    return dict()
-    
-def call():
-    """
-    exposes services. for example:
-    http://..../[app]/default/call/jsonrpc
-    decorate with @services.jsonrpc the functions to expose
-    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
-    """
-    session.forget()
-    return service()
Index: controlies/branches/web2py/applications/controlies/controllers/hosts.py
===================================================================
--- controlies/branches/web2py/applications/controlies/controllers/hosts.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/controllers/hosts.py	(nonexistent)
@@ -1,89 +0,0 @@
-# coding: utf8
-from applications.controlies.modules.Hosts import Hosts
-    
-def index():
-#equivalente a list
-    return dict(message="hello from hosts.py")
-    
-@service.json    
-def getThinclientGroups():
-    l=conecta()
-    h = Hosts (l,"","","","","")
-    response = h.getThinclientGroups()
-    l.close()
-    return dict(response=response)
-
-
-@service.json
-def getHostData():
-    l=conecta()
-    h = Hosts(l,request.vars['cn'],"","",request.vars['group'],request.vars['type'])
-    response = h.getHostData()    
-    l.close()
-    return dict(response=response)
-    
-@service.json   
-@auth.requires_login()
-def list_ltspservers():
-    l=conecta()
-    h = Hosts (l,"","","","","")
-    response = h.getLTSPServers()
-    l.close()
-    return response    
-   
-   
-@service.json   
-@auth.requires_login()
-def list():
-    l=conecta()
-    h = Hosts (l,"","","","","")
-    a=request.vars
-    response = h.list(a)    
-    l.close()
-    return response    
-
-@service.json
-@auth.requires_login()
-def modify():
-    l=conecta()
-    ip=''
-    if request.vars['type']!='thinclient':ip=request.vars['ip']
-    h = Hosts(l,request.vars['name'],ip,request.vars['mac'],request.vars['group'],request.vars['type'])
-    response=h.process(request.vars['action']  )
-    l.close()
-    return dict(response=response)
-   
-@service.json
-@auth.requires_login()    
-def delete():
-    l=conecta()
-    h = Hosts(l,request.vars['cn'],"","",request.vars['group'],request.vars['type'])
-    response=h.process(request.vars['action']  )
-    l.close()
-    return dict(response=response)
-
-#necesaria estas funciones en el controlador para poder cargar las vistas correspondientes:    
-def ltspservers():
-    return dict()
-    
-def workstations():
-    return dict()    
-
-def thinclients():
-    return dict()  
-    
-def form_thinclient():
-    return dict()
-
-def form_ltspserver():
-    return dict()
-
-def call():
-    """
-    exposes services. for example:
-    http://..../[app]/default/call/jsonrpc
-    decorate with @services.jsonrpc the functions to expose
-    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
-    """
-    session.forget()
-    return service()
Index: controlies/branches/web2py/applications/controlies/controllers/dhcpd.py
===================================================================
--- controlies/branches/web2py/applications/controlies/controllers/dhcpd.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/controllers/dhcpd.py	(nonexistent)
@@ -1,10 +0,0 @@
-# coding: utf8
-# intente algo como
-def index():
-#equivalente a list
-
-
-    return dict(message="hello from dhcpd.py")
-    
-def delete():
-    return dict()
Index: controlies/branches/web2py/applications/controlies/languages/es-es.py
===================================================================
--- controlies/branches/web2py/applications/controlies/languages/es-es.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/languages/es-es.py	(nonexistent)
@@ -1,323 +0,0 @@
-# coding: utf8
-{
-'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"actualice" es una expresión opcional como "campo1=\'nuevo_valor\'". No se puede actualizar o eliminar resultados de un JOIN',
-'%Y-%m-%d': '%Y-%m-%d',
-'%Y-%m-%d %H:%M:%S': '%d-%m-%Y %H:%M:%S',
-'%s rows deleted': '%s filas eliminadas',
-'%s rows updated': '%s filas actualizadas',
-'(something like "it-it")': '(algo como "it-it")',
-'A new version of web2py is available': 'Hay una nueva versión de web2py disponible',
-'A new version of web2py is available: %s': 'Hay una nueva versión de web2py disponible: %s',
-'ATTENTION: Login requires a secure (HTTPS) connection or running on localhost.': 'ATENCION: Inicio de sesión requiere una conexión segura (HTTPS) o localhost.',
-'ATTENTION: TESTING IS NOT THREAD SAFE SO DO NOT PERFORM MULTIPLE TESTS CONCURRENTLY.': 'ATENCION: NO EJECUTE VARIAS PRUEBAS SIMULTANEAMENTE, NO SON THREAD SAFE.',
-'ATTENTION: you cannot edit the running application!': 'ATENCION: no puede modificar la aplicación que se ejecuta!',
-'About': 'Acerca de',
-'About application': 'Acerca de la aplicación',
-'Access Control': 'Control de Acceso',
-'Admin is disabled because insecure channel': 'Admin deshabilitado, el canal no es seguro',
-'Admin is disabled because unsecure channel': 'Admin deshabilitado, el canal no es seguro',
-'Administrator Password:': 'Contraseña del Administrador:',
-'Ajax Recipes': 'Ajax Recipes',
-'Are you sure you want to delete file "%s"?': '¿Está seguro que desea eliminar el archivo "%s"?',
-'Are you sure you want to uninstall application "%s"': '¿Está seguro que desea desinstalar la aplicación "%s"',
-'Are you sure you want to uninstall application "%s"?': '¿Está seguro que desea desinstalar la aplicación "%s"?',
-'Authentication': 'Autenticación',
-'Available databases and tables': 'Bases de datos y tablas disponibles',
-'Buy this book': 'Buy this book',
-'Cannot be empty': 'No puede estar vacío',
-'Cannot compile: there are errors in your app.        Debug it, correct errors and try again.': 'No se puede compilar: hay errores en su aplicación. Depure, corrija errores y vuelva a intentarlo.',
-'Change Password': 'Cambie Contraseña',
-'Change password': 'Cambiar contraseña',
-'Check to delete': 'Marque para eliminar',
-'Check to delete:': 'Marca para borrarlo:',
-'Client IP': 'IP del Cliente',
-'Community': 'Community',
-'Controller': 'Controlador',
-'Controllers': 'Controladores',
-'Copyright': 'Derechos de autor',
-'Create new application': 'Cree una nueva aplicación',
-'Current request': 'Solicitud en curso',
-'Current response': 'Respuesta en curso',
-'Current session': 'Sesión en curso',
-'DB Model': 'Modelo "db"',
-'DESIGN': 'DISEÑO',
-'Database': 'Base de datos',
-'Date and Time': 'Fecha y Hora',
-'Delete': 'Elimine',
-'Delete:': 'Elimine:',
-'Demo': 'Demo',
-'Deploy on Google App Engine': 'Instale en Google App Engine',
-'Deployment Recipes': 'Deployment Recipes',
-'Description': 'Descripción',
-'Design for': 'Diseño para',
-'Documentation': 'Documentación',
-'Download': 'Descarga',
-'E-mail': 'Correo electrónico',
-'EDIT': 'EDITAR',
-'Edit': 'Editar',
-'Edit Profile': 'Editar Perfil',
-'Edit This App': 'Edite esta App',
-'Edit application': 'Editar aplicación',
-'Edit current record': 'Edite el registro actual',
-'Editing file': 'Editando archivo',
-'Editing file "%s"': 'Editando archivo "%s"',
-'Error logs for "%(app)s"': 'Bitácora de errores en "%(app)s"',
-'Errors': 'Errores',
-'FAQ': 'FAQ',
-'First name': 'Nombre',
-'Forms and Validators': 'Forms and Validators',
-'Free Applications': 'Free Applications',
-'Functions with no doctests will result in [passed] tests.': 'Funciones sin doctests equivalen a pruebas [aceptadas].',
-'Group %(group_id)s created': 'Group %(group_id)s created',
-'Group ID': 'ID de Grupo',
-'Group uniquely assigned to user %(id)s': 'Group uniquely assigned to user %(id)s',
-'Groups': 'Grupos',
-'Hello World': 'Hola Mundo',
-'Home': 'Inicio',
-'Import/Export': 'Importar/Exportar',
-'Index': 'Indice',
-'Installed applications': 'Aplicaciones instaladas',
-'Internal State': 'Estado Interno',
-'Introduction': 'Introducción',
-'Invalid Query': 'Consulta inválida',
-'Invalid action': 'Acción inválida',
-'Invalid email': 'Correo inválido',
-'Invalid login': 'Nombre de usuario inválido',
-'Invalid password': 'Contraseña inválida',
-'Language files (static strings) updated': 'Archivos de lenguaje (cadenas estáticas) actualizados',
-'Languages': 'Lenguajes',
-'Last name': 'Apellido',
-'Last saved on:': 'Guardado en:',
-'Layout': 'Diseño de página',
-'Layouts': 'Layouts',
-'License for': 'Licencia para',
-'Live chat': 'Live chat',
-'Logged in': 'Autenticado',
-'Logged out': 'Sesión finalizada',
-'Login': 'Inicio de sesión',
-'Login to the Administrative Interface': 'Inicio de sesión para la Interfaz Administrativa',
-'Logout': 'Fin de sesión',
-'Lost Password': 'Contraseña perdida',
-'Main Menu': 'Menú principal',
-'Menu Model': 'Modelo "menu"',
-'Models': 'Modelos',
-'Modules': 'Módulos',
-'NO': 'NO',
-'Name': 'Nombre',
-'New Record': 'Registro nuevo',
-'New password': 'Contraseña nueva',
-'No databases in this application': 'No hay bases de datos en esta aplicación',
-'Old password': 'Contraseña antigua',
-'Origin': 'Origen',
-'Original/Translation': 'Original/Traducción',
-'Other Recipes': 'Other Recipes',
-'Overview': 'Overview',
-'Password': 'Contraseña',
-"Password fields don't match": 'Las contraseñas no coinciden',
-'Peeking at file': 'Visualizando archivo',
-'Plugins': 'Plugins',
-'Powered by': 'Este sitio usa',
-'Preface': 'Preface',
-'Profile': 'Perfil',
-'Python': 'Python',
-'Query:': 'Consulta:',
-'Quick Examples': 'Quick Examples',
-'Recipes': 'Recipes',
-'Record %(id)s updated': 'Registro %(id)s actualizado',
-'Record ID': 'ID de Registro',
-'Record Updated': 'Registro actualizado',
-'Register': 'Registrese',
-'Registration identifier': 'Registration identifier',
-'Registration key': 'Contraseña de Registro',
-'Registration successful': 'Registration successful',
-'Remember me (for 30 days)': 'Recuérdame (durante 30 días)',
-'Reset Password key': 'Resetear contraseña',
-'Resolve Conflict file': 'archivo Resolución de Conflicto',
-'Resources': 'Resources',
-'Role': 'Rol',
-'Rows in table': 'Filas en la tabla',
-'Rows selected': 'Filas seleccionadas',
-'Saved file hash:': 'Hash del archivo guardado:',
-'Semantic': 'Semantic',
-'Services': 'Servicios',
-'Static files': 'Archivos estáticos',
-'Stylesheet': 'Hoja de estilo',
-'Submit': 'Enviar',
-'Support': 'Support',
-'Sure you want to delete this object?': '¿Está seguro que desea eliminar este objeto?',
-'Table name': 'Nombre de la tabla',
-'Testing application': 'Probando aplicación',
-'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La "consulta" es una condición como "db.tabla1.campo1==\'valor\'". Algo como "db.tabla1.campo1==db.tabla2.campo2" resulta en un JOIN SQL.',
-'The Core': 'The Core',
-'The Views': 'The Views',
-'The output of the file is a dictionary that was rendered by the view': 'La salida del archivo es un diccionario escenificado por la vista',
-'There are no controllers': 'No hay controladores',
-'There are no models': 'No hay modelos',
-'There are no modules': 'No hay módulos',
-'There are no static files': 'No hay archivos estáticos',
-'There are no translators, only default language is supported': 'No hay traductores, sólo el lenguaje por defecto es soportado',
-'There are no views': 'No hay vistas',
-'This App': 'Esta aplicación',
-'This is a copy of the scaffolding application': 'Esta es una copia de la aplicación de andamiaje',
-'This is the %(filename)s template': 'Esta es la plantilla %(filename)s',
-'Ticket': 'Tiquete',
-'Timestamp': 'Timestamp',
-'Twitter': 'Twitter',
-'Unable to check for upgrades': 'No es posible verificar la existencia de actualizaciones',
-'Unable to download': 'No es posible la descarga',
-'Unable to download app': 'No es posible descarga la aplicación',
-'Update:': 'Actualice:',
-'Upload existing application': 'Suba esta aplicación',
-'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Use (...)&(...) para AND, (...)|(...) para OR, y ~(...) para NOT, para crear consultas más complejas.',
-'User %(id)s Logged-in': 'Usuario %(id)s Autenticado',
-'User %(id)s Logged-out': 'User %(id)s Logged-out',
-'User %(id)s Password changed': 'User %(id)s Password changed',
-'User %(id)s Profile updated': 'User %(id)s Profile updated',
-'User %(id)s Registered': 'User %(id)s Registered',
-'User ID': 'ID de Usuario',
-'User Voice': 'User Voice',
-'Username': 'Usuario',
-'Verify Password': 'Verificar Contraseña',
-'Videos': 'Vídeos',
-'View': 'Vista',
-'Views': 'Vistas',
-'Web2py': 'Web2py',
-'Welcome': 'Bienvenido',
-'Welcome %s': 'Bienvenido %s',
-'Welcome to web2py': 'Bienvenido a web2py',
-'Which called the function': 'La cual llamó la función',
-'YES': 'SI',
-'You are successfully running web2py': 'Usted está ejecutando web2py exitosamente',
-'You can modify this application and adapt it to your needs': 'Usted puede modificar esta aplicación y adaptarla a sus necesidades',
-'You visited the url': 'Usted visitó la url',
-'about': 'acerca de',
-'additional code for your application': 'código adicional para su aplicación',
-'admin disabled because no admin password': ' por falta de contraseña',
-'admin disabled because not supported on google app engine': 'admin deshabilitado, no es soportado en GAE',
-'admin disabled because unable to access password file': 'admin deshabilitado, imposible acceder al archivo con la contraseña',
-'and rename it (required):': 'y renombrela (requerido):',
-'and rename it:': ' y renombrelo:',
-'appadmin': 'appadmin',
-'appadmin is disabled because insecure channel': 'admin deshabilitado, el canal no es seguro',
-'application "%s" uninstalled': 'aplicación "%s" desinstalada',
-'application compiled': 'aplicación compilada',
-'application is compiled and cannot be designed': 'la aplicación está compilada y no puede ser modificada',
-'cache': 'cache',
-'cache, errors and sessions cleaned': 'cache, errores y sesiones eliminados',
-'cannot create file': 'no es posible crear archivo',
-'cannot upload file "%(filename)s"': 'no es posible subir archivo "%(filename)s"',
-'change password': 'cambie contraseña',
-'check all': 'marcar todos',
-'clean': 'limpiar',
-'click here for online examples': 'Haga clic aquí para ver ejemplos en línea',
-'click here for the administrative interface': 'Haga clic aquí para usar la interfaz administrativa',
-'click to check for upgrades': 'haga clic para buscar actualizaciones',
-'compile': 'compilar',
-'compiled application removed': 'aplicación compilada removida',
-'controllers': 'controladores',
-'create file with filename:': 'cree archivo con nombre:',
-'create new application:': 'nombre de la nueva aplicación:',
-'crontab': 'crontab',
-'currently saved or': 'actualmente guardado o',
-'customize me!': 'Adaptame!',
-'data uploaded': 'datos subidos',
-'database': 'base de datos',
-'database %s select': 'selección en base de datos %s',
-'database administration': 'administración base de datos',
-'db': 'db',
-'defines tables': 'define tablas',
-'delete': 'eliminar',
-'delete all checked': 'eliminar marcados',
-'design': 'modificar',
-'documentation': 'documentación',
-'done!': 'listo!',
-'edit': 'editar',
-'edit controller': 'editar controlador',
-'edit profile': 'editar perfil',
-'errors': 'errores',
-'export as csv file': 'exportar como archivo CSV',
-'exposes': 'expone',
-'extends': 'extiende',
-'failed to reload module': 'recarga del módulo ha fallado',
-'file "%(filename)s" created': 'archivo "%(filename)s" creado',
-'file "%(filename)s" deleted': 'archivo "%(filename)s" eliminado',
-'file "%(filename)s" uploaded': 'archivo "%(filename)s" subido',
-'file "%(filename)s" was not deleted': 'archivo "%(filename)s" no fué eliminado',
-'file "%s" of %s restored': 'archivo "%s" de %s restaurado',
-'file changed on disk': 'archivo modificado en el disco',
-'file does not exist': 'archivo no existe',
-'file saved on %(time)s': 'archivo guardado %(time)s',
-'file saved on %s': 'archivo guardado %s',
-'forgot username?': '¿olvidó su nombre de usuario?',
-'help': 'ayuda',
-'htmledit': 'htmledit',
-'includes': 'incluye',
-'insert new': 'inserte nuevo',
-'insert new %s': 'inserte nuevo %s',
-'internal error': 'error interno',
-'invalid password': 'contraseña inválida',
-'invalid request': 'solicitud inválida',
-'invalid ticket': 'tiquete inválido',
-'language file "%(filename)s" created/updated': 'archivo de lenguaje "%(filename)s" creado/actualizado',
-'languages': 'lenguajes',
-'languages updated': 'lenguajes actualizados',
-'loading...': 'cargando...',
-'located in the file': 'localizada en el archivo',
-'login': 'inicio de sesión',
-'logout': 'fin de sesión',
-'lost password?': '¿olvido la contraseña?',
-'merge': 'combinar',
-'models': 'modelos',
-'modules': 'módulos',
-'new application "%s" created': 'nueva aplicación "%s" creada',
-'new record inserted': 'nuevo registro insertado',
-'next 100 rows': '100 filas siguientes',
-'or import from csv file': 'o importar desde archivo CSV',
-'or provide application url:': 'o provea URL de la aplicación:',
-'pack all': 'empaquetar todo',
-'pack compiled': 'empaquete compiladas',
-'password': 'contraseña',
-'please input your password again': 'introduzca su contraseña otra vez',
-'previous 100 rows': '100 filas anteriores',
-'profile': 'perfil',
-'record': 'registro',
-'record does not exist': 'el registro no existe',
-'record id': 'id de registro',
-'register': 'registrese',
-'remove compiled': 'eliminar compiladas',
-'restore': 'restaurar',
-'revert': 'revertir',
-'save': 'guardar',
-'selected': 'seleccionado(s)',
-'session expired': 'sesión expirada',
-'shell': 'shell',
-'site': 'sitio',
-'some files could not be removed': 'algunos archivos no pudieron ser removidos',
-'state': 'estado',
-'static': 'estáticos',
-'table': 'tabla',
-'test': 'probar',
-'the application logic, each URL path is mapped in one exposed function in the controller': 'la lógica de la aplicación, cada ruta URL se mapea en una función expuesta en el controlador',
-'the data representation, define database tables and sets': 'la representación de datos, define tablas y conjuntos de base de datos',
-'the presentations layer, views are also known as templates': 'la capa de presentación, las vistas también son llamadas plantillas',
-'these files are served without processing, your images go here': 'estos archivos son servidos sin procesar, sus imágenes van aquí',
-'to  previous version.': 'a la versión previa.',
-'translation strings for the application': 'cadenas de caracteres de traducción para la aplicación',
-'try': 'intente',
-'try something like': 'intente algo como',
-'unable to create application "%s"': 'no es posible crear la aplicación "%s"',
-'unable to delete file "%(filename)s"': 'no es posible eliminar el archivo "%(filename)s"',
-'unable to parse csv file': 'no es posible analizar el archivo CSV',
-'unable to uninstall "%s"': 'no es posible instalar "%s"',
-'uncheck all': 'desmarcar todos',
-'uninstall': 'desinstalar',
-'update': 'actualizar',
-'update all languages': 'actualizar todos los lenguajes',
-'upload application:': 'subir aplicación:',
-'upload file:': 'suba archivo:',
-'versioning': 'versiones',
-'view': 'vista',
-'views': 'vistas',
-'web2py Recent Tweets': 'Tweets Recientes de web2py',
-'web2py is up to date': 'web2py está actualizado',
-}
Index: controlies/branches/web2py/applications/controlies/languages/fr-fr.py
===================================================================
--- controlies/branches/web2py/applications/controlies/languages/fr-fr.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/languages/fr-fr.py	(nonexistent)
@@ -1,95 +0,0 @@
-# coding: utf8
-{
-'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN',
-'%Y-%m-%d': '%Y-%m-%d',
-'%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S',
-'%s rows deleted': '%s rang\xc3\xa9es effac\xc3\xa9es',
-'%s rows updated': '%s rang\xc3\xa9es mises \xc3\xa0 jour',
-'Authentication': 'Authentication',
-'Available databases and tables': 'Available databases and tables',
-'Cannot be empty': 'Cannot be empty',
-'Check to delete': 'Check to delete',
-'Client IP': 'Client IP',
-'Controller': 'Controller',
-'Copyright': 'Copyright',
-'Current request': 'Current request',
-'Current response': 'Current response',
-'Current session': 'Current session',
-'DB Model': 'DB Model',
-'Database': 'Database',
-'Delete:': 'Delete:',
-'Description': 'Description',
-'E-mail': 'E-mail',
-'Edit': 'Edit',
-'Edit This App': 'Edit This App',
-'Edit current record': 'Edit current record',
-'First name': 'First name',
-'Group ID': 'Group ID',
-'Hello World': 'Bonjour Monde',
-'Import/Export': 'Import/Export',
-'Index': 'Index',
-'Internal State': 'Internal State',
-'Invalid Query': 'Requ\xc3\xaate Invalide',
-'Invalid email': 'Invalid email',
-'Last name': 'Last name',
-'Layout': 'Layout',
-'Login': 'Login',
-'Lost Password': 'Lost Password',
-'Main Menu': 'Main Menu',
-'Menu Model': 'Menu Model',
-'Name': 'Name',
-'New Record': 'New Record',
-'No databases in this application': 'No databases in this application',
-'Origin': 'Origin',
-'Password': 'Password',
-'Powered by': 'Powered by',
-'Query:': 'Query:',
-'Record ID': 'Record ID',
-'Register': 'Register',
-'Registration key': 'Registration key',
-'Role': 'Role',
-'Rows in table': 'Rows in table',
-'Rows selected': 'Rows selected',
-'Stylesheet': 'Stylesheet',
-'Sure you want to delete this object?': 'Souhaitez vous vraiment effacercet objet?',
-'Table name': 'Table name',
-'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.',
-'Timestamp': 'Timestamp',
-'Update:': 'Update:',
-'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.',
-'User ID': 'User ID',
-'View': 'View',
-'Welcome %s': 'Welcome %s',
-'Welcome to web2py': 'Bienvenue sur web2py',
-'appadmin is disabled because insecure channel': 'appadmin is disabled because insecure channel',
-'cache': 'cache',
-'change password': 'change password',
-'click here for online examples': 'cliquez ici pour voir des exemples enligne',
-'click here for the administrative interface': "cliquez ici pour aller\xc3\xa0 l'interface d'administration",
-'customize me!': 'customize me!',
-'data uploaded': 'donn\xc3\xa9es t\xc3\xa9l\xc3\xa9charg\xc3\xa9es',
-'database': 'database',
-'database %s select': 'database %s select',
-'db': 'db',
-'design': 'design',
-'done!': 'fait!',
-'edit profile': 'edit profile',
-'export as csv file': 'export as csv file',
-'insert new': 'insert new',
-'insert new %s': 'insert new %s',
-'invalid request': 'requ\xc3\xaate invalide',
-'login': 'login',
-'logout': 'logout',
-'new record inserted': 'nouvelle archive ins\xc3\xa9r\xc3\xa9e',
-'next 100 rows': 'next 100 rows',
-'or import from csv file': 'or import from csv file',
-'previous 100 rows': 'previous 100 rows',
-'record': 'record',
-'record does not exist': "l'archive n'existe pas",
-'record id': 'record id',
-'register': 'register',
-'selected': 'selected',
-'state': '\xc3\xa9tat',
-'table': 'table',
-'unable to parse csv file': "incapable d'analyser le fichier cvs",
-}
Index: controlies/branches/web2py/applications/controlies/languages/it.py
===================================================================
--- controlies/branches/web2py/applications/controlies/languages/it.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/languages/it.py	(nonexistent)
@@ -1,104 +0,0 @@
-# coding: utf8
-{
-'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" è un\'espressione opzionale come "campo1=\'nuovo valore\'". Non si può fare "update" o "delete" dei risultati di un JOIN ',
-'%Y-%m-%d': '%d/%m/%Y',
-'%Y-%m-%d %H:%M:%S': '%d/%m/%Y %H:%M:%S',
-'%s rows deleted': '%s righe ("record") cancellate',
-'%s rows updated': '%s righe ("record") modificate',
-'Available databases and tables': 'Database e tabelle disponibili',
-'Cannot be empty': 'Non può essere vuoto',
-'Check to delete': 'Seleziona per cancellare',
-'Client IP': 'Client IP',
-'Controller': 'Controller',
-'Copyright': 'Copyright',
-'Current request': 'Richiesta (request) corrente',
-'Current response': 'Risposta (response) corrente',
-'Current session': 'Sessione (session) corrente',
-'DB Model': 'Modello di DB',
-'Database': 'Database',
-'Delete:': 'Cancella:',
-'Description': 'Descrizione',
-'E-mail': 'E-mail',
-'Edit': 'Modifica',
-'Edit This App': 'Modifica questa applicazione',
-'Edit current record': 'Modifica record corrente',
-'First name': 'Nome',
-'Group ID': 'ID Gruppo',
-'Hello World': 'Salve Mondo',
-'Hello World in a flash!': 'Salve Mondo in un flash!',
-'Import/Export': 'Importa/Esporta',
-'Index': 'Indice',
-'Internal State': 'Stato interno',
-'Invalid Query': 'Richiesta (query) non valida',
-'Invalid email': 'Email non valida',
-'Last name': 'Cognome',
-'Layout': 'Layout',
-'Main Menu': 'Menu principale',
-'Menu Model': 'Menu Modelli',
-'Name': 'Nome',
-'New Record': 'Nuovo elemento (record)',
-'No databases in this application': 'Nessun database presente in questa applicazione',
-'Origin': 'Origine',
-'Password': 'Password',
-'Powered by': 'Powered by',
-'Query:': 'Richiesta (query):',
-'Record ID': 'Record ID',
-'Registration key': 'Chiave di Registazione',
-'Reset Password key': 'Resetta chiave Password ',
-'Role': 'Ruolo',
-'Rows in table': 'Righe nella tabella',
-'Rows selected': 'Righe selezionate',
-'Stylesheet': 'Foglio di stile (stylesheet)',
-'Sure you want to delete this object?': 'Vuoi veramente cancellare questo oggetto?',
-'Table name': 'Nome tabella',
-'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'La richiesta (query) è una condizione come ad esempio  "db.tabella1.campo1==\'valore\'". Una condizione come "db.tabella1.campo1==db.tabella2.campo2" produce un "JOIN" SQL.',
-'The output of the file is a dictionary that was rendered by the view': 'L\'output del file è un "dictionary" che è stato visualizzato dalla vista',
-'This is a copy of the scaffolding application': "Questa è una copia dell'applicazione di base (scaffold)",
-'Timestamp': 'Ora (timestamp)',
-'Update:': 'Aggiorna:',
-'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Per costruire richieste (query) più complesse si usano (...)&(...) come "e" (AND), (...)|(...) come "o" (OR), e ~(...) come negazione (NOT).',
-'User ID': 'ID Utente',
-'View': 'Vista',
-'Welcome %s': 'Benvenuto %s',
-'Welcome to web2py': 'Benvenuto su web2py',
-'Which called the function': 'che ha chiamato la funzione',
-'You are successfully running web2py': 'Stai eseguendo web2py con successo',
-'You can modify this application and adapt it to your needs': 'Puoi modificare questa applicazione adattandola alle tue necessità',
-'You visited the url': "Hai visitato l'URL",
-'appadmin is disabled because insecure channel': 'Amministrazione (appadmin) disabilitata: comunicazione non sicura',
-'cache': 'cache',
-'change password': 'Cambia password',
-'click here for online examples': 'clicca per vedere gli esempi',
-'click here for the administrative interface': "clicca per l'interfaccia amministrativa",
-'customize me!': 'Personalizzami!',
-'data uploaded': 'dati caricati',
-'database': 'database',
-'database %s select': 'database %s select',
-'db': 'db',
-'design': 'progetta',
-'documentation': 'documentazione',
-'done!': 'fatto!',
-'edit profile': 'modifica profilo',
-'export as csv file': 'esporta come file CSV',
-'hello world': 'salve mondo',
-'insert new': 'inserisci nuovo',
-'insert new %s': 'inserisci nuovo %s',
-'invalid request': 'richiesta non valida',
-'located in the file': 'presente nel file',
-'login': 'accesso',
-'logout': 'uscita',
-'lost password?': 'dimenticato la password?',
-'new record inserted': 'nuovo record inserito',
-'next 100 rows': 'prossime 100 righe',
-'not authorized': 'non autorizzato',
-'or import from csv file': 'oppure importa da file CSV',
-'previous 100 rows': '100 righe precedenti',
-'record': 'record',
-'record does not exist': 'il record non esiste',
-'record id': 'record id',
-'register': 'registrazione',
-'selected': 'selezionato',
-'state': 'stato',
-'table': 'tabella',
-'unable to parse csv file': 'non riesco a decodificare questo file CSV',
-}
Index: controlies/branches/web2py/applications/controlies/languages/pt.py
===================================================================
--- controlies/branches/web2py/applications/controlies/languages/pt.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/languages/pt.py	(nonexistent)
@@ -1,116 +0,0 @@
-# coding: utf8
-{
-'"update" is an optional expression like "field1=\'newvalue\'". You cannot update or delete the results of a JOIN': '"update" é uma expressão opcional como "field1=\'newvalue\'". Não pode actualizar ou eliminar os resultados de um JOIN',
-'%Y-%m-%d': '%Y-%m-%d',
-'%Y-%m-%d %H:%M:%S': '%Y-%m-%d %H:%M:%S',
-'%s rows deleted': '%s linhas eliminadas',
-'%s rows updated': '%s linhas actualizadas',
-'About': 'About',
-'Author Reference Auth User': 'Author Reference Auth User',
-'Author Reference Auth User.username': 'Author Reference Auth User.username',
-'Available databases and tables': 'bases de dados e tabelas disponíveis',
-'Cannot be empty': 'não pode ser vazio',
-'Category Create': 'Category Create',
-'Category Select': 'Category Select',
-'Check to delete': 'seleccione para eliminar',
-'Comment Create': 'Comment Create',
-'Comment Select': 'Comment Select',
-'Content': 'Content',
-'Controller': 'Controlador',
-'Copyright': 'Direitos de cópia',
-'Created By': 'Created By',
-'Created On': 'Created On',
-'Current request': 'pedido currente',
-'Current response': 'resposta currente',
-'Current session': 'sessão currente',
-'DB Model': 'Modelo de BD',
-'Database': 'Base de dados',
-'Delete:': 'Eliminar:',
-'Edit': 'Editar',
-'Edit This App': 'Edite esta aplicação',
-'Edit current record': 'Edição de registo currente',
-'Email': 'Email',
-'First Name': 'First Name',
-'For %s #%s': 'For %s #%s',
-'Hello World': 'Olá Mundo',
-'Import/Export': 'Importar/Exportar',
-'Index': 'Índice',
-'Internal State': 'Estado interno',
-'Invalid Query': 'Consulta Inválida',
-'Last Name': 'Last Name',
-'Layout': 'Esboço',
-'Main Menu': 'Menu Principal',
-'Menu Model': 'Menu do Modelo',
-'Modified By': 'Modified By',
-'Modified On': 'Modified On',
-'Name': 'Name',
-'New Record': 'Novo Registo',
-'No Data': 'No Data',
-'No databases in this application': 'Não há bases de dados nesta aplicação',
-'Password': 'Password',
-'Post Create': 'Post Create',
-'Post Select': 'Post Select',
-'Powered by': 'Suportado por',
-'Query:': 'Interrogação:',
-'Replyto Reference Post': 'Replyto Reference Post',
-'Rows in table': 'Linhas numa tabela',
-'Rows selected': 'Linhas seleccionadas',
-'Stylesheet': 'Folha de estilo',
-'Sure you want to delete this object?': 'Tem a certeza que deseja eliminar este objecto?',
-'The "query" is a condition like "db.table1.field1==\'value\'". Something like "db.table1.field1==db.table2.field2" results in a SQL JOIN.': 'A "query" é uma condição do tipo "db.table1.field1==\'value\'". Algo como "db.table1.field1==db.table2.field2" resultaria num SQL JOIN.',
-'Title': 'Title',
-'Update:': 'Actualização:',
-'Use (...)&(...) for AND, (...)|(...) for OR, and ~(...)  for NOT to build more complex queries.': 'Utilize (...)&(...) para AND, (...)|(...) para OR, e ~(...)  para NOT para construir interrogações mais complexas.',
-'Username': 'Username',
-'View': 'Vista',
-'Welcome %s': 'Bem-vindo(a) %s',
-'Welcome to Gluonization': 'Bem vindo ao Web2py',
-'Welcome to web2py': 'Bem-vindo(a) ao web2py',
-'When': 'When',
-'appadmin is disabled because insecure channel': 'appadmin está desactivada pois o canal é inseguro',
-'cache': 'cache',
-'change password': 'alterar palavra-chave',
-'click here for online examples': 'Clique aqui para exemplos online',
-'click here for the administrative interface': 'Clique aqui para o painel administrativo',
-'create new category': 'create new category',
-'create new comment': 'create new comment',
-'create new post': 'create new post',
-'customize me!': 'Personaliza-me!',
-'data uploaded': 'informação enviada',
-'database': 'base de dados',
-'database %s select': 'selecção de base de dados %s',
-'db': 'bd',
-'design': 'design',
-'done!': 'concluído!',
-'edit category': 'edit category',
-'edit comment': 'edit comment',
-'edit post': 'edit post',
-'edit profile': 'Editar perfil',
-'export as csv file': 'exportar como ficheiro csv',
-'insert new': 'inserir novo',
-'insert new %s': 'inserir novo %s',
-'invalid request': 'Pedido Inválido',
-'login': 'login',
-'logout': 'logout',
-'new record inserted': 'novo registo inserido',
-'next 100 rows': 'próximas 100 linhas',
-'or import from csv file': 'ou importe a partir de ficheiro csv',
-'previous 100 rows': '100 linhas anteriores',
-'record': 'registo',
-'record does not exist': 'registo inexistente',
-'record id': 'id de registo',
-'register': 'register',
-'search category': 'search category',
-'search comment': 'search comment',
-'search post': 'search post',
-'select category': 'select category',
-'select comment': 'select comment',
-'select post': 'select post',
-'selected': 'seleccionado(s)',
-'show category': 'show category',
-'show comment': 'show comment',
-'show post': 'show post',
-'state': 'estado',
-'table': 'tabela',
-'unable to parse csv file': 'não foi possível carregar ficheiro csv',
-}
Index: controlies/branches/web2py/applications/controlies/static/images/nobody.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/nobody.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/unlock.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/unlock.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/css3buttons_backgrounds.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/css3buttons_backgrounds.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/arrows-ffffff.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/arrows-ffffff.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/poweredby.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/poweredby.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/pcNone.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/pcNone.png
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/turnOff.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/turnOff.png
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/warning.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/warning.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/css3buttons_icons.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/css3buttons_icons.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/turnOn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/turnOn.png
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/shadow.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/shadow.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/warn.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/warn.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/ok.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/ok.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/images/error.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/images/error.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/robots.txt
===================================================================
--- controlies/branches/web2py/applications/controlies/static/robots.txt	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/robots.txt	(nonexistent)
@@ -1,2 +0,0 @@
-User-agent: *
-Disallow: /welcome/default/user
Index: controlies/branches/web2py/applications/controlies/static/css/handheld.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/handheld.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/handheld.css	(nonexistent)
@@ -1,7 +0,0 @@
-
-* {
-  float: none;       /* Screens are not big enough to account for floats */
-  font-size: 80%;    /* Slightly reducing font size to reduce need to scroll */ 
-  background: #fff;  /*  As much contrast as possible */
-  color: #000;
-}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/css/default.advanced.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/default.advanced.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/default.advanced.css	(nonexistent)
@@ -1,68 +0,0 @@
-@charset "UTF-8";
-
-/** 
- * Abobe Advanced CSS Drop-Down Menu Theme
- *
- * @file		default.advanced.css
- * @name		Adobe
- * @version		0.1
- * @type		transitional
- * @browsers	Windows: IE5+, Opera7+, Firefox1+
- *				Mac OS: Safari2+, Firefox2+
- *
- * @link		http://www.lwis.net/
- * @copyright	2008 Live Web Institute. All Rights Reserved.
- *
- */
-
-@import "default.css";
-
-
-ul.dropdown li a { /* Moved from 'custom' section */
- display: block;
- padding: 7px 12px;
-}
-
-
-/* ------------- Override default */
-
-ul.dropdown li {
- padding: 0;
-}
-
-
-/* ------------- Reinitiate default: post-override activities  */
-
-ul.dropdown li.dir {
- padding: 7px 20px 7px 12px;
-}
-
-ul.dropdown ul li.dir {
- padding-right: 15px;
-}
-
-
-/* ------------- Custom */
-
-ul.dropdown li {
-
-}
-
-
-/* Especially for IE6 or lower */
-
-ul.dropdown ul a {
- padding: 4px 5px 4px 12px;
- /*width: 139px;*/
-}
-
-ul.dropdown ul a:hover {
- padding: 3px 5px 3px 11px;
- border: solid 1px #ddd;
- background-color: #eee;
- font-weight: bold;
-}
-
-ul.dropdown ul a.dir {
- /*width: 129px;*/
-}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/css/superfish.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/superfish.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/superfish.css	(nonexistent)
@@ -1,143 +0,0 @@
-/*** ESSENTIAL STYLES ***/
-.sf-menu, .sf-menu * {
-    margin:         0;
-    padding:        0;
-    list-style:     none;
-}
-.sf-menu {
-    line-height:    1.0;
-}
-.sf-menu ul {
-    position:       absolute;
-    top:            -999em;
-    width:          10em; /* left offset of submenus need to match (see below) */
-}
-.sf-menu ul li {
-    width:          100%;
-}
-.sf-menu li:hover {
-    visibility:     inherit; /* fixes IE7 'sticky bug' */
-}
-.sf-menu li {
-    float:          left;
-    position:       relative;
-}
-.sf-menu a {
-    display:        block;
-    position:       relative;
-}
-.sf-menu li:hover ul,
-.sf-menu li.sfHover ul {
-    left:           0;
-    top:            2.5em; /* match top ul list item height */
-    z-index:        99;
-}
-ul.sf-menu li:hover li ul,
-ul.sf-menu li.sfHover li ul {
-    top:            -999em;
-}
-ul.sf-menu li li:hover ul,
-ul.sf-menu li li.sfHover ul {
-    left:           10em; /* match ul width */
-    top:            0;
-}
-ul.sf-menu li li:hover li ul,
-ul.sf-menu li li.sfHover li ul {
-    top:            -999em;
-}
-ul.sf-menu li li li:hover ul,
-ul.sf-menu li li li.sfHover ul {
-    left:           10em; /* match ul width */
-    top:            0;
-}
-
-/*** DEMO SKIN ***/
-.sf-menu {
-    float:          left;
-    /*margin-bottom:    1em;*/
-}
-.sf-menu a {
-    border-left:    1px solid #0;
-    /*border-top:       1px solid #CFDEFF;*/
-    padding:        .75em 1em;
-    text-decoration:none;
-}
-.sf-menu a, .sf-menu a:visited  { /* visited pseudo selector so IE6 applies text colour*/
-/*    color: #275b90;/*#13a;*/
-    color: #0;
-}
-.sf-menu li {
-    /*background: #dadada;/*#BDD2FF;*/
-    background: #4c4c4c;
-}
-.sf-menu li li {
-/*    background:     #AABDE6;*/
-    background:     #555;
-}
-.sf-menu li li a {
-    /*color: #13a;*/
-}
-.sf-menu li li li {
-/*    background:     #9AAEDB;*/
-        background:     #555;
-}
-.sf-menu li:hover, .sf-menu li.sfHover,
-.sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active {
-/*    background:     #CFDEFF;*/
-    background:     #777;
-    outline:        0;
-}
-
-/*** arrows **/
-.sf-menu a.sf-with-ul {
-    padding-right:  2.25em;
-    min-width:      1px; /* trigger IE7 hasLayout so spans position accurately */
-}
-.sf-sub-indicator {
-    position:       absolute;
-    display:        block;
-    right:          .75em;
-    top:            1.05em; /* IE6 only */
-    width:          10px;
-    height:         10px;
-    text-indent:    -999em;
-    overflow:       hidden;
-    background:     url('../images/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
-}
-a > .sf-sub-indicator {  /* give all except IE6 the correct values */
-    top:            .8em;
-    background-position: 0 -100px; /* use translucent arrow for modern browsers*/
-}
-/* apply hovers to modern browsers */
-a:focus > .sf-sub-indicator,
-a:hover > .sf-sub-indicator,
-a:active > .sf-sub-indicator,
-li:hover > a > .sf-sub-indicator,
-li.sfHover > a > .sf-sub-indicator {
-    background-position: -10px -100px; /* arrow hovers for modern browsers*/
-}
-
-/* point right for anchors in subs */
-.sf-menu ul .sf-sub-indicator { background-position:  -10px 0; }
-.sf-menu ul a > .sf-sub-indicator { background-position:  0 0; }
-/* apply hovers to modern browsers */
-.sf-menu ul a:focus > .sf-sub-indicator,
-.sf-menu ul a:hover > .sf-sub-indicator,
-.sf-menu ul a:active > .sf-sub-indicator,
-.sf-menu ul li:hover > a > .sf-sub-indicator,
-.sf-menu ul li.sfHover > a > .sf-sub-indicator {
-    background-position: -10px 0; /* arrow hovers for modern browsers*/
-}
-
-/*** shadows for all but IE6 ***/
-.sf-shadow ul {
-    background: url('../images/shadow.png') no-repeat bottom right;
-    padding: 0 8px 9px 0;
-    -moz-border-radius-bottomleft: 17px;
-    -moz-border-radius-topright: 17px;
-    -webkit-border-top-right-radius: 17px;
-    -webkit-border-bottom-left-radius: 17px;
-}
-.sf-shadow ul.sf-shadow-off {
-    background: transparent;
-}
Index: controlies/branches/web2py/applications/controlies/static/css/calendar.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/calendar.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/calendar.css	(nonexistent)
@@ -1 +0,0 @@
-.calendar{z-index:99;position:relative;display:none;border-top:2px solid #fff;border-right:2px solid #000;border-bottom:2px solid #000;border-left:2px solid #fff;font-size:11px;color:#000;cursor:default;background:#d4d0c8;font-family:tahoma,verdana,sans-serif;}.calendar table{border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;font-size:11px;color:#000;cursor:default;background:#d4d0c8;font-family:tahoma,verdana,sans-serif;}.calendar .button{text-align:center;padding:1px;border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;}.calendar .nav{background:transparent}.calendar thead .title{font-weight:bold;padding:1px;border:1px solid #000;background:#848078;color:#fff;text-align:center;}.calendar thead .name{border-bottom:1px solid #000;padding:2px;text-align:center;background:#f4f0e8;}.calendar thead .weekend{color:#f00;}.calendar thead .hilite{border-top:2px solid #fff;border-right:2px solid #000;border-bottom:2px solid #000;border-left:2px solid #fff;padding:0;background-color:#e4e0d8;}.calendar thead .active{padding:2px 0 0 2px;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;background-color:#c4c0b8;}.calendar tbody .day{width:2em;text-align:right;padding:2px 4px 2px 2px;}.calendar tbody .day.othermonth{font-size:80%;color:#aaa;}.calendar tbody .day.othermonth.oweekend{color:#faa;}.calendar table .wn{padding:2px 3px 2px 2px;border-right:1px solid #000;background:#f4f0e8;}.calendar tbody .rowhilite td{background:#e4e0d8;}.calendar tbody .rowhilite td.wn{background:#d4d0c8;}.calendar tbody td.hilite{padding:1px 3px 1px 1px;border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;}.calendar tbody td.active{padding:2px 2px 0 2px;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;}.calendar tbody td.selected{font-weight:bold;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;padding:2px 2px 0 2px;background:#e4e0d8;}.calendar tbody td.weekend{color:#f00;}.calendar tbody td.today{font-weight:bold;color:#00f;}.calendar tbody .disabled{color:#999;}.calendar tbody .emptycell{visibility:hidden;}.calendar tbody .emptyrow{display:none;}.calendar tfoot .ttip{background:#f4f0e8;padding:1px;border:1px solid #000;background:#848078;color:#fff;text-align:center;}.calendar tfoot .hilite{border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;padding:1px;background:#e4e0d8;}.calendar tfoot .active{padding:2px 0 0 2px;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;}.calendar .combo{position:absolute;display:none;width:4em;top:0;left:0;cursor:default;border-top:1px solid #fff;border-right:1px solid #000;border-bottom:1px solid #000;border-left:1px solid #fff;background:#e4e0d8;font-size:90%;padding:1px;z-index:100;}.calendar .combo .label,.calendar .combo .label-IEfix{text-align:center;padding:1px;}.calendar .combo .label-IEfix{width:4em;}.calendar .combo .active{background:#c4c0b8;padding:0;border-top:1px solid #000;border-right:1px solid #fff;border-bottom:1px solid #fff;border-left:1px solid #000;}.calendar .combo .hilite{background:#048;color:#fea;}.calendar td.time{border-top:1px solid #000;padding:1px 0;text-align:center;background-color:#f4f0e8;}.calendar td.time .hour,.calendar td.time .minute,.calendar td.time .ampm{padding:0 3px 0 4px;border:1px solid #889;font-weight:bold;background-color:#fff;}.calendar td.time .ampm{text-align:center;}.calendar td.time .colon{padding:0 2px 0 3px;font-weight:bold;}.calendar td.time span.hilite{border-color:#000;background-color:#766;color:#fff;}.calendar td.time span.active{border-color:#f00;background-color:#000;color:#0f0;}#CP_hourcont{z-index:99;padding:0;position:absolute;border:1px dashed #666;background-color:#eee;display:none;}#CP_minutecont{z-index:99;background-color:#ddd;padding:1px;position:absolute;width:45px;display:none;}.floatleft{float:left;}.CP_hour{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:35px;}.CP_minute{z-index:99;padding:1px;font-family:Arial,Helvetica,sans-serif;font-size:9px;white-space:nowrap;cursor:pointer;width:auto;}.CP_over{background-color:#fff;z-index:99}
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/css/calendar.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/css/base.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/base.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/base.css	(nonexistent)
@@ -1,563 +0,0 @@
-@charset "UTF-8";
-
-/* This file is contains the following sections:
-
-Update: Revision: 20101102 by Martin Mulone
-
-- The new revision contains:
-- Html5, good practice and normalization support.
-- Diferent hacks.
-- The normalization and some tags come from
-  diferent sites so i keep the credits and comments.
-  but the base of support html5 come from:
-  http://html5boilerplate.com/
-
-- ez.css (http://www.ez-css.org/layouts)
-- reset common tags
-- choose default fonts
-- choose link style
-- add bottom line to table rows
-- labels bold and occasionally centered
-- make all input fields the same size
-- add proper separation between h1-h6 and text
-- always indent the first line and add space below paragraphs
-- bullets and numbers style and indent
-- form and table padding
-- code blocks
-- left and right padding to quoted text
-- page layout alignment, width and padding (change this for spaces)
-- column widths (change this to use left_sidebar and right_sidebar)
-- backrgound images and colors (change this for colors)
-- web2py specific (.flash, .error)
-
-Notice:
-- even if you use a different layout/css you may need classes .flash and .error
-- this is all color neutral except for #349C01 (header, links, lines)
-- there are two backrgound images: images/background.png and images/header.png
-
-License: This file is released under BSD and MIT
-
-*/
-
-/*     
-  credit is left where credit is due.
-  additionally, much inspiration was taken from these projects:
-    yui.yahooapis.com/2.8.1/build/base/base.css
-    camendesign.com/design/
-    praegnanz.de/weblog/htmlcssjs-kickstart
-*/
-
-/* 
-  html5doctor.com Reset Stylesheet (Eric Meyer's Reset Reloaded + HTML5 baseline)
-  v1.4 2009-07-27 | Authors: Eric Meyer & Richard Clark
-  html5doctor.com/html-5-reset-stylesheet/
-*/
-
-html, body, div, span, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-abbr, address, cite, code,
-del, dfn, em, img, ins, kbd, q, samp,
-small, strong, sub, sup, var,
-b, i,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, figcaption, figure, 
-footer, header, hgroup, menu, nav, section, summary,
-time, mark, audio, video {
-  margin:0;
-  padding:0;
-  border:0;
-  outline:0;
-  font-size:100%;
-  vertical-align:baseline;
-  background:transparent;
-}                  
-
-article, aside, details, figcaption, figure,
-footer, header, hgroup, menu, nav, section { 
-    display:block;
-}
-
-nav ul { list-style:none; }
-
-blockquote, q { quotes:none; }
-
-blockquote:before, blockquote:after,
-q:before, q:after { content:''; content:none; }
-
-a { margin:0; padding:0; font-size:100%; vertical-align:baseline; background:transparent; }
-a:hover { text-decoration: underline }
-
-ins { background-color:#ff9; color:#000; text-decoration:none; }
-
-mark { background-color:#ff9; color:#000; font-style:italic; font-weight:bold; }
-
-del { text-decoration: line-through; }
-
-abbr[title], dfn[title] { border-bottom:1px dotted #000; cursor:help; }
-
-/* tables still need cellspacing="0" in the markup */
-table { border-collapse:collapse; border-spacing:0; }
-
-hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; }
-
-input, select { vertical-align:middle; }
-/* END RESET CSS */
-
-
-/*
-fonts.css from the YUI Library: developer.yahoo.com/yui/
-          Please refer to developer.yahoo.com/yui/fonts/ for font sizing percentages
-
-There are three custom edits:
- * remove arial, helvetica from explicit font stack
- * make the line-height relative and unit-less
- * remove the pre, code styles
-*/
-body { font:13px/1.231 sans-serif; *font-size:small; } /* hack retained to preserve specificity */
-
-/*table { font-size:inherit; font:100%; }*/
-
-select, input, textarea, button { font:99% sans-serif; }
-
-
-/* normalize monospace sizing 
- * en.wikipedia.org/wiki/MediaWiki_talk:Common.css/Archive_11#Teletype_style_fix_for_Chrome
- */
-pre, code, kbd, samp { font-family: monospace, sans-serif; }
-
-/* 
- * minimal base styles 
- */
-
-/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */ 
-body, select, input, textarea { color:#444; }
-
-/* Headers (h1,h2,etc) have no default font-size or margin,
-   you'll want to define those yourself. */ 
- 
-/* www.aestheticallyloyal.com/public/optimize-legibility/ */ 
-h1,h2,h3,h4,h5,h6 { font-weight: bold; }
-
-/* always force a scrollbar in non-IE */ 
-html { overflow-y: scroll; }
- 
-/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */
-a:hover, a:active { outline: none; }
-
-/*a, a:active, a:visited { color:#607890; }*/
-a, a:active, a:visited { color:#D9D9D9; }
-a:hover { color:#fff; }
-/*a:hover { color:#036; } */
-ul, ol { margin-left: 1.8em; }
-ol { list-style-type: decimal; }
-
-/* Remove margins for navigation lists */
-nav ul, nav li { margin: 0; } 
-
-small { font-size:85%; }
-strong, th { font-weight: bold; }
-
-td, td img { vertical-align:top; } 
-
-sub { vertical-align: sub; font-size: smaller; }
-sup { vertical-align: super; font-size: smaller; }
-
-pre { 
-  padding: 15px; 
-  
-  /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */
-  white-space: pre; /* CSS2 */
-  white-space: pre-wrap; /* CSS 2.1 */
-  white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */
-  word-wrap: break-word; /* IE */
-}
-
-textarea { overflow: auto; } /* thnx ivannikolic! www.sitepoint.com/blogs/2010/08/20/ie-remove-textarea-scrollbars/ */
-
-.ie6 legend, .ie7 legend { margin-left: -7px; } /* thnx ivannikolic! */
-
-/* align checkboxes, radios, text inputs with their label
-   by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css  */
-input[type="radio"] { vertical-align: text-bottom; }
-input[type="checkbox"] { vertical-align: bottom; }
-.ie7 input[type="checkbox"] { vertical-align: baseline; }
-.ie6 input { vertical-align: text-bottom; }
-
-/* hand cursor on clickable input elements */
-label, input[type=button], input[type=submit], button { cursor: pointer; }
-
-/* webkit browsers add a 2px margin outside the chrome of form elements */  
-button, input, select, textarea { margin: 0; }
-
-/* colors for form validity */
-input:valid, textarea:valid   {  }
-input:invalid, textarea:invalid { 
-      border-radius: 1px;
-    -moz-box-shadow: 0px 0px 5px red; 
- -webkit-box-shadow: 0px 0px 5px red; 
-         box-shadow: 0px 0px 5px red;
-}
-.no-boxshadow input:invalid, 
-.no-boxshadow textarea:invalid { background-color: #f0dddd; }
-
-
-/* These selection declarations have to be separate.
-   No text-shadow: twitter.com/miketaylr/status/12228805301 
-   Also: hot pink. */
-::-moz-selection{ background: #555; color:#fff; text-shadow: none; }
-::selection { background:#555; color:#fff; text-shadow: none; } 
-
-/*  j.mp/webkit-tap-highlight-color */
-a:link { -webkit-tap-highlight-color: #555; } 
-
-
-/* make buttons play nice in IE:    
-   www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
-button {  width: auto; overflow: visible; }
- 
-/* bicubic resizing for non-native sized IMG: 
-   code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
-.ie7 img { -ms-interpolation-mode: bicubic; }
-
-/* 
- * Non-semantic helper classes 
- */
-
-/* for image replacement */
-.ir { display:block; text-indent:-999em; overflow:hidden; background-repeat: no-repeat; }
-
-/* Hide for both screenreaders and browsers
-   css-discuss.incutio.com/wiki/Screenreader_Visibility */
-.hidden { display:none; } 
-
-/* Hide only visually, but have it available for screenreaders 
-   www.webaim.org/techniques/css/invisiblecontent/ 
-   Solution from: j.mp/visuallyhidden - Thanks Jonathan Neal! */
-.visuallyhidden { position:absolute !important;    
-  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
-  clip: rect(1px, 1px, 1px, 1px); }
-
-/* Hide visually and from screenreaders, but maintain layout */
-.invisible { visibility: hidden; }
-
-/* >> The Magnificent CLEARFIX: Updated to prevent margin-collapsing on child elements << j.mp/bestclearfix */
-.clearfix:before, .clearfix:after {
-  content: "\0020"; display: block; height: 0; visibility: hidden;    
-} 
-
-.clearfix:after { clear: both; }
-/* Fix clearfix: blueprintcss.lighthouseapp.com/projects/15318/tickets/5-extra-margin-padding-bottom-of-page */
-.clearfix { zoom: 1; }
-
-
-/*********** layout info (ez.css) ***********/
-/* 2009 -2010 (c) | ez-css.org
- * ez-plug-min.css :: version 1.1 :: 01182010
- */
-.ez-wr:after,.ez-box:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ez-wr,.ez-box,.ez-last{display:inline-block;min-height:0}/* \*/ * html .ez-wr,* html .ez-box,* html .ez-last{height:1%}.ez-wr,.ez-box,.ez-last{display:block}/* */.ez-oh{overflow:hidden}* html .ez-oh{overflow:visible}.ez-oa{overflow:auto}.ez-dt{display:table}.ez-it{display:inline-table}.ez-tc{display:table-cell}.ez-ib{display:inline-block}.ez-fl{float:left}* html .ez-fl{margin-right:-3px}.ez-fr{float:right}* html .ez-fr{margin-left:-3px}.ez-25{width:25%}.ez-33{width:33.33%}.ez-50{width:50%}.ez-66{width:66.66%}.ez-75{width:75%}.ez-negmr{margin-right:-1px}* html .ez-negmr{margin-right:-4px}.ez-negmx{margin-right:-1px}.ez-negml{margin-left:-1px}* html .ez-negml{margin-left:-4px}
-
-
-/*********** add bottom line to table rows ***********/
-th, td { padding: 0.1em 0.5em 0.1em 0.5em;}
-
-/*********** labels bold and occasionally centered ***********/
-label {
-    white-space: nowrap;
-}
-label, b, th {
-    font-weight: bold;
-}
-thead th {
-    text-align: center;
-    border-bottom: 1px solid #444;
-}
-/*********** forms and table padding ***********/
-form, table {
-   padding: 5px 10px 5px 10px;
-}
-
-form p{ margin-bottom:10px; font-weight:bold;text-indent:5px;}
-
-/*********** code blocks ***********/
-code {
-   padding: 3px 5px;
-   font-family: Andale Mono, monospace;
-   font-size: 0.9em;
-}
-
-/*********** left and right padding to quoted text ***********/
-blockquote {
-   background: #cccccc;
-   border-left: 30px transparent;
-   border-right: 30px transparent;
-   /*padding: 5px;*/
-}
-
-input[type=text], input[type=password], textarea, select {
-    margin: 2px 15px 2px 5px;
-  /* width: 280px;      */
-    background: #fff;
-    color: #555;
-    border: 1px solid #dedede; 
-    -moz-border-radius: 2px;
-    -webkit-border-radius: 2px;
-    border-radius: 2px;       
-    font-size: 12px;
-}
-
-input[type=text], input[type=password], select {
-    height: 16px;  
-}
-
-select[multiple=multiple] {
-    height: 90px;  
-}
-
-input[type=submit], input[type=button], button {
-    margin: 0px;
-    /*width: 85px;*/
-    height: 22px;    
-    background: #eaeaea;
-    color: #555;
-    border: 1px solid #dedede;
-    -moz-border-radius: 2px;
-    -webkit-border-radius: 2px;
-    border-radius: 2px;    
-}
-
-fieldset { border: 1px solid #dedede; padding: 6px; }
-legend { font-weight: bold; }
-
-input:focus, textarea:focus { background: #fafafa; }
-
-p {text-indent:30px;}
-
-p, blockquote {    
-    margin-bottom: 10px;
-}
-
-h1,h2,h3,h4,h5,h6 { line-height: 170%; }
-h1 { margin-bottom: .5em; border-bottom: solid 1px #d9d9d9; font-family: Arial, Helvetica, sans-serif; font-weight: normal; font-size: 2.0em; text-indent: 5px; letter-spacing: -1px; }
-h1 .fontTitle { color:green; }
-h1 .subTitle { font-size:14px; }
-h2 {font-size: 1.8em;}
-h3 {font-size: 1.4em;}
-h4 {font-size: 1.2em;}
-h5 {font-size: 1.0em;}
-h6 {font-size: 0.8em;}
-
-/*********** page layout alignment, width and padding ***********/
-body { padding: 10px; background: #4c4c4c url(images/grad1.png) 0 0 repeat-x; color: #d9d9d9; font: 12px/normal Tahoma, Arial, Helvetica, sans-serif; }
-#container, #header, #page, #content, #statusbar,
-#footer, #wrapper { display:block; line-height: 170%; }
-#wrapper {width: 900px;}
-#container {
-    margin: 0 auto;
-    padding: 0;
-}
-#wrapper {margin: 0 auto;} 
-/*** #wrapper {background-color: #fff; padding: 5px;}  **/
-#statusbar { margin: 5px 0px 20px 0px;}
-#footer {    
-    margin-top: 30px;    
-    padding: 5px;    
-}
-#statusbar, #footer {    
-/***    background: #eaeaea;  **/
-    border-top: 1px #aaa solid;    
-}
-#logo {
-    width: 68px;
-    height: 62px;
-    background: url(../images/logo.png);
-}
-#appname {
-    color: #cccccc;
-}
-
-#right_sidebar { width: 160px; float:right; display: none; }
-#left_sidebar { width: 160px; float:left; display: none; }
-#content { float: left; /*width: 740px;*//*width: 63%;*/ /*width: 640px; float:left;*/ } /* uncomment this if you are going to use sidebars */
- 
-.auth_navbar {
-   top: 0px;
-   float: right;
-   padding: 3px 10px 3px 10px; 
-}
-
-/*********** web2py specific ***********/
-div.flash {
-    font-weight: bold;
-    display: none;
-    position: fixed;    
-    padding: 10px;
-    top: 40px;
-    right: 10px;
-    min-width: 280px;
-    opacity: 0.85;
-    margin: 0px 0px 10px 10px;    
-    color: #fff;    
-    vertical-align: middle;
-    cursor: pointer;
-    background: #000;
-    border: 2px solid #fff;
-    -moz-border-radius: 5px;
-    -webkit-border-radius: 5px;
-    z-index: 2;
-}
-div.error {
-    background-color: red;
-    color: white;
-    padding: 3px;
-}
-
-/***************************
- * CSS 3 Buttons
- * http://github.com/michenriksen/css3buttons
- * created by Michael Henriksen
- * License: Unlicense 
- * 
- * *******************/
-
-a.button { display: inline-block; padding: 3px 5px 3px 5px; font-family: 'lucida grande', tahoma, verdana, arial, sans-serif; font-size: 12px; color: #3C3C3D; text-shadow: 1px 1px 0 #FFFFFF; background: #ECECEC url('../images/css3buttons_backgrounds.png') 0 0 no-repeat; white-space: nowrap; overflow: visible; cursor: pointer; text-decoration: none; border: 1px solid #CACACA; -webkit-border-radius: 2px; -moz-border-radius: 2px; -webkit-background-clip: padding-box; border-radius: 2px; outline: none; position: relative; zoom: 1; *display: inline; }
-a.button.primary { font-weight: bold }
-a.button:hover { color: #FFFFFF; border-color: #388AD4; text-decoration: none; text-shadow: -1px -1px 0 rgba(0,0,0,0.3); background-position: 0 -40px; background-color: #2D7DC5; }
-a.button:active,
-a.button.active { background-position: 0 -81px; border-color: #347BBA; background-color: #0F5EA2; color: #FFFFFF; text-shadow: none; }
-a.button:active { top: 1px }
-a.button.negative:hover { color: #FFFFFF; background-position: 0 -121px; background-color: #D84743; border-color: #911D1B; }
-a.button.negative:active,
-a.button.negative.active { background-position: 0 -161px; background-color: #A5211E; border-color: #911D1B; }
-a.button.pill { -webkit-border-radius: 19px; -moz-border-radius: 19px; border-radius: 19px; padding: 2px 10px 2px 10px; }
-a.button.left { -webkit-border-bottom-right-radius: 0px; -webkit-border-top-right-radius: 0px; -moz-border-radius-bottomright: 0px; -moz-border-radius-topright: 0px; border-bottom-right-radius: 0px; border-top-right-radius: 0px; margin-right: 0px; }
-a.button.middle { margin-right: 0px; margin-left: 0px; -webkit-border-radius: 0px; -moz-border-radius: 0px; border-radius: 0px; border-right: none; border-left: none; }
-a.button.right { -webkit-border-bottom-left-radius: 0px; -webkit-border-top-left-radius: 0px; -moz-border-radius-bottomleft: 0px; -moz-border-radius-topleft: 0px; border-top-left-radius: 0px; border-bottom-left-radius: 0px; margin-left: 0px; }
-a.button.left:active,
-a.button.middle:active,
-a.button.right:active { top: 0px }
-a.button.big { font-size: 16px; padding-left: 17px; padding-right: 17px; }
-a.button span.icon { display: inline-block; width: 14px; height: 12px; margin: auto 7px auto auto; position: relative; top: 2px; background-image: url('../images/css3buttons_icons.png'); background-repeat: no-repeat; }
-a.big.button span.icon { top: 0px }
-a.button span.icon.book { background-position: 0 0 }
-a.button:hover span.icon.book { background-position: 0 -15px }
-a.button span.icon.calendar { background-position: 0 -30px }
-a.button:hover span.icon.calendar { background-position: 0 -45px }
-a.button span.icon.chat { background-position: 0 -60px }
-a.button:hover span.icon.chat { background-position: 0 -75px }
-a.button span.icon.check { background-position: 0 -90px }
-a.button:hover span.icon.check { background-position: 0 -103px }
-a.button span.icon.clock { background-position: 0 -116px }
-a.button:hover span.icon.clock { background-position: 0 -131px }
-a.button span.icon.cog { background-position: 0 -146px }
-a.button:hover span.icon.cog { background-position: 0 -161px }
-a.button span.icon.comment { background-position: 0 -176px }
-a.button:hover span.icon.comment { background-position: 0 -190px }
-a.button span.icon.cross { background-position: 0 -204px }
-a.button:hover span.icon.cross { background-position: 0 -219px }
-a.button span.icon.downarrow { background-position: 0 -234px }
-a.button:hover span.icon.downarrow { background-position: 0 -249px }
-a.button span.icon.fork { background-position: 0 -264px }
-a.button:hover span.icon.fork { background-position: 0 -279px }
-a.button span.icon.heart { background-position: 0 -294px }
-a.button:hover span.icon.heart { background-position: 0 -308px }
-a.button span.icon.home { background-position: 0 -322px }
-a.button:hover span.icon.home { background-position: 0 -337px }
-a.button span.icon.key { background-position: 0 -352px }
-a.button:hover span.icon.key { background-position: 0 -367px }
-a.button span.icon.leftarrow { background-position: 0 -382px }
-a.button:hover span.icon.leftarrow { background-position: 0 -397px }
-a.button span.icon.lock { background-position: 0 -412px }
-a.button:hover span.icon.lock { background-position: 0 -427px }
-a.button span.icon.loop { background-position: 0 -442px }
-a.button:hover span.icon.loop { background-position: 0 -457px }
-a.button span.icon.magnifier { background-position: 0 -472px }
-a.button:hover span.icon.magnifier { background-position: 0 -487px }
-a.button span.icon.mail { background-position: 0 -502px }
-a.button:hover span.icon.mail { background-position: 0 -514px }
-a.button span.icon.move { background-position: 0 -526px }
-a.button:hover span.icon.move { background-position: 0 -541px }
-a.button span.icon.pen { background-position: 0 -556px }
-a.button:hover span.icon.pen { background-position: 0 -571px }
-a.button span.icon.pin { background-position: 0 -586px }
-a.button:hover span.icon.pin { background-position: 0 -601px }
-a.button span.icon.plus { background-position: 0 -616px }
-a.button:hover span.icon.plus { background-position: 0 -631px }
-a.button span.icon.reload { background-position: 0 -646px }
-a.button:hover span.icon.reload { background-position: 0 -660px }
-a.button span.icon.rightarrow { background-position: 0 -674px }
-a.button:hover span.icon.rightarrow { background-position: 0 -689px }
-a.button span.icon.rss { background-position: 0 -704px }
-a.button:hover span.icon.rss { background-position: 0 -719px }
-a.button span.icon.tag { background-position: 0 -734px }
-a.button:hover span.icon.tag { background-position: 0 -749px }
-a.button span.icon.trash { background-position: 0 -764px }
-a.button:hover span.icon.trash { background-position: 0 -779px }
-a.button span.icon.unlock { background-position: 0 -794px }
-a.button:hover span.icon.unlock { background-position: 0 -809px }
-a.button span.icon.uparrow { background-position: 0 -824px }
-a.button:hover span.icon.uparrow { background-position: 0 -839px }
-a.button span.icon.user { background-position: 0 -854px }
-a.button:hover span.icon.user { background-position: 0 -869px }
-
-
-
-
-
-
-/*****************************************************
- *  HERE YOU CAN START TO WRITE YOUR OWN DIVS
- */
-
-
-
-
-
-
-
-/*
- * Media queries for responsive design
- */
-
-@media all and (orientation:portrait) { 
-  /* Style adjustments for portrait mode goes here */
-  
-}
-
-@media all and (orientation:landscape) { 
-  /* Style adjustments for landscape mode goes here */
-  
-}
-
-/* Grade-A Mobile Browsers (Opera Mobile, iPhone Safari, Android Chrome)  
-   Consider this: www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/ */
-@media screen and (max-device-width: 480px) {
-  
-  
-  /* Uncomment if you don't want iOS and WinMobile to mobile-optimize the text for you
-     j.mp/textsizeadjust 
-  html { -webkit-text-size-adjust:none; -ms-text-size-adjust:none; } */
-}
-
-
-/* 
- * print styles
- * inlined to avoid required HTTP connection www.phpied.com/delay-loading-your-print-css/ 
- */
-@media print {
-  * { background: transparent !important; color: #444 !important; text-shadow: none !important; }
-  a, a:visited { color: #444 !important; text-decoration: underline; }
-  a:after { content: " (" attr(href) ")"; } 
-  abbr:after { content: " (" attr(title) ")"; }
-  .ir a:after { content: ""; }  /* Don't show links for images */
-  pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
-  thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */ 
-  tr, img { page-break-inside: avoid; }
-  @page { margin: 0.5cm; }
-  p, h2, h3 { orphans: 3; widows: 3; }
-  h2, h3{ page-break-after: avoid; }
-}
-
-
-.centerAuth{ position:absolute; left:50%; margin-left:-190px; width:370px; top:50%; margin-top:150px; }
Index: controlies/branches/web2py/applications/controlies/static/css/dropdown.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/dropdown.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/dropdown.css	(nonexistent)
@@ -1,67 +0,0 @@
-@charset "UTF-8";
-
-/**
- * Horizontal CSS Drop-Down Menu Module
- *
- * @file		dropdown.css
- * @package		Dropdown
- * @version		0.7.1
- * @type		Transitional
- * @stacks		597-599
- * @browsers	Windows: IE6+, Opera7+, Firefox1+
- *				Mac OS: Safari2+, Firefox2+
- *
- * @link		http://www.lwis.net/
- * @copyright	2006-2008 Live Web Institute. All Rights Reserved.
- *
- */
-
-ul.dropdown,
-ul.dropdown li,
-ul.dropdown ul {
- list-style: none;
- margin: 0;
- padding: 0;
-}
-
-ul.dropdown {
- position: relative;
- z-index: 597;
- float: left;
-}
-
-ul.dropdown li {
- float: left;
- line-height: 1.3em;
- vertical-align: middle;
- zoom: 1;
-}
-
-ul.dropdown li.hover,
-ul.dropdown li:hover {
- position: relative;
- z-index: 599;
- cursor: default;
-}
-
-ul.dropdown ul {
- visibility: hidden;
- position: absolute;
- top: 100%;
- left: 0;
- z-index: 598;
- width: 100%;
-}
-
-ul.dropdown ul li {
- float: none;
-}
-
-ul.dropdown ul ul {
- top: 1px;
- left: 99%;
-}
-
-ul.dropdown li:hover > ul {
- visibility: visible;
-}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/css/images/grad1.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/css/images/grad1.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/css/images/dropdown_pane.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/css/images/dropdown_pane.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/css/images/dropdown_pane_8bit.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/css/images/dropdown_pane_8bit.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/css/images/icon.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/css/images/icon.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/css/images/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/css/images/favicon.ico
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/css/helper.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/helper.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/helper.css	(nonexistent)
@@ -1,23 +0,0 @@
-
-* { margin: 0; padding: 0; }
-body { padding: 10px; background: #4c4c4c url(images/grad1.png) 0 0 repeat-x; color: #d9d9d9; font: 12px/normal Tahoma, Arial, Helvetica, sans-serif; }
-h1 { margin-bottom: .5em; border-bottom: solid 1px #d9d9d9; font-family: Arial, Helvetica, sans-serif; font-weight: normal; font-size: 220%; text-indent: 5px; letter-spacing: -1px; }
-h1 .fontTitle { color:green; }
-h1 .subTitle { font-size:14px; }
-cite { float: right; }
-ul.classic { list-style: disc; margin-bottom: 1em; padding-left: 2em; }
-div.section { clear: both; padding-top: 50px; }
-
-.table1 { float: right; margin-bottom: 2em; border: solid 1px #eee; }
-.table1 caption { color: #fff; text-align: center; padding-bottom: 5px; }
-.table1 th, .table1 td { padding: 7px; }
-.table1 th, .table1 thead td { background-color: lightyellow; color: #000; }
-.table1 tbody td { background-color: #fff; color: #000; }
-.table1 tbody th { text-align: right; }
-
-* html ul.dropdown ul { background-image: url(images/dropdown_pane_8bit.png); }
-
-
-
-form p{ margin-bottom:10px; font-weight:bold;}
-form input{ border:1px solid #DDD; }
Index: controlies/branches/web2py/applications/controlies/static/css/superfish-vertical.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/superfish-vertical.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/superfish-vertical.css	(nonexistent)
@@ -1,23 +0,0 @@
-/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/
-.sf-vertical, .sf-vertical li {
-	width:	10em;
-}
-/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */
-.sf-vertical li:hover ul,
-.sf-vertical li.sfHover ul {
-	left:	10em; /* match ul width */
-	top:	0;
-}
-
-/*** alter arrow directions ***/
-.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */
-.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/
-
-/* hover arrow direction for modern browsers*/
-.sf-vertical a:focus > .sf-sub-indicator,
-.sf-vertical a:hover > .sf-sub-indicator,
-.sf-vertical a:active > .sf-sub-indicator,
-.sf-vertical li:hover > a > .sf-sub-indicator,
-.sf-vertical li.sfHover > a > .sf-sub-indicator {
-	background-position: -10px 0; /* arrow hovers for modern browsers*/
-}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/css/superfish-navbar.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/superfish-navbar.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/superfish-navbar.css	(nonexistent)
@@ -1,93 +0,0 @@
-
-/*** adding the class sf-navbar in addition to sf-menu creates an all-horizontal nav-bar menu ***/
-.sf-navbar {
-	background:		#BDD2FF;
-	height:			2.5em;
-	padding-bottom:	2.5em;
-	position:		relative;
-}
-.sf-navbar li {
-	background:		#AABDE6;
-	position:		static;
-}
-.sf-navbar a {
-	border-top:		none;
-}
-.sf-navbar li ul {
-	width:			44em; /*IE6 soils itself without this*/
-}
-.sf-navbar li li {
-	background:		#BDD2FF;
-	position:		relative;
-}
-.sf-navbar li li ul {
-	width:			13em;
-}
-.sf-navbar li li li {
-	width:			100%;
-}
-.sf-navbar ul li {
-	width:			auto;
-	float:			left;
-}
-.sf-navbar a, .sf-navbar a:visited {
-	border:			none;
-}
-.sf-navbar li.current {
-	background:		#BDD2FF;
-}
-.sf-navbar li:hover,
-.sf-navbar li.sfHover,
-.sf-navbar li li.current,
-.sf-navbar a:focus, .sf-navbar a:hover, .sf-navbar a:active {
-	background:		#BDD2FF;
-}
-.sf-navbar ul li:hover,
-.sf-navbar ul li.sfHover,
-ul.sf-navbar ul li:hover li,
-ul.sf-navbar ul li.sfHover li,
-.sf-navbar ul a:focus, .sf-navbar ul a:hover, .sf-navbar ul a:active {
-	background:		#D1DFFF;
-}
-ul.sf-navbar li li li:hover,
-ul.sf-navbar li li li.sfHover,
-.sf-navbar li li.current li.current,
-.sf-navbar ul li li a:focus, .sf-navbar ul li li a:hover, .sf-navbar ul li li a:active {
-	background:		#E6EEFF;
-}
-ul.sf-navbar .current ul,
-ul.sf-navbar ul li:hover ul,
-ul.sf-navbar ul li.sfHover ul {
-	left:			0;
-	top:			2.5em; /* match top ul list item height */
-}
-ul.sf-navbar .current ul ul {
-	top: 			-999em;
-}
-
-.sf-navbar li li.current > a {
-	font-weight:	bold;
-}
-
-/*** point all arrows down ***/
-/* point right for anchors in subs */
-.sf-navbar ul .sf-sub-indicator { background-position: -10px -100px; }
-.sf-navbar ul a > .sf-sub-indicator { background-position: 0 -100px; }
-/* apply hovers to modern browsers */
-.sf-navbar ul a:focus > .sf-sub-indicator,
-.sf-navbar ul a:hover > .sf-sub-indicator,
-.sf-navbar ul a:active > .sf-sub-indicator,
-.sf-navbar ul li:hover > a > .sf-sub-indicator,
-.sf-navbar ul li.sfHover > a > .sf-sub-indicator {
-	background-position: -10px -100px; /* arrow hovers for modern browsers*/
-}
-
-/*** remove shadow on first submenu ***/
-.sf-navbar > li > ul {
-	background: transparent;
-	padding: 0;
-	-moz-border-radius-bottomleft: 0;
-	-moz-border-radius-topright: 0;
-	-webkit-border-top-right-radius: 0;
-	-webkit-border-bottom-left-radius: 0;
-}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/css/default.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/css/default.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/css/default.css	(nonexistent)
@@ -1,138 +0,0 @@
-@charset "UTF-8";
-
-/** 
- * Adobe CSS Drop-Down Menu Theme
- *
- * @file		default.css
- * @name		Adobe
- * @version		0.1
- * @type		transitional
- * @browsers	Windows: IE6+, Opera7+, Firefox1+
- *				Mac OS: Safari2+, Firefox2+
- *
- * @link		http://www.lwis.net/
- * @copyright	2008 Live Web Institute. All Rights Reserved.
- *
- * Module Classes: *.dir {} *.on {} *.open {} li.hover {} li.first {} li.last {}
- * Expected directory tag - li
- *
- */
-
-
-/*------------------------------------------------------------------------------------------------------/
- * @section		Base Drop-Down Styling
- * @structure	ul (unordered list)
- *				ul li (list item)
- *				ul li a (links)
- *				*(.class|:hover)
- * @level sep	ul
- */
-
-
-/* ----- ALL LEVELS (incl. first) */
-
-ul.dropdown {
- font: bold 12px Arial, Helvetica, sans-serif;
-}
-
-	ul.dropdown li {
-	 padding: 7px 12px;
-	 background-color: #000;
-	 color: #fff;
-	}
-
-	ul.dropdown li.hover,
-	ul.dropdown li:hover {
-	 background-color: #222;
-	}
-
-	ul.dropdown a:link,
-	ul.dropdown a:visited { color: #fff; text-decoration: none; }
-	ul.dropdown a:hover { color: #fff; text-decoration: underline; }
-	ul.dropdown a:active { color: #fff; }
-
-
-/* ----- END LEVEL */
-
-
-	/* ----- NON-FIRST LEVEL */
-
-	ul.dropdown ul {
-	 margin-left: -6px;
-	 width: 170px;
-	 padding-bottom: 9px;
-	 background: url(images/dropdown_pane.png) 0 100% no-repeat;
-	 color: #000;
-	 font-size: 11px;
-	 font-weight: normal;
-	}
-
-		ul.dropdown ul li {
-		 background-color: transparent;
-		 color: #000;
-		}
-
-		ul.dropdown ul li.hover,
-		ul.dropdown ul li:hover {
-		 background-color: transparent;
-		}
-
-		ul.dropdown ul li.empty {
-		 padding: 3px 10px 3px !important;
-		 font-weight: bold;
-			background-color:#DDD;
-		}
-
-		ul.dropdown ul a:link,
-		ul.dropdown ul a:visited { color: #000; }
-		ul.dropdown ul a:hover { color: #000; text-decoration: none; }
-		ul.dropdown ul a:active { color: #000; }
-
-			ul.dropdown ul ul {
-			 display: none;
-			}
-
-			ul.dropdown ul ul li {}
-
-/* ----- END LEVEL */
-
-
-
-/*------------------------------------------------------------------------------------------------------/
- * @section	Support Class 'dir'
- * @level sep	ul, .class
- */
-
-
-/* ----- ALL LEVELS (incl. first) */
-
-ul.dropdown *.dir {
- padding-right: 12px;
- background-image: none;
- background-position: 100% 50%;
- background-repeat: no-repeat;
-}
-
-/* ----- END LEVEL */
-
-
-
-
-/* Components override */
-
-ul.dropdown-horizontal ul *.dir {
- padding-right: 15px;
- background-image: url(images/nav-arrow-right.png);
- background-position: 100% 50%;
- background-repeat: no-repeat;
-}
-
-ul.dropdown-vertical *.dir {
- background-image: url(images/nav-arrow-right.png);
-}
-
-ul.dropdown-vertical-rtl *.dir {
- padding-right: 15px;
- background-image: url(images/nav-arrow-left.png);
- background-position: 0 50%;
-}
Index: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.css	(nonexistent)
@@ -1,71 +0,0 @@
-.clock{
-	/* The .clock div. Created dynamically by jQuery */
-
-	height:200px;
-	width:200px;
-	position:relative;
-	overflow:hidden;
-	float:left;
-	left:16%;
-	margin-top:50px;
-}
-
-.clock .rotate{
-	/* There are two .rotate divs - one for each half of the background */
-	position:absolute;
-	width:200px;
-	height:200px;
-	top:0;
-	left:0;
-}
-
-.rotate.right{
-	display:none;
-	z-index:11;
-}
-
-.clock .bg, .clock .front{
-	width:100px;
-	height:200px;
-
-	position:absolute;
-	top:0;
-}
-
-.clock .display{
-	/* Holds the number of seconds, minutes or hours respectfully */
-	position:absolute;
-	width:200px;
-	font-family:"Lucida Sans Unicode", "Lucida Grande", sans-serif;
-	z-index:20;
-	color:#F5F5F5;
-	font-size:60px;
-	text-align:center;
-	top:65px;
-	left:0;
-	
-	/* CSS3 text shadow: */
-	text-shadow:4px 4px 5px #333333;
-}
-
-/* The left part of the background: */
-
-.clock .bg.left{ left:0; }
-
-/* Individual styles for each color: */
-.orange .bg.left{ background:url(img/bg_orange.png) no-repeat left top; }
-.green .bg.left{ background:url(img/bg_green.png) no-repeat left top; }
-.blue .bg.left{	background:url(img/bg_blue.png) no-repeat left top; }
-
-/* The right part of the background: */
-.clock .bg.right{ left:100px; }
-
-.orange .bg.right{ background:url(img/bg_orange.png) no-repeat right top; }
-.green .bg.right{ background:url(img/bg_green.png) no-repeat right top; }
-.blue .bg.right{ background:url(img/bg_blue.png) no-repeat right top; }
-
-
-.clock .front.left{
-	left:0;
-	z-index:10;
-}
Index: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/img/bg_blue.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/img/bg_blue.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/img/bg_orange.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/img/bg_orange.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/img/bg_green.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/img/bg_green.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery.tzineClock/jquery.tzineClock.js	(nonexistent)
@@ -1,171 +0,0 @@
-/*!
- * jquery.tzineClock.js - Tutorialzine Colorful Clock Plugin
- *
- * Copyright (c) 2009 Martin Angelov
- * http://tutorialzine.com/
- *
- * Licensed under MIT
- * http://www.opensource.org/licenses/mit-license.php
- *
- * Launch  : December 2009
- * Version : 1.0
- * Released: Monday 28th December, 2009 - 00:00
- */
-
-(function($){
-	
-	// A global array used by the functions of the plug-in:
-	var gVars = {};
-
-	// Extending the jQuery core:
-	$.fn.tzineClock = function(opts){
-	
-		// "this" contains the elements that were selected when calling the plugin: $('elements').tzineClock();
-		// If the selector returned more than one element, use the first one:
-		
-		var container = this.eq(0);
-	
-		if(!container)
-		{
-			try{
-				console.log("Invalid selector!");
-			} catch(e){}
-			
-			return false;
-		}
-		
-		if(!opts) opts = {}; 
-		
-		var defaults = {
-			/* Additional options will be added in future versions of the plugin. */
-		};
-		
-		/* Merging the provided options with the default ones (will be used in future versions of the plugin): */
-		$.each(defaults,function(k,v){
-			opts[k] = opts[k] || defaults[k];
-		})
-
-		// Calling the setUp function and passing the container,
-		// will be available to the setUp function as "this":
-		setUp.call(container);
-		
-		return this;
-	}
-	
-	function setUp()
-	{
-		// The colors of the dials:
-		var colors = ['orange','blue','green'];
-		
-		var tmp;
-		
-		for(var i=0;i<3;i++)
-		{
-			// Creating a new element and setting the color as a class name:
-			
-			tmp = $('<div>').attr('class',colors[i]+' clock').html(
-				'<div class="display"></div>'+
-				
-				'<div class="front left"></div>'+
-				
-				'<div class="rotate left">'+
-					'<div class="bg left"></div>'+
-				'</div>'+
-				
-				'<div class="rotate right">'+
-					'<div class="bg right"></div>'+
-				'</div>'
-			);
-			
-			// Appending to the container:
-			$(this).append(tmp);
-			
-			// Assigning some of the elements as variables for speed:
-			tmp.rotateLeft = tmp.find('.rotate.left');
-			tmp.rotateRight = tmp.find('.rotate.right');
-			tmp.display = tmp.find('.display');
-			
-			// Adding the dial as a global variable. Will be available as gVars.colorName
-			gVars[colors[i]] = tmp;
-		}
-		
-		// Setting up a interval, executed every 1000 milliseconds:
-		setInterval(function(){
-		
-			var currentTime = new Date();
-			var h = currentTime.getHours();
-			var m = currentTime.getMinutes();
-			var s = currentTime.getSeconds();
-			
-			animation(gVars.green, s, 60);
-			animation(gVars.blue, m, 60);
-			animation(gVars.orange, h, 24);
-		
-		},1000);
-	}
-	
-	function animation(clock, current, total)
-	{
-		// Calculating the current angle:
-		var angle = (360/total)*(current+1);
-	
-		var element;
-
-		if(current==0)
-		{
-			// Hiding the right half of the background:
-			clock.rotateRight.hide();
-			
-			// Resetting the rotation of the left part:
-			rotateElement(clock.rotateLeft,0);
-		}
-		
-		if(angle<=180)
-		{
-			// The left part is rotated, and the right is currently hidden:
-			element = clock.rotateLeft;
-		}
-		else
-		{
-			// The first part of the rotation has completed, so we start rotating the right part:
-			clock.rotateRight.show();
-			clock.rotateLeft.show();
-			
-			rotateElement(clock.rotateLeft,180);
-			
-			element = clock.rotateRight;
-			angle = angle-180;
-		}
-
-		rotateElement(element,angle);
-		
-		// Setting the text inside of the display element, inserting a leading zero if needed:
-		clock.display.html(current<10?'0'+current:current);
-	}
-	
-	function rotateElement(element,angle)
-	{
-		// Rotating the element, depending on the browser:
-		var rotate = 'rotate('+angle+'deg)';
-		
-		if(element.css('MozTransform')!=undefined)
-			element.css('MozTransform',rotate);
-			
-		else if(element.css('WebkitTransform')!=undefined)
-			element.css('WebkitTransform',rotate);
-	
-		// A version for internet explorer using filters, works but is a bit buggy (no surprise here):
-		else if(element.css("filter")!=undefined)
-		{
-			var cos = Math.cos(Math.PI * 2 / 360 * angle);
-			var sin = Math.sin(Math.PI * 2 / 360 * angle);
-			
-			element.css("filter","progid:DXImageTransform.Microsoft.Matrix(M11="+cos+",M12=-"+sin+",M21="+sin+",M22="+cos+",SizingMethod='auto expand',FilterType='nearest neighbor')");
-	
-			element.css("left",-Math.floor((element.width()-200)/2));
-			element.css("top",-Math.floor((element.height()-200)/2));
-		}
-	
-	}
-	
-})(jQuery)
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.subgrid.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.subgrid.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.subgrid.js	(nonexistent)
@@ -1,260 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for SubGrid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/
-$.jgrid.extend({
-setSubGrid : function () {
-	return this.each(function (){
-		var $t = this, cm;
-		$t.p.colNames.unshift("");
-		$t.p.colModel.unshift({name:'subgrid',width: $.browser.safari ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});
-		cm = $t.p.subGridModel;
-		if(cm[0]) {
-			cm[0].align = $.extend([],cm[0].align || []);
-			for(var i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}
-		}
-	});
-},
-addSubGridCell :function (pos,iRow) {
-	var prp='',gv,sid;
-	this.each(function(){
-		prp = this.formatCol(pos,iRow);
-		gv = this.p.gridview;
-		sid= this.p.id;
-	});
-	if( gv === false ){
-		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a></td>";
-	} else  {
-		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" " +prp +"></td>";
-	}
-},
-addSubGrid : function(t,pos) {
-	return this.each(function(){
-		var ts = this;
-		if (!ts.grid ) { return; }
-		var res,_id, pID,atd, nhc, subdata, bfsc;
-		$("td:eq("+pos+")",t).click( function(e) {
-			if($(this).hasClass("sgcollapsed")) {
-				pID = ts.p.id;
-				res = $(this).parent();
-				atd = pos >=1 ? "<td colspan='"+pos+"'>&#160;</td>":"";
-				_id = $(res).attr("id");
-				bfsc =true;
-				if($.isFunction(ts.p.subGridBeforeExpand)) {
-					bfsc = ts.p.subGridBeforeExpand(pID+"_"+_id,_id);
-				}
-				if(bfsc === false) {return false;}
-				nhc = 0;
-				$.each(ts.p.colModel,function(i,v){
-					if(this.hidden === true || this.name == 'rn' || this.name == 'cb') {nhc++;}
-				});
-				subdata = "<tr role='row' class='ui-subgrid'>"+atd+"<td class='ui-widget-content subgrid-cell'><span class='ui-icon ui-icon-carat-1-sw'/></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='ui-widget-content subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'>";
-				$(this).parent().after( subdata+ "</div></td></tr>" );
-				if( $.isFunction(ts.p.subGridRowExpanded)) {
-					ts.p.subGridRowExpanded(pID+"_"+ _id,_id);
-				} else {
-					populatesubgrid(res);
-				}
-				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-minus'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");
-			} else if($(this).hasClass("sgexpanded")) {
-				bfsc = true;
-				if( $.isFunction(ts.p.subGridRowColapsed)) {
-					res = $(this).parent();
-					_id = $(res).attr("id");
-					bfsc = ts.p.subGridRowColapsed(pID+"_"+_id,_id );
-				}
-				if(bfsc===false) {return false;}
-				$(this).parent().next().remove(".ui-subgrid");
-				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");
-			}
-			return false;
-		});
-		//-------------------------
-		var populatesubgrid = function( rd ) {
-			var res,sid,dp, i, j;
-			sid = $(rd).attr("id");
-			dp = {nd_: (new Date().getTime())};
-			dp[ts.p.prmNames.subgridid]=sid;
-			if(!ts.p.subGridModel[0]) { return false; }
-			if(ts.p.subGridModel[0].params) {
-				for(j=0; j < ts.p.subGridModel[0].params.length; j++) {
-					for(i=0; i<ts.p.colModel.length; i++) {
-						if(ts.p.colModel[i].name == ts.p.subGridModel[0].params[j]) {
-							dp[ts.p.colModel[i].name]= $("td:eq("+i+")",rd).text().replace(/\&#160\;/ig,'');
-						}
-					}
-				}
-			}
-			if(!ts.grid.hDiv.loading) {
-				ts.grid.hDiv.loading = true;
-				$("#load_"+ts.p.id).show();
-				if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }
-				if($.isFunction(ts.p.subgridtype)) {
-					ts.p.subgridtype(dp);
-				} else {
-					ts.p.subgridtype = ts.p.subgridtype.toLowerCase();
-				}
-				switch(ts.p.subgridtype) {
-					case "xml":
-					case "json":
-					$.ajax($.extend({
-						type:ts.p.mtype,
-						url: ts.p.subGridUrl,
-						dataType:ts.p.subgridtype,
-						data: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData(dp) : dp,
-						complete: function(sxml) {
-							if(ts.p.subgridtype == "xml") {
-								subGridXml(sxml.responseXML, sid);
-							} else {
-								subGridJson($.jgrid.parse(sxml.responseText),sid);
-							}
-							sxml=null;
-						}
-					}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));
-					break;
-				}
-			}
-			return false;
-		};
-		var subGridCell = function(trdiv,cell,pos){
-			var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell);
-			$(trdiv).append(tddiv);
-		};
-		var subGridXml = function(sjxml, sbid){
-			var tddiv, i, cur, sgmap,
-			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
-			trdiv = $("<tr></tr>");
-			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
-				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
-				$(tddiv).html(ts.p.subGridModel[0].name[i]);
-				$(tddiv).width( ts.p.subGridModel[0].width[i]);
-				$(trdiv).append(tddiv);
-			}
-			$(dummy).append(trdiv);
-			if (sjxml){
-				sgmap = ts.p.xmlReader.subgrid;
-				$(sgmap.root+" "+sgmap.row, sjxml).each( function(){
-					trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
-					if(sgmap.repeatitems === true) {
-						$(sgmap.cell,this).each( function(i) {
-							subGridCell(trdiv, $(this).text() || '&#160;',i);
-						});
-					} else {
-						var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
-						if (f) {
-							for (i=0;i<f.length;i++) {
-								subGridCell(trdiv, $(f[i],this).text() || '&#160;',i);
-							}
-						}
-					}
-					$(dummy).append(trdiv);
-				});
-			}
-			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
-			$("#"+pID+sbid).append(dummy);
-			ts.grid.hDiv.loading = false;
-			$("#load_"+ts.p.id).hide();
-			return false;
-		};
-		var subGridJson = function(sjxml, sbid){
-			var tddiv,result , i,cur, sgmap,j,
-			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
-			trdiv = $("<tr></tr>");
-			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
-				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
-				$(tddiv).html(ts.p.subGridModel[0].name[i]);
-				$(tddiv).width( ts.p.subGridModel[0].width[i]);
-				$(trdiv).append(tddiv);
-			}
-			$(dummy).append(trdiv);
-			if (sjxml){
-				sgmap = ts.p.jsonReader.subgrid;
-				result = sjxml[sgmap.root];
-				if ( typeof result !== 'undefined' ) {
-					for (i=0;i<result.length;i++) {
-						cur = result[i];
-						trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
-						if(sgmap.repeatitems === true) {
-							if(sgmap.cell) { cur=cur[sgmap.cell]; }
-							for (j=0;j<cur.length;j++) {
-								subGridCell(trdiv, cur[j] || '&#160;',j);
-							}
-						} else {
-							var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
-							if(f.length) {
-								for (j=0;j<f.length;j++) {
-									subGridCell(trdiv, cur[f[j]] || '&#160;',j);
-								}
-							}
-						}
-						$(dummy).append(trdiv);
-					}
-				}
-			}
-			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
-			$("#"+pID+sbid).append(dummy);
-			ts.grid.hDiv.loading = false;
-			$("#load_"+ts.p.id).hide();
-			return false;
-		};
-		ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};
-		ts.subGridJson = function(json,sid) {subGridJson(json,sid);};
-	});
-},
-expandSubGridRow : function(rowid) {
-	return this.each(function () {
-		var $t = this;
-		if(!$t.grid && !rowid) {return;}
-		if($t.p.subGrid===true) {
-			var rc = $(this).jqGrid("getInd",rowid,true);
-			if(rc) {
-				var sgc = $("td.sgcollapsed",rc)[0];
-				if(sgc) {
-					$(sgc).trigger("click");
-				}
-			}
-		}
-	});
-},
-collapseSubGridRow : function(rowid) {
-	return this.each(function () {
-		var $t = this;
-		if(!$t.grid && !rowid) {return;}
-		if($t.p.subGrid===true) {
-			var rc = $(this).jqGrid("getInd",rowid,true);
-			if(rc) {
-				var sgc = $("td.sgexpanded",rc)[0];
-				if(sgc) {
-					$(sgc).trigger("click");
-				}
-			}
-		}
-	});
-},
-toggleSubGridRow : function(rowid) {
-	return this.each(function () {
-		var $t = this;
-		if(!$t.grid && !rowid) {return;}
-		if($t.p.subGrid===true) {
-			var rc = $(this).jqGrid("getInd",rowid,true);
-			if(rc) {
-				var sgc = $("td.sgcollapsed",rc)[0];
-				if(sgc) {
-					$(sgc).trigger("click");
-				} else {
-					sgc = $("td.sgexpanded",rc)[0];
-					if(sgc) {
-						$(sgc).trigger("click");
-					}
-				}
-			}
-		}
-	});
-}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.subgrid.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqModal.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqModal.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqModal.js	(nonexistent)
@@ -1,69 +0,0 @@
-/*
- * jqModal - Minimalist Modaling with jQuery
- *   (http://dev.iceburg.net/jquery/jqmodal/)
- *
- * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- * 
- * $Version: 07/06/2008 +r13
- */
-(function($) {
-$.fn.jqm=function(o){
-var p={
-overlay: 50,
-closeoverlay : true,
-overlayClass: 'jqmOverlay',
-closeClass: 'jqmClose',
-trigger: '.jqModal',
-ajax: F,
-ajaxText: '',
-target: F,
-modal: F,
-toTop: F,
-onShow: F,
-onHide: F,
-onLoad: F
-};
-return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
-H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
-if(p.trigger)$(this).jqmAddTrigger(p.trigger);
-});};
-
-$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
-$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
-$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
-$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t)});};
-
-$.jqm = {
-hash:{},
-open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
- if(c.modal) {if(!A[0])setTimeout(function(){L('bind');},1);A.push(s);}
- else if(c.overlay > 0) {if(c.closeoverlay) h.w.jqmAddClose(o);}
- else o=F;
-
- h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
- if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}
-
- if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r == 'string')?$(r,h.w):$(r);u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
-  r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
- else if(cc)h.w.jqmAddClose($(cc,h.w));
-
- if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
- (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
-},
-close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
- if(A[0]){A.pop();if(!A[0])L('unbind');}
- if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
- if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
-},
-params:{}};
-var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
-e=function(h){var i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0});if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
-f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
-L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
-m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
-hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
- if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqModal.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js	(nonexistent)
@@ -1,714 +0,0 @@
-/* Plugin:      searchFilter v1.2.9
- * Author:      Kasey Speakman (kasey@cornerspeed.com)
- * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)
- *
- * REQUIREMENTS:
- *    jQuery 1.3+           (http://jquery.com/)
- *    A Themeroller Theme   (http://jqueryui.com/themeroller/)
- *
- * SECURITY WARNING
- *    You should always implement server-side checking to ensure that
- *    the query will fail when forged/invalid data is received.
- *    Clever users can send any value they want through JavaScript and HTTP POST/GET.
- *
- * THEMES
- *    Simply include the CSS file for your Themeroller theme.
- *
- * DESCRIPTION
- *     This plugin creates a new searchFilter object in the specified container
- *
- * INPUT TYPE
- *     fields:  an array of field objects. each object has the following properties:
- *              text: a string containing the display name of the field (e.g. "Field 1")
- *              itemval: a string containing the actual field name (e.g. "field1")
- *              optional properties:
- *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators
- *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]
- *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used
- *                  *** NOTE ***
- *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated
- *                  instead of a text input <input type='text'.../> where the user would normally type in their search data
- *                  ************
- *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field
- *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]
- *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element
- *                  dataEvents: list of events to apply to the data element. uses $("#id").bind(type, [data], fn) to bind events to data element
- *              *** JSON of this object could look like this: ***
- *               var fields = [
- *                 {
- *                   text: 'Field Display Name',
- *                   itemval: 'field_actual_name',
- *                   // below this are optional values
- *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators
- *                     { op: 'gt', text: 'greater than' },
- *                     { op: 'lt', text: 'less than' }
- *                   ],
- *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'
- *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'
- *                     { text: 'Data Value Display Name', value: 'data_actual_value' },
- *                     { ... }
- *                   ],
- *                   dataInit: function(jElem) { jElem.datepicker(options); },
- *                   dataEvents: [ // these are the same options that you pass to $("#id").bind(type, [data], fn)
- *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },
- *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }
- *                   ]
- *                 },
- *                 { ... }
- *               ]
- *     options: name:value properties containing various creation options
- *              see jQuery.fn.searchFilter.defaults for the overridable options
- *
- * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:
- *     Methods
- *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.
- *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.
- *         reset:  resets filters back to original state (only one blank filter), and calls onReset
- *         search: puts the search rules into an object and calls onSearch with it
- *         close:  calls the onClose event handler
- *
- * USAGE
- *     HTML
- *         <head>
- *             ...
- *             <script src="path/to/jquery.min.js" type="text/javascript"></script>
- *             <link href="path/to/themeroller.css" rel="Stylesheet" type="text/css" />
- *             <script src="path/to/jquery.searchFilter.js" type="text/javascript"></script>
- *             <link href="path/to/jquery.searchFilter.css" rel="Stylesheet" type="text/css" />
- *             ...
- *         </head>
- *         <body>
- *             ...
- *             <div id='mySearch'></div>
- *             ...
- *         </body>
- *     JQUERY
- *         Methods
- *             initializing: $("#mySearch").searchFilter([{text: "Field 1", value: "field1"},{text: "Field 2", value: "field2"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });
- *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)
- *             add:          $("#mySearch").searchFilter().add();     // appends a blank filter
- *                           $("#mySearch").searchFilter().add(0);    // copies the first filter as second
- *             del:          $("#mySearch").searchFilter().del();     // removes the bottom filter
- *                           $("#mySearch").searchFilter().del(1);    // removes the second filter
- *             search:       $("#mySearch").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object
- *             reset:        $("#mySearch").searchFilter().reset();   // resets rules and invokes onReset
- *             close:        $("#mySearch").searchFilter().close();   // without an onClose handler, equivalent to $("#mySearch").hide();
- * 
- * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$
- *     Example
- *         $("#mySearch").searchFilter().add().add().reset().$.hide();
- *     Verbose Example
- *         $("#mySearch")      // gets jQuery object for the HTML element with id="mySearch"
- *             .searchFilter() // gets the SearchFilter object for an existing search filter
- *             .add()          // adds a new filter to the end of the list
- *             .add()          // adds another new filter to the end of the list
- *             .reset()        // resets filters back to original state, triggers onReset
- *             .$              // returns jQuery object for $("#mySearch")
- *             .hide();        // equivalent to $("#mySearch").hide();
- */
-
-jQuery.fn.searchFilter = function(fields, options) {
-
-    function SearchFilter(jQ, fields, options) {
-
-
-        //---------------------------------------------------------------
-        // PUBLIC VARS
-        //---------------------------------------------------------------
-
-        this.$ = jQ; // makes the jQuery object available as .$ from the return value
-
-
-        //---------------------------------------------------------------
-        // PUBLIC FUNCTIONS
-        //---------------------------------------------------------------
-
-        this.add = function(i) {
-            if (i == null) jQ.find(".ui-add-last").click();
-            else jQ.find(".sf:eq(" + i + ") .ui-add").click();
-            return this;
-        };
-
-        this.del = function(i) {
-            if (i == null) jQ.find(".sf:last .ui-del").click();
-            else jQ.find(".sf:eq(" + i + ") .ui-del").click();
-            return this;
-        };
-
-        this.search = function(e) {
-            jQ.find(".ui-search").click();
-            return this;
-        };
-
-        this.reset = function(e) {
-            jQ.find(".ui-reset").click();
-            return this;
-        };
-
-        this.close = function() {
-            jQ.find(".ui-closer").click();
-            return this;
-        };
-
-
-
-        //---------------------------------------------------------------
-        // "CONSTRUCTOR" (in air quotes)
-        //---------------------------------------------------------------
-
-        if (fields != null) { // type coercion matches undefined as well as null
-
-
-            //---------------------------------------------------------------
-            // UTILITY FUNCTIONS
-            //---------------------------------------------------------------
-
-            function hover() {
-                jQuery(this).toggleClass("ui-state-hover");
-                return false;
-            }
-
-            function active(e) {
-                jQuery(this).toggleClass("ui-state-active", (e.type == "mousedown"));
-                return false;
-            }
-
-            function buildOpt(value, text) {
-                return "<option value='" + value + "'>" + text + "</option>";
-            }
-
-            function buildSel(className, options, isHidden) {
-                return "<select class='" + className + "'" + (isHidden ? " style='display:none;'" : "") + ">" + options + "</select>";
-            }
-
-            function initData(selector, fn) {
-                var jElem = jQ.find("tr.sf td.data " + selector);
-                if (jElem[0] != null)
-                    fn(jElem);
-            }
-
-            function bindDataEvents(selector, events) {
-                var jElem = jQ.find("tr.sf td.data " + selector);
-                if (jElem[0] != null) {
-                    jQuery.each(events, function() {
-                        if (this.data != null)
-                            jElem.bind(this.type, this.data, this.fn);
-                        else
-                            jElem.bind(this.type, this.fn);
-                    });
-                }
-            }
-
-
-            //---------------------------------------------------------------
-            // SUPER IMPORTANT PRIVATE VARS
-            //---------------------------------------------------------------
-
-            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that
-            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);
-
-            // this is keeps track of the last asynchronous setup
-            var highest_late_setup = -1;
-
-
-            //---------------------------------------------------------------
-            // CREATION PROCESS STARTS
-            //---------------------------------------------------------------
-
-            // generate the global ops
-            var gOps_html = "";
-            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });
-            gOps_html = "<select name='groupOp'>" + gOps_html + "</select>";
-
-            /* original content - doesn't minify very well
-            jQ
-            .html("") // clear any old content
-            .addClass("ui-searchFilter") // add classes
-            .append( // add content
-            "\
-            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\
-            <table class='ui-widget-content ui-corner-all'>\
-            <thead>\
-            <tr>\
-            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\
-            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\
-            <span class='ui-icon ui-icon-close'></span>\
-            </div>\
-            " + opts.windowTitle + "\
-            </td>\
-            </tr>\
-            </thead>\
-            <tbody>\
-            <tr class='sf'>\
-            <td class='fields'></td>\
-            <td class='ops'></td>\
-            <td class='data'></td>\
-            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\
-            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\
-            </tr>\
-            <tr>\
-            <td colspan='5' class='divider'><div>&nbsp;</div></td>\
-            </tr>\
-            </tbody>\
-            <tfoot>\
-            <tr>\
-            <td colspan='3'>\
-            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span>\
-            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span>\
-            <span class='matchText'>" + opts.matchText + "</span> \
-            " + gOps_html + " \
-            <span class='rulesText'>" + opts.rulesText + "</span>\
-            </td>\
-            <td>&nbsp;</td>\
-            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\
-            </tr>\
-            </tfoot>\
-            </table>\
-            ");
-            /* end hard-to-minify code */
-            /* begin easier to minify code */
-            jQ.html("").addClass("ui-searchFilter").append("<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>" + opts.windowTitle + "</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><div>&#160;</div></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span><span class='matchText'>" + opts.matchText + "</span> " + gOps_html + " <span class='rulesText'>" + opts.rulesText + "</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>");
-            /* end easier-to-minify code */
-
-            var jRow = jQ.find("tr.sf");
-            var jFields = jRow.find("td.fields");
-            var jOps = jRow.find("td.ops");
-            var jData = jRow.find("td.data");
-
-            // generate the defaults
-            var default_ops_html = "";
-            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });
-            default_ops_html = buildSel("default", default_ops_html, true);
-            jOps.append(default_ops_html);
-            var default_data_html = "<input type='text' class='default' style='display:none;' />";
-            jData.append(default_data_html);
-
-            // generate the field list as a string
-            var fields_html = "";
-            var has_custom_ops = false;
-            var has_custom_data = false;
-            jQuery.each(fields, function(i) {
-                var field_num = i;
-                fields_html += buildOpt(this.itemval, this.text);
-                // add custom ops if they exist
-                if (this.ops != null) {
-                    has_custom_ops = true;
-                    var custom_ops = "";
-                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });
-                    custom_ops = buildSel("field" + field_num, custom_ops, true);
-                    jOps.append(custom_ops);
-                }
-                // add custom data if it is given
-                if (this.dataUrl != null) {
-                    if (i > highest_late_setup) highest_late_setup = i;
-                    has_custom_data = true;
-                    var dEvents = this.dataEvents;
-                    var iEvent = this.dataInit;
-                    var bs = this.buildSelect;
-                    jQuery.ajax(jQuery.extend({
-                        url : this.dataUrl,
-                        complete: function(data) {
-                            var $d;
-                            if(bs != null) $d =jQuery("<div />").append(bs(data));
-                            else $d = jQuery("<div />").append(data.responseText);
-                            $d.find("select").addClass("field" + field_num).hide();
-                            jData.append($d.html());
-                            if (iEvent) initData(".field" + i, iEvent);
-                            if (dEvents) bindDataEvents(".field" + i, dEvents);
-                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed
-                                jQ.find("tr.sf td.fields select[name='field']").change();
-                            }
-                        }
-                    },opts.ajaxSelectOptions));
-                } else if (this.dataValues != null) {
-                    has_custom_data = true;
-                    var custom_data = "";
-                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });
-                    custom_data = buildSel("field" + field_num, custom_data, true);
-                    jData.append(custom_data);
-                } else if (this.dataEvents != null || this.dataInit != null) {
-                    has_custom_data = true;
-                    var custom_data = "<input type='text' class='field" + field_num + "' />";
-                    jData.append(custom_data);
-                }
-                // attach events to data if they exist
-                if (this.dataInit != null && i != highest_late_setup)
-                    initData(".field" + i, this.dataInit);
-                if (this.dataEvents != null && i != highest_late_setup)
-                    bindDataEvents(".field" + i, this.dataEvents);
-            });
-            fields_html = "<select name='field'>" + fields_html + "</select>";
-            jFields.append(fields_html);
-
-            // setup the field select with an on-change event if there are custom ops or data
-            var jFSelect = jFields.find("select[name='field']");
-            if (has_custom_ops) jFSelect.change(function(e) {
-                var index = e.target.selectedIndex;
-                var td = jQuery(e.target).parents("tr.sf").find("td.ops");
-                td.find("select").removeAttr("name").hide(); // disown and hide all elements
-                var jElem = td.find(".field" + index);
-                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
-                jElem.attr("name", "op").show();
-
-            });
-            else jOps.find(".default").attr("name", "op").show();
-            if (has_custom_data) jFSelect.change(function(e) {
-                var index = e.target.selectedIndex;
-                var td = jQuery(e.target).parents("tr.sf").find("td.data");
-                td.find("select,input").removeClass("vdata").hide(); // disown and hide all elements
-                var jElem = td.find(".field" + index);
-                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
-                jElem.show().addClass("vdata");
-            });
-            else jData.find(".default").show().addClass("vdata");
-            // go ahead and call the change event and setup the ops and data values
-            if (has_custom_ops || has_custom_data) jFSelect.change();
-
-            // bind events
-            jQ.find(".ui-state-default").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons
-            jQ.find(".ui-closer").click(function(e) {
-                opts.onClose(jQuery(jQ.selector));
-                return false;
-            });
-            jQ.find(".ui-del").click(function(e) {
-                var row = jQuery(e.target).parents(".sf");
-                if (row.siblings(".sf").length > 0) { // doesn't remove if there's only one filter left
-                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)
-                        row.find(".hasDatepicker").datepicker("destroy"); // clean up datepicker's $.data mess
-                    row.remove(); // also unbinds
-                } else { // resets the filter if it's the last one
-                    row.find("select[name='field']")[0].selectedIndex = 0;
-                    row.find("select[name='op']")[0].selectedIndex = 0;
-                    row.find(".data input").val(""); // blank all input values
-                    row.find(".data select").each(function() { this.selectedIndex = 0; }); // select first option on all selects
-                    row.find("select[name='field']").change(); // trigger any change events
-                }
-                return false;
-            });
-            jQ.find(".ui-add").click(function(e) {
-                var row = jQuery(e.target).parents(".sf");
-                var newRow = row.clone(true).insertAfter(row);
-                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
-                if (opts.clone) {
-                    newRow.find("select[name='field']")[0].selectedIndex = row.find("select[name='field']")[0].selectedIndex;
-                    var stupid_browser = (newRow.find("select[name='op']")[0] == null); // true for IE6
-                    if (!stupid_browser)
-                        newRow.find("select[name='op']").focus()[0].selectedIndex = row.find("select[name='op']")[0].selectedIndex;
-                    var jElem = newRow.find("select.vdata");
-                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned
-                        jElem[0].selectedIndex = row.find("select.vdata")[0].selectedIndex;
-                } else {
-                    newRow.find(".data input").val(""); // blank all input values
-                    newRow.find("select[name='field']").focus();
-                }
-                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
-                    row.find(".hasDatepicker").each(function() {
-                        var settings = jQuery.data(this, "datepicker").settings;
-                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
-                    });
-                }
-                newRow.find("select[name='field']").change();
-                return false;
-            });
-            jQ.find(".ui-search").click(function(e) {
-                var ui = jQuery(jQ.selector); // pointer to search box wrapper element
-                var ruleGroup;
-                var group_op = ui.find("select[name='groupOp'] :selected").val(); // puls "AND" or "OR"
-                if (!opts.stringResult) {
-                    ruleGroup = {
-                        groupOp: group_op,
-                        rules: []
-                    };
-                } else {
-                    ruleGroup = "{\"groupOp\":\"" + group_op + "\",\"rules\":[";
-                }
-                ui.find(".sf").each(function(i) {
-                    var tField = jQuery(this).find("select[name='field'] :selected").val();
-                    var tOp = jQuery(this).find("select[name='op'] :selected").val();
-                    var tData = jQuery(this).find("input.vdata,select.vdata :selected").val();
-                    tData += "";
-                    tData = tData.replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
-                    if (!opts.stringResult) {
-                        ruleGroup.rules.push({
-                            field: tField,
-                            op: tOp,
-                            data: tData
-                        });
-                    } else {
-                        if (i > 0) ruleGroup += ",";
-                        ruleGroup += "{\"field\":\"" + tField + "\",";
-                        ruleGroup += "\"op\":\"" + tOp + "\",";
-                        ruleGroup += "\"data\":\"" + tData + "\"}";
-                    }
-                });
-                if (opts.stringResult) ruleGroup += "]}";
-                opts.onSearch(ruleGroup);
-                return false;
-            });
-            jQ.find(".ui-reset").click(function(e) {
-                var ui = jQuery(jQ.selector);
-                ui.find(".ui-del").click(); // removes all filters, resets the last one
-                ui.find("select[name='groupOp']")[0].selectedIndex = 0; // changes the op back to the default one
-                opts.onReset();
-                return false;
-            });
-            jQ.find(".ui-add-last").click(function() {
-                var row = jQuery(jQ.selector + " .sf:last");
-                var newRow = row.clone(true).insertAfter(row);
-                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
-                newRow.find(".data input").val(""); // blank all input values
-                newRow.find("select[name='field']").focus();
-                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
-                    row.find(".hasDatepicker").each(function() {
-                        var settings = jQuery.data(this, "datepicker").settings;
-                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
-                    });
-                }
-                newRow.find("select[name='field']").change();
-                return false;
-            });
-
-            this.setGroupOp = function(setting) {
-                /* a "setter" for groupping argument.
-                 *  ("AND" or "OR")
-                 *
-                 * Inputs:
-                 *  setting - a string
-                 *
-                 * Returns:
-                 *  Does not return anything. May add success / failure reporting in future versions.
-                 *
-                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
-                 */
-                selDOMobj = this.$.find("select[name='groupOp']")[0];
-                var indexmap = {}, l = selDOMobj.options.length, i;
-                for (i=0; i<l; i++) {
-                    indexmap[selDOMobj.options[i].value] = i;
-                }
-                selDOMobj.selectedIndex = indexmap[setting];
-                $(selDOMobj).change();
-            };
-
-            this.setFilter = function(settings) {
-                /* a "setter" for an arbitrary SearchFilter's filter line.
-                 * designed to abstract the DOM manipulations required to infer
-                 * a particular filter is a fit to the search box.
-                 *
-                 * Inputs:
-                 *  settings - an "object" (dictionary)
-                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.
-                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.
-                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)
-                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}
-                 *
-                 * * It is mandatory to have either index or sfref defined.
-                 *
-                 * Returns:
-                 *  Does not return anything. May add success / failure reporting in future versions.
-                 *
-                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
-                 */
-
-                var o = settings['sfref'], filter = settings['filter'];
-                
-                // setting up valueindexmap that we will need to manipulate SELECT elements.
-                var fields = [], i, j , l, lj, li,
-                    valueindexmap = {};
-                    // example of valueindexmap:
-                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},
-                    // if data is undefined it's a INPUT field. If defined, it's SELECT
-                selDOMobj = o.find("select[name='field']")[0];
-                for (i=0, l=selDOMobj.options.length; i<l; i++) {
-                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};
-                    fields.push(selDOMobj.options[i].value);
-                }
-                for (i=0, li=fields.length; i < li; i++) {
-                    selDOMobj = o.find(".ops > select[class='field"+i+"']")[0];
-                    if (selDOMobj) {
-                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
-                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;
-                        }
-                    }
-                    selDOMobj = o.find(".data > select[class='field"+i+"']")[0];
-                    if (selDOMobj) {
-                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT
-                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
-                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;
-                        }
-                    }
-                } // done populating valueindexmap
-
-                // preparsing the index values for SELECT elements.
-                var fieldvalue, fieldindex, opindex, datavalue, dataindex;
-                fieldvalue = filter['field'];
-				if (valueindexmap[fieldvalue]) {
-					fieldindex = valueindexmap[fieldvalue]['index'];
-				}
-                if (fieldindex != null) {
-                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];
-                    if(opindex === undefined) {
-                        for(i=0,li=options.operators.length; i<li;i++) {
-                            if(options.operators[i].op == filter.op ){
-                                opindex = i;
-                                break;
-                            }
-                        }
-                    }
-                    datavalue = filter['data'];
-                    if (valueindexmap[fieldvalue]['data'] == null) {
-                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'
-                    } else {
-                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.
-                    }
-                }
-                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...
-                if (fieldindex != null && opindex != null && dataindex != null) {
-                    o.find("select[name='field']")[0].selectedIndex = fieldindex;
-                    o.find("select[name='field']").change();
-                    o.find("select[name='op']")[0].selectedIndex = opindex;
-                    o.find("input.vdata").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT
-                    o = o.find("select.vdata")[0];
-                    if (o) {
-                        o.selectedIndex = dataindex;
-                    }
-					return true
-                } else {
-					return false
-				}
-            }; // end of this.setFilter fn
-        } // end of if fields != null
-    }
-    return new SearchFilter(this, fields, options);
-};
-
-jQuery.fn.searchFilter.version = '1.2.9';
-
-/* This property contains the default options */
-jQuery.fn.searchFilter.defaults = {
-
-    /*
-     * PROPERTY
-     * TYPE:        boolean 
-     * DESCRIPTION: clone a row if it is added from an existing row
-     *              when false, any new added rows will be blank.
-     */
-    clone: true,
-
-    /*
-     * PROPERTY
-     * TYPE:        boolean 
-     * DESCRIPTION: current version of datepicker uses a data store,
-     *              which is incompatible with $().clone(true)
-     */
-    datepickerFix: true,
-
-    /*
-     * FUNCTION
-     * DESCRIPTION: the function that will be called when the user clicks Reset
-     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
-     */
-    onReset: function(data) { alert("Reset Clicked. Data Returned: " + data) },
-
-    /*
-     * FUNCTION
-     * DESCRIPTION: the function that will be called when the user clicks Search
-     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
-     */
-    onSearch: function(data) { alert("Search Clicked. Data Returned: " + data) },
-
-    /*
-     * FUNCTION
-     * DESCRIPTION: the function that will be called when the user clicks the Closer icon
-     *              or the close() function is called
-     *              if left null, it simply does a .hide() on the searchFilter
-     * INPUT TYPE:  a jQuery object for the searchFilter
-     */
-    onClose: function(jElem) { jElem.hide(); },
-
-    /* 
-     * PROPERTY
-     * TYPE:        array of objects, each object has the properties op and text 
-     * DESCRIPTION: the selectable operators that are applied between rules
-     *              e.g. for {op:"AND", text:"all"}
-     *                  the search filter box will say: match all rules
-     *                  the server should interpret this as putting the AND op between each rule:
-     *                      rule1 AND rule2 AND rule3
-     *              text will be the option text, and op will be the option value
-     */
-    groupOps: [
-        { op: "AND", text: "all" },
-        { op: "OR",  text: "any" }
-    ],
-
-
-    /* 
-     * PROPERTY
-     * TYPE:        array of objects, each object has the properties op and text 
-     * DESCRIPTION: the operators that will appear as drop-down options
-     *              text will be the option text, and op will be the option value
-     */
-    operators: [
-        { op: "eq", text: "is equal to" },
-        { op: "ne", text: "is not equal to" },
-        { op: "lt", text: "is less than" },
-        { op: "le", text: "is less or equal to" },
-        { op: "gt", text: "is greater than" },
-        { op: "ge", text: "is greater or equal to" },
-        { op: "in", text: "is in" },
-        { op: "ni", text: "is not in" },
-        { op: "bw", text: "begins with" },
-        { op: "bn", text: "does not begin with" },
-        { op: "ew", text: "ends with" },
-        { op: "en", text: "does not end with" },
-        { op: "cn", text: "contains" },
-        { op: "nc", text: "does not contain" }
-    ],
-
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules
-     */
-    matchText: "match",
-
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_
-     */
-    rulesText: "rules",
-
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: the text that will be displayed in the reset button
-     */
-    resetText: "Reset",
-    
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: the text that will be displayed in the search button
-     */
-    searchText: "Search",
-    
-    /*
-     * PROPERTY
-     * TYPE:        boolean
-     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects
-     */
-    stringResult: true,    
-    
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: the title of the searchFilter window
-     */
-    windowTitle: "Search Rules",
-    /*
-     * PROPERTY
-     * TYPE:        object
-     * DESCRIPTION: options to extend the ajax request
-     */
-    ajaxSelectOptions : {}
-}; /* end of searchFilter */
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.searchFilter.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.treegrid.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.treegrid.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.treegrid.js	(nonexistent)
@@ -1,445 +0,0 @@
-;(function($) {
-/*
-**
- * jqGrid extension - Tree Grid
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-	setTreeNode : function(rd, row){
-		return this.each(function(){
-			var $t = this;
-			if( !$t.grid || !$t.p.treeGrid ) { return; }
-			var expCol = $t.p.expColInd;
-			var expanded = $t.p.treeReader.expanded_field;
-			var isLeaf = $t.p.treeReader.leaf_field;
-			var level = $t.p.treeReader.level_field;
-			row.level = rd[level];
-			
-			if($t.p.treeGridModel == 'nested') {
-				row.lft = rd[$t.p.treeReader.left_field];
-				row.rgt = rd[$t.p.treeReader.right_field];
-				if(!rd[isLeaf]) {
-				// NS Model
-					rd[isLeaf] = (parseInt(row.rgt,10) === parseInt(row.lft,10)+1) ? 'true' : 'false';
-				}
-			} else {
-				row.parent_id = rd[$t.p.treeReader.parent_id_field];
-			}
-			var curLevel = parseInt(row.level,10), ident,lftpos;
-			if($t.p.tree_root_level === 0) {
-				ident = curLevel+1;
-				lftpos = curLevel;
-			} else {
-				ident = curLevel;
-				lftpos = curLevel -1;
-			}
-			var twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
-			twrap += "<div style='"+($t.p.direction=="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='ui-icon ";
-
-			if(rd[isLeaf] == "true" || rd[isLeaf] === true) {
-				twrap += $t.p.treeIcons.leaf+" tree-leaf'";
-				row.isLeaf = true;
-			} else {
-				if(rd[expanded] == "true" || rd[expanded] === true) {
-					twrap += $t.p.treeIcons.minus+" tree-minus treeclick'";
-					row.expanded = true;
-				} else {
-					twrap += $t.p.treeIcons.plus+" tree-plus treeclick'";
-					row.expanded = false;
-				}
-				row.isLeaf = false;
-			}
-			twrap += "</div></div>";
-			if(parseInt(rd[level],10) !== parseInt($t.p.tree_root_level,10)) {                
-				if(!$($t).jqGrid("isVisibleNode",row)){ 
-					$(row).css("display","none");
-				}
-			}
-			$("td:eq("+expCol+")",row).wrapInner("<span></span>").prepend(twrap);
-			$(".treeclick",row).bind("click",function(e){
-				var target = e.target || e.srcElement;
-				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
-				if(!$t.rows[ind].isLeaf){
-					if($t.rows[ind].expanded){
-						$($t).jqGrid("collapseRow",$t.rows[ind]);
-						$($t).jqGrid("collapseNode",$t.rows[ind]);
-					} else {
-						$($t).jqGrid("expandRow",$t.rows[ind]);
-						$($t).jqGrid("expandNode",$t.rows[ind]);
-					}
-				}
-				return false;
-			});
-			if($t.p.ExpandColClick === true) {
-			$("span", row).css("cursor","pointer").bind("click",function(e){
-				var target = e.target || e.srcElement;
-				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
-				if(!$t.rows[ind].isLeaf){
-					if($t.rows[ind].expanded){
-						$($t).jqGrid("collapseRow",$t.rows[ind]);
-						$($t).jqGrid("collapseNode",$t.rows[ind]);
-					} else {
-						$($t).jqGrid("expandRow",$t.rows[ind]);
-						$($t).jqGrid("expandNode",$t.rows[ind]);
-					}
-				}
-				$($t).jqGrid("setSelection",$t.rows[ind].id);
-				return false;
-			});
-			}
-		});
-	},
-	setTreeGrid : function() {
-		return this.each(function (){
-			var $t = this, i=0, pico;
-			if(!$t.p.treeGrid) { return; }
-			if(!$t.p.treedatatype ) { $.extend($t.p,{treedatatype: $t.p.datatype}); }
-			$t.p.subGrid = false; $t.p.altRows =false;
-			$t.p.pgbuttons = false; $t.p.pginput = false;
-			$t.p.multiselect = false; $t.p.rowList = [];
-			pico = 'ui-icon-triangle-1-' + ($t.p.direction=="rtl" ? 'w' : 'e');
-			$t.p.treeIcons = $.extend({plus:pico,minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'},$t.p.treeIcons || {});
-			if($t.p.treeGridModel == 'nested') {
-				$t.p.treeReader = $.extend({
-					level_field: "level",
-					left_field:"lft",
-					right_field: "rgt",
-					leaf_field: "isLeaf",
-					expanded_field: "expanded"
-				},$t.p.treeReader);
-			} else
-				if($t.p.treeGridModel == 'adjacency') {
-				$t.p.treeReader = $.extend({
-						level_field: "level",
-						parent_id_field: "parent",
-						leaf_field: "isLeaf",
-						expanded_field: "expanded"
-				},$t.p.treeReader );
-			}
-			for (var key in $t.p.colModel){
-				if($t.p.colModel.hasOwnProperty(key)) {
-					if($t.p.colModel[key].name == $t.p.ExpandColumn) {
-						$t.p.expColInd = i;
-						break;
-					}
-					i++;
-				}
-			}
-			if(!$t.p.expColInd) { $t.p.expColInd = 0; }
-			$.each($t.p.treeReader,function(i,n){
-				if(n){
-					$t.p.colNames.push(n);
-					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
-				}
-			});			
-		});
-	},
-	expandRow: function (record){
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var childern = $($t).jqGrid("getNodeChildren",record);
-			//if ($($t).jqGrid("isVisibleNode",record)) {
-			$(childern).each(function(i){
-				$(this).css("display","");
-				if(this.expanded) {
-					$($t).jqGrid("expandRow",this);
-				}
-			});
-			//}
-		});
-	},
-	collapseRow : function (record) {
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var childern = $($t).jqGrid("getNodeChildren",record);
-			$(childern).each(function(i){
-				$(this).css("display","none");
-				if(this.expanded){
-					$($t).jqGrid("collapseRow",this);
-				}
-			});
-		});
-	},
-	// NS ,adjacency models
-	getRootNodes : function() {
-		var result = [];
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var level = $t.p.treeReader.level_field;
-					$($t.rows).each(function(i){
-						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					$($t.rows).each(function(i){
-						if(this.parent_id === null || String(this.parent_id).toLowerCase() == "null") {
-							result.push(this);
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getNodeDepth : function(rc) {
-		var ret = null;
-		this.each(function(){
-			var $t = this;
-			if(!this.grid || !this.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					ret = parseInt(rc.level,10) - parseInt(this.p.tree_root_level,10);
-					break;
-				case 'adjacency' :
-					ret = $($t).jqGrid("getNodeAncestors",rc).length;
-					break;
-			}
-		});
-		return ret;
-	},
-	getNodeParent : function(rc) {
-		var result = null;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
-					$(this.rows).each(function(){
-						if(parseInt(this.level,10) === level-1 && parseInt(this.lft,10) < lft && parseInt(this.rgt,10) > rgt) {
-							result = this;
-							return false;
-						}
-					});
-					break;
-				case 'adjacency' :
-					$(this.rows).each(function(){
-						if(this.id == rc.parent_id ) {
-							result = this;
-							return false;
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getNodeChildren : function(rc) {
-		var result = [];
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
-					$(this.rows).each(function(i){
-						if(parseInt(this.level,10) === level+1 && parseInt(this.lft,10) > lft && parseInt(this.rgt,10) < rgt) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					$(this.rows).each(function(i){
-						if(this.parent_id == rc.id) {
-							result.push(this);
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getFullTreeNode : function(rc) {
-		var result = [];
-		this.each(function(){
-			var $t = this, len;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
-					$(this.rows).each(function(i){
-						if(parseInt(this.level,10) >= level && parseInt(this.lft,10) >= lft && parseInt(this.lft,10) <= rgt) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					result.push(rc);
-					$(this.rows).each(function(i){
-						len = result.length;
-						for (i = 0; i < len; i++) {
-							if (result[i].id == this.parent_id) {
-								result.push(this);
-								break;
-							}
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},	
-	// End NS, adjacency Model
-	getNodeAncestors : function(rc) {
-		var ancestors = [];
-		this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			var parent = $(this).jqGrid("getNodeParent",rc);
-			while (parent) {
-				ancestors.push(parent);
-				parent = $(this).jqGrid("getNodeParent",parent);	
-			}
-		});
-		return ancestors;
-	},
-	isVisibleNode : function(rc) {
-		var result = true;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var ancestors = $($t).jqGrid("getNodeAncestors",rc);
-			$(ancestors).each(function(){
-				result = result && this.expanded;
-				if(!result) {return false;}
-			});
-		});
-		return result;
-	},
-	isNodeLoaded : function(rc) {
-		var result;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			if(rc.loaded !== undefined) {
-				result = rc.loaded;
-			} else if( rc.isLeaf || $($t).jqGrid("getNodeChildren",rc).length > 0){
-				result = true;
-			} else {
-				result = false;
-			}
-		});
-		return result;
-	},
-	expandNode : function(rc) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			if(!rc.expanded) {
-				if( $(this).jqGrid("isNodeLoaded",rc) ) {
-					rc.expanded = true;
-					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
-				} else {
-					rc.expanded = true;
-					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
-					this.p.treeANode = rc.rowIndex;
-					this.p.datatype = this.p.treedatatype;
-					if(this.p.treeGridModel == 'nested') {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,n_left:rc.lft,n_right:rc.rgt,n_level:rc.level}});
-					} else {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,parentid:rc.parent_id,n_level:rc.level}});
-					}
-					$(this).trigger("reloadGrid");
-					if(this.p.treeGridModel == 'nested') {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
-					} else {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
-					}
-				}
-			}
-		});
-	},
-	collapseNode : function(rc) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			if(rc.expanded) {
-				rc.expanded = false;
-				$("div.treeclick",rc).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
-			}
-		});
-	},
-	SortTree : function( newDir) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			var i, len,
-			rec, records = [], $t = this,
-			roots = $(this).jqGrid("getRootNodes");
-			// Sorting roots
-			roots.sort(function(a, b) {
-				if (a.sortKey < b.sortKey) {return -newDir;}
-				if (a.sortKey > b.sortKey) {return newDir;}
-				return 0;
-			});
-			if(roots[0]){
-				$("td",roots[0]).each( function( k ) {
-					$(this).css("width",$t.grid.headers[k].width+"px");
-				});
-				$t.grid.cols = roots[0].cells;
-			}
-			// Sorting children
-			for (i = 0, len = roots.length; i < len; i++) {
-				rec = roots[i];
-				records.push(rec);
-				$(this).jqGrid("collectChildrenSortTree",records, rec, newDir);
-			}
-			$.each(records, function(index, row) {
-				$('tbody',$t.grid.bDiv).append(row);
-				row.sortKey = null;
-			});
-		});
-	},
-	collectChildrenSortTree : function(records, rec, newDir) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			var i, len,
-			child, 
-			children = $(this).jqGrid("getNodeChildren",rec);
-			children.sort(function(a, b) {
-				if (a.sortKey < b.sortKey) {return -newDir;}
-				if (a.sortKey > b.sortKey) {return newDir;}
-				return 0;
-			});
-			for (i = 0, len = children.length; i < len; i++) {
-				child = children[i];
-				records.push(child);
-				$(this).jqGrid("collectChildrenSortTree",records, child,newDir); 
-			}
-		});
-	},
-	// experimental 
-	setTreeRow : function(rowid, data) {
-		var nm, success=false;
-		this.each(function(){
-			var t = this;
-			if(!t.grid || !t.p.treeGrid) { return; }
-			success = $(t).jqGrid("setRowData",rowid,data);
-		});
-		return success;
-	},
-	delTreeNode : function (rowid) {
-		return this.each(function () {
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var rc = $($t).jqGrid("getInd",rowid,true);
-			if (rc) {
-				var dr = $($t).jqGrid("getNodeChildren",rc);
-				if(dr.length>0){
-					for (var i=0;i<dr.length;i++){
-						$($t).jqGrid("delRowData",dr[i].id);
-					}
-				}
-				$($t).jqGrid("delRowData",rc.id);
-			}
-		});
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.treegrid.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/JsonXml.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/JsonXml.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/JsonXml.js	(nonexistent)
@@ -1,330 +0,0 @@
-/*
-	The below work is licensed under Creative Commons GNU LGPL License.
-
-	Original work:
-
-	License:     http://creativecommons.org/licenses/LGPL/2.1/
-	Author:      Stefan Goessner/2006
-	Web:         http://goessner.net/ 
-
-	Modifications made:
-
-	Version:     0.9-p5
-	Description: Restructured code, JSLint validated (no strict whitespaces),
-	             added handling of empty arrays, empty strings, and int/floats values.
-	Author:      Michael Schøler/2008-01-29
-	Web:         http://michael.hinnerup.net/blog/2008/01/26/converting-json-to-xml-and-xml-to-json/
-	
-	Description: json2xml added support to convert functions as CDATA
-	             so it will be easy to write characters that cause some problems when convert
-	Author:      Tony Tomov
-*/
-
-/*global alert */
-var xmlJsonClass = {
-	// Param "xml": Element or document DOM node.
-	// Param "tab": Tab or indent string for pretty output formatting omit or use empty string "" to supress.
-	// Returns:     JSON string
-	xml2json: function(xml, tab) {
-		if (xml.nodeType === 9) {
-			// document node
-			xml = xml.documentElement;
-		}
-		var nws = this.removeWhite(xml);
-		var obj = this.toObj(nws);
-		var json = this.toJson(obj, xml.nodeName, "\t");
-		return "{\n" + tab + (tab ? json.replace(/\t/g, tab) : json.replace(/\t|\n/g, "")) + "\n}";
-	},
-
-	// Param "o":   JavaScript object
-	// Param "tab": tab or indent string for pretty output formatting omit or use empty string "" to supress.
-	// Returns:     XML string
-	json2xml: function(o, tab) {
-		var toXml = function(v, name, ind) {
-			var xml = "";
-			var i, n;
-			if (v instanceof Array) {
-				if (v.length === 0) {
-					xml += ind + "<"+name+">__EMPTY_ARRAY_</"+name+">\n";
-				}
-				else {
-					for (i = 0, n = v.length; i < n; i += 1) {
-						var sXml = ind + toXml(v[i], name, ind+"\t") + "\n";
-						xml += sXml;
-					}
-				}
-			}
-			else if (typeof(v) === "object") {
-				var hasChild = false;
-				xml += ind + "<" + name;
-				var m;
-				for (m in v) if (v.hasOwnProperty(m)) {
-					if (m.charAt(0) === "@") {
-						xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
-					}
-					else {
-						hasChild = true;
-					}
-				}
-				xml += hasChild ? ">" : "/>";
-				if (hasChild) {
-					for (m in v) if (v.hasOwnProperty(m)) {
-						if (m === "#text") {
-							xml += v[m];
-						}
-						else if (m === "#cdata") {
-							xml += "<![CDATA[" + v[m] + "]]>";
-						}
-						else if (m.charAt(0) !== "@") {
-							xml += toXml(v[m], m, ind+"\t");
-						}
-					}
-					xml += (xml.charAt(xml.length - 1) === "\n" ? ind : "") + "</" + name + ">";
-				}
-			}
-			else if (typeof(v) === "function") {
-				xml += ind + "<" + name + ">" + "<![CDATA[" + v + "]]>" + "</" + name + ">";
-			}
-			else {
-				if (v.toString() === "\"\"" || v.toString().length === 0) {
-					xml += ind + "<" + name + ">__EMPTY_STRING_</" + name + ">";
-				} 
-				else {
-					xml += ind + "<" + name + ">" + v.toString() + "</" + name + ">";
-				}
-			}
-			return xml;
-		};
-		var xml = "";
-		var m;
-		for (m in o) if (o.hasOwnProperty(m)) {
-			xml += toXml(o[m], m, "");
-		}
-		return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, "");
-	},
-	// Internal methods
-	toObj: function(xml) {
-		var o = {};
-		var FuncTest = /function/i;
-		if (xml.nodeType === 1) {
-			// element node ..
-			if (xml.attributes.length) {
-				// element with attributes ..
-				var i;
-				for (i = 0; i < xml.attributes.length; i += 1) {
-					o["@" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || "").toString();
-				}
-			}
-			if (xml.firstChild) {
-				// element has child nodes ..
-				var textChild = 0, cdataChild = 0, hasElementChild = false;
-				var n;
-				for (n = xml.firstChild; n; n = n.nextSibling) {
-					if (n.nodeType === 1) {
-						hasElementChild = true;
-					}
-					else if (n.nodeType === 3 && n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
-						// non-whitespace text
-						textChild += 1;
-					}
-					else if (n.nodeType === 4) {
-						// cdata section node
-						cdataChild += 1;
-					}
-				}
-				if (hasElementChild) {
-					if (textChild < 2 && cdataChild < 2) {
-						// structured element with evtl. a single text or/and cdata node ..
-						this.removeWhite(xml);
-						for (n = xml.firstChild; n; n = n.nextSibling) {
-							if (n.nodeType === 3) {
-								// text node
-								o["#text"] = this.escape(n.nodeValue);
-							}
-							else if (n.nodeType === 4) {
-								// cdata node
-								if (FuncTest.test(n.nodeValue)) {
-									o[n.nodeName] = [o[n.nodeName], n.nodeValue];
-								} else {
-									o["#cdata"] = this.escape(n.nodeValue);
-								}
-							}
-							else if (o[n.nodeName]) {
-								// multiple occurence of element ..
-								if (o[n.nodeName] instanceof Array) {
-									o[n.nodeName][o[n.nodeName].length] = this.toObj(n);
-								}
-								else {
-									o[n.nodeName] = [o[n.nodeName], this.toObj(n)];
-								}
-							}
-							else {
-								// first occurence of element ..
-								o[n.nodeName] = this.toObj(n);
-							}
-						}
-					}
-					else {
-						// mixed content
-						if (!xml.attributes.length) {
-							o = this.escape(this.innerXml(xml));
-						}
-						else {
-							o["#text"] = this.escape(this.innerXml(xml));
-						}
-					}
-				}
-				else if (textChild) {
-					// pure text
-					if (!xml.attributes.length) {
-						o = this.escape(this.innerXml(xml));
-						if (o === "__EMPTY_ARRAY_") {
-							o = "[]";
-						} else if (o === "__EMPTY_STRING_") {
-							o = "";
-						}
-					}
-					else {
-						o["#text"] = this.escape(this.innerXml(xml));
-					}
-				}
-				else if (cdataChild) {
-					// cdata
-					if (cdataChild > 1) {
-						o = this.escape(this.innerXml(xml));
-					}
-					else {
-						for (n = xml.firstChild; n; n = n.nextSibling) {
-							if(FuncTest.test(xml.firstChild.nodeValue)) {
-								o = xml.firstChild.nodeValue;
-								break;
-							} else {
-								o["#cdata"] = this.escape(n.nodeValue);
-							}
-						}
-					}
-				}
-			}
-			if (!xml.attributes.length && !xml.firstChild) {
-				o = null;
-			}
-		}
-		else if (xml.nodeType === 9) {
-			// document.node
-			o = this.toObj(xml.documentElement);
-		}
-		else {
-			alert("unhandled node type: " + xml.nodeType);
-		}
-		return o;
-	},
-	toJson: function(o, name, ind) {
-		var json = name ? ("\"" + name + "\"") : "";
-		if (o === "[]") {
-			json += (name ? ":[]" : "[]");
-		}
-		else if (o instanceof Array) {
-			var n, i, ar=[];
-			for (i = 0, n = o.length; i < n; i += 1) {
-				ar[i] = this.toJson(o[i], "", ind + "\t");
-			}
-			json += (name ? ":[" : "[") + (ar.length > 1 ? ("\n" + ind + "\t" + ar.join(",\n" + ind + "\t") + "\n" + ind) : ar.join("")) + "]";
-		}
-		else if (o === null) {
-			json += (name && ":") + "null";
-		}
-		else if (typeof(o) === "object") {
-			var arr = [];
-			var m;
-			for (m in o) if (o.hasOwnProperty(m)) {
-				arr[arr.length] = this.toJson(o[m], m, ind + "\t");
-			}
-			json += (name ? ":{" : "{") + (arr.length > 1 ? ("\n" + ind + "\t" + arr.join(",\n" + ind + "\t") + "\n" + ind) : arr.join("")) + "}";
-		}
-		else if (typeof(o) === "string") {
-			var objRegExp  = /(^-?\d+\.?\d*$)/;
-			var FuncTest = /function/i;
-			var os = o.toString();
-			if (objRegExp.test(os) || FuncTest.test(os) || os==="false" || os==="true") {
-				// int or float
-				json += (name && ":") + os;
-			} 
-			else {
-				json += (name && ":") + "\"" + o + "\"";
-			}
-		}
-		else {
-			json += (name && ":") + o.toString();
-		}
-		return json;
-	},
-	innerXml: function(node) {
-		var s = "";
-		if ("innerHTML" in node) {
-			s = node.innerHTML;
-		}
-		else {
-			var asXml = function(n) {
-				var s = "", i;
-				if (n.nodeType === 1) {
-					s += "<" + n.nodeName;
-					for (i = 0; i < n.attributes.length; i += 1) {
-						s += " " + n.attributes[i].nodeName + "=\"" + (n.attributes[i].nodeValue || "").toString() + "\"";
-					}
-					if (n.firstChild) {
-						s += ">";
-						for (var c = n.firstChild; c; c = c.nextSibling) {
-							s += asXml(c);
-						}
-						s += "</" + n.nodeName + ">";
-					}
-					else {
-						s += "/>";
-					}
-				}
-				else if (n.nodeType === 3) {
-					s += n.nodeValue;
-				}
-				else if (n.nodeType === 4) {
-					s += "<![CDATA[" + n.nodeValue + "]]>";
-				}
-				return s;
-			};
-			for (var c = node.firstChild; c; c = c.nextSibling) {
-				s += asXml(c);
-			}
-		}
-		return s;
-	},
-	escape: function(txt) {
-		return txt.replace(/[\\]/g, "\\\\").replace(/[\"]/g, '\\"').replace(/[\n]/g, '\\n').replace(/[\r]/g, '\\r');
-	},
-	removeWhite: function(e) {
-		e.normalize();
-		var n;
-		for (n = e.firstChild; n; ) {
-			if (n.nodeType === 3) {
-				// text node
-				if (!n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
-					// pure whitespace text node
-					var nxt = n.nextSibling;
-					e.removeChild(n);
-					n = nxt;
-				}
-				else {
-					n = n.nextSibling;
-				}
-			}
-			else if (n.nodeType === 1) {
-				// element node
-				this.removeWhite(n);
-				n = n.nextSibling;
-			}
-			else {
-				// any other node
-				n = n.nextSibling;
-			}
-		}
-		return e;
-	}
-};
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/JsonXml.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.loader.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.loader.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.loader.js	(nonexistent)
@@ -1,47 +0,0 @@
-// This file should be used if you want to debug
-function jqGridInclude()
-{
-    var pathtojsfiles = "js/"; // need to be ajusted
-    // set include to false if you do not want some modules to be included
-    var modules = [
-        { include: true, incfile:'i18n/grid.locale-en.js'}, // jqGrid translation
-        { include: true, incfile:'grid.base.js'}, // jqGrid base
-        { include: true, incfile:'grid.common.js'}, // jqGrid common for editing
-        { include: true, incfile:'grid.formedit.js'}, // jqGrid Form editing
-        { include: true, incfile:'grid.inlinedit.js'}, // jqGrid inline editing
-        { include: true, incfile:'grid.celledit.js'}, // jqGrid cell editing
-        { include: true, incfile:'grid.subgrid.js'}, //jqGrid subgrid
-        { include: true, incfile:'grid.treegrid.js'}, //jqGrid treegrid
-        { include: true, incfile:'grid.custom.js'}, //jqGrid custom 
-        { include: true, incfile:'grid.postext.js'}, //jqGrid postext
-        { include: true, incfile:'grid.tbltogrid.js'}, //jqGrid table to grid 
-        { include: true, incfile:'grid.setcolumns.js'}, //jqGrid setcolumns
-        { include: true, incfile:'grid.import.js'}, //jqGrid import
-        { include: true, incfile:'jquery.fmatter.js'}, //jqGrid formater
-        { include: true, incfile:'JsonXml.js'}, //xmljson utils
-        { include: true, incfile:'jquery.searchFilter.js'} // search Plugin
-    ];
-    var filename;
-    for(var i=0;i<modules.length; i++)
-    {
-        if(modules[i].include === true) {
-        	
-        	filename = pathtojsfiles+modules[i].incfile;
-       		if(jQuery.browser.safari) {
-       			jQuery.ajax({url:filename,dataType:'script', async:false, cache: true});
-       		} else {
-       			IncludeJavaScript(filename);
-       		}
-        }
-    }
-    function IncludeJavaScript(jsFile)
-    {
-        var oHead = document.getElementsByTagName('head')[0];
-        var oScript = document.createElement('script');
-        oScript.type = 'text/javascript';
-        oScript.charset = 'utf-8';
-        oScript.src = jsFile;
-        oHead.appendChild(oScript);        
-    };
-};
-jqGridInclude();
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.loader.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.postext.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.postext.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.postext.js	(nonexistent)
@@ -1,64 +0,0 @@
-;(function($){
-/**
- * jqGrid extension
- * Paul Tiseo ptiseo@wasteconsultants.com
- * 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-	getPostData : function(){
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.postData;
-	},
-	setPostData : function( newdata ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		// check if newdata is correct type
-		if ( typeof(newdata) === 'object' ) {
-			$t.p.postData = newdata;
-		}
-		else {
-			alert("Error: cannot add a non-object postData value. postData unchanged.");
-		}
-	},
-	appendPostData : function( newdata ) { 
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		// check if newdata is correct type
-		if ( typeof(newdata) === 'object' ) {
-			$.extend($t.p.postData, newdata);
-		}
-		else {
-			alert("Error: cannot append a non-object postData value. postData unchanged.");
-		}
-	},
-	setPostDataItem : function( key, val ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		$t.p.postData[key] = val;
-	},
-	getPostDataItem : function( key ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.postData[key];
-	},
-	removePostDataItem : function( key ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		delete $t.p.postData[key];
-	},
-	getUserData : function(){
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.userData;
-	},
-	getUserDataItem : function( key ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.userData[key];
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.postext.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.formedit.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.formedit.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.formedit.js	(nonexistent)
@@ -1,1869 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for form editing Grid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/
-var rp_ge = null;
-$.jgrid.extend({
-	searchGrid : function (p) {
-		p = $.extend({
-			recreateFilter: false,
-			drag: true,
-			sField:'searchField',
-			sValue:'searchString',
-			sOper: 'searchOper',
-			sFilter: 'filters',
-            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
-			beforeShowSearch: null,
-			afterShowSearch : null,
-			onInitializeSearch: null,
-			closeAfterSearch : false,
-			closeAfterReset: false,
-			closeOnEscape : false,
-			multipleSearch : false,
-			cloneSearchRowOnAdd: true,
-			// translation
-			// if you want to change or remove the order change it in sopt
-			// ['bw','eq','ne','lt','le','gt','ge','ew','cn']
-			sopt: null,
-			// Note: stringResult is intentionally declared "undefined by default".
-			//  you are velcome to define stringResult expressly in the options you pass to searchGrid()
-			//  stringResult is a "safeguard" measure to insure we post sensible data when communicated as form-encoded
-			//  see http://github.com/tonytomov/jqGrid/issues/#issue/36
-			//
-			//  If this value is not expressly defined in the incoming options,
-			// lower in the code we will infer the value based on value of multipleSearch
-			stringResult: undefined,
-			onClose : null,
-			// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax
-			// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.
-			// Used for "editGridRow" and "delGridRow" below and automatically flipped to TRUE
-			// when ajax setting's 'url' (grid's 'editurl') property is undefined.
-			// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call
-			// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)
-			//
-			// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.
-			// Normally the following is fed to datatype.call(a, b, c):
-			//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = "load_"+grid's ID
-			// In cases of "edit" and "del" the following is fed:
-			//   a = Pointer to grid's table DOM element (same),
-			//   b = extended Ajax Options including postdata in "data" property. (different object type)
-			//   c = "set_"+grid's ID in case of "edit" and "del_"+grid's ID in case of "del" (same type, different content)
-			// The major difference is that complete ajax options object, with attached "complete" and "error"
-			// callback functions is fed instead of only post data.
-			// This allows you to emulate a $.ajax call (including calling "complete"/"error"),
-			// while retrieving the data locally in the browser.
-			useDataProxy: false,
-			overlay : true
-		}, $.jgrid.search, p || {});
-		return this.each(function() {
-			var $t = this;
-			if(!$t.grid) {return;}
-            function applyDefaultFilters(gridDOMobj, filterSettings) {
-				/*
-                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )
-                What we need from gridDOMobj:
-                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.
-                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to
-                contain default filter settings. We will parse these and will populate the search with defaults.
-                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);
-                */
-
-                // Pulling default filter settings out of postData property of grid's properties.:
-                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];
-                // example of what we might get: {"groupOp":"and","rules":[{"field":"amount","op":"eq","data":"100"}]}
-				// suppose we have imported this with grid import, the this is a string.
-				if(typeof(defaultFilters) == "string") {
-					defaultFilters = $.jgrid.parse(defaultFilters);
-				}
-                if (defaultFilters) {
-                    if (defaultFilters.groupOp) {
-                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);
-                    }
-                    if (defaultFilters.rules) {
-                        var f
-							, i = 0
-							, li = defaultFilters.rules.length
-							, success = false;
-                        for (; i < li; i++) {
-                            f = defaultFilters.rules[i];
-                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.
-                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {
-                                success = gridDOMobj.SearchFilter.setFilter({
-                                    'sfref':gridDOMobj.SearchFilter.$.find(".sf:last"),
-                                    'filter':$.extend({},f)
-                                });
-								if (success) { gridDOMobj.SearchFilter.add(); }
-                            }
-                        }
-                    }
-				}
-            } // end of applyDefaultFilters
-			
-			if($.fn.searchFilter) {
-				var fid = "fbox_"+$t.p.id;
-				if(p.recreateFilter===true) {$("#"+fid).remove();}
-				if( $("#"+fid).html() != null ) {
-					if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
-					showFilter();
-					if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
-				} else {
-					var fields = [],
-					colNames = $("#"+$t.p.id).jqGrid("getGridParam","colNames"),
-					colModel = $("#"+$t.p.id).jqGrid("getGridParam","colModel"),
-					stempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],
-					j,pos,k,oprtr=[];
-					if (p.sopt !==null) {
-						k=0;
-						for(j=0;j<p.sopt.length;j++) {
-							if( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){
-								oprtr[k] = {op:p.sopt[j],text: p.odata[pos]};
-								k++;
-							}
-						}
-					} else {
-						for(j=0;j<stempl.length;j++) {
-							oprtr[j] = {op:stempl[j],text: p.odata[j]};
-						}
-					}
-					var searchable;
-				    $.each(colModel, function(i, v) {
-				        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,
-				        hidden = (v.hidden === true),
-						soptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),
-						ignoreHiding = (soptions.searchhidden === true);
-						if(typeof soptions.sopt !== 'undefined') { 
-							k=0;
-							soptions.ops =[];
-							if(soptions.sopt.length>0) {
-								for(j=0;j<soptions.sopt.length;j++) {
-									if( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){
-										soptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos]};
-										k++;
-									}
-								}
-							}
-						}
-						if(typeof(this.stype) === 'undefined') { this.stype='text'; }
-						if(this.stype == 'select') {
-							if ( soptions.dataUrl !== undefined) {}
-							else {
-								var eov;
-								if(soptions.value) {
-									eov = soptions.value;
-								} else if(this.editoptions) {
-									eov = this.editoptions.value;
-								}
-								if(eov) {
-									soptions.dataValues =[];
-									if(typeof(eov) === 'string') {
-										var so = eov.split(";"),sv;
-										for(j=0;j<so.length;j++) {
-											sv = so[j].split(":");
-											soptions.dataValues[j] ={value:sv[0],text:sv[1]};
-										}
-									} else if (typeof(eov) === 'object') {
-										j=0;
-										for (var key in eov) {
-											if(eov.hasOwnProperty(key)) {
-												soptions.dataValues[j] ={value:key,text:eov[key]};
-												j++;
-											}
-										}
-									}
-								}
-							}
-						}
-				        if ((ignoreHiding && searchable) || (searchable && !hidden)) {
-							fields.push(soptions);
-						}
-					});
-					if(fields.length>0){
-						$("<div id='"+fid+"' role='dialog' tabindex='-1'></div>").insertBefore("#gview_"+$t.p.id);
-						// Before we create searchFilter we need to decide if we want to get back a string or a JS object.
-						//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.
-						// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.
-						if (p.stringResult===undefined) {
-							// to provide backward compatibility, inferring stringResult value from multipleSearch
-							p.stringResult = p.multipleSearch;
-						}
-						// we preserve the return value here to retain access to .add() and other good methods of search form.
-						$t.SearchFilter = $("#"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });
-						$(".ui-widget-overlay","#"+fid).remove();
-						if($t.p.direction=="rtl") { $(".ui-closer","#"+fid).css("float","left"); }
-						if (p.drag===true) {
-							$("#"+fid+" table thead tr:first td:first").css('cursor','move');
-							if(jQuery.fn.jqDrag) {
-								$("#"+fid).jqDrag($("#"+fid+" table thead tr:first td:first"));
-							} else {
-								try {
-									$("#"+fid).draggable({handle: $("#"+fid+" table thead tr:first td:first")});
-								} catch (e) {}
-							}
-						}
-						if(p.multipleSearch === false) {
-							$(".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText", "#"+fid).hide();
-							$("select[name='groupOp']","#"+fid).hide();
-						}
-                        if (p.multipleSearch === true && p.loadDefaults === true) {
-                            applyDefaultFilters($t, p);
-                        }
-						if ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $("#"+fid) ); }
-						if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
-						showFilter();
-						if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
-						if(p.closeOnEscape===true){
-							$("#"+fid).keydown( function( e ) {
-								if( e.which == 27 ) {
-									hideFilter($("#"+fid));
-								}
-							});
-						}
-					}
-				}
-			}
-			function searchFilters(filters) {
-				var hasFilters = (filters !== undefined),
-				grid = $("#"+$t.p.id), sdata={};
-				if(p.multipleSearch===false) {
-					sdata[p.sField] = filters.rules[0].field;
-					sdata[p.sValue] = filters.rules[0].data;
-					sdata[p.sOper] = filters.rules[0].op;
-				} else {
-					sdata[p.sFilter] = filters;
-				}
-				grid[0].p.search = hasFilters;
-				$.extend(grid[0].p.postData,sdata);
-				grid.trigger("reloadGrid",[{page:1}]);
-				if(p.closeAfterSearch) { hideFilter($("#"+fid)); }
-			}
-			function resetFilters(filters) {
-				var hasFilters = (filters !== undefined),
-				grid = $("#"+$t.p.id), sdata=[];
-				grid[0].p.search = hasFilters;
-				if(p.multipleSearch===false) {
-					sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
-				} else {
-					sdata[p.sFilter] = "";
-				}
-				$.extend(grid[0].p.postData,sdata);
-				grid.trigger("reloadGrid",[{page:1}]);
-				if(p.closeAfterReset) { hideFilter($("#"+fid)); }
-			}
-			function hideFilter(selector) {
-				if(p.onClose){
-					var fclm = p.onClose(selector);
-					if(typeof fclm == 'boolean' && !fclm) { return; }
-				}
-				selector.hide();
-				if(p.overlay === true) {
-					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).hide();
-				}
-			}
-			function showFilter(){
-				var fl = $(".ui-searchFilter").length;
-				if(fl > 1) {
-					var zI = $("#"+fid).css("zIndex");
-					$("#"+fid).css({zIndex:parseInt(zI,10)+fl});
-				}
-				$("#"+fid).show();
-				if(p.overlay === true) {
-					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).show();
-				}
-				try{$(':input:visible',"#"+fid)[0].focus();}catch(_){}
-			}
-		});
-	},
-	editGridRow : function(rowid, p){
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 300,
-			height: 'auto',
-			dataheight: 'auto',
-			modal: false,
-			drag: true,
-			resize: true,
-			url: null,
-			mtype : "POST",
-			clearAfterAdd :true,
-			closeAfterEdit : false,
-			reloadAfterSubmit : true,
-			onInitializeForm: null,
-			beforeInitData: null,
-			beforeShowForm: null,
-			afterShowForm: null,
-			beforeSubmit: null,
-			afterSubmit: null,
-			onclickSubmit: null,
-			afterComplete: null,
-			onclickPgButtons : null,
-			afterclickPgButtons: null,
-			editData : {},
-			recreateForm : false,
-			jqModal : true,
-			closeOnEscape : false,
-			addedrow : "first",
-			topinfo : '',
-			bottominfo: '',
-			saveicon : [],
-			closeicon : [],
-			savekey: [false,13],
-			navkeys: [false,38,40],
-			checkOnSubmit : false,
-			checkOnUpdate : false,
-			_savedData : {},
-			processing : false,
-			onClose : null,
-			ajaxEditOptions : {},
-			serializeEditData : null,
-			viewPagerButtons : true
-		}, $.jgrid.edit, p || {});
-		rp_ge = p;
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid || !rowid) { return; }
-			var gID = $t.p.id,
-			frmgr = "FrmGrid_"+gID,frmtb = "TblGrid_"+gID,
-			IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},
-			onBeforeShow = $.isFunction(rp_ge.beforeShowForm) ? rp_ge.beforeShowForm : false,
-			onAfterShow = $.isFunction(rp_ge.afterShowForm) ? rp_ge.afterShowForm : false,
-			onBeforeInit = $.isFunction(rp_ge.beforeInitData) ? rp_ge.beforeInitData : false,
-			onInitializeForm = $.isFunction(rp_ge.onInitializeForm) ? rp_ge.onInitializeForm : false,
-			copydata = null,
-			maxCols = 1, maxRows=0,	gurl, postdata, ret, extpost, newData, diff;
-			if (rowid=="new") {
-				rowid = "_empty";
-				p.caption=p.addCaption;
-			} else {
-				p.caption=p.editCaption;
-			}
-			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
-				$("#"+IDs.themodal).remove();
-			}
-			var closeovrl = true;
-			if(p.checkOnUpdate && p.jqModal && !p.modal) {
-				closeovrl = false;
-			}
-			if ( $("#"+IDs.themodal).html() != null ) {
-				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
-				$("#FormError","#"+frmtb).hide();
-				if(rp_ge.topinfo) {
-					$(".topinfo","#"+frmtb+"_2").html(rp_ge.topinfo);
-					$(".tinfo","#"+frmtb+"_2").show();
-				} else {
-					$(".tinfo","#"+frmtb+"_2").hide();
-				}
-				if(rp_ge.bottominfo) {
-					$(".bottominfo","#"+frmtb+"_2").html(rp_ge.bottominfo);
-					$(".binfo","#"+frmtb+"_2").show();
-				} else {
-					$(".binfo","#"+frmtb+"_2").hide();
-				}
-				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
-				// filldata
-				fillData(rowid,$t,frmgr);
-				///
-				if(rowid=="_empty" || !rp_ge.viewPagerButtons) {
-					$("#pData, #nData","#"+frmtb+"_2").hide();
-				} else { 
-					$("#pData, #nData","#"+frmtb+"_2").show();
-				}
-				if(rp_ge.processing===true) {
-					rp_ge.processing=false;
-					$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
-				}
-				if($("#"+frmgr).data("disabled")===true) {
-					$(".confirm","#"+IDs.themodal).hide();
-					$("#"+frmgr).data("disabled",false);
-				}
-				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
-				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, closeoverlay: closeovrl, modal:p.modal});
-				if(!closeovrl) {
-					$(".jqmOverlay").click(function(){
-						if(!checkUpdates()) { return false; }
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
-			} else {
-				$($t.p.colModel).each( function(i) {
-					var fmto = this.formoptions;
-					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
-					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
-				});
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>").data("disabled",false),
-				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
-				$(frm).append(tbl);
-				flr = $("<tr id='FormError' style='display:none'><td class='ui-state-error' colspan='"+(maxCols*2)+"'></td></tr>");
-				flr[0].rp = 0;
-				$(tbl).append(flr);
-				//topinfo
-				flr = $("<tr style='display:none' class='tinfo'><td class='topinfo' colspan='"+(maxCols*2)+"'>"+rp_ge.topinfo+"</td></tr>");
-				flr[0].rp = 0;
-				$(tbl).append(flr);
-				// set the id.
-				// use carefull only to change here colproperties.
-				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
-				// create data
-				var rtlb = $t.p.direction == "rtl" ? true :false,
-				bp = rtlb ? "nData" : "pData",
-				bn = rtlb ? "pData" : "nData",
-				valref = createData(rowid,$t,tbl,maxCols),
-				// buttons at footer
-				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
-				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
-				bS  ="<a href='javascript:void(0)' id='sData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
-				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
-				var bt = "<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bS+bC+"</td></tr>";
-				bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge.bottominfo+"</td></tr>";
-				bt += "</tbody></table>";
-				if(maxRows >  0) {
-					var sd=[];
-					$.each($(tbl)[0].rows,function(i,r){
-						sd[i] = r;
-					});
-					sd.sort(function(a,b){
-						if(a.rp > b.rp) {return 1;}
-						if(a.rp < b.rp) {return -1;}
-						return 0;
-					});
-					$.each(sd, function(index, row) {
-						$('tbody',tbl).append(row);
-					});
-				}
-				p.gbox = "#gbox_"+gID;
-				var cle = false;
-				if(p.closeOnEscape===true){
-					p.closeOnEscape = false;
-					cle = true;
-				}
-				var tms = $("<span></span>").append(frm).append(bt);
-				createModal(IDs,tms,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				if(rtlb) {
-					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
-					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
-				}
-				if(rp_ge.topinfo) { $(".tinfo","#"+frmtb+"_2").show(); }
-				if(rp_ge.bottominfo) { $(".binfo","#"+frmtb+"_2").show(); } 
-				tms = null; bt=null;
-				$("#"+IDs.themodal).keydown( function( e ) {
-					var wkey = e.target;
-					if ($("#"+frmgr).data("disabled")===true ) { return false; }//??
-					if(rp_ge.savekey[0] === true && e.which == rp_ge.savekey[1]) { // save
-						if(wkey.tagName != "TEXTAREA") {
-							$("#sData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-					}
-					if(e.which === 27) {
-						if(!checkUpdates()) { return false; }
-						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge.onClose}); }
-						return false;
-					}
-					if(rp_ge.navkeys[0]===true) {
-						if($("#id_g","#"+frmtb).val() == "_empty") { return true; }
-						if(e.which == rp_ge.navkeys[1]){ //up
-							$("#pData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-						if(e.which == rp_ge.navkeys[2]){ //down
-							$("#nData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-					}
-				});
-				if(p.checkOnUpdate) {
-					$("a.ui-jqdialog-titlebar-close span","#"+IDs.themodal).removeClass("jqmClose");
-					$("a.ui-jqdialog-titlebar-close","#"+IDs.themodal).unbind("click")
-					.click(function(){
-						if(!checkUpdates()) { return false; }
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				p.saveicon = $.extend([true,"left","ui-icon-disk"],p.saveicon);
-				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
-				// beforeinitdata after creation of the form
-				if(p.saveicon[0]===true) {
-					$("#sData","#"+frmtb+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
-				}
-				if(p.closeicon[0]===true) {
-					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
-				}
-				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
-					bS  ="<a href='javascript:void(0)' id='sNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bYes+"</a>";
-					bN  ="<a href='javascript:void(0)' id='nNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bNo+"</a>";
-					bC  ="<a href='javascript:void(0)' id='cNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bExit+"</a>";
-					var ii, zI = p.zIndex  || 999; zI ++;
-					if ($.browser.msie && $.browser.version ==6) {
-						ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
-					} else { ii="";}
-					$("<div class='ui-widget-overlay jqgrid-overlay confirm' style='z-index:"+zI+";display:none;'>&#160;"+ii+"</div><div class='confirm ui-widget-content ui-jqconfirm' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>").insertAfter("#"+frmgr);
-					$("#sNew","#"+IDs.themodal).click(function(){
-						postIt();
-						$("#"+frmgr).data("disabled",false);
-						$(".confirm","#"+IDs.themodal).hide();
-						return false;
-					});
-					$("#nNew","#"+IDs.themodal).click(function(){
-						$(".confirm","#"+IDs.themodal).hide();
-						$("#"+frmgr).data("disabled",false);
-						setTimeout(function(){$(":input","#"+frmgr)[0].focus();},0);
-						return false;
-					});
-					$("#cNew","#"+IDs.themodal).click(function(){
-						$(".confirm","#"+IDs.themodal).hide();
-						$("#"+frmgr).data("disabled",false);
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				// here initform - only once
-				if(onInitializeForm) { onInitializeForm($("#"+frmgr)); }
-				if(rowid=="_empty" || !rp_ge.viewPagerButtons) { $("#pData,#nData","#"+frmtb+"_2").hide(); } else { $("#pData,#nData","#"+frmtb+"_2").show(); }
-				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
-				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,closeoverlay:closeovrl,modal:p.modal});
-				if(!closeovrl) {
-					$(".jqmOverlay").click(function(){
-						if(!checkUpdates()) { return false; }
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
-				$(".fm-button","#"+IDs.themodal).hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);
-				$("#sData", "#"+frmtb+"_2").click(function(e){
-					postdata = {}; extpost={};
-					$("#FormError","#"+frmtb).hide();
-					// all depend on ret array
-					//ret[0] - succes
-					//ret[1] - msg if not succes
-					//ret[2] - the id  that will be set if reload after submit false
-					getFormData();
-					if(postdata[$t.p.id+"_id"] == "_empty")	{ postIt(); }
-					else if(p.checkOnSubmit===true ) {
-						newData = $.extend({},postdata,extpost);
-						diff = compareData(newData,rp_ge._savedData);
-						if(diff) {
-							$("#"+frmgr).data("disabled",true);
-							$(".confirm","#"+IDs.themodal).show();
-						} else {
-							postIt();
-						}
-					} else {
-						postIt();
-					}
-					return false;
-				});
-				$("#cData", "#"+frmtb+"_2").click(function(e){
-					if(!checkUpdates()) { return false; }
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-					return false;
-				});
-				$("#nData", "#"+frmtb+"_2").click(function(e){
-					if(!checkUpdates()) { return false; }
-					$("#FormError","#"+frmtb).hide();
-					var npos = getCurrPos();
-					npos[0] = parseInt(npos[0],10);
-					if(npos[0] != -1 && npos[1][npos[0]+1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
-						}
-						fillData(npos[1][npos[0]+1],$t,frmgr);
-						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
-						}
-						updateNav(npos[0]+1,npos[1].length-1);
-					}
-					return false;
-				});
-				$("#pData", "#"+frmtb+"_2").click(function(e){
-					if(!checkUpdates()) { return false; }
-					$("#FormError","#"+frmtb).hide();
-					var ppos = getCurrPos();
-					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
-						}
-						fillData(ppos[1][ppos[0]-1],$t,frmgr);
-						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
-						}
-						updateNav(ppos[0]-1,ppos[1].length-1);
-					}
-					return false;
-				});
-			}
-			var posInit =getCurrPos();
-			updateNav(posInit[0],posInit[1].length-1);
-			function updateNav(cr,totr,rid){
-				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-			}
-			function getCurrPos() {
-				var rowsInGrid = $($t).jqGrid("getDataIDs"),
-				selrow = $("#id_g","#"+frmtb).val(),
-				pos = $.inArray(selrow,rowsInGrid);
-				return [pos,rowsInGrid];
-			}
-			function checkUpdates () {
-				var stat = true;
-				$("#FormError","#"+frmtb).hide();
-				if(rp_ge.checkOnUpdate) {
-					postdata = {}; extpost={};
-					getFormData();
-					newData = $.extend({},postdata,extpost);
-					diff = compareData(newData,rp_ge._savedData);
-					if(diff) {
-						$("#"+frmgr).data("disabled",true);
-						$(".confirm","#"+IDs.themodal).show();
-						stat = false;
-					}
-				}
-				return stat;
-			}
-			function getFormData(){
-				$(".FormElement", "#"+frmtb).each(function(i) {
-					var celm = $(".customelement", this);
-					if (celm.length) {
-						var  elem = celm[0], nm = elem.name;
-						$.each($t.p.colModel, function(i,n){
-							if(this.name == nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {
-								try {
-									postdata[nm] = this.editoptions.custom_value($("#"+nm,"#"+frmtb),'get');
-									if (postdata[nm] === undefined) { throw "e1"; }
-								} catch (e) {
-									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
-									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-								}
-								return true;
-							}
-						});
-					} else {
-					switch ($(this).get(0).type) {
-						case "checkbox":
-							if($(this).attr("checked")) {
-								postdata[this.name]= $(this).val();
-							}else {
-								var ofv = $(this).attr("offval");
-								postdata[this.name]= ofv;
-							}
-						break;
-						case "select-one":
-							postdata[this.name]= $("option:selected",this).val();
-							extpost[this.name]= $("option:selected",this).text();
-						break;
-						case "select-multiple":
-							postdata[this.name]= $(this).val();
-							if(postdata[this.name]) { postdata[this.name] = postdata[this.name].join(","); }
-							else { postdata[this.name] =""; }
-							var selectedText = [];
-							$("option:selected",this).each(
-								function(i,selected){
-									selectedText[i] = $(selected).text();
-								}
-							);
-							extpost[this.name]= selectedText.join(",");
-						break;								
-						case "password":
-						case "text":
-						case "textarea":
-						case "button":
-							postdata[this.name] = $(this).val();
-							
-						break;
-					}
-					if($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); }
-					}
-				});
-				return true;
-			}
-			function createData(rowid,obj,tb,maxcols){
-				var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,
-				tdtmpl = "<td class='CaptionTD ui-widget-content'>&#160;</td><td class='DataTD ui-widget-content' style='white-space:pre'>&#160;</td>", tmpl=""; //*2
-				for (var i =1;i<=maxcols;i++) {
-					tmpl += tdtmpl;
-				}
-				if(rowid != '_empty') {
-					ind = $(obj).jqGrid("getInd",rowid);
-				}
-				$(obj.p.colModel).each( function(i) {
-					nm = this.name;
-					// hidden fields are included in the form
-					if(this.editrules && this.editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = this.hidden === true ? true : false;
-					}
-					dc = hc ? "style='display:none'" : "";
-					if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {
-						if(ind === false) {
-							tmp = "";
-						} else {
-							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
-							} else {
-								try {
-									tmp =  $.unformat($("td:eq("+i+")",obj.rows[ind]),{rowId:rowid, colModel:this},i);
-								} catch (_) {
-									tmp = $("td:eq("+i+")",obj.rows[ind]).html();
-								}
-							}
-						}
-						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
-						frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),
-						rp = parseInt(frmopt.rowpos,10) || cnt+1,
-						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
-						if(rowid == "_empty" && opt.defaultValue ) {
-							tmp = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue; 
-						}
-						if(!this.edittype) { this.edittype = "text"; }
-						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-						elc = createEl(this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));
-						if(tmp == "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}
-						if(tmp == "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}
-						if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
-						$(elc).addClass("FormElement");
-						trdata = $(tb).find("tr[rowpos="+rp+"]");
-						if(frmopt.rowabove) {
-							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
-							$(tb).append(newdata);
-							newdata[0].rp = rp;
-						}
-						if ( trdata.length===0 ) {
-							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
-							$(trdata).append(tmpl);
-							$(tb).append(trdata);
-							trdata[0].rp = rp;
-						}
-						$("td:eq("+(cp-2)+")",trdata[0]).html( typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label);
-						$("td:eq("+(cp-1)+")",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);
-						retpos[cnt] = i;
-						cnt++;
-					}
-				});
-				if( cnt > 0) {
-					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>");
-					idrow[0].rp = cnt+999;
-					$(tb).append(idrow);
-					if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[obj.p.id+"_id"] = rowid; }
-				}
-				return retpos;
-			}
-			function fillData(rowid,obj,fmid){
-				var nm,cnt=0,tmp, fld,opt,vl,vlc;
-				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {rp_ge._savedData = {};rp_ge._savedData[obj.p.id+"_id"]=rowid;}
-				var cm = obj.p.colModel;
-				if(rowid == '_empty') {
-					$(cm).each(function(i){
-						nm = this.name;
-						opt = $.extend({}, this.editoptions || {} );
-						fld = $("#"+$.jgrid.jqID(nm),"#"+fmid);
-						if(fld[0] != null) {
-							vl = "";
-							if(opt.defaultValue ) {
-								vl = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;
-								if(fld[0].type=='checkbox') {
-									vlc = vl.toLowerCase();
-									if(vlc.search(/(false|0|no|off|undefined)/i)<0 && vlc!=="") {
-										fld[0].checked = true;
-										fld[0].defaultChecked = true;
-										fld[0].value = vl;
-									} else {
-										fld.attr({checked:"",defaultChecked:""});
-									}
-								} else {fld.val(vl); }
-							} else {
-								if( fld[0].type=='checkbox' ) {
-									fld[0].checked = false;
-									fld[0].defaultChecked = false;
-									vl = $(fld).attr("offval");
-								} else if (fld[0].type.substr(0,6)=='select') {
-									fld[0].selectedIndex = 0; 
-								} else {
-									fld.val(vl);
-								}
-							}
-							if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = vl; }
-						}
-					});
-					$("#id_g","#"+fmid).val(rowid);
-					return;
-				}
-				var tre = $(obj).jqGrid("getInd",rowid,true);
-				if(!tre) { return; }
-				$('td',tre).each( function(i) {
-					nm = cm[i].name;
-					// hidden fields are included in the form
-					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {
-						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-							tmp = $(this).text();
-						} else {
-							try {
-								tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
-							} catch (_) {
-								tmp = $(this).html();
-							}
-						}
-						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-						if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
-						nm = $.jgrid.jqID(nm);
-						switch (cm[i].edittype) {
-							case "password":
-							case "text":
-							case "button" :
-							case "image":
-								$("#"+nm,"#"+fmid).val(tmp);
-								break;
-							case "textarea":
-								if(tmp == "&nbsp;" || tmp == "&#160;" || (tmp.length==1 && tmp.charCodeAt(0)==160) ) {tmp='';}
-								$("#"+nm,"#"+fmid).val(tmp);
-								break;
-							case "select":
-								var opv = tmp.split(",");
-								opv = $.map(opv,function(n){return $.trim(n);});
-								$("#"+nm+" option","#"+fmid).each(function(j){
-									if (!cm[i].editoptions.multiple && (opv[0] == $.trim($(this).text()) || opv[0] == $.trim($(this).val())) ){
-										this.selected= true;
-									} else if (cm[i].editoptions.multiple){
-										if(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){
-											this.selected = true;
-										}else{
-											this.selected = false;
-										}
-									} else {
-										this.selected = false;
-									}
-								});
-								break;
-							case "checkbox":
-								tmp = tmp+"";
-								if(cm[i].editoptions && cm[i].editoptions.value) {
-									var cb = cm[i].editoptions.value.split(":");
-									if(cb[0] == tmp) {
-										$("#"+nm,"#"+fmid).attr("checked",true);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
-									} else {
-										$("#"+nm,"#"+fmid).attr("checked",false);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
-									}
-								} else {
-									tmp = tmp.toLowerCase();
-									if(tmp.search(/(false|0|no|off|undefined)/i)<0 && tmp!=="") {
-										$("#"+nm,"#"+fmid).attr("checked",true);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
-									} else {
-										$("#"+nm,"#"+fmid).attr("checked",false);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
-									}
-								}
-								break;
-							case 'custom' :
-								try {
-									if(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {
-										var dummy = cm[i].editoptions.custom_value($("#"+nm,"#"+fmid),'set',tmp);
-									} else { throw "e1"; }
-								} catch (e) {
-									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose);}
-									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-								}
-								break;
-						}
-						cnt++;
-					}
-				});
-				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
-			}
-			function postIt() {
-				var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper;
-				if($.isFunction(rp_ge.beforeCheckValues)) {
-					var retvals = rp_ge.beforeCheckValues(postdata,$("#"+frmgr),postdata[$t.p.id+"_id"] == "_empty" ? opers.addoper : opers.editoper);
-					if(retvals && typeof(retvals) === 'object') { postdata = retvals; }
-				}
-				for( var key in postdata ){
-					if(postdata.hasOwnProperty(key)) {
-						ret = checkValues(postdata[key],key,$t);
-						if(ret[0] === false) { break; }
-					}
-				}
-				if(ret[0]) {
-					if( $.isFunction( rp_ge.onclickSubmit)) { onCS = rp_ge.onclickSubmit(rp_ge,postdata) || {}; }
-					if( $.isFunction(rp_ge.beforeSubmit))  { ret = rp_ge.beforeSubmit(postdata,$("#"+frmgr)); }
-				}
-
-				if(ret[0] && !rp_ge.processing) {
-					rp_ge.processing = true;
-					$("#sData", "#"+frmtb+"_2").addClass('ui-state-active');
-					oper = opers.oper;
-					idname = opers.id;
-					// we add to pos data array the action - the name is oper
-					postdata[oper] = ($.trim(postdata[$t.p.id+"_id"]) == "_empty") ? opers.addoper : opers.editoper;
-					if(postdata[oper] != opers.addoper) {
-						postdata[idname] = postdata[$t.p.id+"_id"];
-					} else {
-						// check to see if we have allredy this field in the form and if yes lieve it
-						if( postdata[idname] === undefined ) { postdata[idname] = postdata[$t.p.id+"_id"]; }
-					}
-					delete postdata[$t.p.id+"_id"];
-					postdata = $.extend(postdata,rp_ge.editData,onCS);
-
-					var ajaxOptions = $.extend({
-						url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
-						type: rp_ge.mtype,
-						data: $.isFunction(rp_ge.serializeEditData) ? rp_ge.serializeEditData(postdata) :  postdata,
-						complete:function(data,Status){
-							if(Status != "success") {
-							    ret[0] = false;
-							    if ($.isFunction(rp_ge.errorTextFormat)) {
-							        ret[1] = rp_ge.errorTextFormat(data);
-							    } else {
-							        ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
-								}
-							} else {
-								// data is posted successful
-								// execute aftersubmit with the returned data from server
-								if( $.isFunction(rp_ge.afterSubmit) ) {
-									ret = rp_ge.afterSubmit(data,postdata);
-								}
-							}
-							if(ret[0] === false) {
-								$("#FormError>td","#"+frmtb).html(ret[1]);
-								$("#FormError","#"+frmtb).show();
-							} else {
-								// remove some values if formattaer select or checkbox
-								$.each($t.p.colModel, function(i,n){
-									if(extpost[this.name] && this.formatter && this.formatter=='select') {
-										try {delete extpost[this.name];} catch (e) {}
-									}
-								});
-								postdata = $.extend(postdata,extpost);
-								if($t.p.autoencode) {
-									$.each(postdata,function(n,v){
-										postdata[n] = $.jgrid.htmlDecode(v);
-									});
-								}
-								// the action is add
-								if(postdata[oper] == opers.addoper ) {
-									//id processing
-									// user not set the id ret[2]
-									if(!ret[2]) { ret[2] = parseInt($t.p.records,10)+1; }
-									postdata[idname] = ret[2];
-									if(rp_ge.closeAfterAdd) {
-										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
-										else {
-											$($t).jqGrid("addRowData",ret[2],postdata,p.addedrow);
-											$($t).jqGrid("setSelection",ret[2]);
-										}
-										hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-									} else if (rp_ge.clearAfterAdd) {
-										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
-										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
-										fillData("_empty",$t,frmgr);
-									} else {
-										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
-										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
-									}
-								} else {
-									// the action is update
-									if(rp_ge.reloadAfterSubmit) {
-										$($t).trigger("reloadGrid");
-										if( !rp_ge.closeAfterEdit ) { setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000); }
-									} else {
-										if($t.p.treeGrid === true) {
-											$($t).jqGrid("setTreeRow",postdata[idname],postdata);
-										} else {
-											$($t).jqGrid("setRowData",postdata[idname],postdata);
-										}
-									}
-									if(rp_ge.closeAfterEdit) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose}); }
-								}
-								if($.isFunction(rp_ge.afterComplete)) {
-									copydata = data;
-									setTimeout(function(){rp_ge.afterComplete(copydata,postdata,$("#"+frmgr));copydata=null;},500);
-								}
-							}
-							rp_ge.processing=false;
-							if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
-								$("#"+frmgr).data("disabled",false);
-								if(rp_ge._savedData[$t.p.id+"_id"] !="_empty"){
-									for(var key in rp_ge._savedData) {
-										if(postdata[key]) {
-											rp_ge._savedData[key] = postdata[key];
-										}
-									}
-								}
-							}
-							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
-							try{$(':input:visible',"#"+frmgr)[0].focus();} catch (e){}
-						},
-						error:function(xhr,st,err){
-							$("#FormError>td","#"+frmtb).html(st+ " : "+err);
-							$("#FormError","#"+frmtb).show();
-							rp_ge.processing=false;
-							$("#"+frmgr).data("disabled",false);
-							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
-						}
-					}, $.jgrid.ajaxOptions, rp_ge.ajaxEditOptions )
-					
-					if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
-						if ($.isFunction($t.p.dataProxy)) {
-							rp_ge['useDataProxy'] = true;
-						} else {
-							ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
-						}
-					}
-					if (ret[0]) { 
-						if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id) }
-						else { $.ajax(ajaxOptions) }
-					}
-				}
-				if(ret[0] === false) {
-					$("#FormError>td","#"+frmtb).html(ret[1]);
-					$("#FormError","#"+frmtb).show();
-					// return; 
-				}
-			}
-			function compareData(nObj, oObj ) {
-				var ret = false,key;
-				for (key in nObj) {
-					if(nObj[key] != oObj[key]) {
-						ret = true;
-						break;
-					}
-				}
-				return ret;
-			}
-		});
-	},
-	viewGridRow : function(rowid, p){
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 0,
-			height: 'auto',
-			dataheight: 'auto',
-			modal: false,
-			drag: true,
-			resize: true,
-			jqModal: true,
-			closeOnEscape : false,
-			labelswidth: '30%',
-			closeicon: [],
-			navkeys: [false,38,40],
-			onClose: null,
-			beforeShowForm : null,
-			viewPagerButtons : true
-		}, $.jgrid.view, p || {});
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid || !rowid) { return; }
-			if(!p.imgpath) { p.imgpath= $t.p.imgpath; }
-			// I hate to rewrite code, but ...
-			var gID = $t.p.id,
-			frmgr = "ViewGrid_"+gID , frmtb = "ViewTbl_"+gID,
-			IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},
-			maxCols = 1, maxRows=0;
-			if ( $("#"+IDs.themodal).html() != null ) {
-				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
-				$("#FormError","#"+frmtb).hide();
-				fillData(rowid,$t);
-				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, modal:p.modal});
-				focusaref();
-			} else {
-				$($t.p.colModel).each( function(i) {
-					var fmto = this.formoptions;
-					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
-					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
-				});
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>"),
-				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='1' cellpading='2' border='0' style='table-layout:fixed'><tbody></tbody></table>");
-				// set the id.
-				$(frm).append(tbl);
-				var valref = createData(rowid, $t, tbl, maxCols),
-				rtlb = $t.p.direction == "rtl" ? true :false,
-				bp = rtlb ? "nData" : "pData",
-				bn = rtlb ? "pData" : "nData",
-
-				// buttons at footer
-				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
-				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
-				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bClose+"</a>";
-				if(maxRows >  0) {
-					var sd=[];
-					$.each($(tbl)[0].rows,function(i,r){
-						sd[i] = r;
-					});
-					sd.sort(function(a,b){
-						if(a.rp > b.rp) {return 1;}
-						if(a.rp < b.rp) {return -1;}
-						return 0;
-					});
-					$.each(sd, function(index, row) {
-						$('tbody',tbl).append(row);
-					});
-				}
-				p.gbox = "#gbox_"+gID;
-				var cle = false;
-				if(p.closeOnEscape===true){
-					p.closeOnEscape = false;
-					cle = true;
-				}				
-				var bt = $("<span></span>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bC+"</td></tr></tbody></table>");
-				createModal(IDs,bt,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				if(rtlb) {
-					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
-					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
-				}
-				if(!p.viewPagerButtons) { $("#pData, #nData","#"+frmtb+"_2").hide(); }
-				bt = null;
-				$("#"+IDs.themodal).keydown( function( e ) {
-					if(e.which === 27) {
-						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose}); }
-						return false;
-					}
-					if(p.navkeys[0]===true) {
-						if(e.which === p.navkeys[1]){ //up
-							$("#pData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-						if(e.which === p.navkeys[2]){ //down
-							$("#nData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-					}
-				});
-				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
-				if(p.closeicon[0]===true) {
-					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
-				}
-				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, modal:p.modal});
-				$(".fm-button:not(.ui-state-disabled)","#"+frmtb+"_2").hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);
-				focusaref();
-				$("#cData", "#"+frmtb+"_2").click(function(e){
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
-					return false;
-				});
-				$("#nData", "#"+frmtb+"_2").click(function(e){
-					$("#FormError","#"+frmtb).hide();
-					var npos = getCurrPos();
-					npos[0] = parseInt(npos[0],10);
-					if(npos[0] != -1 && npos[1][npos[0]+1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
-						}
-						fillData(npos[1][npos[0]+1],$t);
-						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
-						}
-						updateNav(npos[0]+1,npos[1].length-1);
-					}
-					focusaref();
-					return false;
-				});
-				$("#pData", "#"+frmtb+"_2").click(function(e){
-					$("#FormError","#"+frmtb).hide();
-					var ppos = getCurrPos();
-					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
-						}
-						fillData(ppos[1][ppos[0]-1],$t);
-						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
-						}
-						updateNav(ppos[0]-1,ppos[1].length-1);
-					}
-					focusaref();
-					return false;
-				});
-			}
-			function focusaref(){ //Sfari 3 issues
-				if(p.closeOnEscape===true || p.navkeys[0]===true) {
-					setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
-				}
-			}
-			var posInit =getCurrPos();
-			updateNav(posInit[0],posInit[1].length-1);
-			function updateNav(cr,totr,rid){
-				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-			}
-			function getCurrPos() {
-				var rowsInGrid = $($t).jqGrid("getDataIDs"),
-				selrow = $("#id_g","#"+frmtb).val(),
-				pos = $.inArray(selrow,rowsInGrid);
-				return [pos,rowsInGrid];
-			}
-			function createData(rowid,obj,tb,maxcols){
-				var nm, hc,trdata, tdl, tde, cnt=0,tmp, dc, retpos=[], ind=false,
-				tdtmpl = "<td class='CaptionTD form-view-label ui-widget-content' width='"+p.labelswidth+"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset ui-widget-content'>&#160;</td>", tmpl="",
-				tdtmpl2 = "<td class='CaptionTD form-view-label ui-widget-content'>&#160;</td><td class='DataTD form-view-data ui-widget-content'>&#160;</td>",
-				fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;
-				for (var i =1;i<=maxcols;i++) {
-					tmpl += i == 1 ? tdtmpl : tdtmpl2;
-				}
-				// find max number align rigth with property formatter
-				$(obj.p.colModel).each( function(i) {
-					if(this.editrules && this.editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = this.hidden === true ? true : false;
-					}
-					if(!hc && this.align==='right') {
-						if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {
-							max1 = Math.max(max1,parseInt(this.width,10));
-						} else {
-							max2 = Math.max(max2,parseInt(this.width,10));
-						}
-					}
-				});
-				maxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;
-				ind = $(obj).jqGrid("getInd",rowid);
-				$(obj.p.colModel).each( function(i) {
-					nm = this.name;
-					setme = false;
-					// hidden fields are included in the form
-					if(this.editrules && this.editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = this.hidden === true ? true : false;
-					}
-					dc = hc ? "style='display:none'" : "";
-					viewfld = (typeof this.viewable != 'boolean') ? true : this.viewable;
-					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {
-						if(ind === false) {
-							tmp = "";
-						} else {
-							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
-							} else {
-								tmp = $("td:eq("+i+")",obj.rows[ind]).html();
-							}
-						}
-						setme = this.align === 'right' && maxw !==0 ? true : false;
-						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
-						frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),
-						rp = parseInt(frmopt.rowpos,10) || cnt+1,
-						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
-						if(frmopt.rowabove) {
-							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
-							$(tb).append(newdata);
-							newdata[0].rp = rp;
-						}
-						trdata = $(tb).find("tr[rowpos="+rp+"]");
-						if ( trdata.length===0 ) {
-							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm);
-							$(trdata).append(tmpl);
-							$(tb).append(trdata);
-							trdata[0].rp = rp;
-						}
-						$("td:eq("+(cp-2)+")",trdata[0]).html('<b>'+ (typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label)+'</b>');
-						$("td:eq("+(cp-1)+")",trdata[0]).append("<span>"+tmp+"</span>").attr("id","v_"+nm);
-						if(setme){
-							$("td:eq("+(cp-1)+") span",trdata[0]).css({'text-align':'right',width:maxw+"px"});
-						}
-						retpos[cnt] = i;
-						cnt++;
-					}
-				});
-				if( cnt > 0) {
-					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
-					idrow[0].rp = cnt+99;
-					$(tb).append(idrow);
-				}
-				return retpos;
-			}
-			function fillData(rowid,obj){
-				var nm, hc,cnt=0,tmp, opt,trv;
-				trv = $(obj).jqGrid("getInd",rowid,true);
-				if(!trv) { return; }
-				$('td',trv).each( function(i) {
-					nm = obj.p.colModel[i].name;
-					// hidden fields are included in the form
-					if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = obj.p.colModel[i].hidden === true ? true : false;
-					}
-					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {
-						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-							tmp = $(this).text();
-						} else {
-							tmp = $(this).html();
-						}
-						opt = $.extend({},obj.p.colModel[i].editoptions || {});
-						nm = $.jgrid.jqID("v_"+nm);
-						$("#"+nm+" span","#"+frmtb).html(tmp);
-						if (hc) { $("#"+nm,"#"+frmtb).parents("tr:first").hide(); }
-						cnt++;
-					}
-				});
-				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
-			}
-		});
-	},
-	delGridRow : function(rowids,p) {
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 240,
-			height: 'auto',
-			dataheight : 'auto',
-			modal: false,
-			drag: true,
-			resize: true,
-			url : '',
-			mtype : "POST",
-			reloadAfterSubmit: true,
-			beforeShowForm: null,
-			afterShowForm: null,
-			beforeSubmit: null,
-			onclickSubmit: null,
-			afterSubmit: null,
-			jqModal : true,
-			closeOnEscape : false,
-			delData: {},
-			delicon : [],
-			cancelicon : [],
-			onClose : null,
-			ajaxDelOptions : {},
-			processing : false,
-			serializeDelData : null,
-			useDataProxy : false
-		}, $.jgrid.del, p ||{});
-		rp_ge = p;
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid ) { return; }
-			if(!rowids) { return; }
-			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false,
-			onAfterShow = typeof p.afterShowForm === 'function' ? true: false,
-			gID = $t.p.id, onCS = {},
-			dtbl = "DelTbl_"+gID,postd, idname, opers, oper,
-			IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};
-			if (jQuery.isArray(rowids)) { rowids = rowids.join(); }
-			if ( $("#"+IDs.themodal).html() != null ) {
-				$("#DelData>td","#"+dtbl).text(rowids);
-				$("#DelError","#"+dtbl).hide();
-				if( rp_ge.processing === true) {
-					rp_ge.processing=false;
-					$("#dData", "#"+dtbl).removeClass('ui-state-active');
-				}
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,jqM: false, modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			} else {
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var tbl = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
-				tbl += "<table class='DelTable'><tbody>";
-				// error data 
-				tbl += "<tr id='DelError' style='display:none'><td class='ui-state-error'></td></tr>";
-				tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>";
-				tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+p.msg+"</td></tr><tr><td >&#160;</td></tr>";
-				// buttons at footer
-				tbl += "</tbody></table></div>";
-				var bS  = "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
-				bC  = "<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
-				tbl += "<table cellspacing='0' cellpadding='0' border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr><td class='DataTD ui-widget-content'></td></tr><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DelButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
-				p.gbox = "#gbox_"+gID;
-				createModal(IDs,tbl,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				$(".fm-button","#"+dtbl+"_2").hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);
-				p.delicon = $.extend([true,"left","ui-icon-scissors"],p.delicon);
-				p.cancelicon = $.extend([true,"left","ui-icon-cancel"],p.cancelicon);
-				if(p.delicon[0]===true) {
-					$("#dData","#"+dtbl+"_2").addClass(p.delicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.delicon[2]+"'></span>");
-				}
-				if(p.cancelicon[0]===true) {
-					$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.cancelicon[2]+"'></span>");
-				}				
-				$("#dData","#"+dtbl+"_2").click(function(e){
-					var ret=[true,""]; onCS = {};
-					var postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
-					if( typeof p.onclickSubmit === 'function' ) { onCS = p.onclickSubmit(rp_ge, postdata) || {}; }
-					if( typeof p.beforeSubmit === 'function' ) { ret = p.beforeSubmit(postdata); }
-					if(ret[0] && !rp_ge.processing) {
-						rp_ge.processing = true;
-						$(this).addClass('ui-state-active');
-						opers = $t.p.prmNames;
-						postd = $.extend({},rp_ge.delData, onCS);
-						oper = opers.oper;
-						postd[oper] = opers.deloper;
-						idname = opers.id;
-						postd[idname] = postdata;
-
-						var ajaxOptions = $.extend({
-							url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
-							type: p.mtype,
-							data: $.isFunction(p.serializeDelData) ? p.serializeDelData(postd) : postd,
-							complete:function(data,Status){
-								if(Status != "success") {
-									ret[0] = false;
-									if ($.isFunction(rp_ge.errorTextFormat)) {
-										ret[1] = rp_ge.errorTextFormat(data);
-									} else {
-										ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
-									}
-								} else {
-									// data is posted successful
-									// execute aftersubmit with the returned data from server
-									if( typeof rp_ge.afterSubmit === 'function' ) {
-										ret = rp_ge.afterSubmit(data,postd);
-									}
-								}
-								if(ret[0] === false) {
-									$("#DelError>td","#"+dtbl).html(ret[1]);
-									$("#DelError","#"+dtbl).show();
-								} else {
-									if(rp_ge.reloadAfterSubmit) {
-										$($t).trigger("reloadGrid");
-									} else {
-										var toarr = [];
-										toarr = postdata.split(",");
-										if($t.p.treeGrid===true){
-												try {$($t).jqGrid("delTreeNode",toarr[0]);} catch(e){}
-										} else {
-											for(var i=0;i<toarr.length;i++) {
-												$($t).jqGrid("delRowData",toarr[i]);
-											}
-										}
-										$t.p.selrow = null;
-										$t.p.selarrrow = [];
-									}
-									if($.isFunction(rp_ge.afterComplete)) {
-										setTimeout(function(){rp_ge.afterComplete(data,postdata);},500);
-									}
-								}
-								rp_ge.processing=false;
-								$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
-								if(ret[0]) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose}); }
-							},
-							error:function(xhr,st,err){
-								$("#DelError>td","#"+dtbl).html(st+ " : "+err);
-								$("#DelError","#"+dtbl).show();
-								rp_ge.processing=false;
-									$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
-							}
-						}, $.jgrid.ajaxOptions, p.ajaxDelOptions);
-
-
-						if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
-							if ($.isFunction($t.p.dataProxy)) {
-								rp_ge['useDataProxy'] = true;
-							} else {
-								ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
-							}
-						}
-						if (ret[0]) {
-							if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id) }
-							else { $.ajax(ajaxOptions) }
-						}
-					}
-
-					if(ret[0] === false) {
-						$("#DelError>td","#"+dtbl).html(ret[1]);
-						$("#DelError","#"+dtbl).show();
-					}
-					return false;
-				});
-				$("#eData", "#"+dtbl+"_2").click(function(e){
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
-					return false;
-				});
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			}
-			if(p.closeOnEscape===true) {
-				setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
-			}
-		});
-	},
-	navGrid : function (elem, o, pEdit,pAdd,pDel,pSearch, pView) {
-		o = $.extend({
-			edit: true,
-			editicon: "ui-icon-pencil",
-			add: true,
-			addicon:"ui-icon-plus",
-			del: true,
-			delicon:"ui-icon-trash",
-			search: true,
-			searchicon:"ui-icon-search",
-			refresh: true,
-			refreshicon:"ui-icon-refresh",
-			refreshstate: 'firstpage',
-			view: false,
-			viewicon : "ui-icon-document",
-			position : "left",
-			closeOnEscape : true,
-			beforeRefresh : null,
-			afterRefresh : null,
-			cloneToTop : false
-		}, $.jgrid.nav, o ||{});
-		return this.each(function() {       
-			var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'},
-			$t = this, vwidth, vheight, twd, tdw;
-			if(!$t.grid || typeof elem != 'string') { return; }
-			if ($("#"+alertIDs.themodal).html() === null) {
-				if (typeof window.innerWidth != 'undefined') {
-					vwidth = window.innerWidth;
-					vheight = window.innerHeight;
-				} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth !== 0) {
-					vwidth = document.documentElement.clientWidth;
-					vheight = document.documentElement.clientHeight;
-				} else {
-					vwidth=1024;
-					vheight=768;
-				}
-				createModal(alertIDs,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>",{gbox:"#gbox_"+$t.p.id,jqModal:true,drag:true,resize:true,caption:o.alertcap,top:vheight/2-25,left:vwidth/2-100,width:200,height:'auto',closeOnEscape:o.closeOnEscape},"","",true);
-			}
-			var clone = 1;
-			if(o.cloneToTop && $t.p.toppager) { clone = 2; }
-			for(var i = 0; i<clone; i++) {
-				var tbd,
-				navtbl = $("<table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table navtable' style='float:left;table-layout:auto;'><tbody><tr></tr></tbody></table>"),
-				sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
-				pgid, elemids;
-				if(i===0) {
-					pgid = elem;
-					elemids = $t.p.id;
-					if(pgid == $t.p.toppager) {
-						elemids += "_top";
-						clone = 1;
-					}
-				} else {
-					pgid = $t.p.toppager;
-					elemids = $t.p.id+"_top";
-				}
-				if($t.p.direction == "rtl") { $(navtbl).attr("dir","rtl").css("float","right"); }
-				if (o.add) {
-					pAdd = pAdd || {};
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.addicon+"'></span>"+o.addtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							if (typeof o.addfunc == 'function') {
-								o.addfunc();
-							} else {
-								$($t).jqGrid("editGridRow","new",pAdd);
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.edit) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pEdit = pEdit || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.editicon+"'></span>"+o.edittext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							var sr = $t.p.selrow;
-							if (sr) {
-								if(typeof o.editfunc == 'function') {
-									o.editfunc(sr);
-								} else {
-									$($t).jqGrid("editGridRow",sr,pEdit);
-								}
-							} else {
-								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
-								$("#jqg_alrt").focus();
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.view) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pView = pView || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.viewicon+"'></span>"+o.viewtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							var sr = $t.p.selrow;
-							if (sr) {
-								$($t).jqGrid("viewGridRow",sr,pView);
-							} else {
-								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
-								$("#jqg_alrt").focus();
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.del) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pDel = pDel || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.delicon+"'></span>"+o.deltext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							var dr;
-							if($t.p.multiselect) {
-								dr = $t.p.selarrrow;
-								if(dr.length===0) { dr = null; }
-							} else {
-								dr = $t.p.selrow;
-							}
-							if(dr){
-								if("function" == typeof o.delfunc){
-									o.delfunc(dr);
-								}else{
-									$($t).jqGrid("delGridRow",dr,pDel);
-								}
-							} else  {
-								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true}); $("#jqg_alrt").focus();
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if(o.add || o.edit || o.del || o.view) { $("tr",navtbl).append(sep); }
-				if (o.search) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pSearch = pSearch || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.searchicon+"'></span>"+o.searchtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							$($t).jqGrid("searchGrid",pSearch);
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.refresh) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.refreshicon+"'></span>"+o.refreshtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							if($.isFunction(o.beforeRefresh)) { o.beforeRefresh(); }
-							$t.p.search = false;
-							try {
-								var gID = $t.p.id;
-								$("#fbox_"+gID).searchFilter().reset();
-							    if($.isFunction($t.clearToolbar)) { $t.clearToolbar(false); }
-							} catch (e) {}
-							switch (o.refreshstate) {
-								case 'firstpage':
-								    $($t).trigger("reloadGrid", [{page:1}]);
-									break;
-								case 'current':
-								    $($t).trigger("reloadGrid", [{current:true}]);
-									break;
-							}
-							if($.isFunction(o.afterRefresh)) { o.afterRefresh(); }
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				tdw = $(".ui-jqgrid").css("font-size") || "11px";
-				$('body').append("<div id='testpg2' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
-				twd = $(navtbl).clone().appendTo("#testpg2").width();
-				$("#testpg2").remove();
-				$(pgid+"_"+o.position,pgid).append(navtbl);
-				if($t.p._nvtd) {
-					if(twd > $t.p._nvtd[0] ) {
-						$(pgid+"_"+o.position,pgid).width(twd);
-						$t.p._nvtd[0] = twd;
-					}
-					$t.p._nvtd[1] = twd;
-				}
-				tdw =null; twd=null; navtbl =null;
-			}
-		});
-	},
-	navButtonAdd : function (elem, p) {
-		p = $.extend({
-			caption : "newButton",
-			title: '',
-			buttonicon : 'ui-icon-newwin',
-			onClickButton: null,
-			position : "last",
-			cursor : 'pointer'
-		}, p ||{});
-		return this.each(function() {
-			if( !this.grid)  { return; }
-			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
-			var findnav = $(".navtable",elem)[0], $t = this;
-			if (findnav) {
-				var tbd = $("<td></td>");
-				if(p.buttonicon.toString().toUpperCase() == "NONE") {
-                    $(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'>"+p.caption+"</div>");
-				} else	{
-					$(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'><span class='ui-icon "+p.buttonicon+"'></span>"+p.caption+"</div>");
-				}
-				if(p.id) {$(tbd).attr("id",p.id);}
-				if(p.position=='first'){
-					if(findnav.rows[0].cells.length ===0 ) {
-						$("tr",findnav).append(tbd);
-					} else {
-						$("tr td:eq(0)",findnav).before(tbd);
-					}
-				} else {
-					$("tr",findnav).append(tbd);
-				}
-				$(tbd,findnav)
-				.attr("title",p.title  || "")
-				.click(function(e){
-					if (!$(this).hasClass('ui-state-disabled')) {
-						if ($.isFunction(p.onClickButton) ) { p.onClickButton.call($t,e); }
-					}
-					return false;
-				})
-				.hover(
-					function () {
-						if (!$(this).hasClass('ui-state-disabled')) {
-							$(this).addClass('ui-state-hover');
-						}
-					},
-					function () {$(this).removeClass("ui-state-hover");}
-				);
-			}
-		});
-	},
-	navSeparatorAdd:function (elem,p) {
-		p = $.extend({
-			sepclass : "ui-separator",
-			sepcontent: ''
-		}, p ||{});		
-		return this.each(function() {
-			if( !this.grid)  { return; }
-			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
-			var findnav = $(".navtable",elem)[0];
-			if(findnav) {
-				var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>";
-				$("tr",findnav).append(sep);
-			}
-		});
-	},
-	GridToForm : function( rowid, formid ) {
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid) { return; } 
-			var rowdata = $($t).jqGrid("getRowData",rowid);
-			if (rowdata) {
-				for(var i in rowdata) {
-					if ( $("[name="+i+"]",formid).is("input:radio") || $("[name="+i+"]",formid).is("input:checkbox"))  {
-						$("[name="+i+"]",formid).each( function() {
-							if( $(this).val() == rowdata[i] ) {
-								$(this).attr("checked","checked");
-							} else {
-								$(this).attr("checked","");
-							}
-						});
-					} else {
-					// this is very slow on big table and form.
-						$("[name="+i+"]",formid).val(rowdata[i]);
-					}
-				}
-			}
-		});
-	},
-	FormToGrid : function(rowid, formid, mode, position){
-		return this.each(function() {
-			var $t = this;
-			if(!$t.grid) { return; }
-			if(!mode) { mode = 'set'; }
-			if(!position) { position = 'first'; }
-			var fields = $(formid).serializeArray();
-			var griddata = {};
-			$.each(fields, function(i, field){
-				griddata[field.name] = field.value;
-			});
-			if(mode=='add') { $($t).jqGrid("addRowData",rowid,griddata, position); }
-			else if(mode=='set') { $($t).jqGrid("setRowData",rowid,griddata); }
-		});
-	}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.formedit.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.base.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.base.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.base.js	(nonexistent)
@@ -1,2360 +0,0 @@
-;(function ($) {
-/*
- * jqGrid  3.6.5 - jQuery Grid
- * Copyright (c) 2008, Tony Tomov, tony@trirand.com
- * Dual licensed under the MIT and GPL licenses
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
- * Date: 2010-05-05 
- */
-$.jgrid = $.jgrid || {};
-$.extend($.jgrid,{
-	htmlDecode : function(value){
-		if(value=='&nbsp;' || value=='&#160;' || (value.length==1 && value.charCodeAt(0)==160)) { return "";}
-		return !value ? value : String(value).replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"');
-	},
-	htmlEncode : function (value){
-		return !value ? value : String(value).replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/\"/g, "&quot;");
-	},
-	format : function(format){ //jqgformat
-		var args = $.makeArray(arguments).slice(1);
-		if(format===undefined) { format = ""; }
-		return format.replace(/\{(\d+)\}/g, function(m, i){
-			return args[i];
-		});
-	},
-	getCellIndex : function (cell) {
-		cell = $(cell);
-		cell = (!cell.is('td') && !cell.is('th') ? cell.closest("td,th") : cell)[0];
-		if ($.browser.msie) { return $.inArray(cell, cell.parentNode.cells); }
-		return cell.cellIndex;
-	},
-	stripHtml : function(v) {
-		v = v+"";
-		var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
-		if (v) {
-			v = v.replace(regexp,"");
-			return (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\"/g,"'") : "";
-		} else {
-			return v;
-		}
-	},
-	stringToDoc : function (xmlString) {
-		var xmlDoc;
-		if(typeof xmlString !== 'string') { return xmlString; }
-		try	{
-			var parser = new DOMParser();
-			xmlDoc = parser.parseFromString(xmlString,"text/xml");
-		}
-		catch(e) {
-			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
-			xmlDoc.async=false;
-			xmlDoc.loadXML(xmlString);
-		}
-		return (xmlDoc && xmlDoc.documentElement && xmlDoc.documentElement.tagName != 'parsererror') ? xmlDoc : null;
-	},
-	parse : function(jsonString) {
-		var js = jsonString;
-		if (js.substr(0,9) == "while(1);") { js = js.substr(9); }
-		if (js.substr(0,2) == "/*") { js = js.substr(2,js.length-4); }
-		if(!js) { js = "{}"; }
-		return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function') ?
-		    JSON.parse(js) :
-		    eval('(' + js + ')');
-	},
-	jqID : function(sid){
-		sid = sid + "";
-		return sid.replace(/([\.\:\[\]])/g,"\\$1");
-	},
-	ajaxOptions: {},
-	extend : function(methods) {
-		$.extend($.fn.jqGrid,methods);
-		if (!this.no_legacy_api) {
-			$.fn.extend(methods);
-		}
-	}
-});
-
-$.fn.jqGrid = function( pin ) {
-	if (typeof pin == 'string') {
-		var fn = $.fn.jqGrid[pin];
-		if (!fn) {
-			throw ("jqGrid - No such method: " + pin);
-		}
-		var args = $.makeArray(arguments).slice(1);
-		return fn.apply(this,args);
-	}
-	return this.each( function() {
-		if(this.grid) {return;}
-
-		var p = $.extend(true,{
-			url: "",
-			height: 150,
-			page: 1,
-			rowNum: 20,
-			records: 0,
-			pager: "",
-			pgbuttons: true,
-			pginput: true,
-			colModel: [],
-			rowList: [],
-			colNames: [],
-			sortorder: "asc",
-			sortname: "",
-			datatype: "xml",
-			mtype: "GET",
-			altRows: false,
-			selarrrow: [],
-			savedRow: [],
-			shrinkToFit: true,
-			xmlReader: {},
-			jsonReader: {},
-			subGrid: false,
-			subGridModel :[],
-			reccount: 0,
-			lastpage: 0,
-			lastsort: 0,
-			selrow: null,
-			beforeSelectRow: null,
-			onSelectRow: null,
-			onSortCol: null,
-			ondblClickRow: null,
-			onRightClickRow: null,
-			onPaging: null,
-			onSelectAll: null,
-			loadComplete: null,
-			gridComplete: null,
-			loadError: null,
-			loadBeforeSend: null,
-			afterInsertRow: null,
-			beforeRequest: null,
-			onHeaderClick: null,
-			viewrecords: false,
-			loadonce: false,
-			multiselect: false,
-			multikey: false,
-			editurl: null,
-			search: false,
-			caption: "",
-			hidegrid: true,
-			hiddengrid: false,
-			postData: {},
-			userData: {},
-			treeGrid : false,
-			treeGridModel : 'nested',
-			treeReader : {},
-			treeANode : -1,
-			ExpandColumn: null,
-			tree_root_level : 0,
-			prmNames: {page:"page",rows:"rows", sort: "sidx",order: "sord", search:"_search", nd:"nd", id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del", subgridid:"id", npage: null},
-			forceFit : false,
-			gridstate : "visible",
-			cellEdit: false,
-			cellsubmit: "remote",
-			nv:0,
-			loadui: "enable",
-			toolbar: [false,""],
-			scroll: false,
-			multiboxonly : false,
-			deselectAfterSort : true,
-			scrollrows : false,
-			autowidth: false,
-			scrollOffset :18,
-			cellLayout: 5,
-			subGridWidth: 20,
-			multiselectWidth: 20,
-			gridview: false,
-			rownumWidth: 25,
-			rownumbers : false,
-			pagerpos: 'center',
-			recordpos: 'right',
-			footerrow : false,
-			userDataOnFooter : false,
-			hoverrows : true,
-			altclass : 'ui-priority-secondary',
-			viewsortcols : [false,'vertical',true],
-			resizeclass : '',
-			autoencode : false,
-			remapColumns : [],
-			ajaxGridOptions :{},
-			direction : "ltr",
-			toppager: false,
-			headertitles: false,
-			scrollTimeout: 200
-		}, $.jgrid.defaults, pin || {});
-		var grid={
-			headers:[],
-			cols:[],
-			footers: [],
-			dragStart: function(i,x,y) {
-				this.resizing = { idx: i, startX: x.clientX, sOL : y[0]};
-				this.hDiv.style.cursor = "col-resize";
-				this.curGbox = $("#rs_m"+p.id,"#gbox_"+p.id);
-				this.curGbox.css({display:"block",left:y[0],top:y[1],height:y[2]});
-				if($.isFunction(p.resizeStart)) { p.resizeStart.call(this,x,i); }
-				document.onselectstart=function(){return false;};
-			},
-			dragMove: function(x) {
-				if(this.resizing) {
-					var diff = x.clientX-this.resizing.startX,
-					h = this.headers[this.resizing.idx],
-					newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn;
-					if(newWidth > 33) {
-						this.curGbox.css({left:this.resizing.sOL+diff});
-						if(p.forceFit===true ){
-							hn = this.headers[this.resizing.idx+p.nv];
-							nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff;
-							if(nWn >33) {
-								h.newWidth = newWidth;
-								hn.newWidth = nWn;
-							}
-						} else {
-							this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff;
-							h.newWidth = newWidth;
-						}
-					}
-				}
-			},
-			dragEnd: function() {
-				this.hDiv.style.cursor = "default";
-				if(this.resizing) {
-					var idx = this.resizing.idx,
-					nw = this.headers[idx].newWidth || this.headers[idx].width;
-					nw = parseInt(nw,10);
-					this.resizing = false;
-					$("#rs_m"+p.id).css("display","none");
-					p.colModel[idx].width = nw;
-					this.headers[idx].width = nw;
-					this.headers[idx].el.style.width = nw + "px";
-					if(this.cols.length>0) {this.cols[idx].style.width = nw+"px";}
-					if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";}
-					if(p.forceFit===true){
-						nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;
-						this.headers[idx+p.nv].width = nw;
-						this.headers[idx+p.nv].el.style.width = nw + "px";
-						if(this.cols.length>0) { this.cols[idx+p.nv].style.width = nw+"px"; }
-						if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";}
-						p.colModel[idx+p.nv].width = nw;
-					} else {
-						p.tblwidth = this.newWidth || p.tblwidth;
-						$('table:first',this.bDiv).css("width",p.tblwidth+"px");
-						$('table:first',this.hDiv).css("width",p.tblwidth+"px");
-						this.hDiv.scrollLeft = this.bDiv.scrollLeft;
-						if(p.footerrow) {
-							$('table:first',this.sDiv).css("width",p.tblwidth+"px");
-							this.sDiv.scrollLeft = this.bDiv.scrollLeft;
-						}
-					}
-					if($.isFunction(p.resizeStop)) { p.resizeStop.call(this,nw,idx); }
-				}
-				this.curGbox = null;
-				document.onselectstart=function(){return true;};
-			},
-			populateVisible: function() {
-				if (grid.timer) { clearTimeout(grid.timer); }
-				grid.timer = null;
-
-				var dh = $(grid.bDiv).height();
-				if (!dh) { return; }
-				var table = $("table:first", grid.bDiv);
-				var rows = $("> tbody > tr:visible:first", table);
-				var rh = rows.outerHeight() || grid.prevRowHeight;
-				if (!rh) { return; }
-				grid.prevRowHeight = rh;
-				var rn = p.rowNum;
-				var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;
-				var ttop = Math.round(table.position().top) - scrollTop;
-				var tbot = ttop + table.height();
-				var div = rh * rn;
-				var page, npage, empty;
-				// tbot < dh &&
-			    if (ttop <= 0 &&  
-                    (p.lastpage===undefined||parseInt((tbot + scrollTop + div - 1) / div,10) <= p.lastpage))
-                {
-					npage = parseInt((dh - tbot + div - 1) / div,10);
-					if (tbot >= 0 || npage < 2 || p.scroll === true) {
-						page = Math.round((tbot + scrollTop) / div) + 1;
-						ttop = -1;
-					} else {
-						ttop = 1;
-					}
-				}
-				if (ttop > 0) {
-					page = parseInt(scrollTop / div,10) + 1;
-					npage = parseInt((scrollTop + dh) / div,10) + 2 - page;
-					empty = true;
-				}
-				if (npage) {
-					if (p.lastpage && page > p.lastpage) {
-						return;
-					}
-					if (grid.hDiv.loading) {
-						grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
-					} else {
-						p.page = page;
-						if (empty) {
-							grid.selectionPreserver(table[0]);
-							grid.emptyRows(grid.bDiv,false);
-						}
-						grid.populate(npage);
-					}
-				}
-			},
-			scrollGrid: function() {
-				if(p.scroll) {
-					var scrollTop = grid.bDiv.scrollTop;
-					if (scrollTop != grid.scrollTop) {
-						grid.scrollTop = scrollTop;
-						if (grid.timer) { clearTimeout(grid.timer); }
-						grid.timer = setTimeout(grid.populateVisible, 200);
-					}
-				}
-				grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
-				if(p.footerrow) {
-					grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;
-				}
-			},
-			selectionPreserver : function(ts) {
-				var p = ts.p;
-				var sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;
-				var left = ts.grid.bDiv.scrollLeft;
-				var complete = p.gridComplete;
-				p.gridComplete = function() {
-					p.selrow = null;
-					p.selarrrow = [];
-					if(p.multiselect && sra && sra.length>0) {
-						for(var i=0;i<sra.length;i++){
-							if (sra[i] != sr) {
-								$(ts).jqGrid("setSelection",sra[i],false);
-							}
-						}
-					}
-					if (sr) {
-						$(ts).jqGrid("setSelection",sr,false);
-					}
-					ts.grid.bDiv.scrollLeft = left;
-					p.gridComplete = complete;
-					if (p.gridComplete) {
-						complete();
-					}
-				};
-			}
-		};
-		this.p = p ;
-		var i, dir,ts;
-		if(this.p.colNames.length === 0) {
-			for (i=0;i<this.p.colModel.length;i++){
-				this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;
-			}
-		}
-		if( this.p.colNames.length !== this.p.colModel.length ) {
-			alert($.jgrid.errors.model);
-			return;
-		}
-		var gv = $("<div class='ui-jqgrid-view'></div>"), ii,
-		isMSIE = $.browser.msie ? true:false,
-		isSafari = $.browser.safari ? true : false;
-		ts = this;
-		ts.p.direction = $.trim(ts.p.direction.toLowerCase());
-		if($.inArray(ts.p.direction,["ltr","rtl"]) == -1) { ts.p.direction = "ltr"; }
-		dir = ts.p.direction;
-
-		$(gv).insertBefore(this);
-		$(this).appendTo(gv).removeClass("scroll");
-		var eg = $("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");
-		$(eg).insertBefore(gv).attr({"id" : "gbox_"+this.id,"dir":dir});
-		$(gv).appendTo(eg).attr("id","gview_"+this.id);
-		if (isMSIE && $.browser.version <= 6) {
-			ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
-		} else { ii="";}
-		$("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(ii).insertBefore(gv);
-		$("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(gv);
-		$(this).attr({cellSpacing:"0",cellPadding:"0",border:"0","role":"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});
-		var sortkeys = ["shiftKey","altKey","ctrlKey"],
-		intNum = function(val,defval) {
-			val = parseInt(val,10);
-			if (isNaN(val)) { return defval ? defval : 0;}
-			else {return val;}
-		},
-		formatCol = function (pos, rowInd, tv){
-			var cm = ts.p.colModel[pos],
-			ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name;
-			if(ral) { result += "text-align:"+ral+";"; }
-			if(cm.hidden===true) { result += "display:none;"; }
-			if(rowInd===0) {
-				result += "width: "+grid.headers[pos].width+"px;";
-			}
-			result += "\"" + (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :"");
-			result += " aria-describedby=\""+ts.p.id+"_"+nm+"\"";
-			return result;
-		},
-		cellVal =  function (val) {
-			return val === undefined || val === null || val === "" ? "&#160;" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : val+"");
-		},
-		formatter = function (rowId, cellval , colpos, rwdat, _act){
-			var cm = ts.p.colModel[colpos],v;
-			if(typeof cm.formatter !== 'undefined') {
-				var opts= {rowId: rowId, colModel:cm, gid:ts.p.id };
-				if($.isFunction( cm.formatter ) ) {
-					v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
-				} else if($.fmatter){
-					v = $.fn.fmatter(cm.formatter, cellval,opts, rwdat, _act);
-				} else {
-					v = cellVal(cellval);
-				}
-			} else {
-				v = cellVal(cellval);
-			}
-			return v;
-		},
-		addCell = function(rowId,cell,pos,irow, srvr) {
-			var v,prp;
-			v = formatter(rowId,cell,pos,srvr,'add');
-			prp = formatCol( pos,irow, v);
-			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
-		},
-		addMulti = function(rowid,pos,irow){
-			var	v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\" name=\"jqg_"+rowid+"\"/>",
-			prp = formatCol(pos,irow,'');
-			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_cb\" "+prp+">"+v+"</td>";
-		},
-		addRowNum = function (pos,irow,pG,rN) {
-			var v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,
-			prp = formatCol(pos,irow,'');
-			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">"+v+"</td>";
-		},
-		reader = function (datatype) {
-			var field, f=[], j=0, i;
-			for(i =0; i<ts.p.colModel.length; i++){
-				field = ts.p.colModel[i];
-				if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {
-					f[j] = (datatype=="xml") ? field.xmlmap || field.name : field.jsonmap || field.name;
-					j++;
-				}
-			}
-			return f;
-		},
-		orderedCols = function (offset) {
-			var order = ts.p.remapColumns;
-			if (!order || !order.length) {
-				order = $.map(ts.p.colModel, function(v,i) { return i; });
-			}
-			if (offset) {
-				order = $.map(order, function(v) { return v<offset?null:v-offset; });
-			}
-			return order;
-		},
-		emptyRows = function (parent, scroll) {
-			if(ts.p.deepempty) { $("tbody:first tr", parent).remove(); }
-			else { $("tbody:first", parent).empty(); }
-			if (scroll && ts.p.scroll) {
-				$(">div:first", parent).css({height:"auto"}).children("div:first").css({height:0,display:"none"});
-				parent.scrollTop = 0;
-			}
-		},
-		getAccessor = function(obj, expr) {
-			var ret,p,prm, i;
-			if( typeof expr === 'function') { return expr(obj); }
-			ret = obj[expr];
-			if(ret===undefined) {
-			    if ( typeof expr === 'string' ) {
-					prm = expr.split('.');
-				}
-				try {
-					i = prm.length; 
-					if( i ) {
-						ret = obj;
-					    while (ret && i--) {
-							p = prm.shift();
-							ret = ret[p];
-						}
-					}
-				} catch (e) {}
-			}
-			return ret;
-		},
-		addXmlData = function (xml,t, rcnt, more, adjust) {
-			var startReq = new Date();
-			ts.p.reccount = 0;
-			if($.isXMLDoc(xml)) {
-				if(ts.p.treeANode===-1 && !ts.p.scroll) {
-					emptyRows(t,false);
-					rcnt=0;
-				} else { rcnt = rcnt > 0 ? rcnt :0; }
-			} else { return; }
-			var i,fpos,ir=0,v,row,gi=0,si=0,ni=0,idn, getId,f=[],F,rd ={}, rl= ts.rows.length, xmlr,rid, rowData=[],ari=0, cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1;
-			if(!ts.p.xmlReader.repeatitems) {f = reader("xml");}
-			if( ts.p.keyIndex===false) {
-				idn = ts.p.xmlReader.id;
-			} else {
-				idn = ts.p.keyIndex;
-			}
-			if(f.length>0 && !isNaN(idn)) {
-				if (ts.p.remapColumns && ts.p.remapColumns.length) {
-					idn = $.inArray(idn, ts.p.remapColumns);
-				}
-				idn=f[idn];
-			}
-			if( (idn+"").indexOf("[") === -1 ) {
-				if (f.length) {
-					getId = function( trow, k) {return $(idn,trow).text() || k;};
-				} else {
-					getId = function( trow, k) {return $(ts.p.xmlReader.cell,trow).eq(idn).text() || k;};
-				}
-			}
-			else {
-				getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;};
-			}
-			ts.p.userData = {};
-			$(ts.p.xmlReader.page,xml).each(function() {ts.p.page = this.textContent  || this.text || 0; });
-			$(ts.p.xmlReader.total,xml).each(function() {ts.p.lastpage = this.textContent  || this.text; if(ts.p.lastpage===undefined) { ts.p.lastpage=1; } }  );
-			$(ts.p.xmlReader.records,xml).each(function() {ts.p.records = this.textContent  || this.text  || 0; }  );
-			$(ts.p.xmlReader.userdata,xml).each(function() {ts.p.userData[this.getAttribute("name")]=this.textContent || this.text;});
-			var gxml = $(ts.p.xmlReader.root+" "+ts.p.xmlReader.row,xml),gl = gxml.length, j=0;
-			if(gxml && gl){
-			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1,altr;
-			if (adjust) { rn *= adjust+1; }
-			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
-			while (j<gl) {
-				xmlr = gxml[j];
-				rid = getId(xmlr,br+j);
-				altr = rcnt === 0 ? 0 : rcnt+1;
-				cn1 = (altr+j)%2 == 1 ? cn : '';
-				rowData[ari++] = "<tr id=\""+rid+"\" role=\"row\" class =\"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
-				if(ts.p.rownumbers===true) {
-					rowData[ari++] = addRowNum(0,j,ts.p.page,ts.p.rowNum);
-					ni=1;
-				}
-				if(ts.p.multiselect===true) {
-					rowData[ari++] = addMulti(rid,ni,j);
-					gi=1;
-				}
-				if (ts.p.subGrid===true) {
-					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,j+rcnt);
-					si= 1;
-				}
-				if(ts.p.xmlReader.repeatitems){
-					if (!F) { F=orderedCols(gi+si+ni); }
-					var cells = $(ts.p.xmlReader.cell,xmlr);
-					$.each(F, function (k) {
-						var cell = cells[this];
-						if (!cell) { return false; }
-						v = cell.textContent || cell.text;
-						rd[ts.p.colModel[k+gi+si+ni].name] = v;
-						rowData[ari++] = addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr);
-					});
-				} else {
-					for(i = 0; i < f.length;i++) {
-						v = $(f[i],xmlr).text();
-						rd[ts.p.colModel[i+gi+si+ni].name] = v;
-						rowData[ari++] = addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr);
-					}
-				}
-				rowData[ari++] = "</tr>";
-				if(ts.p.gridview === false ) {
-					if( ts.p.treeGrid === true) {
-						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
-						row = $(rowData.join(''))[0]; // speed overhead
-						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
-						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[j+fpos+rcnt]).after(row); }
-					} else {
-						$("tbody:first",t).append(rowData.join(''));
-					}
-					if (ts.p.subGrid===true) {
-						try {$(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
-					}
-					if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}
-					rowData=[];ari=0;
-				}
-				rd={};
-				ir++;
-				j++;
-				if(ir==rn) {break;}
-			}
-			}
-			if(ts.p.gridview === true) {
-				$("tbody:first",t).append(rowData.join(''));
-			}
-			ts.p.totaltime = new Date() - startReq;
-			if(ir>0) { ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=gl;} }
-			rowData =null;
-			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
-			ts.p.reccount=ir;
-			ts.p.treeANode = -1;
-			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
-			if (!more) { updatepager(false,true); }
-		},
-		addJSONData = function(data,t, rcnt, more, adjust) {
-			var startReq = new Date();
-			ts.p.reccount = 0;
-			if(data) {
-				if(ts.p.treeANode === -1 && !ts.p.scroll) {
-					emptyRows(t,false);
-					rcnt=0;
-				} else { rcnt = rcnt > 0 ? rcnt :0; }
-			} else { return; }
-			var ir=0,v,i,j,row,f=[],F,cur,gi=0,si=0,ni=0,len,drows,idn,rd={}, fpos,rl = ts.rows.length,idr,rowData=[],ari=0,cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1,lp;
-			ts.p.page = getAccessor(data,ts.p.jsonReader.page) || 0;
-			lp = getAccessor(data,ts.p.jsonReader.total);
-			ts.p.lastpage= lp === undefined ? 1 : lp;
-			ts.p.records= getAccessor(data,ts.p.jsonReader.records) || 0;
-			ts.p.userData = getAccessor(data,ts.p.jsonReader.userdata) || {};
-			if(!ts.p.jsonReader.repeatitems) {
-				F = f = reader("json");
-			}
-			if( ts.p.keyIndex===false ) {
-				idn = ts.p.jsonReader.id;
-			} else {
-				idn = ts.p.keyIndex;
-			}
-			if(f.length>0 && !isNaN(idn)) {
-				if (ts.p.remapColumns && ts.p.remapColumns.length) {
-					idn = $.inArray(idn, ts.p.remapColumns);
-				}
-				idn=f[idn];
-			}
-			drows = getAccessor(data,ts.p.jsonReader.root);
-			if (drows) {
-			len = drows.length; i=0;
-			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1, altr;
-			if (adjust) { rn *= adjust+1; }
-			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
-			while (i<len) {
-				cur = drows[i];
-				idr = getAccessor(cur,idn);
-				if(idr === undefined) {
-					idr = br+i;
-					if(f.length===0){
-						if(ts.p.jsonReader.cell){
-							var ccur = cur[ts.p.jsonReader.cell];
-							idr = ccur[idn] || idr;
-							ccur=null;
-						}
-					}
-				}
-				altr = rcnt === 0 ? 0 : rcnt+1;
-				cn1 = (altr+i)%2 == 1 ? cn : '';
-				rowData[ari++] = "<tr id=\""+ idr +"\" role=\"row\" class= \"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
-				if(ts.p.rownumbers===true) {
-					rowData[ari++] = addRowNum(0,i,ts.p.page,ts.p.rowNum);
-					ni=1;
-				}
-				if(ts.p.multiselect){
-					rowData[ari++] = addMulti(idr,ni,i);
-					gi = 1;
-				}
-				if (ts.p.subGrid) {
-					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,i+rcnt);
-					si= 1;
-				}
-				if (ts.p.jsonReader.repeatitems) {
-					if(ts.p.jsonReader.cell) {cur = getAccessor(cur,ts.p.jsonReader.cell);}
-					if (!F) { F=orderedCols(gi+si+ni); }
-				}
-				for (j=0;j<F.length;j++) {
-					v = getAccessor(cur,F[j]);
-					rowData[ari++] = addCell(idr,v,j+gi+si+ni,i+rcnt,cur);
-					rd[ts.p.colModel[j+gi+si+ni].name] = v;
-				}
-				rowData[ari++] = "</tr>";
-				if(ts.p.gridview === false ) {
-					if( ts.p.treeGrid === true) {
-						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
-						row = $(rowData.join(''))[0];
-						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
-						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[i+fpos+rcnt]).after(row); }
-					} else {
-						$("tbody:first",t).append(rowData.join(''));
-					}
-					if(ts.p.subGrid === true ) {
-						try { $(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
-					}
-					if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}
-					rowData=[];ari=0;
-				}
-				rd={};
-				ir++;
-				i++;
-				if(ir==rn) { break; }
-			}
-			if(ts.p.gridview === true ) {
-				$("tbody:first",t).append(rowData.join(''));
-			}
-			ts.p.totaltime = new Date() - startReq;
-			if(ir>0) {ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=len; } }
-			}
-			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
-			ts.p.reccount=ir;
-			ts.p.treeANode = -1;
-			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
-			if (!more) { updatepager(false,true); }
-		},
-		updatepager = function(rn, dnd) {
-			var cp, last, base, from,to,tot,fmt, pgboxes = "";
-			base = parseInt(ts.p.page,10)-1;
-			if(base < 0) { base = 0; }
-			base = base*parseInt(ts.p.rowNum,10);
-			to = base + ts.p.reccount;
-			if (ts.p.scroll) {
-				var rows = $("tbody:first > tr", ts.grid.bDiv);
-				base = to - rows.length;
-				var rh = rows.outerHeight();
-				if (rh) {
-					var top = base * rh;
-					var height = parseInt(ts.p.records,10) * rh;
-				    $(">div:first",ts.grid.bDiv).css({height : height}).children("div:first").css({height:top,display:top?"":"none"});
-				}
-			}
-			pgboxes = ts.p.pager ? ts.p.pager : "";
-			pgboxes += ts.p.toppager ?  (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : "";
-			if(pgboxes) {
-				fmt = $.jgrid.formatter.integer || {};
-				if (ts.p.loadonce) {
-					cp = last = 1;
-					ts.p.lastpage = ts.page =1;
-					$(".selbox",pgboxes).attr("disabled",true);
-				} else {
-					cp = intNum(ts.p.page);
-					last = intNum(ts.p.lastpage);
-					$(".selbox",pgboxes).attr("disabled",false);
-				}
-				if(ts.p.pginput===true) {
-					$('.ui-pg-input',pgboxes).val(ts.p.page);
-					$('#sp_1',pgboxes).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);
-					
-				}
-				if (ts.p.viewrecords){
-					if(ts.p.reccount === 0) {
-						$(".ui-paging-info",pgboxes).html(ts.p.emptyrecords);
-					} else {
-						from = base+1;
-						tot=ts.p.records;
-						if($.fmatter) {
-							from = $.fmatter.util.NumberFormat(from,fmt);
-							to = $.fmatter.util.NumberFormat(to,fmt);
-							tot = $.fmatter.util.NumberFormat(tot,fmt);
-						}
-						$(".ui-paging-info",pgboxes).html($.jgrid.format(ts.p.recordtext,from,to,tot));
-					}
-				}
-				if(ts.p.pgbuttons===true) {
-					if(cp<=0) {cp = last = 0;}
-					if(cp==1 || cp === 0) {
-						$("#first, #prev",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
-						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
-					} else {
-						$("#first, #prev",ts.p.pager).removeClass('ui-state-disabled');
-						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).removeClass('ui-state-disabled'); }
-					}
-					if(cp==last || cp === 0) {
-						$("#next, #last",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
-						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
-					} else {
-						$("#next, #last",ts.p.pager).removeClass('ui-state-disabled');
-						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).removeClass('ui-state-disabled'); }
-					}
-				}
-			}
-			if(rn===true && ts.p.rownumbers === true) {
-				$("td.jqgrid-rownum",ts.rows).each(function(i){
-					$(this).html(base+1+i);
-				});
-			}
-			if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}
-			if($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
-		},
-		populate = function (npage) {
-			if(!ts.grid.hDiv.loading) {
-				var pvis = ts.p.scroll && npage === false;
-				var prm = {}, dt, dstr, pN=ts.p.prmNames;
-				if(ts.p.page <=0) { ts.p.page = 1; }
-				if(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}
-				if(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}
-				if(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}
-				var lc = ts.p.loadComplete;
-				var lcf = $.isFunction(lc);
-				if (!lcf) { lc = null; }
-				var adjust = 0;
-				npage = npage || 1;
-				if (npage > 1) {
-					if(pN.npage !== null) {
-						prm[pN.npage] = npage;
-						adjust = npage - 1;
-						npage = 1;
-					} else {
-						lc = function(req) {
-							if (lcf) {
-								ts.p.loadComplete.call(ts,req);
-							}
-							ts.grid.hDiv.loading = false;
-							ts.p.page++;
-							populate(npage-1);
-						};
-					}
-				} else if (pN.npage !== null) {
-					delete ts.p.postData[pN.npage];
-				}
-				$.extend(ts.p.postData,prm);
-				var rcnt = !ts.p.scroll ? 0 : ts.rows.length-1; 
-				if ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id); return;}
-				else if($.isFunction(ts.p.beforeRequest)) {ts.p.beforeRequest.call(ts);}
-				dt = ts.p.datatype.toLowerCase();
-				switch(dt)
-				{
-				case "json":
-				case "jsonp":
-				case "xml":
-				case "script":
-					$.ajax($.extend({
-						url:ts.p.url,
-						type:ts.p.mtype,
-						dataType: dt ,
-						data: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,
-						success:function(req,st) {
-							if(dt === "xml") { addXmlData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
-							else { addJSONData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
-							if(lc) { lc.call(ts,req); }
-							if (pvis) { ts.grid.populateVisible(); }
-							if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
-							req=null;
-							endReq();
-						},
-						error:function(xhr,st,err){
-							if($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }
-							endReq();
-							xhr=null;
-						},
-						beforeSend: function(xhr){
-							beginReq();
-							if($.isFunction(ts.p.loadBeforeSend)) { ts.p.loadBeforeSend.call(ts,xhr); }
-						}
-					},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
-				break;
-				case "xmlstring":
-					beginReq();
-					dstr = $.jgrid.stringToDoc(ts.p.datastr);
-					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
-					addXmlData(dstr,ts.grid.bDiv);
-					ts.p.datatype = "local";
-					ts.p.datastr = null;
-					endReq();
-				break;
-				case "jsonstring":
-					beginReq();
-					if(typeof ts.p.datastr == 'string') { dstr = $.jgrid.parse(ts.p.datastr); }
-					else { dstr = ts.p.datastr; }
-					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
-					addJSONData(dstr,ts.grid.bDiv);
-					ts.p.datatype = "local";
-					ts.p.datastr = null;
-					endReq();
-				break;
-				case "local":
-				case "clientside":
-					beginReq();
-					ts.p.datatype = "local";
-					if(lcf) {ts.p.loadComplete.call(ts,"");}
-					sortArrayData();
-					updatepager(true,true);
-					endReq();
-				break;
-				}
-			}
-		},
-		beginReq = function() {
-			ts.grid.hDiv.loading = true;
-			if(ts.p.hiddengrid) { return;}
-			switch(ts.p.loadui) {
-				case "disable":
-					break;
-				case "enable":
-					$("#load_"+ts.p.id).show();
-					break;
-				case "block":
-					$("#lui_"+ts.p.id).show();
-					$("#load_"+ts.p.id).show();
-					break;
-			}
-		},
-		endReq = function() {
-			ts.grid.hDiv.loading = false;
-			switch(ts.p.loadui) {
-				case "disable":
-					break;
-				case "enable":
-					$("#load_"+ts.p.id).hide();
-					break;
-				case "block":
-					$("#lui_"+ts.p.id).hide();
-					$("#load_"+ts.p.id).hide();
-					break;
-			}
-		},
-		sortArrayData = function() {
-			var stripNum = /[\$,%]/g;
-			var rows=[], col=0, st, sv, findSortKey,newDir = (ts.p.sortorder == "asc") ? 1 :-1, reverse=false, cm;
-			$.each(ts.p.colModel,function(i,v){
-				if(this.index == ts.p.sortname || this.name == ts.p.sortname){
-					if(ts.p.lastsort == i) { reverse = true; }
-					col = i;
-					st = this.sorttype;
-					return false;
-				}
-			});
-			if (st == 'float' || st== 'number' || st== 'currency') {
-				findSortKey = function($cell) {
-					var key = parseFloat($cell.replace(stripNum, ''));
-					return isNaN(key) ? 0 : key;
-				};
-			} else if (st=='int' || st=='integer') {
-				findSortKey = function($cell) {
-					return intNum($cell.replace(stripNum, ''),0);
-				};
-			} else if(st == 'date' || st == 'datetime') {
-				findSortKey = function($cell) {
-					var fd = ts.p.colModel[col].datefmt || "Y-m-d";
-					return parseDate(fd,$cell).getTime();
-				};
-			} else if($.isFunction(st)) {
-				findSortKey = st;
-			} else {
-				findSortKey = function($cell) {
-					return $.trim($cell.toUpperCase());
-				};
-			}
-			cm = ts.p.colModel[col];
-			$.each(ts.rows, function(index, row) {
-				try { sv = $.unformat($(row).children('td').eq(col),{rowId:row.id, colModel:cm},col,true);}
-				catch (_) { sv = $(row).children('td').eq(col).text(); }
-				row.sortKey = findSortKey(sv);
-				rows[index] = this;
-			});
-			if(ts.p.treeGrid) {
-				$(ts).jqGrid("SortTree",newDir);
-			} else {
-				if(reverse) {
-					rows.reverse();
-				} else {
-					rows.sort(function(a, b) {
-						if (a.sortKey < b.sortKey) {return -newDir;}
-						if (a.sortKey > b.sortKey) {return newDir;}
-						return 0;
-					});
-				}
-				if(rows[0]){
-					$("td",rows[0]).each( function( k ) {
-						$(this).css("width",grid.headers[k].width+"px");
-					});
-					ts.grid.cols = rows[0].cells;
-				}
-				var cn = "";
-				if(ts.p.altRows) { cn = ts.p.altclass; }
-				$.each(rows, function(i, row) {
-					if(cn) {
-						if(i%2 ==1) {$(row).addClass(cn);}
-						else {$(row).removeClass(cn);}
-					}
-					$('tbody',ts.grid.bDiv).append(row);
-					row.sortKey = null;
-				});
-			}
-			ts.grid.bDiv.scrollTop = 0;
-		},
-		parseDate = function(format, date) {
-			var tsp = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0},k,hl,dM;
-			date = $.trim(date);
-			if(date){
-				date = date.split(/[\\\/:_;.\t\T\s-]/);
-				format = format.split(/[\\\/:_;.\t\T\s-]/);
-				var dfmt  = $.jgrid.formatter.date.monthNames;
-				var afmt  = $.jgrid.formatter.date.AmPm;
-				var h12to24 = function(ampm, h){
-					if (ampm === 0){ if (h == 12) { h = 0;} }
-					          else { if (h != 12) { h += 12; } }
-					return h;
-				}; 
-				for(k=0,hl=format.length;k<hl;k++){
-					if(format[k] == 'M') {
-						dM = $.inArray(date[k],dfmt);
-						if(dM !== -1 && dM < 12){date[k] = dM+1;}
-					}
-					if(format[k] == 'F') {
-						dM = $.inArray(date[k],dfmt);
-						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
-					}
-					if(format[k] == 'a') {
-						dM = $.inArray(date[k],afmt);
-						if(dM !== -1 && dM < 2 && date[k] == afmt[dM]){
-							date[k] = dM;
-							tsp.h = h12to24(date[k], tsp.h);
-						}
-					}
-					if(format[k] == 'A') {
-						dM = $.inArray(date[k],afmt);
-						if(dM !== -1 && dM > 1 && date[k] == afmt[dM]){
-							date[k] = dM-2;
-							tsp.h = h12to24(date[k], tsp.h);
-						}
-					}
-					tsp[format[k].toLowerCase()] = parseInt(date[k],10);
-				}
-				tsp.m = parseInt(tsp.m,10)-1;
-				var ty = tsp.y;
-				if (ty >= 70 && ty <= 99) {tsp.y = 1900+tsp.y;}
-				else if (ty >=0 && ty <=69) {tsp.y= 2000+tsp.y;}
-			}
-			return new Date(tsp.y, tsp.m, tsp.d, tsp.h, tsp.i, tsp.s,0);
-		},
-		setPager = function (pgid, tp){
-			var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
-			pginp = "",
-			pgl="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",
-			str="", pgcnt, lft, cent, rgt, twd, tdw, i,
-			clearVals = function(onpaging){
-				var ret;
-				if ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging); }
-				ts.p.selrow = null;
-				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
-				ts.p.savedRow = [];
-				if(ret=='stop') {return false;}
-				return true;
-			};
-			//pgid= $(ts.p.pager).attr("id") || 'pager',
-			pgid = pgid.substr(1);
-			pgcnt = "pg_"+pgid;
-			lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right";
-			$("#"+pgid)
-			.append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>")
-			.attr("dir","ltr"); //explicit setting
-			if(ts.p.rowList.length >0){
-				str = "<td dir='"+dir+"'>";
-				str +="<select class='ui-pg-selbox' role='listbox'>";
-				for(i=0;i<ts.p.rowList.length;i++){
-					str +="<option role='option' value='"+ts.p.rowList[i]+"'"+((ts.p.rowNum == ts.p.rowList[i])?' selected':'')+">"+ts.p.rowList[i]+"</option>";
-				}
-				str +="</select></td>";
-			}
-			if(dir=="rtl") { pgl += str; }
-			if(ts.p.pginput===true) { pginp= "<td dir='"+dir+"'>"+$.jgrid.format(ts.p.pgtext || "","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>","<span id='sp_1'></span>")+"</td>";}
-			if(ts.p.pgbuttons===true) {
-				var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp]; if(dir=="rtl") { po.reverse(); }
-				pgl += "<td id='"+po[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";
-				pgl += "<td id='"+po[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";
-				pgl += pginp !="" ? sep+pginp+sep:"";
-				pgl += "<td id='"+po[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";
-				pgl += "<td id='"+po[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>";
-			} else if (pginp !="") { pgl += pginp; }
-			if(dir=="ltr") { pgl += str; }
-			pgl += "</tr></tbody></table>";
-			if(ts.p.viewrecords===true) {$("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' style='text-align:"+ts.p.recordpos+"' class='ui-paging-info'></div>");}
-			$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl);
-			tdw = $(".ui-jqgrid").css("font-size") || "11px";
-			$('body').append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
-			twd = $(pgl).clone().appendTo("#testpg").width();
-			$("#testpg").remove();
-			if(twd > 0) {
-				if(pginp !="") { twd += 50; } //should be param
-				$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd);
-			}
-			ts.p._nvtd = [];
-			ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);
-			ts.p._nvtd[1] = 0;
-			pgl=null;
-			$('.ui-pg-selbox',"#"+pgcnt).bind('change',function() { 
-				ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;
-				ts.p.rowNum = this.value;
-				if(tp) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }
-				else if(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }
-				if(!clearVals('records')) { return false; }
-				populate();
-				return false;
-			});
-			if(ts.p.pgbuttons===true) {
-			$(".ui-pg-button","#"+pgcnt).hover(function(e){
-				if($(this).hasClass('ui-state-disabled')) {
-					this.style.cursor='default';
-				} else {
-					$(this).addClass('ui-state-hover');
-					this.style.cursor='pointer';
-				}
-			},function(e) {
-				if($(this).hasClass('ui-state-disabled')) {
-				} else {
-					$(this).removeClass('ui-state-hover');
-					this.style.cursor= "default";
-				}
-			});
-			$("#first"+tp+", #prev"+tp+", #next"+tp+", #last"+tp,"#"+pgid).click( function(e) {
-				var cp = intNum(ts.p.page,1),
-				last = intNum(ts.p.lastpage,1), selclick = false,
-				fp=true, pp=true, np=true,lp=true;
-				if(last ===0 || last===1) {fp=false;pp=false;np=false;lp=false; }
-				else if( last>1 && cp >=1) {
-					if( cp === 1) { fp=false; pp=false; } 
-					else if( cp>1 && cp <last){ }
-					else if( cp===last){ np=false;lp=false; }
-				} else if( last>1 && cp===0 ) { np=false;lp=false; cp=last-1;}
-				if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;} 
-				if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;} 
-				if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;} 
-				if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}
-				if(selclick) {
-					if(!clearVals(this.id)) { return false; }
-					populate();
-				}
-				return false;
-			});
-			}
-			if(ts.p.pginput===true) {
-			$('input.ui-pg-input',"#"+pgcnt).keypress( function(e) {
-				var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
-				if(key == 13) {
-					ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;
-					if(!clearVals('user')) { return false; }
-					populate();
-					return false;
-				}
-				return this;
-			});
-			}
-		},
-		sortData = function (index, idxcol,reload,sor){
-			if(!ts.p.colModel[idxcol].sortable) { return; }
-			var so;
-			if(ts.p.savedRow.length > 0) {return;}
-			if(!reload) {
-				if( ts.p.lastsort == idxcol ) {
-					if( ts.p.sortorder == 'asc') {
-						ts.p.sortorder = 'desc';
-					} else if(ts.p.sortorder == 'desc') { ts.p.sortorder = 'asc';}
-				} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }
-				ts.p.page = 1;
-			}
-			if(sor) {
-				if(ts.p.lastsort == idxcol && ts.p.sortorder == sor && !reload) { return; }
-				else { ts.p.sortorder = sor; }
-			}
-			var thd= $("thead:first",ts.grid.hDiv).get(0);
-			$("tr th:eq("+ts.p.lastsort+") span.ui-grid-ico-sort",thd).addClass('ui-state-disabled');
-			$("tr th:eq("+ts.p.lastsort+")",thd).attr("aria-selected","false");
-			$("tr th:eq("+idxcol+") span.ui-icon-"+ts.p.sortorder,thd).removeClass('ui-state-disabled');
-			$("tr th:eq("+idxcol+")",thd).attr("aria-selected","true");
-			if(!ts.p.viewsortcols[0]) {
-				if(ts.p.lastsort != idxcol) {
-					$("tr th:eq("+ts.p.lastsort+") span.s-ico",thd).hide();
-					$("tr th:eq("+idxcol+") span.s-ico",thd).show();
-				}
-			}
-			index = index.substring(5);
-			ts.p.sortname = ts.p.colModel[idxcol].index || index;
-			so = ts.p.sortorder;
-			if($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts,index,idxcol,so)=='stop') {ts.p.lastsort = idxcol; return;}}
-			if(ts.p.datatype == "local") {
-				if(ts.p.deselectAfterSort) {$(ts).jqGrid("resetSelection");}
-			} else {
-				ts.p.selrow = null;
-				if(ts.p.multiselect){$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
-				ts.p.selarrrow =[];
-				ts.p.savedRow =[];
-				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
-			}
-			if(ts.p.subGrid && ts.p.datatype=='local') {
-				$("td.sgexpanded","#"+ts.p.id).each(function(){
-					$(this).trigger("click");
-				});
-			}
-			populate();
-			ts.p.lastsort = idxcol;
-			if(ts.p.sortname != index && idxcol) {ts.p.lastsort = idxcol;}
-		},
-		setColWidth = function () {
-			var initwidth = 0, brd=ts.p.cellLayout, vc=0, lvc, scw=ts.p.scrollOffset,cw,hs=false,aw,tw=0,gw=0,
-			cl = 0, cr;
-			if (isSafari) { brd=0; }
-			$.each(ts.p.colModel, function(i) {
-				if(typeof this.hidden === 'undefined') {this.hidden=false;}
-				if(this.hidden===false){
-					initwidth += intNum(this.width,0);
-					if(this.fixed) {
-						tw += this.width;
-						gw += this.width+brd;
-					} else {
-						vc++;
-					}
-					cl++;
-				}
-			});
-			if(isNaN(ts.p.width)) {ts.p.width = grid.width = initwidth;}
-			else { grid.width = ts.p.width;}
-			ts.p.tblwidth = initwidth;
-			if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}
-			if(ts.p.shrinkToFit===true && vc > 0) {
-				aw = grid.width-brd*vc-gw;
-				if(isNaN(ts.p.height)) {
-				} else {
-					aw -= scw;
-					hs = true;
-				}
-				initwidth =0;
-				$.each(ts.p.colModel, function(i) {
-					if(this.hidden === false && !this.fixed){
-						cw = Math.round(aw*this.width/(ts.p.tblwidth-tw));
-						this.width =cw;
-						initwidth += cw;
-						lvc = i;
-					}
-				});
-				cr =0;
-				if (hs) {
-					if(grid.width-gw-(initwidth+brd*vc) !== scw){
-						cr = grid.width-gw-(initwidth+brd*vc)-scw;
-					}
-				} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {
-					cr = grid.width-gw-(initwidth+brd*vc);
-				}
-				ts.p.colModel[lvc].width += cr;
-				ts.p.tblwidth = initwidth+cr+tw+cl*brd;
-				if(ts.p.tblwidth > ts.p.width) {
-					ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));
-					ts.p.tblwidth = ts.p.width;
-				}
-			}
-		},
-		nextVisible= function(iCol) {
-			var ret = iCol, j=iCol, i;
-			for (i = iCol+1;i<ts.p.colModel.length;i++){
-				if(ts.p.colModel[i].hidden !== true ) {
-					j=i; break;
-				}
-			}
-			return j-ret;
-		},
-		getOffset = function (iCol) {
-			var i, ret = {}, brd1 = isSafari ? 0 : ts.p.cellLayout;
-			ret[0] =  ret[1] = ret[2] = 0;
-			for(i=0;i<=iCol;i++){
-				if(ts.p.colModel[i].hidden === false ) {
-					ret[0] += ts.p.colModel[i].width+brd1;
-				}
-			}
-			if(ts.p.direction=="rtl") { ret[0] = ts.p.width - ret[0]; }
-			ret[0] = ret[0] - ts.grid.bDiv.scrollLeft;
-			if($(ts.grid.cDiv).is(":visible")) {ret[1] += $(ts.grid.cDiv).height() +parseInt($(ts.grid.cDiv).css("padding-top"),10)+parseInt($(ts.grid.cDiv).css("padding-bottom"),10);}
-			if(ts.p.toolbar[0]===true && (ts.p.toolbar[1]=='top' || ts.p.toolbar[1]=='both')) {ret[1] += $(ts.grid.uDiv).height()+parseInt($(ts.grid.uDiv).css("border-top-width"),10)+parseInt($(ts.grid.uDiv).css("border-bottom-width"),10);}
-			if(ts.p.toppager) {ret[1] += $(ts.grid.topDiv).height()+parseInt($(ts.grid.topDiv).css("border-bottom-width"),10);}
-			ret[2] += $(ts.grid.bDiv).height() + $(ts.grid.hDiv).height();
-			return ret;
-		};
-		this.p.id = this.id;
-		if ($.inArray(ts.p.multikey,sortkeys) == -1 ) {ts.p.multikey = false;}
-		ts.p.keyIndex=false;
-		for (i=0; i<ts.p.colModel.length;i++) {
-			if (ts.p.colModel[i].key===true) {
-				ts.p.keyIndex = i;
-				break;
-			}
-		}
-		ts.p.sortorder = ts.p.sortorder.toLowerCase();
-		if(this.p.treeGrid === true) {
-			try { $(this).jqGrid("setTreeGrid");} catch (_) {}
-		}
-		if(this.p.subGrid) {
-			try { $(ts).jqGrid("setSubGrid");} catch (_){}
-		}
-		if(this.p.multiselect) {
-			this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");
-			this.p.colModel.unshift({name:'cb',width:isSafari ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
-		}
-		if(this.p.rownumbers) {
-			this.p.colNames.unshift("");
-			this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
-		}
-		ts.p.xmlReader = $.extend(true,{
-			root: "rows",
-			row: "row",
-			page: "rows>page",
-			total: "rows>total",
-			records : "rows>records",
-			repeatitems: true,
-			cell: "cell",
-			id: "[id]",
-			userdata: "userdata",
-			subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"}
-		}, ts.p.xmlReader);
-		ts.p.jsonReader = $.extend(true,{
-			root: "rows",
-			page: "page",
-			total: "total",
-			records: "records",
-			repeatitems: true,
-			cell: "cell",
-			id: "id",
-			userdata: "userdata",
-			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
-		},ts.p.jsonReader);
-		if(ts.p.scroll){
-			ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];
-		}
-		var thead = "<thead><tr class='ui-jqgrid-labels' role='rowheader'>",
-		tdc, idn, w, res, sort,
-		td, ptr, tbody, imgs,iac="",idc="";
-		if(ts.p.shrinkToFit===true && ts.p.forceFit===true) {
-			for (i=ts.p.colModel.length-1;i>=0;i--){
-				if(!ts.p.colModel[i].hidden) {
-					ts.p.colModel[i].resizable=false;
-					break;
-				}
-			}
-		}
-		if(ts.p.viewsortcols[1] == 'horizontal') {iac=" ui-i-asc";idc=" ui-i-desc";}
-		tdc = isMSIE ?  "class='ui-th-div-ie'" :"";
-		imgs = "<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+dir+"'></span>";
-		imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+dir+"'></span></span>";
-		for(i=0;i<this.p.colNames.length;i++){
-			var tooltip = ts.p.headertitles ? (" title=\""+$.jgrid.stripHtml(ts.p.colNames[i])+"\"") :"";
-			thead += "<th id='"+ts.p.id+"_"+ts.p.colModel[i].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+dir+"'"+ tooltip+">";
-			idn = ts.p.colModel[i].index || ts.p.colModel[i].name;
-			thead += "<div id='jqgh_"+ts.p.colModel[i].name+"' "+tdc+">"+ts.p.colNames[i];
-			if(!ts.p.colModel[i].width)  { ts.p.colModel[i].width = 150; }
-			else { ts.p.colModel[i].width = parseInt(ts.p.colModel[i].width,10); }
-			if(typeof(ts.p.colModel[i].title) !== "boolean") { ts.p.colModel[i].title = true; }
-			if (idn == ts.p.sortname) {
-				ts.p.lastsort = i;
-			} 
-			thead += imgs+"</div></th>";
-		}
-		thead += "</tr></thead>";
-		$(this).append(thead);
-		$("thead tr:first th",this).hover(function(){$(this).addClass('ui-state-hover');},function(){$(this).removeClass('ui-state-hover');});
-		if(this.p.multiselect) {
-			var emp=[], chk;
-			$('#cb_'+$.jgrid.jqID(ts.p.id),this).bind('click',function(){
-				if (this.checked) {
-					$("[id^=jqg_]",ts.rows).attr("checked",true);
-					$(ts.rows).each(function(i) {
-						if(!$(this).hasClass("subgrid")){
-						$(this).addClass("ui-state-highlight").attr("aria-selected","true");
-						ts.p.selarrrow[i]= ts.p.selrow = this.id; 
-						}
-					});
-					chk=true;
-					emp=[];
-				}
-				else {
-					$("[id^=jqg_]",ts.rows).attr("checked",false);
-					$(ts.rows).each(function(i) {
-						if(!$(this).hasClass("subgrid")){
-							$(this).removeClass("ui-state-highlight").attr("aria-selected","false");
-							emp[i] = this.id;
-						}
-					});
-					ts.p.selarrrow = []; ts.p.selrow = null;
-					chk=false;
-				}
-				if($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}
-			});
-		}
-		
-		if(ts.p.autowidth===true) {
-			var pw = $(eg).innerWidth();
-			ts.p.width = pw > 0?  pw: 'nw';
-		}
-		setColWidth();
-		$(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'>&#160;</div>");
-		$(gv).css("width",grid.width+"px");
-		thead = $("thead:first",ts).get(0);
-		var	tfoot = "<table role='grid' style='width:"+ts.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+dir+"'>";
-		var thr = $("tr:first",thead);
-		ts.p.disableClick=false;
-		$("th",thr).each(function ( j ) {
-			w = ts.p.colModel[j].width;
-			if(typeof ts.p.colModel[j].resizable === 'undefined') {ts.p.colModel[j].resizable = true;}
-			if(ts.p.colModel[j].resizable){
-				res = document.createElement("span");
-				$(res).html("&#160;").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir);
-				if(!$.browser.opera) { $(res).css("cursor","col-resize"); }
-				$(this).addClass(ts.p.resizeclass);
-			} else {
-				res = "";
-			}
-			$(this).css("width",w+"px").prepend(res);
-			if( ts.p.colModel[j].hidden ) { $(this).css("display","none"); }
-			grid.headers[j] = { width: w, el: this };
-			sort = ts.p.colModel[j].sortable;
-			if( typeof sort !== 'boolean') {ts.p.colModel[j].sortable =  true; sort=true;}
-			var nm = ts.p.colModel[j].name;
-			if( !(nm == 'cb' || nm=='subgrid' || nm=='rn') ) {
-				if(ts.p.viewsortcols[2]){
-					$("div",this).addClass('ui-jqgrid-sortable');
-				}
-			}
-			if(sort) {
-				if(ts.p.viewsortcols[0]) {$("div span.s-ico",this).show(); if(j==ts.p.lastsort){ $("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}}
-				else if( j == ts.p.lastsort) {$("div span.s-ico",this).show();$("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}
-			}
-			tfoot += "<td role='gridcell' "+formatCol(j,0,'')+">&#160;</td>";
-		}).mousedown(function(e) {
-			if ($(e.target).closest("th>span.ui-jqgrid-resize").length != 1) { return; }
-			var ci = $.jgrid.getCellIndex(this);
-			if(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}
-			grid.dragStart(ci, e, getOffset(ci));
-			return false;
-		}).click(function(e) {
-			if (ts.p.disableClick) {
-				ts.p.disableClick = false;
-				return false;
-			}
-			var s = "th>div.ui-jqgrid-sortable",r,d;
-			if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; }
-			var t = $(e.target).closest(s);
-			if (t.length != 1) { return; }
-			var ci = $.jgrid.getCellIndex(this);
-			if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); }
-			sortData($('div',this)[0].id,ci,r,d);
-			return false;
-		});
-		if (ts.p.sortable && $.fn.sortable) {
-			try {
-				$(ts).jqGrid("sortableColumns", thr);
-			} catch (e){}
-		}
-		tfoot += "</tr></tbody></table>";
-		
-		tbody = document.createElement("tbody");
-		this.appendChild(tbody);
-		$(this).addClass('ui-jqgrid-btable');
-		var hTable = $("<table class='ui-jqgrid-htable' style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(thead),
-		hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,
-		hb = $("<div class='ui-jqgrid-hbox" + (dir=="rtl" ? "-rtl" : "" )+"'></div>");
-		grid.hDiv = document.createElement("div");
-		$(grid.hDiv)
-			.css({ width: grid.width+"px"})
-			.addClass("ui-state-default ui-jqgrid-hdiv")
-			.append(hb);
-		$(hb).append(hTable);
-		if(hg) { $(grid.hDiv).hide(); }
-		if(ts.p.pager){
-			if(typeof ts.p.pager == "string") {if(ts.p.pager.substr(0,1) !="#") { ts.p.pager = "#"+ts.p.pager;} }
-			else { ts.p.pager = "#"+ $(ts.p.pager).attr("id");}
-			$(ts.p.pager).css({width: grid.width+"px"}).appendTo(eg).addClass('ui-state-default ui-jqgrid-pager ui-corner-bottom');
-			if(hg) {$(ts.p.pager).hide();}
-			setPager(ts.p.pager,'');
-		}
-		if( ts.p.cellEdit === false && ts.p.hoverrows === true) {
-		$(ts).bind('mouseover',function(e) {
-			ptr = $(e.target).closest("tr.jqgrow");
-			if($(ptr).attr("class") !== "subgrid") {
-				$(ptr).addClass("ui-state-hover");
-			}
-			return false;
-		}).bind('mouseout',function(e) {
-			ptr = $(e.target).closest("tr.jqgrow");
-			$(ptr).removeClass("ui-state-hover");
-			return false;
-		});
-		}
-		var ri,ci;
-		$(ts).before(grid.hDiv).click(function(e) {
-			td = e.target;
-			var scb = $(td).hasClass("cbox");
-			ptr = $(td,ts.rows).closest("tr.jqgrow");
-			if($(ptr).length === 0 ) {
-				return this;
-			}
-			var cSel = true;
-			if($.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts,ptr[0].id, e); }
-			if (td.tagName == 'A' || ((td.tagName == 'INPUT' || td.tagName == 'TEXTAREA' || td.tagName == 'OPTION' || td.tagName == 'SELECT' ) && !scb) ) { return this; }
-			if(cSel === true) {
-				if(ts.p.cellEdit === true) {
-					if(ts.p.multiselect && scb){
-						$(ts).jqGrid("setSelection",ptr[0].id,true);
-					} else {
-						ri = ptr[0].rowIndex;
-						ci = $.jgrid.getCellIndex(td);
-						try {$(ts).jqGrid("editCell",ri,ci,true);} catch (_) {}
-					}
-				} else if ( !ts.p.multikey ) {
-					if(ts.p.multiselect && ts.p.multiboxonly) {
-						if(scb){$(ts).jqGrid("setSelection",ptr[0].id,true);}
-						else {
-							$(ts.p.selarrrow).each(function(i,n){
-								var ind = ts.rows.namedItem(n);
-								$(ind).removeClass("ui-state-highlight");
-								$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
-							});
-							ts.p.selarrrow = [];
-							$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);
-							$(ts).jqGrid("setSelection",ptr[0].id,true);
-						}
-					} else {
-						$(ts).jqGrid("setSelection",ptr[0].id,true);
-					}
-				} else {
-					if(e[ts.p.multikey]) {
-						$(ts).jqGrid("setSelection",ptr[0].id,true);
-					} else if(ts.p.multiselect && scb) {
-						scb = $("[id^=jqg_]",ptr).attr("checked");
-						$("[id^=jqg_]",ptr).attr("checked",!scb);
-					}
-				}
-				if($.isFunction(ts.p.onCellSelect)) {
-					ri = ptr[0].id;
-					ci = $.jgrid.getCellIndex(td);
-					ts.p.onCellSelect.call(ts,ri,ci,$(td).html(),e);
-				}
-				e.stopPropagation();
-			} else {
-				return this;
-			}
-		}).bind('reloadGrid', function(e,opts) {
-			if(ts.p.treeGrid ===true) {	ts.p.datatype = ts.p.treedatatype;}
-			if (opts && opts.current) {
-				ts.grid.selectionPreserver(ts);
-			}
-			if(ts.p.datatype=="local"){ $(ts).jqGrid("resetSelection");}
-			else if(!ts.p.treeGrid) {
-				ts.p.selrow=null;
-				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
-				ts.p.savedRow = [];
-				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
-			}
-			if (opts && opts.page) {
-				var page = opts.page;
-				if (page > ts.p.lastpage) { page = ts.p.lastpage; }
-				if (page < 1) { page = 1; }
-				ts.p.page = page;
-				if (ts.grid.prevRowHeight) {
-					ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;
-				} else {
-					ts.grid.bDiv.scrollTop = 0;
-				}
-			}
-			if (ts.grid.prevRowHeight && ts.p.scroll) {
-                delete ts.p.lastpage;
-				ts.grid.populateVisible();
-			} else {
-				ts.grid.populate();
-			}
-			return false;
-		});
-		if( $.isFunction(this.p.ondblClickRow) ) {
-			$(this).dblclick(function(e) {
-				td = e.target;
-				ptr = $(td,ts.rows).closest("tr.jqgrow");
-				if($(ptr).length === 0 ){return false;}
-				ri = ptr[0].rowIndex;
-				ci = $.jgrid.getCellIndex(td);
-				ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
-				return false;
-			});
-		}
-		if ($.isFunction(this.p.onRightClickRow)) {
-			$(this).bind('contextmenu', function(e) {
-				td = e.target;
-				ptr = $(td,ts.rows).closest("tr.jqgrow");
-				if($(ptr).length === 0 ){return false;}
-				if(!ts.p.multiselect) {	$(ts).jqGrid("setSelection",ptr[0].id,true);	}
-				ri = ptr[0].rowIndex;
-				ci = $.jgrid.getCellIndex(td);
-				ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
-				return false;
-			});
-		}
-		grid.bDiv = document.createElement("div");
-		$(grid.bDiv)
-			.append($('<div style="position:relative;'+(isMSIE && $.browser.version < 8 ? "height:0.01%;" : "")+'"></div>').append('<div></div>').append(this))
-			.addClass("ui-jqgrid-bdiv")
-			.css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width)+"px"})
-			.scroll(grid.scrollGrid);
-		$("table:first",grid.bDiv).css({width:ts.p.tblwidth+"px"});
-		if( isMSIE ) {
-			if( $("tbody",this).size() == 2 ) { $("tbody:first",this).remove();}
-			if( ts.p.multikey) {$(grid.bDiv).bind("selectstart",function(){return false;});}
-		} else {
-			if( ts.p.multikey) {$(grid.bDiv).bind("mousedown",function(){return false;});}
-		}
-		if(hg) {$(grid.bDiv).hide();}
-		grid.cDiv = document.createElement("div");
-		var arf = ts.p.hidegrid===true ? $("<a role='link' href='javascript:void(0)'/>").addClass('ui-jqgrid-titlebar-close HeaderButton').hover(
-			function(){ arf.addClass('ui-state-hover');},
-			function() {arf.removeClass('ui-state-hover');})
-		.append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css((dir=="rtl"?"left":"right"),"0px") : "";
-		$(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title"+(dir=="rtl" ? "-rtl" :"" )+"'>"+ts.p.caption+"</span>")
-		.addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");
-		$(grid.cDiv).insertBefore(grid.hDiv);
-		if( ts.p.toolbar[0] ) {
-			grid.uDiv = document.createElement("div");
-			if(ts.p.toolbar[1] == "top") {$(grid.uDiv).insertBefore(grid.hDiv);}
-			else if (ts.p.toolbar[1]=="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);}
-			if(ts.p.toolbar[1]=="both") {
-				grid.ubDiv = document.createElement("div");
-				$(grid.uDiv).insertBefore(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
-				$(grid.ubDiv).insertAfter(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);
-				if(hg)  {$(grid.ubDiv).hide();}
-			} else {
-				$(grid.uDiv).width(grid.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
-			}
-			if(hg) {$(grid.uDiv).hide();}
-		}
-		if(ts.p.toppager) {
-			ts.p.toppager = ts.p.id+"_toppager";
-			grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0];
-			ts.p.toppager = "#"+ts.p.toppager;
-			$(grid.topDiv).insertBefore(grid.hDiv).addClass('ui-state-default ui-jqgrid-toppager').width(grid.width);
-			setPager(ts.p.toppager,'_t');
-		}
-		if(ts.p.footerrow) {
-			grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0];
-			hb = $("<div class='ui-jqgrid-hbox"+(dir=="rtl"?"-rtl":"")+"'></div>");
-			$(grid.sDiv).append(hb).insertAfter(grid.hDiv).width(grid.width);
-			$(hb).append(tfoot);
-			grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells;
-			if(ts.p.rownumbers) { grid.footers[0].className = 'ui-state-default jqgrid-rownum'; }
-			if(hg) {$(grid.sDiv).hide();}
-		}
-		if(ts.p.caption) {
-			var tdt = ts.p.datatype;
-			if(ts.p.hidegrid===true) {
-				$(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
-					var onHdCl = $.isFunction(ts.p.onHeaderClick);
-					if(ts.p.gridstate == 'visible') {
-						$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+ts.p.id).slideUp("fast");
-						if(ts.p.pager) {$(ts.p.pager).slideUp("fast");}
-						if(ts.p.toppager) {$(ts.p.toppager).slideUp("fast");}
-						if(ts.p.toolbar[0]===true) {
-							if( ts.p.toolbar[1]=='both') {
-								$(grid.ubDiv).slideUp("fast");
-							}
-							$(grid.uDiv).slideUp("fast");
-						}
-						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideUp("fast"); }
-						$("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
-						ts.p.gridstate = 'hidden';
-						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).hide(); }
-						if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
-					} else if(ts.p.gridstate == 'hidden'){
-						$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+ts.p.id).slideDown("fast");
-						if(ts.p.pager) {$(ts.p.pager).slideDown("fast");}
-						if(ts.p.toppager) {$(ts.p.toppager).slideDown("fast");}
-						if(ts.p.toolbar[0]===true) {
-							if( ts.p.toolbar[1]=='both') {
-								$(grid.ubDiv).slideDown("fast");
-							}
-							$(grid.uDiv).slideDown("fast");
-						}
-						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideDown("fast"); }
-						$("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
-						if(hg) {ts.p.datatype = tdt;populate();hg=false;}
-						ts.p.gridstate = 'visible';
-						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).show(); }
-						if(onHdCl) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}
-					}
-					return false;
-				});
-				if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");}
-			}
-		} else {$(grid.cDiv).hide();}
-		$(grid.hDiv).after(grid.bDiv)
-		.mousemove(function (e) {
-			if(grid.resizing){grid.dragMove(e);return false;}
-		});
-		$(".ui-jqgrid-labels",grid.hDiv).bind("selectstart", function () { return false; });
-		$(document).mouseup(function (e) {
-			if(grid.resizing) {	grid.dragEnd(); return false;}
-			return true;
-		});
-		this.updateColumns = function () {
-			var r = this.rows[0], self =this;
-			if(r) {
-				$("td",r).each( function( k ) {
-					$(this).css("width",self.grid.headers[k].width+"px");
-				});
-				this.grid.cols = r.cells;
-			}
-			return this;
-		};
-		ts.formatCol = formatCol;
-		ts.sortData = sortData;
-		ts.updatepager = updatepager;
-		ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};
-		$.extend(grid,{populate : populate, emptyRows: emptyRows});
-		this.grid = grid;
-		ts.addXmlData = function(d) {addXmlData(d,ts.grid.bDiv);};
-		ts.addJSONData = function(d) {addJSONData(d,ts.grid.bDiv);};
-		populate();ts.p.hiddengrid=false;
-		$(window).unload(function () {
-			ts = null;
-		});
-	});
-};
-$.jgrid.extend({
-	getGridParam : function(pName) {
-		var $t = this[0];
-		if (!$t.grid) {return;}
-		if (!pName) { return $t.p; }
-		else {return typeof($t.p[pName]) != "undefined" ? $t.p[pName] : null;}
-	},
-	setGridParam : function (newParams){
-		return this.each(function(){
-			if (this.grid && typeof(newParams) === 'object') {$.extend(true,this.p,newParams);}
-		});
-	},
-	getDataIDs : function () {
-		var ids=[], i=0, len;
-		this.each(function(){
-			len = this.rows.length;
-			if(len && len>0){
-				while(i<len) {
-					ids[i] = this.rows[i].id;
-					i++;
-				}
-			}
-		});
-		return ids;
-	},
-	setSelection : function(selection,onsr) {
-		return this.each(function(){
-			var $t = this, stat,pt, ner, ia, tpsr;
-			if(selection === undefined) { return; }
-			onsr = onsr === false ? false : true;
-			pt=$t.rows.namedItem(selection+"");
-			if(!pt) { return; }
-			function scrGrid(iR){
-				var ch = $($t.grid.bDiv)[0].clientHeight,
-				st = $($t.grid.bDiv)[0].scrollTop,
-				rpos = $t.rows[iR].offsetTop,
-				rh = $t.rows[iR].clientHeight;
-				if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }
-				else if(rpos < ch+st) {
-					if(rpos < st) {
-						$($t.grid.bDiv)[0].scrollTop = rpos;
-					}
-				}
-			}
-			if($t.p.scrollrows===true) {
-				ner = $t.rows.namedItem(selection).rowIndex;
-				if(ner >=0 ){
-					scrGrid(ner);
-				}
-			}
-			if(!$t.p.multiselect) {
-				if(pt.className !== "ui-subgrid") {
-				if( $t.p.selrow ) { $($t.rows.namedItem($t.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected","false"); }
-				$t.p.selrow = pt.id;
-				$(pt).addClass("ui-state-highlight").attr("aria-selected","true");
-				if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, true); }
-				}
-			} else {
-				$t.p.selrow = pt.id;
-				ia = $.inArray($t.p.selrow,$t.p.selarrrow);
-				if (  ia === -1 ){ 
-					if(pt.className !== "ui-subgrid") { $(pt).addClass("ui-state-highlight").attr("aria-selected","true");}
-					stat = true;
-					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
-					$t.p.selarrrow.push($t.p.selrow);
-					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
-				} else {
-					if(pt.className !== "ui-subgrid") { $(pt).removeClass("ui-state-highlight").attr("aria-selected","false");}
-					stat = false;
-					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
-					$t.p.selarrrow.splice(ia,1);
-					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
-					tpsr = $t.p.selarrrow[0];
-					$t.p.selrow = (tpsr === undefined) ? null : tpsr;
-				}
-			}
-		});
-	},
-	resetSelection : function(){
-		return this.each(function(){
-			var t = this, ind;
-			if(!t.p.multiselect) {
-				if(t.p.selrow) {
-					$("tr#"+$.jgrid.jqID(t.p.selrow),t.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");
-					t.p.selrow = null;
-				}
-			} else {
-				$(t.p.selarrrow).each(function(i,n){
-					ind = t.rows.namedItem(n);
-					$(ind).removeClass("ui-state-highlight").attr("aria-selected","false");
-					$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
-				});
-				$("#cb_"+$.jgrid.jqID(t.p.id),t.grid.hDiv).attr("checked",false);
-				t.p.selarrrow = [];
-			}
-			t.p.savedRow = [];
-		});
-	},
-	getRowData : function( rowid ) {
-		var res = {}, resall, getall=false, len, j=0;
-		this.each(function(){
-			var $t = this,nm,ind;
-			if(typeof(rowid) == 'undefined') {
-				getall = true;
-				resall = [];
-				len = $t.rows.length;
-			} else {
-				ind = $t.rows.namedItem(rowid);
-				if(!ind) { return res; }
-				len = 1;
-			}
-			while(j<len){
-				if(getall) { ind = $t.rows[j]; }
-				$('td',ind).each( function(i) {
-					nm = $t.p.colModel[i].name; 
-					if ( nm !== 'cb' && nm !== 'subgrid') {
-						if($t.p.treeGrid===true && nm == $t.p.ExpandColumn) {
-							res[nm] = $.jgrid.htmlDecode($("span:first",this).html());
-						} else {
-							try {
-								res[nm] = $.unformat(this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
-							} catch (e){
-								res[nm] = $.jgrid.htmlDecode($(this).html());
-							}
-						}
-					}
-				});
-				j++;
-				if(getall) { resall.push(res); res={}; }
-			}
-		});
-		return resall ? resall: res;
-	},
-	delRowData : function(rowid) {
-		var success = false, rowInd, ia, ri;
-		this.each(function() {
-			var $t = this;
-			rowInd = $t.rows.namedItem(rowid);
-			if(!rowInd) {return false;}
-			else {
-				ri = rowInd.rowIndex;
-				$(rowInd).remove();
-				$t.p.records--;
-				$t.p.reccount--;
-				$t.updatepager(true,false);
-				success=true;
-				if($t.p.multiselect) {
-					ia = $.inArray(rowid,$t.p.selarrrow);
-					if(ia != -1) { $t.p.selarrrow.splice(ia,1);}
-				}  
-				if(rowid == $t.p.selrow) {$t.p.selrow=null;}
-			}
-			if( ri === 0 && success ) {
-				$t.updateColumns();
-			}
-			if( $t.p.altRows === true && success ) {
-				var cn = $t.p.altclass;
-				$($t.rows).each(function(i){
-					if(i % 2 ==1) { $(this).addClass(cn); }
-					else { $(this).removeClass(cn); }
-				});
-			}
-		});
-		return success;
-	},
-	setRowData : function(rowid, data, cssp) {
-		var nm, success=false, title;
-		this.each(function(){
-			var t = this, vl, ind, cp = typeof cssp;
-			if(!t.grid) {return false;}
-			ind = t.rows.namedItem(rowid);
-			if(!ind) { return false; }
-			if( data ) {
-				$(this.p.colModel).each(function(i){
-					nm = this.name;
-					if( data[nm] !== undefined) {
-						vl = t.formatter( rowid, data[nm], i, data, 'edit');
-						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
-						if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
-							$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
-						} else {
-							$("td:eq("+i+")",ind).html(vl).attr(title); 
-						}
-						success = true;
-					}
-				});
-			}
-			if(cp === 'string') {$(ind).addClass(cssp);} else if(cp === 'object') {$(ind).css(cssp);}
-		});
-		return success;
-	},
-	addRowData : function(rowid,rdata,pos,src) {
-		if(!pos) {pos = "last";}
-		var success = false, nm, row, gi, si, ni,sind, i, v, prp="", aradd, cnm, cn, data;
-		if(rdata) {
-			if($.isArray(rdata)) {
-				aradd=true;
-				pos = "last";
-				cnm = rowid;
-			} else {
-				rdata = [rdata];
-				aradd = false;
-			}
-			this.each(function() {
-				var t = this, datalen = rdata.length;
-				ni = t.p.rownumbers===true ? 1 :0;
-				gi = t.p.multiselect ===true ? 1 :0;
-				si = t.p.subGrid===true ? 1 :0;
-				if(!aradd) {
-					if(typeof(rowid) != 'undefined') { rowid = rowid+"";}
-					else {
-						rowid = (t.p.records+1)+"";
-						if(t.p.keyIndex !== false) {
-							cnm = t.p.colModel[t.p.keyIndex+gi+si+ni].name;
-							if(typeof rdata[0][cnm] != "undefined") { rowid = rdata[0][cnm]; }
-						}
-					}
-				}
-				cn = t.p.altclass;
-				var k = 0, cna ="",
-				air = $.isFunction(t.p.afterInsertRow) ? true : false;
-				while(k < datalen) {
-					data = rdata[k];
-					row="";
-					if(aradd) {
-						try {rowid = data[cnm];}
-						catch (e) {rowid = t.p.records+1;}
-						cna = t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? cn : "" : "";
-					}
-					if(ni){
-						prp = t.formatCol(ni,1,'');
-						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">0</td>";
-					}
-					if(gi) {
-						v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\"/>";
-						prp = t.formatCol(ni,1,'');
-						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_cb\" "+prp+">"+v+"</td>";
-					}
-					if(si) {
-						row += $(t).jqGrid("addSubGridCell",gi+ni,1);
-					}
-					for(i = gi+si+ni; i < this.p.colModel.length;i++){
-						nm = this.p.colModel[i].name;
-						v = t.formatter( rowid, data[nm], i, data, 'add');
-						prp = t.formatCol(i,1,v);
-						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_"+nm+"\" "+prp+">"+v+"</td>";
-					}
-					row = "<tr id=\""+rowid+"\" role=\"row\" class=\"ui-widget-content jqgrow ui-row-"+t.p.direction+" "+cna+"\">" + row+"</tr>";
-					if(t.p.subGrid===true) {
-						row = $(row)[0]; 
-						$(t).jqGrid("addSubGrid",row,gi+ni);
-					}
-					if(t.rows.length === 0){
-						$("table:first",t.grid.bDiv).append(row);
-					} else {
-					switch (pos) {
-						case 'last':
-							$(t.rows[t.rows.length-1]).after(row);
-							break;
-						case 'first':
-							$(t.rows[0]).before(row);
-							break;
-						case 'after':
-							sind = t.rows.namedItem(src);
-							if (sind) {
-								if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }
-								else { $(sind).after(row); }
-							}
-							break;
-						case 'before':
-							sind = t.rows.namedItem(src);
-							if(sind) {$(sind).before(row);sind=sind.rowIndex;}
-							break;
-					}
-					}
-					t.p.records++;
-					t.p.reccount++;
-					if(!t.grid.cols || !t.grid.cols.length) { t.grid.cols = t.rows[0].cells; }
-					if(pos==='first' || (pos==='before' && sind <= 1) ||  t.rows.length === 1 ){
-						t.updateColumns();
-					}
-					if(air) { t.p.afterInsertRow.call(t,rowid,data,data); }
-					k++;
-				}
-				if( t.p.altRows === true && !aradd) {
-					if (pos == "last") {
-						if ((t.rows.length-1)%2 == 1)  {$(t.rows[t.rows.length-1]).addClass(cn);}
-					} else {
-						$(t.rows).each(function(i){
-							if(i % 2 ==1) { $(this).addClass(cn); }
-							else { $(this).removeClass(cn); }
-						});
-					}
-				}
-				t.updatepager(true,true);
-				success = true;
-			});
-		}
-		return success;
-	},
-	footerData : function(action,data, format) {
-		var nm, success=false, res={}, title;
-		function isEmpty(obj) {
-			for(var i in obj) {
-				if (obj.hasOwnProperty(i)) { return false; }
-			}
-			return true;
-		}
-		if(typeof(action) == "undefined") { action = "get"; }
-		if(typeof(format) != "boolean") { format  = true; }
-		action = action.toLowerCase();
-		this.each(function(){
-			var t = this, vl;
-			if(!t.grid || !t.p.footerrow) {return false;}
-			if(action == "set") { if(isEmpty(data)) { return false; } }
-			success=true;
-			$(this.p.colModel).each(function(i){
-				nm = this.name;
-				if(action == "set") {
-					if( data[nm] !== undefined) {
-						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
-						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
-						$("tr.footrow td:eq("+i+")",t.grid.sDiv).html(vl).attr(title); 
-						success = true;
-					}
-				} else if(action == "get") {
-					res[nm] = $("tr.footrow td:eq("+i+")",t.grid.sDiv).html();
-				}
-			});
-		});
-		return action == "get" ? res : success;
-	},
-	ShowHideCol : function(colname,show) {
-		return this.each(function() {
-			var $t = this, fndh=false;
-			if (!$t.grid ) {return;}
-			if( typeof colname === 'string') {colname=[colname];}
-			show = show !="none" ? "" : "none";
-			var sw = show == "" ? true :false;
-			$(this.p.colModel).each(function(i) {
-				if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {
-					$("tr",$t.grid.hDiv).each(function(){
-						$("th:eq("+i+")",this).css("display",show);
-					});
-					$($t.rows).each(function(j){
-						$("td:eq("+i+")",$t.rows[j]).css("display",show);
-					});
-					if($t.p.footerrow) { $("td:eq("+i+")",$t.grid.sDiv).css("display", show); }
-					if(show == "none") { $t.p.tblwidth -= this.width;} else {$t.p.tblwidth += this.width;}
-					this.hidden = !sw;
-					fndh=true;
-				}
-			});
-			if(fndh===true) {
-				$("table:first",$t.grid.hDiv).width($t.p.tblwidth);
-				$("table:first",$t.grid.bDiv).width($t.p.tblwidth);
-				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
-				if($t.p.footerrow) {
-					$("table:first",$t.grid.sDiv).width($t.p.tblwidth);
-					$t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
-				}
-			}
-		});
-	},
-	hideCol : function (colname) {
-		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"none");});
-	},
-	showCol : function(colname) {
-		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"");});
-	},
-	remapColumns : function(permutation, updateCells, keepHeader)
-	{
-		function resortArray(a) {
-			var ac;
-			if (a.length) {
-				ac = $.makeArray(a);
-			} else {
-				ac = $.extend({}, a);
-			}
-			$.each(permutation, function(i) {
-				a[i] = ac[this];
-			});
-		}
-		var ts = this.get(0);
-		function resortRows(parent, clobj) {
-			$(">tr"+(clobj||""), parent).each(function() {
-				var row = this;
-				var elems = $.makeArray(row.cells);
-				$.each(permutation, function() {
-					var e = elems[this];
-					if (e) {
-						row.appendChild(e);
-					}
-				});
-			});
-		}
-		resortArray(ts.p.colModel);
-		resortArray(ts.p.colNames);
-		resortArray(ts.grid.headers);
-		resortRows($("thead:first", ts.grid.hDiv), keepHeader && ":not(.ui-jqgrid-labels)");
-		if (updateCells) {
-			resortRows($("tbody:first", ts.grid.bDiv), ".jqgrow");
-		}
-		if (ts.p.footerrow) {
-			resortRows($("tbody:first", ts.grid.sDiv));
-		}
-		if (ts.p.remapColumns) {
-			if (!ts.p.remapColumns.length){
-				ts.p.remapColumns = $.makeArray(permutation);
-			} else {
-				resortArray(ts.p.remapColumns);
-			}
-		}
-		ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);
-		if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }
-	},
-	setGridWidth : function(nwidth, shrink) {
-		return this.each(function(){
-			var $t = this, cw,
-			initwidth = 0, brd=$t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, tw=0,
-			cl = 0,cr;
-			if (!$t.grid ) {return;}
-			if(typeof shrink != 'boolean') {
-				shrink=$t.p.shrinkToFit;
-			}
-			if(isNaN(nwidth)) {return;}
-			else { nwidth = parseInt(nwidth,10); $t.grid.width = $t.p.width = nwidth;}
-			$("#gbox_"+$t.p.id).css("width",nwidth+"px");
-			$("#gview_"+$t.p.id).css("width",nwidth+"px");
-			$($t.grid.bDiv).css("width",nwidth+"px");
-			$($t.grid.hDiv).css("width",nwidth+"px");
-			if($t.p.pager ) {$($t.p.pager).css("width",nwidth+"px");}
-			if($t.p.toppager ) {$($t.p.toppager).css("width",nwidth+"px");}
-			if($t.p.toolbar[0] === true){
-				$($t.grid.uDiv).css("width",nwidth+"px");
-				if($t.p.toolbar[1]=="both") {$($t.grid.ubDiv).css("width",nwidth+"px");}
-			}
-			if($t.p.footerrow) { $($t.grid.sDiv).css("width",nwidth+"px"); }
-			if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}			
-			if(shrink===true) {
-				if ($.browser.safari) { brd=0;}
-				$.each($t.p.colModel, function(i) {
-					if(this.hidden===false){
-						initwidth += parseInt(this.width,10);
-						if(this.fixed) {
-							tw += this.width;
-							gw += this.width+brd;
-						} else {
-							vc++;
-						}
-						cl++;
-					}
-				});
-				if(vc  === 0) { return; }
-				$t.p.tblwidth = initwidth;
-				aw = nwidth-brd*vc-gw;
-				if(!isNaN($t.p.height)) {
-					if($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight){
-						hs = true;
-						aw -= scw;
-					}
-				}
-				initwidth =0;
-				var cle = $t.grid.cols.length >0;
-				$.each($t.p.colModel, function(i) {
-					if(this.hidden === false && !this.fixed){
-						cw = Math.round(aw*this.width/($t.p.tblwidth-tw));
-						if (cw < 0) { return; }
-						this.width =cw;
-						initwidth += cw;
-						$t.grid.headers[i].width=cw;
-						$t.grid.headers[i].el.style.width=cw+"px";
-						if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; }
-						if(cle) { $t.grid.cols[i].style.width = cw+"px"; }
-						lvc = i;
-					}
-				});
-				cr =0;
-				if (hs) {
-					if(nwidth-gw-(initwidth+brd*vc) !== scw){
-						cr = nwidth-gw-(initwidth+brd*vc)-scw;
-					}
-				} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {
-					cr = nwidth-gw-(initwidth+brd*vc);
-				}
-				$t.p.colModel[lvc].width += cr;
-				$t.p.tblwidth = initwidth+cr+tw+brd*cl;
-				if($t.p.tblwidth > nwidth) {
-					var delta = $t.p.tblwidth - parseInt(nwidth,10);
-					$t.p.tblwidth = nwidth;
-					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;
-				} else {
-					cw= $t.p.colModel[lvc].width;
-				}
-				$t.grid.headers[lvc].width = cw;
-				$t.grid.headers[lvc].el.style.width=cw+"px";
-				if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; }
-				$('table:first',$t.grid.bDiv).css("width",$t.p.tblwidth+"px");
-				$('table:first',$t.grid.hDiv).css("width",$t.p.tblwidth+"px");
-				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
-				if($t.p.footerrow) {
-					$t.grid.footers[lvc].style.width = cw+"px";
-					$('table:first',$t.grid.sDiv).css("width",$t.p.tblwidth+"px");
-				}
-			}
-		});
-	},
-	setGridHeight : function (nh) {
-		return this.each(function (){
-			var $t = this;
-			if(!$t.grid) {return;}
-			$($t.grid.bDiv).css({height: nh+(isNaN(nh)?"":"px")});
-			$t.p.height = nh;
-			if ($t.p.scroll) { $t.grid.populateVisible(); }
-		});
-	},
-	setCaption : function (newcap){
-		return this.each(function(){
-			this.p.caption=newcap;
-			$("span.ui-jqgrid-title",this.grid.cDiv).html(newcap);
-			$(this.grid.cDiv).show();
-		});
-	},
-	setLabel : function(colname, nData, prop, attrp ){
-		return this.each(function(){
-			var $t = this, pos=-1;
-			if(!$t.grid) {return;}
-			if(isNaN(colname)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name == colname) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(colname,10);}
-			if(pos>=0) {
-				var thecol = $("tr.ui-jqgrid-labels th:eq("+pos+")",$t.grid.hDiv);
-				if (nData){
-					var ico = $(".s-ico",thecol);
-					$("[id^=jqgh_]",thecol).empty().html(nData).append(ico);
-					$t.p.colNames[pos] = nData;
-				}
-				if (prop) {
-					if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}
-				}
-				if(typeof attrp === 'object') {$(thecol).attr(attrp);}
-			}
-		});
-	},
-	setCell : function(rowid,colname,nData,cssp,attrp, forceupd) {
-		return this.each(function(){
-			var $t = this, pos =-1,v, title;
-			if(!$t.grid) {return;}
-			if(isNaN(colname)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name == colname) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(colname,10);}
-			if(pos>=0) {
-				var ind = $t.rows.namedItem(rowid);
-				if (ind){
-					var tcell = $("td:eq("+pos+")",ind);
-					if(nData !== "" || forceupd === true) {
-						v = $t.formatter(rowid, nData, pos,ind,'edit');
-						title = $t.p.colModel[pos].title ? {"title":$.jgrid.stripHtml(v)} : {};
-						if($t.p.treeGrid && $(".tree-wrap",$(tcell)).length>0) {
-							$("span",$(tcell)).html(v).attr(title);
-						} else {
-							$(tcell).html(v).attr(title);
-						}
-					}
-					if(typeof cssp === 'string'){
-						$(tcell).addClass(cssp);
-					} else if(cssp) {
-						$(tcell).css(cssp);
-					}
-					if(typeof attrp === 'object') {$(tcell).attr(attrp);}
-				}
-			}
-		});
-	},
-	getCell : function(rowid,col) {
-		var ret = false;
-		this.each(function(){
-			var $t=this, pos=-1;
-			if(!$t.grid) {return;}
-			if(isNaN(col)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name === col) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(col,10);}
-			if(pos>=0) {
-				var ind = $t.rows.namedItem(rowid);
-				if(ind) {
-					try {
-						ret = $.unformat($("td:eq("+pos+")",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);
-					} catch (e){
-						ret = $.jgrid.htmlDecode($("td:eq("+pos+")",ind).html());
-					}
-				}
-			}
-		});
-		return ret;
-	},
-	getCol : function (col, obj, mathopr) {
-		var ret = [], val, sum=0;
-		obj = typeof (obj) != 'boolean' ? false : obj;
-		if(typeof mathopr == 'undefined') { mathopr = false; }
-		this.each(function(){
-			var $t=this, pos=-1;
-			if(!$t.grid) {return;}
-			if(isNaN(col)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name === col) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(col,10);}
-			if(pos>=0) {
-				var ln = $t.rows.length, i =0;
-				if (ln && ln>0){
-					while(i<ln){
-						try {
-							val = $.unformat($($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);
-						} catch (e) {
-							val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);
-						}
-						if(mathopr) { sum += parseFloat(val); }
-						else if(obj) { ret.push({id:$t.rows[i].id,value:val}); }
-						else { ret[i]=val; }
-						i++;
-					}
-					if(mathopr) {
-						switch(mathopr.toLowerCase()){
-							case 'sum': ret =sum; break;
-							case 'avg': ret = sum/ln; break;
-							case 'count': ret = ln; break;
-						}
-					}
-				}
-			}
-		});
-		return ret;
-	},
-	clearGridData : function(clearfooter) {
-		return this.each(function(){
-			var $t = this;
-			if(!$t.grid) {return;}
-			if(typeof clearfooter != 'boolean') { clearfooter = false; }
-			$("tbody:first tr", $t.grid.bDiv).remove();
-			if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html("&#160;"); }
-			$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];
-			$t.p.records = 0;$t.p.page='0';$t.p.lastpage='0';$t.p.reccount=0;
-			$t.updatepager(true,false);
-		});
-	},
-	getInd : function(rowid,rc){
-		var ret =false,rw;
-		this.each(function(){
-			rw = this.rows.namedItem(rowid);
-			if(rw) {
-				ret = rc===true ? rw: rw.rowIndex;
-			}
-		});
-		return ret;
-	}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.base.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.custom.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.custom.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.custom.js	(nonexistent)
@@ -1,816 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for custom methods
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-	getColProp : function(colname){
-		var ret ={}, $t = this[0];
-		if ( !$t.grid ) { return; }
-		var cM = $t.p.colModel;
-		for ( var i =0;i<cM.length;i++ ) {
-			if ( cM[i].name == colname ) {
-				ret = cM[i];
-				break;
-			}
-		}
-		return ret;
-	},
-	setColProp : function(colname, obj){
-		//do not set width will not work
-		return this.each(function(){
-			if ( this.grid ) {
-				if ( obj ) {
-					var cM = this.p.colModel;
-					for ( var i =0;i<cM.length;i++ ) {
-						if ( cM[i].name == colname ) {
-							$.extend(this.p.colModel[i],obj);
-							break;
-						}
-					}
-				}
-			}
-		});
-	},
-	sortGrid : function(colname,reload, sor){
-		return this.each(function(){
-			var $t=this,idx=-1;
-			if ( !$t.grid ) { return;}
-			if ( !colname ) { colname = $t.p.sortname; }
-			for ( var i=0;i<$t.p.colModel.length;i++ ) {
-				if ( $t.p.colModel[i].index == colname || $t.p.colModel[i].name==colname ) {
-					idx = i;
-					break;
-				}
-			}
-			if ( idx!=-1 ){
-				var sort = $t.p.colModel[idx].sortable;
-				if ( typeof sort !== 'boolean' ) { sort =  true; }
-				if ( typeof reload !=='boolean' ) { reload = false; }
-				if ( sort ) { $t.sortData("jqgh_"+colname, idx, reload, sor); }
-			}
-		});
-	},
-	GridDestroy : function () {
-		return this.each(function(){
-			if ( this.grid ) { 
-				if ( this.p.pager ) { // if not part of grid
-					$(this.p.pager).remove();
-				}
-				var gid = this.id;
-				try {
-					$("#gbox_"+gid).remove();
-				} catch (_) {}
-			}
-		});
-	},
-	GridUnload : function(){
-		return this.each(function(){
-			if ( !this.grid ) {return;}
-			var defgrid = {id: $(this).attr('id'),cl: $(this).attr('class')};
-			if (this.p.pager) {
-				$(this.p.pager).empty().removeClass("ui-state-default ui-jqgrid-pager corner-bottom");
-			}
-			var newtable = document.createElement('table');
-			$(newtable).attr({id:defgrid.id});
-			newtable.className = defgrid.cl;
-			var gid = this.id;
-			$(newtable).removeClass("ui-jqgrid-btable");
-			if( $(this.p.pager).parents("#gbox_"+gid).length === 1 ) {
-				$(newtable).insertBefore("#gbox_"+gid).show();
-				$(this.p.pager).insertBefore("#gbox_"+gid);
-			} else {
-				$(newtable).insertBefore("#gbox_"+gid).show();
-			}
-			$("#gbox_"+gid).remove();
-		});
-	},
-    setGridState : function(state) {
-		return this.each(function(){
-			if ( !this.grid ) {return;}
-            var $t = this;
-            if(state == 'hidden'){
-				$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$t.p.id).slideUp("fast");
-				if($t.p.pager) {$($t.p.pager).slideUp("fast");}
-				if($t.p.toppager) {$($t.p.toppager).slideUp("fast");}
-				if($t.p.toolbar[0]===true) {
-					if( $t.p.toolbar[1]=='both') {
-						$($t.grid.ubDiv).slideUp("fast");
-					}
-					$($t.grid.uDiv).slideUp("fast");
-				}
-				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideUp("fast"); }
-				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
-				$t.p.gridstate = 'hidden';
-            } else if(state=='visible') {
-				$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$t.p.id).slideDown("fast");
-				if($t.p.pager) {$($t.p.pager).slideDown("fast");}
-				if($t.p.toppager) {$($t.p.toppager).slideDown("fast");}
-				if($t.p.toolbar[0]===true) {
-					if( $t.p.toolbar[1]=='both') {
-						$($t.grid.ubDiv).slideDown("fast");
-					}
-					$($t.grid.uDiv).slideDown("fast");
-				}
-				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideDown("fast"); }
-				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
-				$t.p.gridstate = 'visible';
-            }
-            
-        });
-    },
-	updateGridRows : function (data, rowidname, jsonreader) {
-		var nm, success=false, title;
-		this.each(function(){
-			var t = this, vl, ind, srow, sid;
-			if(!t.grid) {return false;}
-			if(!rowidname) { rowidname = "id"; }
-			if( data  && data.length >0 ) {
-				$(data).each(function(j){
-					srow = this;
-					ind = t.rows.namedItem(srow[rowidname]);
-					if(ind) {
-						sid = srow[rowidname];
-						if(jsonreader === true){
-							if(t.p.jsonReader.repeatitems === true) {
-								if(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}
-								for (var k=0;k<srow.length;k++) {
-									vl = t.formatter( sid, srow[k], k, srow, 'edit');
-									title = t.p.colModel[k].title ? {"title":$.jgrid.stripHtml(vl)} : {};
-									if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
-										$("td:eq("+k+") > span:first",ind).html(vl).attr(title);
-									} else {
-										$("td:eq("+k+")",ind).html(vl).attr(title); 
-									}
-								}
-								success = true;
-								return true;
-							}
-						} 
-						$(t.p.colModel).each(function(i){
-							nm = jsonreader===true ? this.jsonmap || this.name :this.name;
-							if( srow[nm] !== undefined) {
-								vl = t.formatter( sid, srow[nm], i, srow, 'edit');
-								title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
-								if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
-									$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
-								} else {
-									$("td:eq("+i+")",ind).html(vl).attr(title); 
-								}
-								success = true;
-							}
-						});
-					}
-				});
-			}
-		});
-		return success;
-	},
-	filterGrid : function(gridid,p){
-		p = $.extend({
-			gridModel : false,
-			gridNames : false,
-			gridToolbar : false,
-			filterModel: [], // label/name/stype/defval/surl/sopt
-			formtype : "horizontal", // horizontal/vertical
-			autosearch: true, // if set to false a serch button should be enabled.
-			formclass: "filterform",
-			tableclass: "filtertable",
-			buttonclass: "filterbutton",
-			searchButton: "Search",
-			clearButton: "Clear",
-			enableSearch : false,
-			enableClear: false,
-			beforeSearch: null,
-			afterSearch: null,
-			beforeClear: null,
-			afterClear: null,
-			url : '',
-			marksearched: true
-		},p  || {});
-		return this.each(function(){
-			var self = this;
-			this.p = p;
-			if(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert("No filter is set"); return;}
-			if( !gridid) {alert("No target grid is set!"); return;}
-			this.p.gridid = gridid.indexOf("#") != -1 ? gridid : "#"+gridid;
-			var gcolMod = $(this.p.gridid).jqGrid("getGridParam",'colModel');
-			if(gcolMod) {
-				if( this.p.gridModel === true) {
-					var thegrid = $(this.p.gridid)[0];
-					var sh;
-					// we should use the options search, edittype, editoptions
-					// additionally surl and defval can be added in grid colModel
-					$.each(gcolMod, function (i,n) {
-						var tmpFil = [];
-						this.search = this.search === false ? false : true;
-						if(this.editrules && this.editrules.searchhidden === true) {
-							sh = true;
-						} else {
-							if(this.hidden === true ) {
-								sh = false;
-							} else {
-								sh = true;
-							}
-						}
-						if( this.search === true && sh === true) {
-							if(self.p.gridNames===true) {
-								tmpFil.label = thegrid.p.colNames[i];
-							} else {
-								tmpFil.label = '';
-							}
-							tmpFil.name = this.name;
-							tmpFil.index = this.index || this.name;
-							// we support only text and selects, so all other to text
-							tmpFil.stype = this.edittype || 'text';
-							if(tmpFil.stype != 'select' ) {
-								tmpFil.stype = 'text';
-							}
-							tmpFil.defval = this.defval || '';
-							tmpFil.surl = this.surl || '';
-							tmpFil.sopt = this.editoptions || {};
-							tmpFil.width = this.width;
-							self.p.filterModel.push(tmpFil);
-						}
-					});
-				} else {
-					$.each(self.p.filterModel,function(i,n) {
-						for(var j=0;j<gcolMod.length;j++) {
-							if(this.name == gcolMod[j].name) {
-								this.index = gcolMod[j].index || this.name;
-								break;
-							}
-						}
-						if(!this.index) {
-							this.index = this.name;
-						}
-					});
-				}
-			} else {
-				alert("Could not get grid colModel"); return;
-			}
-			var triggerSearch = function() {
-				var sdata={}, j=0, v;
-				var gr = $(self.p.gridid)[0], nm;
-                gr.p.searchdata = {};
-				if($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}
-				$.each(self.p.filterModel,function(i,n){
-                    nm = this.index;
-					switch (this.stype) {
-						case 'select' :
-							v = $("select[name="+nm+"]",self).val();
-							if(v) {
-								sdata[nm] = v;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch (e) {}
-							}
-							break;
-						default:
-							v = $("input[name="+nm+"]",self).val();
-							if(v) {
-								sdata[nm] = v;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch(e) {}
-							}
-					}
-				});
-				var sd =  j>0 ? true : false;
-                $.extend(gr.p.postData,sdata);
-				var saveurl;
-				if(self.p.url) {
-					saveurl = $(gr).jqGrid("getGridParam",'url');
-					$(gr).jqGrid("setGridParam",{url:self.p.url});
-				}
-			    $(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
-				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(self.p.afterSearch)){self.p.afterSearch();}
-			};
-			var clearSearch = function(){
-				var sdata={}, v, j=0;
-				var gr = $(self.p.gridid)[0], nm;
-				if($.isFunction(self.p.beforeClear)){self.p.beforeClear();}
-				$.each(self.p.filterModel,function(i,n){
-                    nm = this.index;
-					v = (this.defval) ? this.defval : "";
-					if(!this.stype){this.stype='text';}
-					switch (this.stype) {
-						case 'select' :
-							var v1;
-							$("select[name="+nm+"] option",self).each(function (i){
-                                if(i===0) { this.selected = true; }
-								if ($(this).text() == v) {
-									this.selected = true;
-									v1 = $(this).val();
-									return false;
-								}
-							});
-							if(v1) {
-								// post the key and not the text
-								sdata[nm] = v1;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch (e) {}
-							}
-							break;
-						case 'text':
-							$("input[name="+nm+"]",self).val(v);
-							if(v) {
-								sdata[nm] = v;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch (e) {}
-							}
-                            break;
-					}
-				});
-				var sd =  j>0 ? true : false;
-                $.extend(gr.p.postData,sdata);
-				var saveurl;
-				if(self.p.url) {
-					saveurl = $(gr).jqGrid("getGridParam",'url');
-					$(gr).jqGrid("setGridParam",{url:self.p.url});
-				}
-				$(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
-				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(self.p.afterClear)){self.p.afterClear();}
-			};
-			var formFill = function(){
-				var tr = document.createElement("tr");
-				var tr1, sb, cb,tl,td;
-				if(self.p.formtype=='horizontal'){
-					$(tbl).append(tr);
-				}
-				$.each(self.p.filterModel,function(i,n){
-					tl = document.createElement("td");
-					$(tl).append("<label for='"+this.name+"'>"+this.label+"</label>");
-					td = document.createElement("td");
-					var $t=this;
-					if(!this.stype) { this.stype='text';}
-					switch (this.stype)
-					{
-					case "select":
-						if(this.surl) {
-							// data returned should have already constructed html select
-							$(td).load(this.surl,function(){
-								if($t.defval) { $("select",this).val($t.defval); }
-								$("select",this).attr({name:$t.index || $t.name, id: "sg_"+$t.name});
-								if($t.sopt) { $("select",this).attr($t.sopt); }
-								if(self.p.gridToolbar===true && $t.width) {
-									$("select",this).width($t.width);
-								}
-								if(self.p.autosearch===true){
-									$("select",this).change(function(e){
-										triggerSearch();
-										return false;
-									});
-								}
-							});
-						} else {
-							// sopt to construct the values
-							if($t.sopt.value) {
-								var oSv = $t.sopt.value;
-								var elem = document.createElement("select");
-								$(elem).attr({name:$t.index || $t.name, id: "sg_"+$t.name}).attr($t.sopt);
-								var so, sv, ov;
-								if(typeof oSv === "string") {
-									so = oSv.split(";");
-									for(var k=0; k<so.length;k++){
-										sv = so[k].split(":");
-										ov = document.createElement("option");
-										ov.value = sv[0]; ov.innerHTML = sv[1];
-										if (sv[1]==$t.defval) { ov.selected ="selected"; }
-										elem.appendChild(ov);
-									}
-								} else if(typeof oSv === "object" ) {
-									for ( var key in oSv) {
-										if(oSv.hasOwnProperty(key)) {
-											i++;
-											ov = document.createElement("option");
-											ov.value = key; ov.innerHTML = oSv[key];
-											if (oSv[key]==$t.defval) { ov.selected ="selected"; }
-											elem.appendChild(ov);
-										}
-									}
-								}
-								if(self.p.gridToolbar===true && $t.width) {
-									$(elem).width($t.width);
-								}
-								$(td).append(elem);
-								if(self.p.autosearch===true){
-									$(elem).change(function(e){
-										triggerSearch();
-										return false;
-									});
-								}
-							}
-						}
-						break;
-					case 'text':
-						var df = this.defval ? this.defval: "";
-						$(td).append("<input type='text' name='"+(this.index || this.name)+"' id='sg_"+this.name+"' value='"+df+"'/>");
-						if($t.sopt) { $("input",td).attr($t.sopt); }
-						if(self.p.gridToolbar===true && $t.width) {
-							if($.browser.msie) {
-								$("input",td).width($t.width-4);
-							} else {
-								$("input",td).width($t.width-2);
-							}
-						}
-						if(self.p.autosearch===true){
-							$("input",td).keypress(function(e){
-								var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
-								if(key == 13){
-									triggerSearch();
-									return false;
-								}
-								return this;
-							});
-						}
-						break;
-					}
-					if(self.p.formtype=='horizontal'){
-						if(self.p.gridToolbar===true && self.p.gridNames===false) {
-							$(tr).append(td);
-						} else {
-							$(tr).append(tl).append(td);
-						}
-						$(tr).append(td);
-					} else {
-						tr1 = document.createElement("tr");
-						$(tr1).append(tl).append(td);
-						$(tbl).append(tr1);
-					}
-				});
-				td = document.createElement("td");
-				if(self.p.enableSearch === true){
-					sb = "<input type='button' id='sButton' class='"+self.p.buttonclass+"' value='"+self.p.searchButton+"'/>";
-					$(td).append(sb);
-					$("input#sButton",td).click(function(){
-						triggerSearch();
-						return false;
-					});
-				}
-				if(self.p.enableClear === true) {
-					cb = "<input type='button' id='cButton' class='"+self.p.buttonclass+"' value='"+self.p.clearButton+"'/>";
-					$(td).append(cb);
-					$("input#cButton",td).click(function(){
-						clearSearch();
-						return false;
-					});
-				}
-				if(self.p.enableClear === true || self.p.enableSearch === true) {
-					if(self.p.formtype=='horizontal') {
-						$(tr).append(td);
-					} else {
-						tr1 = document.createElement("tr");
-						$(tr1).append("<td>&#160;</td>").append(td);
-						$(tbl).append(tr1);
-					}
-				}
-			};
-			var frm = $("<form name='SearchForm' style=display:inline;' class='"+this.p.formclass+"'></form>");
-			var tbl =$("<table class='"+this.p.tableclass+"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
-			$(frm).append(tbl);
-			formFill();
-			$(this).append(frm);
-			this.triggerSearch = triggerSearch;
-			this.clearSearch = clearSearch;
-		});
-	},
-	filterToolbar : function(p){
-		p = $.extend({
-			autosearch: true,
-			searchOnEnter : true,
-			beforeSearch: null,
-			afterSearch: null,
-			beforeClear: null,
-			afterClear: null,
-			searchurl : '',
-			stringResult: false,
-			groupOp: 'AND'
-		},p  || {});
-		return this.each(function(){
-			var $t = this;
-			var triggerToolbar = function() {
-				var sdata={}, j=0, v, nm, sopt={};
-				$.each($t.p.colModel,function(i,n){
-                    nm = this.index || this.name;
-                    var so = (this.searchoptions && this.searchoptions.sopt) ? this.searchoptions.sopt[0] : "bw";
-					switch (this.stype) {
-						case 'select' :
-							v = $("select[name="+nm+"]",$t.grid.hDiv).val();
-							if(v) {
-								sdata[nm] = v;
-                                sopt[nm] = so;
-								j++;
-							} else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch (e) {}
-                            }
-							break;
-						case 'text':
-							v = $("input[name="+nm+"]",$t.grid.hDiv).val();
-							if(v) {
-								sdata[nm] = v;
-                                sopt[nm] = so;
-								j++;
-							} else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch (e) {}
-                            }
-                            break;
-					}
-				});
-				var sd =  j>0 ? true : false;
-                if(!p.stringResult) {
-                    $.extend($t.p.postData,sdata);
-                } else {
-                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
-                    var gi=0;
-                    $.each(sdata,function(i,n){
-                        if (gi > 0) {ruleGroup += ",";}
-                        ruleGroup += "{\"field\":\"" + i + "\",";
-                        ruleGroup += "\"op\":\"" + sopt[i] + "\",";
-                        ruleGroup += "\"data\":\"" + n + "\"}";
-                        gi++;
-                    });
-                    ruleGroup += "]}";
-                    $.extend($t.p.postData,{filters:ruleGroup});
-                }
-				var saveurl;
-				if($t.p.searchurl) {
-					saveurl = $t.p.url;
-					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
-				}
-				var bsr = false;
-				if($.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
-				if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); }
-				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(p.afterSearch)){p.afterSearch();}
-			};
-			var clearToolbar = function(trigger){
-				var sdata={}, v, j=0, nm;
-                trigger = (typeof trigger != 'boolean') ? true : trigger;
-				$.each($t.p.colModel,function(i,n){
-					v = (this.searchoptions && this.searchoptions.defaultValue) ? this.searchoptions.defaultValue : "";
-                    nm = this.index || this.name;
-					switch (this.stype) {
-						case 'select' :
-							var v1;
-							$("select[name="+nm+"] option",$t.grid.hDiv).each(function (i){
-                                if(i===0) { this.selected = true; }
-								if ($(this).text() == v) {
-									this.selected = true;
-									v1 = $(this).val();
-									return false;
-								}
-							});
-                            if (v1) {
-                                // post the key and not the text
-                                sdata[nm] = v1;
-                                j++;
-                            } else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch(e) {}
-                            }
-							break;
-						case 'text':
-							$("input[name="+nm+"]",$t.grid.hDiv).val(v);
-							if(v) {
-								sdata[nm] = v;
-								j++;
-							} else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch (e){}
-                            }
-                            break;
-					}
-				});
-				var sd =  j>0 ? true : false;
-                if(!p.stringResult) {
-                    $.extend($t.p.postData,sdata);
-                } else {
-                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
-                    var gi=0;
-                    $.each(sdata,function(i,n){
-                        if (gi > 0) {ruleGroup += ",";}
-                        ruleGroup += "{\"field\":\"" + i + "\",";
-                        ruleGroup += "\"op\":\"" + "eq" + "\",";
-                        ruleGroup += "\"data\":\"" + n + "\"}";
-                        gi++;
-                    });
-                    ruleGroup += "]}";
-                    $.extend($t.p.postData,{filters:ruleGroup});
-                }
-				var saveurl;
-				if($t.p.searchurl) {
-					saveurl = $t.p.url;
-					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
-				}
-				var bcv = false;
-				if($.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}
-				if(!bcv) {
-                    if(trigger) {
-                        $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
-                    }
-                }
-				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(p.afterClear)){p.afterClear();}
-			};
-			var toggleToolbar = function(){
-                var trow = $("tr.ui-search-toolbar",$t.grid.hDiv);
-                if(trow.css("display")=='none') { trow.show(); }
-                else { trow.hide(); }
-			};
-			// create the row
-			function bindEvents(selector, events) {
-				var jElem = $(selector);
-				if (jElem[0]) {
-				    jQuery.each(events, function() {
-				        if (this.data !== undefined) {
-				            jElem.bind(this.type, this.data, this.fn);
-				        } else {
-				            jElem.bind(this.type, this.fn);
-				        }
-				    });
-				}
-			}
-			var tr = $("<tr class='ui-search-toolbar' role='rowheader'></tr>");
-            var timeoutHnd;
-			$.each($t.p.colModel,function(i,n){
-				var cm=this, thd , th, soptions,surl,self;
-				th = $("<th role='columnheader' class='ui-state-default ui-th-column ui-th-"+$t.p.direction+"'></th>");
-				thd = $("<div style='width:100%;position:relative;height:100%;padding-right:0.3em;'></div>");
-				if(this.hidden===true) { $(th).css("display","none");}
-				this.search = this.search === false ? false : true;
-				if(typeof this.stype == 'undefined' ) {this.stype='text';}
-				soptions = $.extend({},this.searchoptions || {});
-				if(this.search){
-					switch (this.stype)
-					{
-					case "select":
-						surl = this.surl || soptions.dataUrl;
-						if(surl) {
-							// data returned should have already constructed html select
-							// primitive jQuery load
-							self = thd;
-							$.ajax($.extend({
-								url: surl,
-								dataType: "html",
-								complete: function(res,status) {
-									if(soptions.buildSelect !== undefined) {
-										var d = soptions.buildSelect(res);
-										if (d) { $(self).append(d); }
-									} else {
-										$(self).append(res.responseText);
-									}
-									if(soptions.defaultValue) { $("select",self).val(soptions.defaultValue); }
-									$("select",self).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
-									if(soptions.attr) {$("select",self).attr(soptions.attr);}
-									$("select",self).css({width: "100%"});
-									// preserve autoserch
-									if(soptions.dataInit !== undefined) { soptions.dataInit($("select",self)[0]); }
-									if(soptions.dataEvents !== undefined) { bindEvents($("select",self)[0],soptions.dataEvents); }
-									if(p.autosearch===true){
-										$("select",self).change(function(e){
-											triggerToolbar();
-											return false;
-										});
-									}
-									res=null;
-								}
-							}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {} ));
-						} else {
-							var oSv;
-							if(cm.searchoptions && cm.searchoptions.value) {
-								oSv = cm.searchoptions.value;
-							} else if(cm.editoptions && cm.editoptions.value) {
-								oSv = cm.editoptions.value;
-							}
-							if (oSv) {	
-								var elem = document.createElement("select");
-								elem.style.width = "100%";
-								$(elem).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
-								var so, sv, ov;
-								if(typeof oSv === "string") {
-									so = oSv.split(";");
-									for(var k=0; k<so.length;k++){
-										sv = so[k].split(":");
-										ov = document.createElement("option");
-										ov.value = sv[0]; ov.innerHTML = sv[1];
-										elem.appendChild(ov);
-									}
-								} else if(typeof oSv === "object" ) {
-									for ( var key in oSv) {
-										if(oSv.hasOwnProperty(key)) {
-											ov = document.createElement("option");
-											ov.value = key; ov.innerHTML = oSv[key];
-											elem.appendChild(ov);
-										}
-									}
-								}
-								if(soptions.defaultValue) { $(elem).val(soptions.defaultValue); }
-								if(soptions.attr) {$(elem).attr(soptions.attr);}
-								if(soptions.dataInit !== undefined) { soptions.dataInit(elem); }
-								if(soptions.dataEvents !== undefined) { bindEvents(elem, soptions.dataEvents); }
-								$(thd).append(elem);
-								if(p.autosearch===true){
-									$(elem).change(function(e){
-										triggerToolbar();
-										return false;
-									});
-								}
-							}
-						}
-						break;
-					case 'text':
-						var df = soptions.defaultValue ? soptions.defaultValue: "";
-						$(thd).append("<input type='text' style='width:95%;padding:0px;' name='"+(cm.index || cm.name)+"' id='gs_"+cm.name+"' value='"+df+"'/>");
-						if(soptions.attr) {$("input",thd).attr(soptions.attr);}
-						if(soptions.dataInit !== undefined) { soptions.dataInit($("input",thd)[0]); }
-						if(soptions.dataEvents !== undefined) { bindEvents($("input",thd)[0], soptions.dataEvents); }
-						if(p.autosearch===true){
-                            if(p.searchOnEnter) {
-                                $("input",thd).keypress(function(e){
-                                    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
-                                    if(key == 13){
-                                        triggerToolbar();
-                                        return false;
-                                    }
-                                    return this;
-                                });
-                            } else {
-                                $("input",thd).keydown(function(e){
-                                    var key = e.which;
-									switch (key) {
-										case 9 :
-										case 16:
-										case 37:
-										case 38:
-										case 39:
-										case 40:
-										case 27:
-											break;
-										default :
-	                                        if(timeoutHnd) { clearTimeout(timeoutHnd); }
-	                                        timeoutHnd = setTimeout(function(){triggerToolbar();},500);
-									}
-                                });
-                            }
-						}
-						break;
-					}
-				}
-				$(th).append(thd);
-				$(tr).append(th);
-			});
-			$("table thead",$t.grid.hDiv).append(tr);
-			this.triggerToolbar = triggerToolbar;
-			this.clearToolbar = clearToolbar;
-			this.toggleToolbar = toggleToolbar;
-		});
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.custom.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.import.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.import.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.import.js	(nonexistent)
@@ -1,199 +0,0 @@
-;(function($){
-/*
- * jqGrid extension for constructing Grid Data from external file
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-    $.jgrid.extend({
-        jqGridImport : function(o) {
-            o = $.extend({
-                imptype : "xml", // xml, json, xmlstring, jsonstring
-                impstring: "",
-                impurl: "",
-                mtype: "GET",
-                impData : {},
-                xmlGrid :{
-                    config : "roots>grid",
-                    data: "roots>rows"
-                },
-                jsonGrid :{
-                    config : "grid",
-                    data: "data"
-                },
-                ajaxOptions :{}
-            }, o || {});
-            return this.each(function(){
-                var $t = this;
-                var XmlConvert = function (xml,o) {
-                    var cnfg = $(o.xmlGrid.config,xml)[0];
-                    var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1;
-                    if(xmlJsonClass.xml2json && $.jgrid.parse) {
-                        jstr = xmlJsonClass.xml2json(cnfg," ");
-                        jstr = $.jgrid.parse(jstr);
-                        for(var key in jstr) {
-                            if(jstr.hasOwnProperty(key)) {
-                                jstr1=jstr[key];
-                            }
-                        }
-                        if(xmldata) {
-                        // save the datatype
-                            var svdatatype = jstr.grid.datatype;
-                            jstr.grid.datatype = 'xmlstring';
-                            jstr.grid.datastr = xml;
-                            $($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
-                        } else {
-                            $($t).jqGrid( jstr1 );
-                        }
-                        jstr = null;jstr1=null;
-                    } else {
-                        alert("xml2json or parse are not present");
-                    }
-                };
-                var JsonConvert = function (jsonstr,o){
-                    if (jsonstr && typeof jsonstr == 'string') {
-                        var json = $.jgrid.parse(jsonstr);
-                        var gprm = json[o.jsonGrid.config];
-                        var jdata = json[o.jsonGrid.data];
-                        if(jdata) {
-                            var svdatatype = gprm.datatype;
-                            gprm.datatype = 'jsonstring';
-                            gprm.datastr = jdata;
-                            $($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype});
-                        } else {
-                            $($t).jqGrid( gprm );
-                        }
-                    }
-                };
-                switch (o.imptype){
-                    case 'xml':
-                        $.ajax($.extend({
-                            url:o.impurl,
-                            type:o.mtype,
-                            data: o.impData,
-                            dataType:"xml",
-                            complete: function(xml,stat) {
-                                if(stat == 'success') {
-                                    XmlConvert(xml.responseXML,o);
-                                    if($.isFunction(o.importComplete)) {
-                                        o.importComplete(xml);
-                                    }
-                                }
-                                xml=null;
-                            }
-                        }, o.ajaxOptions));
-                        break;
-                    case 'xmlstring' :
-                        // we need to make just the conversion and use the same code as xml
-                        if(o.impstring && typeof o.impstring == 'string') {
-                            var xmld = $.jgrid.stringToDoc(o.impstring);
-                            if(xmld) {
-                                XmlConvert(xmld,o);
-                                if($.isFunction(o.importComplete)) {
-                                    o.importComplete(xmld);
-                                }
-                                o.impstring = null;
-                            }
-                            xmld = null;
-                        }
-                        break;
-                    case 'json':
-                        $.ajax($.extend({
-                            url:o.impurl,
-                            type:o.mtype,
-                            data: o.impData,
-                            dataType:"json",
-                            complete: function(json,stat) {
-                                if(stat == 'success') {
-                                    JsonConvert(json.responseText,o );
-                                    if($.isFunction(o.importComplete)) {
-                                        o.importComplete(json);
-                                    }
-                                }
-                                json=null;
-                            }
-                        }, o.ajaxOptions ));
-                        break;
-                    case 'jsonstring' :
-                        if(o.impstring && typeof o.impstring == 'string') {
-                            JsonConvert(o.impstring,o );
-                            if($.isFunction(o.importComplete)) {
-                                o.importComplete(o.impstring);
-                            }
-                            o.impstring = null;
-                        }
-                        break;
-                }
-            });
-        },
-        jqGridExport : function(o) {
-            o = $.extend({
-                exptype : "xmlstring",
-                root: "grid",
-                ident: "\t"
-            }, o || {});
-            var ret = null;
-            this.each(function () {
-                if(!this.grid) { return;}
-                var gprm = $.extend({},$(this).jqGrid("getGridParam"));
-                // we need to check for:
-                // 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames
-                if(gprm.rownumbers) {
-                    gprm.colNames.splice(0,1);
-                    gprm.colModel.splice(0,1);
-                }
-                if(gprm.multiselect) {
-                    gprm.colNames.splice(0,1);
-                    gprm.colModel.splice(0,1);
-                }
-                if(gprm.subGrid) {
-                    gprm.colNames.splice(0,1);
-                    gprm.colModel.splice(0,1);
-                }
-                gprm.knv = null;
-                if(gprm.treeGrid) {
-                    for (var key in gprm.treeReader) {
-                        if(gprm.treeReader.hasOwnProperty(key)) {
-                            gprm.colNames.splice(gprm.colNames.length-1);
-                            gprm.colModel.splice(gprm.colModel.length-1);
-                        }
-                    }
-                }
-                switch (o.exptype) {
-                    case 'xmlstring' :
-                        ret = "<"+o.root+">"+xmlJsonClass.json2xml(gprm,o.ident)+"</"+o.root+">";
-                        break;
-                    case 'jsonstring' :
-                        ret = "{"+ xmlJsonClass.toJson(gprm,o.root,o.ident)+"}";
-                        if(gprm.postData.filters !== undefined) {
-                            ret=ret.replace(/filters":"/,'filters":');
-                            ret=ret.replace(/}]}"/,'}]}');
-                        }
-                        break;
-                }
-            });
-            return ret;
-        },
-        excelExport : function(o) {
-            o = $.extend({
-                exptype : "remote",
-                url : null,
-                oper: "oper",
-                tag: "excel",
-                exportOptions : {}
-            }, o || {});
-            return this.each(function(){
-                $t = this;
-                if(!this.grid) { return;}
-                if(o.exptype == "remote") {
-                    var pdata = $.extend({},this.p.postData);
-                    pdata[o.oper] = o.tag;
-                    var params = jQuery.param(pdata);
-                    window.location = o.url+"?"+params;
-                }
-            });
-        }
-    });
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.import.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js	(nonexistent)
@@ -1,503 +0,0 @@
-;(function($){
-/*
-**
- * jqGrid addons using jQuery UI 
- * Author: Mark Williams
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
- * depends on jQuery UI 
-**/
-if ($.browser.msie && $.browser.version==8) {
-	$.expr[":"].hidden = function(elem) {
-		return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||
-			elem.style.display == "none";
-	};
-}
-// requiere load multiselect before grid
-$.jgrid._multiselect = false;
-if($.ui) {
-	if ($.ui.multiselect ) {
-		if($.ui.multiselect.prototype._setSelected) {
-			var setSelected = $.ui.multiselect.prototype._setSelected;
-		    $.ui.multiselect.prototype._setSelected = function(item,selected) {
-		        var ret = setSelected.call(this,item,selected);
-		        if (selected && this.selectedList) {
-		            var elt = this.element;
-				    this.selectedList.find('li').each(function() {
-					    if ($(this).data('optionLink')) {
-						    $(this).data('optionLink').remove().appendTo(elt);
-					    }
-				    });
-		        }
-		        return ret;
-			};
-		}
-		if($.ui.multiselect.prototype.destroy) {
-			$.ui.multiselect.prototype.destroy = function() {
-				this.element.show();
-				this.container.remove();
-				if ($.Widget === undefined) {
-					$.widget.prototype.destroy.apply(this, arguments);
-				} else {
-					$.Widget.prototype.destroy.apply(this, arguments);
-	            }
-			};
-		}
-		$.jgrid._multiselect = true;
-	}
-}
-        
-$.jgrid.extend({
-	sortableColumns : function (tblrow)
-	{
-		return this.each(function (){
-			var ts = this;
-			function start() {ts.p.disableClick = true;}
-			var sortable_opts = {
-				"tolerance" : "pointer",
-				"axis" : "x",
-				"scrollSensitivity": "1",
-				"items": '>th:not(:has(#jqgh_cb,#jqgh_rn,#jqgh_subgrid),:hidden)',
-				"placeholder": {
-					element: function(item) {
-						var el = $(document.createElement(item[0].nodeName))
-						.addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight")
-						.removeClass("ui-sortable-helper")[0];
-						return el;
-					},
-					update: function(self, p) {
-						p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));
-						p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));
-					}
-				},
-				"update": function(event, ui) {
-					var p = $(ui.item).parent();
-					var th = $(">th", p);
-					var colModel = ts.p.colModel;
-					var cmMap = {};
-					$.each(colModel, function(i) { cmMap[this.name]=i; });
-					var permutation = [];
-					th.each(function(i) {
-						var id = $(">div", this).get(0).id.replace(/^jqgh_/, "");
-							if (id in cmMap) {
-								permutation.push(cmMap[id]);
-							}
-					});
-	
-					$(ts).jqGrid("remapColumns",permutation, true, true);
-					if ($.isFunction(ts.p.sortable.update)) {
-						ts.p.sortable.update(permutation);
-					}
-					setTimeout(function(){ts.p.disableClick=false;}, 50);
-				}
-			};
-			if (ts.p.sortable.options) {
-				$.extend(sortable_opts, ts.p.sortable.options);
-			} else if ($.isFunction(ts.p.sortable)) {
-				ts.p.sortable = { "update" : ts.p.sortable };
-			}
-			if (sortable_opts.start) {
-				var s = sortable_opts.start;
-				sortable_opts.start = function(e,ui) {
-					start();
-					s.call(this,e,ui);
-				};
-			} else {
-				sortable_opts.start = start;
-			}
-			if (ts.p.sortable.exclude) {
-				sortable_opts.items += ":not("+ts.p.sortable.exclude+")";
-			}
-			tblrow.sortable(sortable_opts).data("sortable").floating = true;
-		});
-	},
-    columnChooser : function(opts) {
-        var self = this;
-		if($("#colchooser_"+self[0].p.id).length ) { return; }
-        var selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
-        var select = $('select', selector);
-
-        opts = $.extend({
-            "width" : 420,
-            "height" : 240,
-            "classname" : null,
-            "done" : function(perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } },
-            /* msel is either the name of a ui widget class that
-               extends a multiselect, or a function that supports
-               creating a multiselect object (with no argument,
-               or when passed an object), and destroying it (when
-               passed the string "destroy"). */
-            "msel" : "multiselect",
-            /* "msel_opts" : {}, */
-
-            /* dlog is either the name of a ui widget class that 
-               behaves in a dialog-like way, or a function, that
-               supports creating a dialog (when passed dlog_opts)
-               or destroying a dialog (when passed the string
-               "destroy")
-               */
-            "dlog" : "dialog",
-
-            /* dlog_opts is either an option object to be passed 
-               to "dlog", or (more likely) a function that creates
-               the options object.
-               The default produces a suitable options object for
-               ui.dialog */
-            "dlog_opts" : function(opts) {
-                var buttons = {};
-                buttons[opts.bSubmit] = function() {
-                    opts.apply_perm();
-                    opts.cleanup(false);
-                };
-                buttons[opts.bCancel] = function() {
-                    opts.cleanup(true);
-                };
-                return {
-                    "buttons": buttons,
-                    "close": function() {
-                        opts.cleanup(true);
-                    },
-					"modal" : false,
-                    "resizable": false,
-                    "width": opts.width+20
-                };
-            },
-            /* Function to get the permutation array, and pass it to the
-               "done" function */
-            "apply_perm" : function() {
-                $('option',select).each(function(i) {
-                    if (this.selected) {
-                        self.jqGrid("showCol", colModel[this.value].name);
-                    } else {
-                        self.jqGrid("hideCol", colModel[this.value].name);
-                    }
-                });
-                
-                var perm = [];
-				//fixedCols.slice(0);
-                $('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });
-                $.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });
-                $.each(colMap, function() {
-					var ti = parseInt(this,10);
-					perm = insert(perm,ti,ti);
-				});
-                if (opts.done) {
-                    opts.done.call(self, perm);
-                }
-            },
-            /* Function to cleanup the dialog, and select. Also calls the
-               done function with no permutation (to indicate that the
-               columnChooser was aborted */
-            "cleanup" : function(calldone) {
-                call(opts.dlog, selector, 'destroy');
-                call(opts.msel, select, 'destroy');
-                selector.remove();
-                if (calldone && opts.done) {
-                    opts.done.call(self);
-                }
-            },
-			"msel_opts" : {}
-        }, $.jgrid.col, opts || {});
-		if($.ui) {
-			if ($.ui.multiselect ) {
-				if(opts.msel == "multiselect") {
-					if(!$.jgrid._multiselect) {
-						// should be in language file
-						alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");
-						return;
-					}
-					opts.msel_opts = $.extend($.ui.multiselect.defaults,opts.msel_opts);
-				}
-			}
-		}
-        if (opts.caption) {
-            selector.attr("title", opts.caption);
-        }
-        if (opts.classname) {
-            selector.addClass(opts.classname);
-            select.addClass(opts.classname);
-        }
-        if (opts.width) {
-            $(">div",selector).css({"width": opts.width,"margin":"0 auto"});
-            select.css("width", opts.width);
-        }
-        if (opts.height) {
-            $(">div",selector).css("height", opts.height);
-            select.css("height", opts.height - 10);
-        }
-        var colModel = self.jqGrid("getGridParam", "colModel");
-        var colNames = self.jqGrid("getGridParam", "colNames");
-        var colMap = {}, fixedCols = [];
-
-        select.empty();
-        $.each(colModel, function(i) {
-            colMap[this.name] = i;
-            if (this.hidedlg) {
-                if (!this.hidden) {
-                    fixedCols.push(i);
-                }
-                return;
-            }
-
-            select.append("<option value='"+i+"' "+
-                          (this.hidden?"":"selected='selected'")+">"+colNames[i]+"</option>");
-        });
-		function insert(perm,i,v) {
-			if(i>=0){
-				var a = perm.slice();
-				var b = a.splice(i,Math.max(perm.length-i,i));
-				if(i>perm.length) { i = perm.length; }
-				a[i] = v;
-				return a.concat(b);
-			}
-		}
-        function call(fn, obj) {
-            if (!fn) { return; }
-            if (typeof fn == 'string') {
-                if ($.fn[fn]) {
-                    $.fn[fn].apply(obj, $.makeArray(arguments).slice(2));
-                }
-            } else if ($.isFunction(fn)) {
-                fn.apply(obj, $.makeArray(arguments).slice(2));
-            }
-        }
-
-        var dopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;
-        call(opts.dlog, selector, dopts);
-        var mopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;
-        call(opts.msel, select, mopts);
-    },
-	sortableRows : function (opts) {
-		// Can accept all sortable options and events
-		return this.each(function(){
-			var $t = this;
-			if(!$t.grid) { return; }
-			// Currently we disable a treeGrid sortable
-			if($t.p.treeGrid) { return; }
-			if($.fn.sortable) {
-				opts = $.extend({
-					"cursor":"move",
-					"axis" : "y",
-					"items": ".jqgrow"
-					},
-				opts || {});
-				if(opts.start && $.isFunction(opts.start)) {
-					opts._start_ = opts.start;
-					delete opts.start;
-				} else {opts._start_=false;}
-				if(opts.update && $.isFunction(opts.update)) {
-					opts._update_ = opts.update;
-					delete opts.update;
-				} else {opts._update_ = false;}
-				opts.start = function(ev,ui) {
-					$(ui.item).css("border-width","0px");
-					$("td",ui.item).each(function(i){
-						this.style.width = $t.grid.cols[i].style.width;
-					});
-					if($t.p.subGrid) {
-						var subgid = $(ui.item).attr("id");
-						try {
-							$($t).jqGrid('collapseSubGridRow',subgid);
-						} catch (e) {}
-					}
-					if(opts._start_) {
-						opts._start_.apply(this,[ev,ui]);
-					}
-				};
-				opts.update = function (ev,ui) {
-					$(ui.item).css("border-width","");
-					$t.updateColumns();
-					if($t.p.rownumbers === true) {
-						$("td.jqgrid-rownum",$t.rows).each(function(i){
-							$(this).html(i+1);
-						});
-					}
-					if(opts._update_) {
-						opts._update_.apply(this,[ev,ui]);
-					}
-				};
-				$("tbody:first",$t).sortable(opts);
-				$("tbody:first",$t).disableSelection();
-			}
-		});
-	},
-	gridDnD : function(opts) {
-		return this.each(function(){
-		var $t = this;
-		if(!$t.grid) { return; }
-		// Currently we disable a treeGrid drag and drop
-		if($t.p.treeGrid) { return; }
-		if(!$.fn.draggable || !$.fn.droppable) { return; }
-		function updateDnD ()
-		{
-			var datadnd = $.data($t,"dnd");
-		    $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);
-		}
-		var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>";
-		if($("#jqgrid_dnd").html() === null) {
-			$('body').append(appender);
-		}
-
-		if(typeof opts == 'string' && opts == 'updateDnD' && $t.p.jqgdnd===true) {
-			updateDnD();
-			return;
-		}
-		opts = $.extend({
-			"drag" : function (opts) {
-				return $.extend({
-					start : function (ev, ui) {
-						// if we are in subgrid mode try to collapse the node
-						if($t.p.subGrid) {
-							var subgid = $(ui.helper).attr("id");
-							try {
-								$($t).jqGrid('collapseSubGridRow',subgid);
-							} catch (e) {}
-						}
-						// hack
-						// drag and drop does not insert tr in table, when the table has no rows
-						// we try to insert new empty row on the target(s)
-						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
-							if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') == "0" ){
-								$($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});
-							}
-						}
-						ui.helper.addClass("ui-state-highlight");
-						$("td",ui.helper).each(function(i) {
-							this.style.width = $t.grid.headers[i].width+"px";
-						});
-						if(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }
-					},
-					stop :function(ev,ui) {
-						if(ui.helper.dropped) {
-							var ids = $(ui.helper).attr("id");
-							$($t).jqGrid('delRowData',ids );
-						}
-						// if we have a empty row inserted from start event try to delete it
-						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
-							$($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row');
-						}
-						if(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }
-					}
-				},opts.drag_opts || {});
-			},
-			"drop" : function (opts) {
-				return $.extend({
-					accept: function(d) {
-						var tid = $(d).closest("table.ui-jqgrid-btable");
-						if($.data(tid[0],"dnd") !== undefined) {
-						    var cn = $.data(tid[0],"dnd").connectWith;
-						    return $.inArray('#'+this.id,cn) != -1 ? true : false;
-						}
-						return d;
-					},
-					drop: function(ev, ui) {
-						var accept = $(ui.draggable).attr("id");
-						var getdata = $('#'+$t.id).jqGrid('getRowData',accept);
-						if(!opts.dropbyname) {
-							var j =0, tmpdata = {}, dropname;
-							var dropmodel = $("#"+this.id).jqGrid('getGridParam','colModel');
-							try {
-								for (var key in getdata) {
-									if(getdata.hasOwnProperty(key) && dropmodel[j]) {
-										dropname = dropmodel[j].name;
-										tmpdata[dropname] = getdata[key];
-									}
-									j++;
-								}
-								getdata = tmpdata;
-							} catch (e) {}
-						}
-						ui.helper.dropped = true;
-						if(opts.beforedrop && $.isFunction(opts.beforedrop) ) {
-							//parameters to this callback - event, element, data to be inserted, sender, reciever
-							// should return object which will be inserted into the reciever
-							var datatoinsert = opts.beforedrop.call(this,ev,ui,getdata,$('#'+$t.id),$(this));
-							if (typeof datatoinsert != "undefined" && datatoinsert !== null && typeof datatoinsert == "object") { getdata = datatoinsert; }
-						}
-						if(ui.helper.dropped) {
-							var grid;
-							if(opts.autoid) {
-								if($.isFunction(opts.autoid)) {
-									grid = opts.autoid.call(this,getdata);
-								} else {
-									grid = Math.ceil(Math.random()*1000);
-									grid = opts.autoidprefix+grid;
-								}
-							}
-							// NULL is interpreted as undefined while null as object
-							$("#"+this.id).jqGrid('addRowData',grid,getdata,opts.droppos);
-						}
-						if(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }
-					}}, opts.drop_opts || {});
-			},
-			"onstart" : null,
-			"onstop" : null,
-			"beforedrop": null,
-			"ondrop" : null,
-			"drop_opts" : {
-				"activeClass": "ui-state-active",
-				"hoverClass": "ui-state-hover"
-			},
-			"drag_opts" : {
-				"revert": "invalid",
-				"helper": "clone",
-				"cursor": "move",
-				"appendTo" : "#jqgrid_dnd",
-				"zIndex": 5000
-			},
-			"dropbyname" : false,
-			"droppos" : "first",
-			"autoid" : true,
-			"autoidprefix" : "dnd_"
-		}, opts || {});
-		
-		if(!opts.connectWith) { return; }
-		opts.connectWith = opts.connectWith.split(",");
-		opts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});
-		$.data($t,"dnd",opts);
-		
-		if($t.p.reccount != "0" && !$t.p.jqgdnd) {
-			updateDnD();
-		}
-		$t.p.jqgdnd = true;
-		for (var i=0;i<opts.connectWith.length;i++){
-			var cn =opts.connectWith[i];
-			$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);
-		}
-		});
-	},
-	gridResize : function(opts) {
-		return this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$.fn.resizable) { return; }
-			opts = $.extend({}, opts || {});
-			if(opts.alsoResize ) {
-				opts._alsoResize_ = opts.alsoResize;
-				delete opts.alsoResize;
-			} else {
-				opts._alsoResize_ = false;
-			}
-			if(opts.stop && $.isFunction(opts.stop)) {
-				opts._stop_ = opts.stop;
-				delete opts.stop;
-			} else {
-				opts._stop_ = false;
-			}
-			opts.stop = function (ev, ui) {
-				$($t).jqGrid('setGridParam',{height:$("#gview_"+$t.p.id+" .ui-jqgrid-bdiv").height()});
-				$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);
-				if(opts._stop_) { opts._stop_.call($t,ev,ui); }
-			};
-			if(opts._alsoResize_) {
-				var optstest = "{\'#gview_"+$t.p.id+" .ui-jqgrid-bdiv\':true,'" +opts._alsoResize_+"':true}";
-				opts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this
-			} else {
-				opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+$t.p.id);
-			}
-			delete opts._alsoResize_;
-			$("#gbox_"+$t.p.id).resizable(opts);
-		});
-	}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.jqueryui.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js	(nonexistent)
@@ -1,249 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for manipulating Grid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-//Editing
-	editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
-		return this.each(function(){
-			var $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm;
-			if (!$t.grid ) { return; }
-			ind = $($t).jqGrid("getInd",rowid,true);
-			if( ind === false ) {return;}
-			editable = $(ind).attr("editable") || "0";
-			if (editable == "0" && !$(ind).hasClass("not-editable-row")) {
-				cm = $t.p.colModel;
-				$('td',ind).each( function(i) {
-					nm = cm[i].name;
-					var treeg = $t.p.treeGrid===true && nm == $t.p.ExpandColumn;
-					if(treeg) { tmp = $("span:first",this).html();}
-					else {
-						try {
-							tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
-						} catch (_) {
-							tmp = $(this).html();
-						}
-					}
-					if ( nm != 'cb' && nm != 'subgrid' && nm != 'rn') {
-						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-						svr[nm]=tmp;
-						if(cm[i].editable===true) {
-							if(focus===null) { focus = i; }
-							if (treeg) { $("span:first",this).html(""); }
-							else { $(this).html(""); }
-							var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm});
-							if(!cm[i].edittype) { cm[i].edittype = "text"; }
-							var elc = createEl(cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
-							$(elc).addClass("editable");
-							if(treeg) { $("span:first",this).append(elc); }
-							else { $(this).append(elc); }
-							//Again IE
-							if(cm[i].edittype == "select" && cm[i].editoptions.multiple===true && $.browser.msie) {
-								$(elc).width($(elc).width());
-							}
-							cnt++;
-						}
-					}
-				});
-				if(cnt > 0) {
-					svr.id = rowid; $t.p.savedRow.push(svr);
-					$(ind).attr("editable","1");
-					$("td:eq("+focus+") input",ind).focus();
-					if(keys===true) {
-						$(ind).bind("keydown",function(e) {
-							if (e.keyCode === 27) {$($t).jqGrid("restoreRow",rowid, afterrestorefunc);}
-							if (e.keyCode === 13) {
-								var ta = e.target;
-								if(ta.tagName == 'TEXTAREA') { return true; }
-								$($t).jqGrid("saveRow",rowid,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc );
-								return false;
-							}
-							e.stopPropagation();
-						});
-					}
-					if( $.isFunction(oneditfunc)) { oneditfunc(rowid); }
-				}
-			}
-		});
-	},
-	saveRow : function(rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
-		return this.each(function(){
-		var $t = this, nm, tmp={}, tmp2={}, editable, fr, cv, ind;
-		if (!$t.grid ) { return; }
-		ind = $($t).jqGrid("getInd",rowid,true);
-		if(ind === false) {return;}
-		editable = $(ind).attr("editable");
-		url = url ? url : $t.p.editurl;
-		if (editable==="1") {
-			var cm;
-			$("td",ind).each(function(i) {
-				cm = $t.p.colModel[i];
-				nm = cm.name;
-				if ( nm != 'cb' && nm != 'subgrid' && cm.editable===true && nm != 'rn') {
-					switch (cm.edittype) {
-						case "checkbox":
-							var cbv = ["Yes","No"];
-							if(cm.editoptions ) {
-								cbv = cm.editoptions.value.split(":");
-							}
-							tmp[nm]=  $("input",this).attr("checked") ? cbv[0] : cbv[1]; 
-							break;
-						case 'text':
-						case 'password':
-						case 'textarea':
-						case "button" :
-							tmp[nm]=$("input, textarea",this).val();
-							break;
-						case 'select':
-							if(!cm.editoptions.multiple) {
-								tmp[nm] = $("select>option:selected",this).val();
-								tmp2[nm] = $("select>option:selected", this).text();
-							} else {
-								var sel = $("select",this), selectedText = [];
-								tmp[nm] = $(sel).val();
-								if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; }
-								$("select > option:selected",this).each(
-									function(i,selected){
-										selectedText[i] = $(selected).text();
-									}
-								);
-								tmp2[nm] = selectedText.join(",");
-							}
-							if(cm.formatter && cm.formatter == 'select') { tmp2={}; }
-							break;
-						case 'custom' :
-							try {
-								if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
-									tmp[nm] = cm.editoptions.custom_value($(".customelement",this),'get');
-									if (tmp[nm] === undefined) { throw "e2"; }
-								} else { throw "e1"; }
-							} catch (e) {
-								if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
-								if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
-								else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-							}
-							break;
-					}
-					cv = checkValues(tmp[nm],i,$t);
-					if(cv[0] === false) {
-						cv[1] = tmp[nm] + " " + cv[1];
-						return false;
-					}
-					if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }
-				}
-			});
-			if (cv[0] === false){
-				try {
-					var positions = findPos($("#"+rowid)[0]);
-					info_dialog($.jgrid.errors.errcap,cv[1],$.jgrid.edit.bClose,{left:positions[0],top:positions[1]});
-				} catch (e) {
-					alert(cv[1]);
-				}
-				return;
-			}
-			if(tmp) {
-				var idname, opers, oper;
-				opers = $t.p.prmNames;
-				oper = opers.oper;
-				idname = opers.id;
-				tmp[oper] = opers.editoper;
-				tmp[idname] = rowid;
-				if(typeof($t.p.inlineData) == 'undefined') { $t.p.inlineData ={}; }
-				if(typeof(extraparam) == 'undefined') { extraparam ={}; }
-				tmp = $.extend({},tmp,$t.p.inlineData,extraparam);
-			}
-			if (url == 'clientArray') {
-				tmp = $.extend({},tmp, tmp2);
-				if($t.p.autoencode) {
-					$.each(tmp,function(n,v){
-						tmp[n] = $.jgrid.htmlDecode(v);
-					});
-				}
-				var resp = $($t).jqGrid("setRowData",rowid,tmp);
-				$(ind).attr("editable","0");
-				for( var k=0;k<$t.p.savedRow.length;k++) {
-					if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
-				}
-				if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
-				if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,resp); }
-			} else {
-				$("#lui_"+$t.p.id).show();
-				$.ajax($.extend({
-					url:url,
-					data: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData(tmp) : tmp,
-					type: "POST",
-					complete: function(res,stat){
-						$("#lui_"+$t.p.id).hide();
-						if (stat === "success"){
-							var ret;
-							if( $.isFunction(succesfunc)) { ret = succesfunc(res);}
-							else { ret = true; }
-							if (ret===true) {
-								if($t.p.autoencode) {
-									$.each(tmp,function(n,v){
-										tmp[n] = $.jgrid.htmlDecode(v);
-									});
-								}
-								tmp = $.extend({},tmp, tmp2);
-								$($t).jqGrid("setRowData",rowid,tmp);
-								$(ind).attr("editable","0");
-								for( var k=0;k<$t.p.savedRow.length;k++) {
-									if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
-								}
-								if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
-								if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,res); }
-							} else { $($t).jqGrid("restoreRow",rowid, afterrestorefunc); }
-						}
-					},
-					error:function(res,stat){
-						$("#lui_"+$t.p.id).hide();
-						if($.isFunction(errorfunc) ) {
-							errorfunc(rowid, res, stat);
-						} else {
-							alert("Error Row: "+rowid+" Result: " +res.status+":"+res.statusText+" Status: "+stat);
-						}
-					}
-				}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));
-			}
-			$(ind).unbind("keydown");
-		}
-		});
-	},
-	restoreRow : function(rowid, afterrestorefunc) {
-		return this.each(function(){
-			var $t= this, fr, ind, ares={};
-			if (!$t.grid ) { return; }
-			ind = $($t).jqGrid("getInd",rowid,true);
-			if(ind === false) {return;}
-			for( var k=0;k<$t.p.savedRow.length;k++) {
-				if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
-			}
-			if(fr >= 0) {
-				if($.isFunction($.fn.datepicker)) {
-					try {
-						$("input.hasDatepicker","#"+ind.id).datepicker('hide');
-					} catch (e) {}
-				}
-				$.each($t.p.colModel, function(i,n){
-					if(this.editable === true && this.name in $t.p.savedRow[fr]) {
-						ares[this.name] = $t.p.savedRow[fr][this.name];
-					}
-				});
-				$($t).jqGrid("setRowData",rowid,ares);
-				$(ind).attr("editable","0").unbind("keydown");
-				$t.p.savedRow.splice(fr,1);
-			}
-			if ($.isFunction(afterrestorefunc))
-			{
-				afterrestorefunc(rowid);
-			}
-		});
-	}
-//end inline edit
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.inlinedit.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid (fi) Finnish Translation
- * Jukka Inkeri  awot.fi
- * http://awot.fi
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Haetaan...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Etsi...",
-	    Find: "Etsi",
-	    Reset: "Tyhj&auml;&auml;",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Uusi rivi",
-	    editCaption: "Muokkaa rivi",
-	    bSubmit: "OK",
-	    bCancel: "Peru",
-		bClose: "Sulje",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"pakollinen",
-	        number:"Anna kelvollinen nro",
-	        minValue:"arvo oltava >= ",
-	        maxValue:"arvo oltava  <= ",
-	        email: "virheellinen sposti ",
-	        integer: "Anna kelvollinen kokonaisluku",
-			date: "Anna kelvollinen pvm",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Poista",
-	    msg: "Poista valitut  rivi(t)?",
-	    bSubmit: "Poista",
-	    bCancel: "Peru"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Muokkaa valittu rivi",
-		addtext:" ",
-	    addtitle: "Uusi rivi",
-	    deltext: " ",
-	    deltitle: "Poista valittu rivi",
-	    searchtext: " ",
-	    searchtitle: "Etsi tietoja",
-	    refreshtext: "",
-	    refreshtitle: "Lataa uudelleen",
-	    alertcap: "Varoitus",
-	    alerttext: "Valitse rivi",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Nayta/Piilota sarakkeet",
-	    bSubmit: "OK",
-	    bCancel: "Peru"	
-	},
-	errors : {
-		errcap : "Virhe",
-		nourl : "url asettamatta",
-		norecords: "Ei muokattavia tietoja",
-	    model : "Pituus colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: "", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Su", "Ma", "Ti", "Ke", "To", "Pe", "La",
-				"Sunnuntai", "Maanantai", "Tiista", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"
-			],
-			monthNames: [
-				"Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou",
-				"Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "d.m.Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-// FI
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fi.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Danish Translation
- * Kaare Rasmussen kjs@jasonic.dk
- * http://jasonic.dk/blog 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Loading...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Søg...",
-	    Find: "Find",
-	    Reset: "Nulstil",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Tilføj",
-	    editCaption: "Ret",
-	    bSubmit: "Send",
-	    bCancel: "Annuller",
-		bClose: "Luk",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Felt er nødvendigt",
-	        number:"Indtast venligst et validt tal",
-	        minValue:"værdi skal være større end eller lig med",
-	        maxValue:"værdi skal være mindre end eller lig med",
-	        email: "er ikke en valid email",
-	        integer: "Indtast venligst et validt heltalt",
-			date: "Indtast venligst en valid datoværdi",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Slet",
-	    msg: "Slet valgte række(r)?",
-	    bSubmit: "Slet",
-	    bCancel: "Annuller"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Rediger valgte række",
-		addtext:" ",
-	    addtitle: "Tilføj ny række",
-	    deltext: " ",
-	    deltitle: "Slet valgte række",
-	    searchtext: " ",
-	    searchtitle: "Find poster",
-	    refreshtext: "",
-	    refreshtitle: "Indlæs igen",
-	    alertcap: "Advarsel",
-	    alerttext: "Vælg venligst række",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Vis/skjul kolonner",
-	    bSubmit: "Send",
-	    bCancel: "Annuller"
-	},
-	errors : {
-		errcap : "Fejl",
-		nourl : "Ingel url valgt",
-		norecords: "Ingen poster at behandle",
-	    model : "colNames og colModel har ikke samme længde!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør",
-				"Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
-				"Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {return '.'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "j/n/Y",
-	            LongDate: "l d. F Y",
-	            FullDateTime: "l d F Y G:i:s",
-	            MonthDay: "d. F",
-	            ShortTime: "G:i",
-	            LongTime: "G:i:s",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-// DK
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-dk.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid Greek (el) Translation
- * Alex Cicovic
- * http://www.alexcicovic.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Φόρτωση...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Αναζήτηση...",
-	    Find: "Εύρεση",
-	    Reset: "Επαναφορά",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Εισαγωγή Εγγραφής",
-	    editCaption: "Επεξεργασία Εγγραφής",
-	    bSubmit: "Καταχώρηση",
-	    bCancel: "Άκυρο",
-		bClose: "Κλείσιμο",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Το πεδίο είναι απαραίτητο",
-	        number:"Το πεδίο δέχεται μόνο αριθμούς",
-	        minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",
-	        maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",
-	        email: "Η διεύθυνση e-mail δεν είναι έγκυρη",
-	        integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Διαγραφή",
-	    msg: "Διαγραφή των επιλεγμένων εγγραφών;",
-	    bSubmit: "Ναι",
-	    bCancel: "Άκυρο"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Επεξεργασία επιλεγμένης εγγραφής",
-		addtext:" ",
-	    addtitle: "Εισαγωγή νέας εγγραφής",
-	    deltext: " ",
-	    deltitle: "Διαγραφή επιλεγμένης εγγραφής",
-	    searchtext: " ",
-	    searchtitle: "Εύρεση Εγγραφών",
-	    refreshtext: "",
-	    refreshtitle: "Ανανέωση Πίνακα",
-	    alertcap: "Προσοχή",
-	    alerttext: "Δεν έχετε επιλέξει εγγραφή",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Εμφάνιση / Απόκρυψη Στηλών",
-	    bSubmit: "ΟΚ",
-	    bCancel: "Άκυρο"
-	},
-	errors : {
-		errcap : "Σφάλμα",
-		nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",
-		norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία",
-		model : "Άνισος αριθμός πεδίων colNames/colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ",
-				"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"
-			],
-			monthNames: [
-				"Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ",
-				"Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
-			],
-			AmPm : ["πμ","μμ","ΠΜ","ΜΜ"],
-			S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-el.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js	(nonexistent)
@@ -1,132 +0,0 @@
-;(function($){
-/**
- * jqGrid Chinese Translation for v3.6
- * waiting 2010.01.18
- * http://waiting.javaeye.com/
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- * 
- * update 2010.05.04
- *		add double u3000 SPACE for search:odata to fix SEARCH box display err when narrow width from only use of eq/ne/cn/in/lt/gt operator under IE6/7
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1}\u3000共 {2} 条",	// 共字前是全角空格
-		emptyrecords: "无数据显示",
-		loadtext: "读取中...",
-		pgtext : " {0} 共 {1} 页"
-	},
-	search : {
-		caption: "搜索...",
-		Find: "查找",
-		Reset: "重置",
-		odata : ['等于\u3000\u3000', '不等\u3000\u3000', '小于\u3000\u3000', '小于等于','大于\u3000\u3000','大于等于', 
-			'开始于','不开始于','属于\u3000\u3000','不属于','结束于','不结束于','包含\u3000\u3000','不包含'],
-		groupOps: [	{ op: "AND", text: "所有" },	{ op: "OR",  text: "任一" }	],
-		matchText: " 匹配",
-		rulesText: " 规则"
-	},
-	edit : {
-		addCaption: "添加记录",
-		editCaption: "编辑记录",
-		bSubmit: "提交",
-		bCancel: "取消",
-		bClose: "关闭",
-		saveData: "数据已改变，是否保存？",
-		bYes : "是",
-		bNo : "否",
-		bExit : "取消",
-		msg: {
-			required:"此字段必需",
-			number:"请输入有效数字",
-			minValue:"输值必须大于等于 ",
-			maxValue:"输值必须小于等于 ",
-			email: "这不是有效的e-mail地址",
-			integer: "请输入有效整数",
-			date: "请输入有效时间",
-			url: "无效网址。前缀必须为 ('http://' 或 'https://')",
-			nodefined : " 未定义！",
-			novalue : " 需要返回值！",
-			customarray : "自定义函数需要返回数组！",
-			customfcheck : "Custom function should be present in case of custom checking!"
-			
-		}
-	},
-	view : {
-		caption: "查看记录",
-		bClose: "关闭"
-	},
-	del : {
-		caption: "删除",
-		msg: "删除所选记录？",
-		bSubmit: "删除",
-		bCancel: "取消"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "编辑所选记录",
-		addtext:"",
-		addtitle: "添加新记录",
-		deltext: "",
-		deltitle: "删除所选记录",
-		searchtext: "",
-		searchtitle: "查找",
-		refreshtext: "",
-		refreshtitle: "刷新表格",
-		alertcap: "注意",
-		alerttext: "请选择记录",
-		viewtext: "",
-		viewtitle: "查看所选记录"
-	},
-	col : {
-		caption: "选择列",
-		bSubmit: "确定",
-		bCancel: "取消"
-	},
-	errors : {
-		errcap : "错误",
-		nourl : "没有设置url",
-		norecords: "没有要处理的记录",
-		model : "colNames 和 colModel 长度不等！"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
-		         "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'm-d-Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "Y/j/n",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cn.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js	(nonexistent)
@@ -1,132 +0,0 @@
-;(function($){
-/**
- * jqGrid Bulgarian Translation 
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1} �� {2}",
-		emptyrecords: "���� �����(�)",
-		loadtext: "��������...",
-		pgtext : "���. {0} �� {1}"
-	},
-	search : {
-		caption: "�������...",
-		Find: "������",
-		Reset: "�������",
-		odata : ['�����', '��������', '��-�����', '��-����� ���=','��-������','��-������ ��� =', '������� �','�� ������� �','�� ������ �','�� �� ������ �','�������� �','�� ��������� �','�������', '�� �������' ],
-	    groupOps: [	{ op: "AND", text: " � " },	{ op: "OR",  text: "���" }	],
-		matchText: " ������",
-		rulesText: " ������"
-	},
-	edit : {
-		addCaption: "��� �����",
-		editCaption: "�������� �����",
-		bSubmit: "������",
-		bCancel: "�����",
-		bClose: "�������",
-		saveData: "������� �� ���������! �� ������� �� ���������?",
-		bYes : "��",
-		bNo : "��",
-		bExit : "�����",
-		msg: {
-		    required:"������ � ������������",
-		    number:"�������� ������� �����!",
-		    minValue:"���������� ������ �� � ��-������ ��� ����� ��",
-		    maxValue:"���������� ������ �� � ��-����� ��� ����� ��",
-		    email: "�� � ������� ��. �����",
-		    integer: "�������� ������� ���� �����",
-			date: "�������� ������� ����",
-			url: "e ��������� URL. �������� �� �������('http://' ��� 'https://')",
-			nodefined : " � ������������!",
-			novalue : " ������� ������� �� ��������!",
-			customarray : "������. ������� ������ �� ����� �����!",
-			customfcheck : "������������� ������� � ������������ ��� ���� ��� �������!"
-		}
-	},
-	view : {
-	    caption: "������� �����",
-	    bClose: "�������"
-	},
-	del : {
-		caption: "���������",
-		msg: "�� ������ �� ��������� �����?",
-		bSubmit: "������",
-		bCancel: "�����"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "�������� ������ �����",
-		addtext:" ",
-		addtitle: "�������� ��� �����",
-		deltext: " ",
-		deltitle: "��������� ������ �����",
-		searchtext: " ",
-		searchtitle: "������� �����(�)",
-		refreshtext: "",
-		refreshtitle: "������ �������",
-		alertcap: "��������������",
-		alerttext: "����, �������� �����",
-		viewtext: "",
-		viewtitle: "������� ������ �����"
-	},
-	col : {
-		caption: "����� ������",
-		bSubmit: "��",
-		bCancel: "�����"	
-	},
-	errors : {
-		errcap : "������",
-		nourl : "���� ������� url �����",
-		norecords: "���� ����� �� ���������",
-		model : "������ �� ����������� �� �������!"	
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" ��.", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"���", "���", "��", "��", "���", "���", "���",
-				"������", "����������", "�������", "�����", "���������", "�����", "������"
-			],
-			monthNames: [
-				"���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���",
-				"������", "��������", "����", "�����", "���", "���", "���", "������", "���������", "��������", "�������", "��������"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {
-				if(j==7 || j==8 || j== 27 || j== 28) {
-					return '��';
-				}
-				return ['��', '��', '��'][Math.min((j - 1) % 10, 2)];
-			},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg1251.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid English Translation
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-		emptyrecords: "No records to view",
-		loadtext: "Loading...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-		caption: "Search...",
-		Find: "Find",
-		Reset: "Reset",
-		odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-		groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-		addCaption: "Add Record",
-		editCaption: "Edit Record",
-		bSubmit: "Submit",
-		bCancel: "Cancel",
-		bClose: "Close",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-		msg: {
-			required:"Field is required",
-			number:"Please, enter valid number",
-			minValue:"value must be greater than or equal to ",
-			maxValue:"value must be less than or equal to",
-			email: "is not a valid e-mail",
-			integer: "Please, enter valid integer value",
-			date: "Please, enter valid date value",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-			
-		}
-	},
-	view : {
-		caption: "View Record",
-		bClose: "Close"
-	},
-	del : {
-		caption: "Delete",
-		msg: "Delete selected record(s)?",
-		bSubmit: "Delete",
-		bCancel: "Cancel"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "Edit selected row",
-		addtext:"",
-		addtitle: "Add new row",
-		deltext: "",
-		deltitle: "Delete selected row",
-		searchtext: "",
-		searchtitle: "Find records",
-		refreshtext: "",
-		refreshtitle: "Reload Grid",
-		alertcap: "Warning",
-		alerttext: "Please, select row",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-		caption: "Select columns",
-		bSubmit: "Ok",
-		bCancel: "Cancel"
-	},
-	errors : {
-		errcap : "Error",
-		nourl : "No url is set",
-		norecords: "No records to process",
-		model : "Length of colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
-				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-en.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Czech Translation
- * Pavel Jirak pavel.jirak@jipas.cz
- * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Zobrazeno {0} - {1} z {2} záznamů",
-	    emptyrecords: "Nenalezeny žádné záznamy",
-		loadtext: "Načítám...",
-		pgtext : "Strana {0} z {1}"
-	},
-	search : {
-		caption: "Vyhledávám...",
-		Find: "Hledat",
-		Reset: "Reset",
-	    odata : ['rovno', 'nerovono', 'menší', 'menší nebo rovno','větší', 'větší nebo rovno', 'začíná s', 'nezačíná s', 'je v', 'není v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
-	    groupOps: [	{ op: "AND", text: "všech" },	{ op: "OR",  text: "některého z" }	],
-		matchText: " hledat podle",
-		rulesText: " pravidel"
-	},
-	edit : {
-		addCaption: "Přidat záznam",
-		editCaption: "Editace záznamu",
-		bSubmit: "Uložit",
-		bCancel: "Storno",
-		bClose: "Zavřít",
-		saveData: "Data byla změněna! Uložit změny?",
-		bYes : "Ano",
-		bNo : "Ne",
-		bExit : "Zrušit",
-		msg: {
-		    required:"Pole je vyžadováno",
-		    number:"Prosím, vložte validní číslo",
-		    minValue:"hodnota musí být větší než nebo rovná ",
-		    maxValue:"hodnota musí být menší než nebo rovná ",
-		    email: "není validní e-mail",
-		    integer: "Prosím, vložte celé číslo",
-			date: "Prosím, vložte validní datum",
-			url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')",
-			nodefined : " není definován!",
-			novalue : " je vyžadována návratová hodnota!",
-			customarray : "Custom function mělá vrátit pole!",
-			customfcheck : "Custom function by měla být přítomna v případě custom checking!"
-		}
-	},
-	view : {
-	    caption: "Zobrazit záznam",
-	    bClose: "Zavřít"
-	},
-	del : {
-		caption: "Smazat",
-		msg: "Smazat vybraný(é) záznam(y)?",
-		bSubmit: "Smazat",
-		bCancel: "Storno"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Editovat vybraný řádek",
-		addtext:" ",
-		addtitle: "Přidat nový řádek",
-		deltext: " ",
-		deltitle: "Smazat vybraný záznam ",
-		searchtext: " ",
-		searchtitle: "Najít záznamy",
-		refreshtext: "",
-		refreshtitle: "Obnovit tabulku",
-		alertcap: "Varování",
-		alerttext: "Prosím, vyberte řádek",
-		viewtext: "",
-		viewtitle: "Zobrazit vybraný řádek"
-	},
-	col : {
-		caption: "Zobrazit/Skrýt sloupce",
-		bSubmit: "Uložit",
-		bCancel: "Storno"	
-	},
-	errors : {
-		errcap : "Chyba",
-		nourl : "Není nastavena url",
-		norecords: "Žádné záznamy ke zpracování",
-		model : "Délka colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Ne", "Po", "Út", "St", "Čt", "Pá", "So",
-				"Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"
-			],
-			monthNames: [
-				"Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro",
-				"Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
-			],
-			AmPm : ["do","od","DO","OD"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cs.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Ukrainian Translation v1.0 02.07.2009
- * Sergey Dyagovchenko
- * http://d.sumy.ua
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Перегляд {0} - {1} з {2}",
-	  emptyrecords: "Немає записів для перегляду",
-		loadtext: "Завантаження...",
-		pgtext : "Стор. {0} з {1}"
-	},
-	search : {
-    caption: "Пошук...",
-    Find: "Знайти",
-    Reset: "Скидання",
-    odata : ['рівно', 'не рівно', 'менше', 'менше або рівне','більше','більше або рівне', 'починається з','не починається з','знаходиться в','не знаходиться в','закінчується на','не закінчується на','містить','не містить'],
-    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "будь-який" }	],
-    matchText: " збігається",
-    rulesText: " правила"
-	},
-	edit : {
-    addCaption: "Додати запис",
-    editCaption: "Змінити запис",
-    bSubmit: "Зберегти",
-    bCancel: "Відміна",
-		bClose: "Закрити",
-		saveData: "До данних були внесені зміни! Зберегти зміни?",
-		bYes : "Так",
-		bNo : "Ні",
-		bExit : "Відміна",
-	    msg: {
-        required:"Поле є обов'язковим",
-        number:"Будь ласка, введіть правильне число",
-        minValue:"значення повинне бути більше або дорівнює",
-        maxValue:"значення повинно бути менше або дорівнює",
-        email: "некоректна адреса електронної пошти",
-        integer: "Будь ласка, введення дійсне ціле значення",
-        date: "Будь ласка, введення дійсне значення дати",
-        url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')",
-		nodefined : " is not defined!",
-		novalue : " return value is required!",
-		customarray : "Custom function should return array!",
-		customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Переглянути запис",
-	    bClose: "Закрити"
-	},
-	del : {
-	    caption: "Видалити",
-	    msg: "Видалити обраний запис(и)?",
-	    bSubmit: "Видалити",
-	    bCancel: "Відміна"
-	},
-	nav : {
-  		edittext: " ",
-	    edittitle: "Змінити вибраний запис",
-  		addtext:" ",
-	    addtitle: "Додати новий запис",
-	    deltext: " ",
-	    deltitle: "Видалити вибраний запис",
-	    searchtext: " ",
-	    searchtitle: "Знайти записи",
-	    refreshtext: "",
-	    refreshtitle: "Оновити таблицю",
-	    alertcap: "Попередження",
-	    alerttext: "Будь ласка, виберіть запис",
-  		viewtext: "",
-  		viewtitle: "Переглянути обраний запис"
-	},
-	col : {
-	    caption: "Показати/Приховати стовпці",
-	    bSubmit: "Зберегти",
-	    bCancel: "Відміна"
-	},
-	errors : {
-		errcap : "Помилка",
-		nourl : "URL не задан",
-		norecords: "Немає записів для обробки",
-    model : "Число полів не відповідає числу стовпців таблиці!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
-				"Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"
-			],
-			monthNames: [
-				"Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру",
-				"Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd.m.Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n.j.Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y G:i:s",
-	            MonthDay: "F d",
-	            ShortTime: "G:i",
-	            LongTime: "G:i:s",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	  target: '',
-	  checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ua.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid French Translation
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Enregistrements {0} - {1} sur {2}",
-		emptyrecords: "Aucun enregistrement à afficher",
-		loadtext: "Chargement...",
-		pgtext : "Page {0} sur {1}"
-	},
-	search : {
-		caption: "Recherche...",
-		Find: "Chercher",
-		Reset: "Annuler",
-		odata : ['égal', 'différent', 'inférieur', 'inférieur ou égal','supérieur','supérieur ou égal', 'commence par','ne commence pas par','est dans',"n'est pas dans",'finit par','ne finit pas par','contient','ne contient pas'],
-		groupOps: [	{ op: "AND", text: "tous" },	{ op: "OR",  text: "aucun" }	],
-		matchText: " correspondance",
-		rulesText: " règles"
-	},
-	edit : {
-		addCaption: "Ajouter",
-		editCaption: "Editer",
-		bSubmit: "Valider",
-		bCancel: "Annuler",
-		bClose: "Fermer",
-		saveData: "Les données ont changé ! Enregistrer les modifications ?",
-		bYes: "Oui",
-		bNo: "Non",
-		bExit: "Annuler",
-		msg: {
-			required: "Champ obligatoire",
-			number: "Saisissez un nombre correct",
-			minValue: "La valeur doit être supérieure ou égale à 0",
-			maxValue: "La valeur doit être inférieure ou égale à 0",
-			email: "n'est pas un email correct",
-			integer: "Saisissez un entier correct",
-			url: "n'est pas une adresse correcte. Préfixe requis ('http://' or 'https://')",
-			nodefined : " n'est pas défini!",
-			novalue : " la valeur de retour est requise!",
-			customarray : "Une fonction personnalisée devrait retourner un tableau (array)!",
-			customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"
-		}
-	},
-	view : {
-		caption: "Voir les enregistrement",
-		bClose: "Fermer"
-	},
-	del : {
-		caption: "Supprimer",
-		msg: "Supprimer les enregistrements sélectionnés ?",
-		bSubmit: "Supprimer",
-		bCancel: "Annuler"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Editer la ligne sélectionnée",
-		addtext:" ",
-		addtitle: "Ajouter une ligne",
-		deltext: " ",
-		deltitle: "Supprimer la ligne sélectionnée",
-		searchtext: " ",
-		searchtitle: "Chercher un enregistrement",
-		refreshtext: "",
-		refreshtitle: "Recharger le tableau",
-		alertcap: "Avertissement",
-		alerttext: "Veuillez sélectionner une ligne",
-		viewtext: "",
-		viewtitle: "Afficher la ligne sélectionnée"
-	},
-	col : {
-		caption: "Afficher/Masquer les colonnes",
-		bSubmit: "Valider",
-		bCancel: "Annuler"
-	},
-	errors : {
-		errcap : "Erreur",
-		nourl : "Aucune adresse n'est paramétrée",
-		norecords: "Aucun enregistrement à traiter",
-		model : "Nombre de titres (colNames) <> Nombre de données (colModel)!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam",
-				"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
-			],
-			monthNames: [
-				"Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc",
-				"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j == 1 ? 'er' : 'e';},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fr.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Catalan Translation
- * Traducció jqGrid en Catatà per Faserline, S.L.
- * http://www.faserline.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Mostrant {0} - {1} de {2}",
-	    emptyrecords: "Sense registres que mostrar",
-		loadtext: "Carregant...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-		caption: "Cerca...",
-		Find: "Cercar",
-		Reset: "Buidar",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "tot" },	{ op: "OR",  text: "qualsevol" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-		addCaption: "Afegir registre",
-		editCaption: "Modificar registre",
-		bSubmit: "Guardar",
-		bCancel: "Cancelar",
-		bClose: "Tancar",
-		saveData: "Les dades han canviat. Guardar canvis?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-		msg: {
-		    required:"Camp obligatori",
-		    number:"Introdueixi un nombre",
-		    minValue:"El valor ha de ser major o igual que ",
-		    maxValue:"El valor ha de ser menor o igual a ",
-		    email: "no és una direcció de correu vàlida",
-		    integer: "Introdueixi un valor enter",
-			date: "Introdueixi una data correcta ",
-			url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-		caption: "Veure registre",
-		bClose: "Tancar"
-	},
-	del : {
-		caption: "Eliminar",
-		msg: "¿Desitja eliminar els registres seleccionats?",
-		bSubmit: "Eliminar",
-		bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Modificar fila seleccionada",
-		addtext:" ",
-		addtitle: "Agregar nova fila",
-		deltext: " ",
-		deltitle: "Eliminar fila seleccionada",
-		searchtext: " ",
-		searchtitle: "Cercar informació",
-		refreshtext: "",
-		refreshtitle: "Refrescar taula",
-		alertcap: "Avís",
-		alerttext: "Seleccioni una fila",
-		viewtext: " ",
-		viewtitle: "Veure fila seleccionada"
-	},
-// setcolumns module
-	col : {
-		caption: "Mostrar/ocultar columnes",
-		bSubmit: "Enviar",
-		bCancel: "Cancelar"	
-	},
-	errors : {
-		errcap : "Error",
-		nourl : "No s'ha especificat una URL",
-		norecords: "No hi ha dades per processar",
-		model : "Les columnes de noms són diferents de les columnes del model"
-	},
-	formatter : {
-		integer : {thousandsSeparator: ".", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds",
-				"Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"
-			],
-			monthNames: [
-				"Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des",
-				"Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd-m-Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: 'show',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-cat.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js	(nonexistent)
@@ -1,149 +0,0 @@
-(function(a) {
-    a.jgrid =
-    {
-        defaults:
-        {
-            recordtext: "regels {0} - {1} van {2}",
-            emptyrecords: "Geen data gevonden.",
-            loadtext: "laden...",
-            pgtext: "pagina  {0}  van {1}"
-        },
-        search:
-        {
-            caption: "Zoeken...",
-            Find: "Zoek",
-            Reset: "Herstellen",
-            odata: ["gelijk aan", "niet gelijk aan", "kleiner dan", "kleiner dan of gelijk aan", "groter dan", "groter dan of gelijk aan", "begint met", "begint niet met", "is in", "is niet in", "eindigd met", "eindigd niet met", "bevat", "bevat niet"],
-            groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}],
-            matchText: " match",
-            rulesText: " regels"
-        },
-        edit:
-        {
-            addCaption: "Nieuw",
-            editCaption: "Bewerken",
-            bSubmit: "Opslaan",
-            bCancel: "Annuleren",
-            bClose: "Sluiten",
-            saveData: "Er is data aangepast! Wijzigingen opslaan?",
-            bYes: "Ja",
-            bNo: "Nee",
-            bExit: "Sluiten",
-            msg:
-            {
-                required: "Veld is verplicht",
-                number: "Voer a.u.b. geldig nummer in",
-                minValue: "Waarde moet groter of gelijk zijn aan ",
-                maxValue: "Waarde moet kleiner of gelijks zijn aan",
-                email: "is geen geldig e-mailadres",
-                integer: "Voer a.u.b. een geldig getal in",
-                date: "Voer a.u.b. een geldige waarde in",
-                url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",
-                nodefined : " is not defined!",
-                novalue : " return value is required!",
-                customarray : "Custom function should return array!",
-                customfcheck : "Custom function should be present in case of custom checking!"
-            }
-        },
-        view:
-        {
-            caption: "Tonen",
-            bClose: "Sluiten"
-        },
-        del:
-        {
-            caption: "Verwijderen",
-            msg: "Verwijder geselecteerde regel(s)?",
-            bSubmit: "Verwijderen",
-            bCancel: "Annuleren"
-        },
-        nav:
-        {
-            edittext: "",
-            edittitle: "Bewerken",
-            addtext: "",
-            addtitle: "Nieuw",
-            deltext: "",
-            deltitle: "Verwijderen",
-            searchtext: "",
-            searchtitle: "Zoeken",
-            refreshtext: "",
-            refreshtitle: "Vernieuwen",
-            alertcap: "Waarschuwing",
-            alerttext: "Selecteer a.u.b. een regel",
-            viewtext: "",
-            viewtitle: "Openen"
-        },
-        col:
-        {
-            caption: "Tonen/verbergen kolommen",
-            bSubmit: "OK",
-            bCancel: "Annuleren"
-        },
-        errors:
-        {
-            errcap: "Fout",
-            nourl: "Er is geen URL gedefinieerd",
-            norecords: "Geen data om te verwerken",
-            model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!"
-        },
-        formatter:
-        {
-            integer:
-            {
-                thousandsSeparator: ".",
-                defaultValue: "0"
-            },
-            number:
-            {
-                decimalSeparator: ",",
-                thousandsSeparator: ".",
-                decimalPlaces: 2,
-                defaultValue: "0.00"
-            },
-            currency:
-            {
-                decimalSeparator: ",",
-                thousandsSeparator: ".",
-                decimalPlaces: 2,
-                prefix: "EUR ",
-                suffix: "",
-                defaultValue: "0.00"
-            },
-            date:
-            {
-                dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
-                monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"],
-                AmPm: ["am", "pm", "AM", "PM"],
-                S: function(b) {
-                    return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th"
-                },
-                srcformat: "Y-m-d",
-                newformat: "d/m/Y",
-                masks:
-                {
-                    ISO8601Long: "Y-m-d H:i:s",
-                    ISO8601Short: "Y-m-d",
-                    ShortDate: "n/j/Y",
-                    LongDate: "l, F d, Y",
-                    FullDateTime: "l d F Y G:i:s",
-                    MonthDay: "d F",
-                    ShortTime: "G:i",
-                    LongTime: "G:i:s",
-                    SortableDateTime: "Y-m-d\\TH:i:s",
-                    UniversalSortableDateTime: "Y-m-d H:i:sO",
-                    YearMonth: "F, Y"
-                },
-                reformatAfterEdit: false
-            },
-            baseLinkUrl: "",
-            showAction: "",
-            target: "",
-            checkbox:
-            {
-                disabled: true
-            },
-            idName: "id"
-        }
-    }
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-nl.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid Icelandic Translation
- * jtm@hi.is Univercity of Iceland
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Hleður...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Leita...",
-	    Find: "Leita",
-	    Reset: "Endursetja",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Add Record",
-	    editCaption: "Edit Record",
-	    bSubmit: "Vista",
-	    bCancel: "Hætta við",
-		bClose: "Loka",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Reitur er nauðsynlegur",
-	        number:"Vinsamlega settu inn tölu",
-	        minValue:"gildi verður að vera meira en eða jafnt og ",
-	        maxValue:"gildi verður að vera minna en eða jafnt og ",
-	        email: "er ekki löglegt email",
-	        integer: "Vinsamlega settu inn tölu",
-			date: "Please, enter valid date value",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Eyða",
-	    msg: "Eyða völdum færslum ?",
-	    bSubmit: "Eyða",
-	    bCancel: "Hætta við"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Breyta færslu",
-		addtext:" ",
-	    addtitle: "Ný færsla",
-	    deltext: " ",
-	    deltitle: "Eyða færslu",
-	    searchtext: " ",
-	    searchtitle: "Leita",
-	    refreshtext: "",
-	    refreshtitle: "Endurhlaða",
-	    alertcap: "Viðvörun",
-	    alerttext: "Vinsamlega veldu færslu",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Sýna / fela dálka",
-	    bSubmit: "Vista",
-	    bCancel: "Hætta við"	
-	},
-	errors : {
-		errcap : "Villa",
-		nourl : "Vantar slóð",
-		norecords: "Engar færslur valdar",
-	    model : "Length of colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
-				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-is.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Polish Translation
- * Łukasz Schab
- * http://FreeTree.pl
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Pokaż {0} - {1} z {2}",
-	    emptyrecords: "Brak rekordów do pokazania",
-		loadtext: "\u0142adowanie...",
-		pgtext : "Strona {0} z {1}"
-	},
-	search : {
-	    caption: "Wyszukiwanie...",
-	    Find: "Szukaj",
-	    Reset: "Czyść",
-	    odata : ['dok\u0142adnie', 'różne od', 'mniejsze od', 'mniejsze lub równe','większe od','większe lub równe', 'zaczyna się od','nie zaczyna się od','zawiera','nie zawiera','kończy się na','nie kończy się na','zawiera','nie zawiera'],
-	    groupOps: [	{ op: "ORAZ", text: "wszystkie" },	{ op: "LUB",  text: "każdy" }	],
-		matchText: " pasuje",
-		rulesText: " regu\u0142y"
-	},
-	edit : {
-	    addCaption: "Dodaj rekord",
-	    editCaption: "Edytuj rekord",
-	    bSubmit: "Zapisz",
-	    bCancel: "Anuluj",
-		bClose: "Zamknij",
-		saveData: "Dane zosta\u0142y zmienione! Zapisać zmiany?",
-		bYes : "Tak",
-		bNo : "Nie",
-		bExit : "Anuluj",
-	    msg: {
-	        required:"Pole jest wymagane",
-	        number:"Proszę wpisać poprawną liczbę",
-	        minValue:"wartość musi być większa lub równa",
-	        maxValue:"wartość musi być mniejsza od",
-	        email: "nie jest adresem e-mail",
-	        integer: "Proszę wpisać poprawną liczbę",
-			date: "Proszę podaj poprawną datę",
-			url: "jest niew\u0142aściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Pokaż rekord",
-	    bClose: "Zamknij"
-	},
-	del : {
-	    caption: "Usuwanie",
-	    msg: "Czy usunąć wybrany rekord(y)?",
-	    bSubmit: "Usuń",
-	    bCancel: "Anuluj"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Edytuj wybrany wiersz",
-		addtext:" ",
-	    addtitle: "Dodaj nowy wiersz",
-	    deltext: " ",
-	    deltitle: "Usuń wybrany wiersz",
-	    searchtext: " ",
-	    searchtitle: "Wyszukaj rekord",
-	    refreshtext: "",
-	    refreshtitle: "Prze\u0142aduj",
-	    alertcap: "Uwaga",
-	    alerttext: "Proszę wybrać wiersz",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Pokaż/Ukryj kolumny",
-	    bSubmit: "Zatwierdź",
-	    bCancel: "Anuluj"	
-	},
-	errors : {
-		errcap : "B\u0142ąd",
-		nourl : "Brak adresu url",
-		norecords: "Brak danych",
-	    model : "D\u0142ugość colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Nie", "Pon", "Wt", "Śr", "Cz", "Pi", "So",
-				"Niedziela", "Poniedzia\u0142ek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"
-			],
-			monthNames: [
-				"Sty", "Lu", "Mar", "Kwie", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru",
-				"Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"
-				],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-			    ISO8601Long:"Y-m-d H:i:s",
-			    ISO8601Short:"Y-m-d",
-			    ShortDate: "n/j/Y",
-			    LongDate: "l, F d, Y",
-			    FullDateTime: "l, F d, Y g:i:s A",
-			    MonthDay: "F d",
-			    ShortTime: "g:i A",
-			    LongTime: "g:i:s A",
-			    SortableDateTime: "Y-m-d\\TH:i:s",
-			    UniversalSortableDateTime: "Y-m-d H:i:sO",
-			    YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},	
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pl.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js	(nonexistent)
@@ -1 +0,0 @@
-(function(a){a.jgrid={};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:["lik","forskjellig fra","mindre enn","mindre eller lik","st�rre enn"," st�rre eller lik","starter med","slutter med","inneholder"]};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaulValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-no.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js	(nonexistent)
@@ -1 +0,0 @@
-(function(a){a.jgrid={defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci",odata:["uguale","diverso","minore","minore o uguale","maggiore","maggiore o uguale","inizia con","non inizia con","in","non in","termina con","non termina con","contiene","non contiene"],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}],matchText:" corrisponde",rulesText:" regole"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames &lt;&gt; colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-it.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Slovak Translation
- * Milan Cibulka
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Zobrazených {0} - {1} z {2} záznamov",
-	    emptyrecords: "Neboli nájdené žiadne záznamy",
-		loadtext: "Načítám...",
-		pgtext : "Strana {0} z {1}"
-	},
-	search : {
-		caption: "Vyhľadávam...",
-		Find: "Hľadať",
-		Reset: "Reset",
-	    odata : ['rovná sa', 'nerovná sa', 'menšie', 'menšie alebo rovnajúce sa','väčšie', 'väčšie alebo rovnajúce sa', 'začína s', 'nezačína s', 'je v', 'nie je v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
-	    groupOps: [	{ op: "AND", text: "všetkých" },	{ op: "OR",  text: "niektorého z" }	],
-		matchText: " hľadať podla",
-		rulesText: " pravidiel"
-	},
-	edit : {
-		addCaption: "Pridať záznam",
-		editCaption: "Editácia záznamov",
-		bSubmit: "Uložiť",
-		bCancel: "Storno",
-		bClose: "Zavrieť",
-		saveData: "Údaje boli zmenené! Uložiť zmeny?",
-		bYes : "Ano",
-		bNo : "Nie",
-		bExit : "Zrušiť",
-		msg: {
-		    required:"Pole je požadované",
-		    number:"Prosím, vložte valídne číslo",
-		    minValue:"hodnota musí býť väčšia ako alebo rovná ",
-		    maxValue:"hodnota musí býť menšia ako alebo rovná ",
-		    email: "nie je valídny e-mail",
-		    integer: "Prosím, vložte celé číslo",
-			date: "Prosím, vložte valídny dátum",
-			url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",
-			nodefined : " nie je definovaný!",
-			novalue : " je vyžadovaná návratová hodnota!",
-			customarray : "Custom function mala vrátiť pole!",
-			customfcheck : "Custom function by mala byť prítomná v prípade custom checking!"
-		}
-	},
-	view : {
-	    caption: "Zobraziť záznam",
-	    bClose: "Zavrieť"
-	},
-	del : {
-		caption: "Zmazať",
-		msg: "Zmazať vybraný(é) záznam(y)?",
-		bSubmit: "Zmazať",
-		bCancel: "Storno"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Editovať vybraný riadok",
-		addtext:" ",
-		addtitle: "Pridať nový riadek",
-		deltext: " ",
-		deltitle: "Zmazať vybraný záznam ",
-		searchtext: " ",
-		searchtitle: "Nájsť záznamy",
-		refreshtext: "",
-		refreshtitle: "Obnoviť tabuľku",
-		alertcap: "Varovanie",
-		alerttext: "Prosím, vyberte riadok",
-		viewtext: "",
-		viewtitle: "Zobraziť vybraný riadok"
-	},
-	col : {
-		caption: "Zobrazit/Skrýť stĺpce",
-		bSubmit: "Uložiť",
-		bCancel: "Storno"	
-	},
-	errors : {
-		errcap : "Chyba",
-		nourl : "Nie je nastavená url",
-		norecords: "Žiadne záznamy k spracovaniu",
-		model : "Dĺžka colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Ne", "Po", "Ut", "St", "Št", "Pi", "So",
-				"Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec",
-				"Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
-			],
-			AmPm : ["do","od","DO","OD"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sk.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js	(nonexistent)
@@ -1,139 +0,0 @@
-;(function($){
-/**
- * jqGrid Romanian Translation
- * Alexandru Emil Lupu contact@alecslupu.ro
- * http://www.alecslupu.ro/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Vizualizare {0} - {1} din {2}",
-		emptyrecords: "Nu există înregistrări de vizualizat",
-		loadtext: "Încărcare...",
-		pgtext : "Pagina {0} din {1}"
-	},
-	search : {
-		caption: "Caută...",
-		Find: "Caută",
-		Reset: "Resetare",
-		odata : ['egal', 'diferit', 'mai mic', 'mai mic sau egal','mai mare','mai mare sau egal', 'începe cu','nu începe cu','se găsește în','nu se găsește în','se termină cu','nu se termină cu','conține',''],
-		groupOps: [	{ op: "AND", text: "toate" },	{ op: "OR",  text: "oricare" }	],
-		matchText: " găsite",
-		rulesText: " reguli"
-	},
-	edit : {
-		addCaption: "Adăugare înregistrare",
-		editCaption: "Modificare înregistrare",
-		bSubmit: "Salvează",
-		bCancel: "Anulare",
-		bClose: "Închide",
-		saveData: "Informațiile au fost modificate! Salvați modificările?",
-		bYes : "Da",
-		bNo : "Nu",
-		bExit : "Anulare",
-		msg: {
-			required:"Câmpul este obligatoriu",
-			number:"Vă rugăm introduceți un număr valid",
-			minValue:"valoarea trebuie sa fie mai mare sau egală cu",
-			maxValue:"valoarea trebuie sa fie mai mică sau egală cu",
-			email: "nu este o adresă de e-mail validă",
-			integer: "Vă rugăm introduceți un număr valid",
-			date: "Vă rugăm să introduceți o dată validă",
-			url: "Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-		caption: "Vizualizare înregistrare",
-		bClose: "Închidere"
-	},
-	del : {
-		caption: "Ștegere",
-		msg: "Ștergeți înregistrarea (înregistrările) selectate?",
-		bSubmit: "Șterge",
-		bCancel: "Anulare"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "Modifică rândul selectat",
-		addtext:"",
-		addtitle: "Adaugă rând nou",
-		deltext: "",
-		deltitle: "Șterge rândul selectat",
-		searchtext: "",
-		searchtitle: "Căutare înregistrări",
-		refreshtext: "",
-		refreshtitle: "Reîncarcare Grid",
-		alertcap: "Avertisment",
-		alerttext: "Vă rugăm să selectați un rând",
-		viewtext: "",
-		viewtitle: "Vizualizează rândul selectat"
-	},
-	col : {
-		caption: "Arată/Ascunde coloanele",
-		bSubmit: "Salvează",
-		bCancel: "Anulare"
-	},
-	errors : {
-		errcap : "Eroare",
-		nourl : "Niciun url nu este setat",
-		norecords: "Nu sunt înregistrări de procesat",
-		model : "Lungimea colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm",
-				"Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"
-			],
-			monthNames: [
-				"Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec",
-				"Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			/*
-			 Here is a problem in romanian: 
-					M	/	F
-			 1st = primul / prima
-			 2nd = Al doilea / A doua
-			 3rd = Al treilea / A treia 
-			 4th = Al patrulea/ A patra
-			 5th = Al cincilea / A cincea 
-			 6th = Al șaselea / A șasea
-			 7th = Al șaptelea / A șaptea
-			 .... 
-			 */
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ro.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Spanish Translation
- * Traduccion jqGrid en Español por Yamil Bracho
- * Traduccion corregida y ampliada por Faserline, S.L. 
- * http://www.faserline.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Mostrando {0} - {1} de {2}",
-	    emptyrecords: "Sin registros que mostrar",
-		loadtext: "Cargando...",
-		pgtext : "Página {0} de {1}"
-	},
-	search : {
-	    caption: "Búsqueda...",
-	    Find: "Buscar",
-	    Reset: "Limpiar",
-	    odata : ['igual ', 'no igual a', 'menor que', 'menor o igual que','mayor que','mayor o igual a', 'empiece por','no empiece por','está en','no está en','termina por','no termina por','contiene','no contiene'],
-	    groupOps: [	{ op: "AND", text: "todo" },	{ op: "OR",  text: "cualquier" }	],
-		matchText: " match",
-		rulesText: " reglas"
-	},
-	edit : {
-	    addCaption: "Agregar registro",
-	    editCaption: "Modificar registro",
-	    bSubmit: "Guardar",
-	    bCancel: "Cancelar",
-		bClose: "Cerrar",
-		saveData: "Se han modificado los datos, ¿guardar cambios?",
-		bYes : "Si",
-		bNo : "No",
-		bExit : "Cancelar",
-	    msg: {
-	        required:"Campo obligatorio",
-	        number:"Introduzca un número",
-	        minValue:"El valor debe ser mayor o igual a ",
-	        maxValue:"El valor debe ser menor o igual a ",
-	        email: "no es una dirección de correo válida",
-	        integer: "Introduzca un valor entero",
-			date: "Introduza una fecha correcta ",
-			url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')",
-			nodefined : " no está definido.",
-			novalue : " valor de retorno es requerido.",
-			customarray : "La función personalizada debe devolver un array.",
-			customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada."
-		}
-	},
-	view : {
-	    caption: "Consultar registro",
-	    bClose: "Cerrar"
-	},
-	del : {
-	    caption: "Eliminar",
-	    msg: "¿Desea eliminar los registros seleccionados?",
-	    bSubmit: "Eliminar",
-	    bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Modificar fila seleccionada",
-		addtext:" ",
-	    addtitle: "Agregar nueva fila",
-	    deltext: " ",
-	    deltitle: "Eliminar fila seleccionada",
-	    searchtext: " ",
-	    searchtitle: "Buscar información",
-	    refreshtext: "",
-	    refreshtitle: "Recargar datos",
-	    alertcap: "Aviso",
-	    alerttext: "Seleccione una fila",
-		viewtext: "",
-		viewtitle: "Ver fila seleccionada"
-	},
-	col : {
-	    caption: "Mostrar/ocultar columnas",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar"	
-	},
-	errors : {
-		errcap : "Error",
-		nourl : "No se ha especificado una URL",
-		norecords: "No hay datos para procesar",
-	    model : "Las columnas de nombres son diferentes de las columnas de modelo"
-	},
-	formatter : {
-		integer : {thousandsSeparator: ".", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa",
-				"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"
-			],
-			monthNames: [
-				"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic",
-				"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd-m-Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sp.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js	(nonexistent)
@@ -1,125 +0,0 @@
-;(function($){
-/**
- * jqGrid Portuguese Translation
-* Tradu��o da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "A carregar...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Busca...",
-	    Find: "Procurar",
-	    Reset: "Limpar",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Adicionar Registo",
-	    editCaption: "Modificar Registo",
-	    bSubmit: "Submeter",
-	    bCancel: "Cancelar",
-		bClose: "Fechar",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Campo obrigat�rio",
-	        number:"Por favor, introduza um numero",
-	        minValue:"O valor deve ser maior ou igual que",
-	        maxValue:"O valor deve ser menor ou igual a",
-	        email: "N�o � um endere�o de email v�lido",
-	        integer: "Por favor, introduza um numero inteiro",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Eliminar",
-	    msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?",
-	    bSubmit: "Eliminar",
-	    bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Modificar registo seleccionado",
-		addtext:" ",
-	    addtitle: "Adicionar novo registo",
-	    deltext: " ",
-	    deltitle: "Eliminar registo seleccionado",
-	    searchtext: " ",
-	    searchtitle: "Procurar",
-	    refreshtext: "",
-	    refreshtitle: "Actualizar",
-	    alertcap: "Aviso",
-	    alerttext: "Por favor, seleccione um registo",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Mostrar/Ocultar Colunas",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar"	
-	},
-	errors : {
-		errcap : "Erro",
-		nourl : "N�o especificou um url",
-		norecords: "N�o existem dados para processar",
-	    model : "Tamanho do colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab",
-				"Domingo", "Segunda-Feira", "Ter�a-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "S�bado"
-			],
-			monthNames: [
-				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
-				"Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Brazilian-Portuguese Translation
- * Sergio Righi sergio.righi@gmail.com
- * http://curve.com.br
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Ver {0} - {1} of {2}",
-	    emptyrecords: "Nenhum registro para visualizar",
-		loadtext: "Carregando...",
-		pgtext : "Página {0} de {1}"
-	},
-	search : {
-	    caption: "Procurar...",
-	    Find: "Procurar",
-	    Reset: "Resetar",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " iguala",
-		rulesText: " regras"
-	},
-	edit : {
-	    addCaption: "Incluir",
-	    editCaption: "Alterar",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar",
-		bClose: "Fechar",
-		saveData: "Os dados foram alterados! Salvar alterações?",
-		bYes : "Sim",
-		bNo : "Não",
-		bExit : "Cancelar",
-	    msg: {
-	        required:"Campo obrigatório",
-	        number:"Por favor, informe um número válido",
-	        minValue:"valor deve ser igual ou maior que ",
-	        maxValue:"valor deve ser menor ou igual a",
-	        email: "este e-mail não é válido",
-	        integer: "Por favor, informe um valor inteiro",
-			date: "Por favor, informe uma data válida",
-			url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",
-			nodefined : " não está definido!",
-			novalue : " um valor de retorno é obrigatório!",
-			customarray : "Função customizada deve retornar um array!",
-			customfcheck : "Função customizada deve estar presente em caso de validação customizada!"
-		}
-	},
-	view : {
-	    caption: "Ver Registro",
-	    bClose: "Fechar"
-	},
-	del : {
-    caption: "Apagar",
-	    msg: "Apagar registros selecionado(s)?",
-	    bSubmit: "Apagar",
-	    bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Alterar registro selecionado",
-		addtext:" ",
-	    addtitle: "Incluir novo registro",
-	    deltext: " ",
-	    deltitle: "Apagar registro selecionado",
-	    searchtext: " ",
-	    searchtitle: "Procurar registros",
-	    refreshtext: "",
-	    refreshtitle: "Recarrgando Tabela",
-	    alertcap: "Aviso",
-	    alerttext: "Por favor, selecione um registro",
-		viewtext: "",
-		viewtitle: "Ver linha selecionada"
-	},
-	col : {
-	    caption: "Mostrar/Esconder Colunas",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar"
-	},
-	errors : {
-		errcap : "Erro",
-		nourl : "Nenhuma URL defenida",
-		norecords: "Sem registros para exibir",
-	    model : "Comprimento de colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb",
-				"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"
-			],
-			monthNames: [
-				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
-				"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-pt-br.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid Turkish Translation
- * Erhan Gündoğan (erhan@trposta.net)
- * http://blog.zakkum.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0}-{1} listeleniyor. Toplam:{2}",
-	    emptyrecords: "Kayıt bulunamadı",
-		loadtext: "Yükleniyor...",
-		pgtext : "{0}/{1}. Sayfa"
-	},
-	search : {
-	    caption: "Arama...",
-	    Find: "Bul",
-	    Reset: "Temizle",	    
-	    odata : ['eşit', 'eşit değil', 'daha az', 'daha az veya eşit', 'daha fazla', 'daha fazla veya eşit', 'ile başlayan', 'ile başlamayan', 'içinde', 'içinde değil', 'ile biten', 'ile bitmeyen', 'içeren', 'içermeyen'],
-	    groupOps: [	{ op: "VE", text: "tüm" },	{ op: "VEYA",  text: "herhangi" }	],
-		matchText: " uyan",
-		rulesText: " kurallar"
-	},
-	edit : {
-	    addCaption: "Kayıt Ekle",
-	    editCaption: "Kayıt Düzenle",
-	    bSubmit: "Gönder",
-	    bCancel: "İptal",
-		bClose: "Kapat",
-		saveData: "Veriler değişti! Kayıt edilsin mi?",
-		bYes : "Evet",
-		bNo : "Hayıt",
-		bExit : "İptal",
-	    msg: {
-	        required:"Alan gerekli",
-	        number:"Lütfen bir numara giriniz",
-	        minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",
-	        maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",
-	        email: "geçerli bir e-posta adresi değildir",
-	        integer: "Lütfen bir tamsayı giriniz",
-			url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Kayıt Görüntüle",
-	    bClose: "Kapat"
-	},
-	del : {
-	    caption: "Sil",
-	    msg: "Seçilen kayıtlar silinsin mi?",
-	    bSubmit: "Sil",
-	    bCancel: "İptal"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Seçili satırı düzenle",
-		addtext:" ",
-	    addtitle: "Yeni satır ekle",
-	    deltext: " ",
-	    deltitle: "Seçili satırı sil",
-	    searchtext: " ",
-	    searchtitle: "Kayıtları bul",
-	    refreshtext: "",
-	    refreshtitle: "Tabloyu yenile",
-	    alertcap: "Uyarı",
-	    alerttext: "Lütfen bir satır seçiniz",
-		viewtext: "",
-		viewtitle: "Seçilen satırı görüntüle"
-	},
-	col : {
-	    caption: "Sütunları göster/gizle",
-	    bSubmit: "Gönder",
-	    bCancel: "İptal"	
-	},
-	errors : {
-		errcap : "Hata",
-		nourl : "Bir url yapılandırılmamış",
-		norecords: "İşlem yapılacak bir kayıt yok",
-	    model : "colNames uzunluğu <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts",
-				"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"
-			],
-			monthNames: [
-				"Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara",
-				"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-tr.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js	(nonexistent)
@@ -1,125 +0,0 @@
-﻿;(function($){
-/**
- * jqGrid Persian Translation
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "بارگزاري...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "جستجو...",
-	    Find: "يافته ها",
-	    Reset: "نتايج",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "اضافه کردن رکورد",
-	    editCaption: "ويرايش رکورد",
-	    bSubmit: "ثبت",
-	    bCancel: "انصراف",
-		bClose: "بستن",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"فيلدها بايد ختما پر شوند",
-	        number:"لطفا عدد وعتبر وارد کنيد",
-	        minValue:"مقدار وارد شده بايد بزرگتر يا مساوي با",
-	        maxValue:"مقدار وارد شده بايد کوچکتر يا مساوي",
-	        email: "پست الکترونيک وارد شده معتبر نيست",
-	        integer: "لطفا يک عدد صحيح وارد کنيد",
-			date: "لطفا يک تاريخ معتبر وارد کنيد",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "حذف",
-	    msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",
-	    bSubmit: "حذف",
-	    bCancel: "ابطال"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "ويرايش رديف هاي انتخاب شده",
-		addtext:" ",
-	    addtitle: "افزودن رديف جديد",
-	    deltext: " ",
-	    deltitle: "حذف ردبف هاي انتخاب شده",
-	    searchtext: " ",
-	    searchtitle: "جستجوي رديف",
-	    refreshtext: "",
-	    refreshtitle: "بازيابي مجدد صفحه",
-	    alertcap: "اخطار",
-	    alerttext: "لطفا يک رديف انتخاب کنيد",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "نمايش/عدم نمايش ستون",
-	    bSubmit: "ثبت",
-	    bCancel: "انصراف"	
-	},
-	errors : {
-		errcap : "خطا",
-		nourl : "هيچ آدرسي تنظيم نشده است",
-		norecords: "هيچ رکوردي براي پردازش موجود نيست",
-	    model : "طول نام ستون ها محالف ستون هاي مدل مي باشد!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب",
-				"يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"
-			],
-			AmPm : ["ب.ظ","ب.ظ","ق.ظ","ق.ظ"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: 'نمايش',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-fa.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)
- * Sergey Dyagovchenko
- * http://d.sumy.ua
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Просмотр {0} - {1} из {2}",
-	  emptyrecords: "Нет записей для просмотра",
-		loadtext: "Загрузка...",
-		pgtext : "Стр. {0} из {1}"
-	},
-	search : {
-    caption: "Поиск...",
-    Find: "Найти",
-    Reset: "Сброс",
-    odata : ['равно', 'не равно', 'меньше', 'меньше или равно','больше','больше или равно', 'начинается с','не начинается с','находится в','не находится в','заканчивается на','не заканчивается на','содержит','не содержит'],
-    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "любой" }	],
-    matchText: " совпадает",
-    rulesText: " правила"
-	},
-	edit : {
-    addCaption: "Добавить запись",
-    editCaption: "Редактировать запись",
-    bSubmit: "Сохранить",
-    bCancel: "Отмена",
-		bClose: "Закрыть",
-		saveData: "Данные были измененны! Сохранить изменения?",
-		bYes : "Да",
-		bNo : "Нет",
-		bExit : "Отмена",
-	    msg: {
-        required:"Поле является обязательным",
-        number:"Пожалуйста, введите правильное число",
-        minValue:"значение должно быть больше либо равно",
-        maxValue:"значение должно быть меньше либо равно",
-        email: "некорректное значение e-mail",
-        integer: "Пожалуйста, введите целое число",
-        date: "Пожалуйста, введите правильную дату",
-        url: "неверная ссылка. Необходимо ввести префикс ('http://' or 'https://')",
-		nodefined : " is not defined!",
-		novalue : " return value is required!",
-		customarray : "Custom function should return array!",
-		customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Просмотр записи",
-	    bClose: "Закрыть"
-	},
-	del : {
-	    caption: "Удалить",
-	    msg: "Удалить выбранную запись(и)?",
-	    bSubmit: "Удалить",
-	    bCancel: "Отмена"
-	},
-	nav : {
-  		edittext: " ",
-	    edittitle: "Редактировать выбранную запись",
-  		addtext:" ",
-	    addtitle: "Добавить новую запись",
-	    deltext: " ",
-	    deltitle: "Удалить выбранную запись",
-	    searchtext: " ",
-	    searchtitle: "Найти записи",
-	    refreshtext: "",
-	    refreshtitle: "Обновить таблицу",
-	    alertcap: "Внимание",
-	    alerttext: "Пожалуйста, выберите запись",
-  		viewtext: "",
-  		viewtitle: "Просмотреть выбранную запись"
-	},
-	col : {
-	    caption: "Показать/скрыть столбцы",
-	    bSubmit: "Сохранить",
-	    bCancel: "Отмена"	
-	},
-	errors : {
-		errcap : "Ошибка",
-		nourl : "URL не установлен",
-		norecords: "Нет записей для обработки",
-    model : "Число полей не соответствует числу столбцов таблицы!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
-				"Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"
-			],
-			monthNames: [
-				"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек",
-				"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd.m.Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n.j.Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y G:i:s",
-	            MonthDay: "F d",
-	            ShortTime: "G:i",
-	            LongTime: "G:i:s",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	  target: '',
-	  checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ru.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid German Translation
- * Version 1.0.0 (developed for jQuery Grid 3.3.1)
- * Olaf Klöppel opensource@blue-hit.de
- * http://blue-hit.de/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Zeige {0} - {1} von {2}",
-	    emptyrecords: "Keine Datensätze vorhanden",
-		loadtext: "Lädt...",
-		pgtext : "Seite {0} von {1}"
-	},
-	search : {
-		caption: "Suche...",
-		Find: "Finden",
-		Reset: "Zurücksetzen",
-	    odata : ['gleich', 'ungleich', 'kleiner', 'kleiner gleich','größer','größer gleich', 'beginnt mit','beginnt nicht mit','ist in','ist nicht in','endet mit','endet nicht mit','enthält','enthält nicht'],
-	    groupOps: [	{ op: "AND", text: "alle" },	{ op: "OR",  text: "mindestens eins" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-		addCaption: "Datensatz hinzufügen",
-		editCaption: "Datensatz bearbeiten",
-		bSubmit: "Speichern",
-		bCancel: "Abbrechen",
-		bClose: "Schließen",
-		saveData: "Daten wurden geändert! Änderungen speichern?",
-		bYes : "ja",
-		bNo : "nein",
-		bExit : "abbrechen",
-		msg: {
-		    required:"Feld ist erforderlich",
-		    number: "Bitte geben Sie eine Zahl ein",
-		    minValue:"Wert muss größer oder gleich sein, als ",
-		    maxValue:"Wert muss kleiner oder gleich sein, als ",
-		    email: "ist keine valide E-Mail Adresse",
-		    integer: "Bitte geben Sie eine Ganzzahl ein",
-			date: "Bitte geben Sie ein gültiges Datum ein",
-			url: "ist keine gültige URL. Prefix muss eingegeben werden ('http://' oder 'https://')",
-			nodefined : " ist nicht definiert!",
-			novalue : " Rückgabewert ist erforderlich!",
-			customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!",
-			customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"
-		}
-	},
-	view : {
-	    caption: "Datensatz anschauen",
-	    bClose: "Schließen"
-	},
-	del : {
-		caption: "Löschen",
-		msg: "Ausgewählte Datensätze löschen?",
-		bSubmit: "Löschen",
-		bCancel: "Abbrechen"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Ausgewählten Zeile editieren",
-		addtext:" ",
-	    addtitle: "Neuen Zeile einfügen",
-	    deltext: " ",
-	    deltitle: "Ausgewählte Zeile löschen",
-	    searchtext: " ",
-	    searchtitle: "Datensatz finden",
-	    refreshtext: "",
-	    refreshtitle: "Tabelle neu laden",
-	    alertcap: "Warnung",
-	    alerttext: "Bitte Zeile auswählen",
-		viewtext: "",
-		viewtitle: "Ausgewählte Zeile anzeigen"
-	},
-	col : {
-		caption: "Spalten anzeigen/verbergen",
-		bSubmit: "Speichern",
-		bCancel: "Abbrechen"	
-	},
-	errors : {
-		errcap : "Fehler",
-		nourl : "Keine URL angegeben",
-		norecords: "Keine Datensätze zum verarbeiten",
-		model : "colNames und colModel sind unterschiedlich lang!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa",
-				"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez",
-				"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"d.m.Y H:i:s",
-		        ISO8601Short:"d.m.Y",
-		        ShortDate: "j.n.Y",
-		        LongDate: "l, d. F Y",
-		        FullDateTime: "l, d. F Y G:i:s",
-		        MonthDay: "d. F",
-		        ShortTime: "G:i",
-		        LongTime: "G:i:s",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-de.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Swedish Translation
- * Harald Normann harald.normann@wts.se, harald.normann@gmail.com
- * http://www.worldteamsoftware.com 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Visar {0} - {1} av {2}",
-		emptyrecords: "Det finns inga poster att visa",
-		loadtext: "Laddar...",
-		pgtext : "Sida {0} av {1}"
-	},
-	search : {
-		caption: "Sök Poster - Ange sökvillkor",
-		Find: "Sök",
-		Reset: "Nollställ Villkor",
-		odata : ['lika', 'ej lika', 'mindre', 'mindre eller lika','större','större eller lika', 'börjar med','börjar inte med','tillhör','tillhör inte','slutar med','slutar inte med','innehåller','innehåller inte'],
-		groupOps: [	{ op: "AND", text: "alla" },	{ op: "OR",  text: "eller" }	],
-		matchText: " träff",
-		rulesText: " regler"
-	},
-	edit : {
-		addCaption: "Ny Post",
-		editCaption: "Redigera Post",
-		bSubmit: "Spara",
-		bCancel: "Avbryt",
-		bClose: "Stäng",
-		saveData: "Data har ändrats! Spara förändringar?",
-		bYes : "Ja",
-		bNo : "Nej",
-		bExit : "Avbryt",
-		msg: {
-	        required:"Fältet är obligatoriskt",
-	        number:"Välj korrekt nummer",
-	        minValue:"värdet måste vara större än eller lika med",
-	        maxValue:"värdet måste vara mindre än eller lika med",
-	        email: "är inte korrekt e-post adress",
-	        integer: "Var god ange korrekt heltal",
-	        date: "Var god ange korrekt datum",
-	        url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",
-	        nodefined : " är inte definierad!",
-	        novalue : " returvärde måste anges!",
-	        customarray : "Custom funktion måste returnera en vektor!",
-			customfcheck : "Custom funktion måste finnas om Custom kontroll sker!"
-		}
-	},
-	view : {
-		caption: "Visa Post",
-		bClose: "Stäng"
-	},
-	del : {
-		caption: "Radera",
-		msg: "Radera markerad(e) post(er)?",
-		bSubmit: "Radera",
-		bCancel: "Avbryt"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "Redigera markerad rad",
-		addtext:"",
-		addtitle: "Skapa ny post",
-		deltext: "",
-		deltitle: "Radera markerad rad",
-		searchtext: "",
-		searchtitle: "Sök poster",
-		refreshtext: "",
-		refreshtitle: "Uppdatera data",
-		alertcap: "Varning",
-		alerttext: "Ingen rad är markerad",
-		viewtext: "",
-		viewtitle: "Visa markerad rad"
-	},
-	col : {
-		caption: "Välj Kolumner",
-		bSubmit: "OK",
-		bCancel: "Avbryt"
-	},
-	errors : {
-		errcap : "Fel",
-		nourl : "URL saknas",
-		norecords: "Det finns inga poster att bearbeta",
-		model : "Antal colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör",
-				"Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
-				"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
-			],
-			AmPm : ["fm","em","FM","EM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'Y-m-d',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate:  "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-sv.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js	(nonexistent)
@@ -1,132 +0,0 @@
-;(function($){
-/**
- * jqGrid Bulgarian Translation 
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1} от {2}",
-		emptyrecords: "Няма запис(и)",
-		loadtext: "Зареждам...",
-		pgtext : "Стр. {0} от {1}"
-	},
-	search : {
-		caption: "Търсене...",
-		Find: "Намери",
-		Reset: "Изчисти",
-		odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ],
-	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
-		matchText: " включи",
-		rulesText: " клауза"
-	},
-	edit : {
-		addCaption: "Нов Запис",
-		editCaption: "Редакция Запис",
-		bSubmit: "Запиши",
-		bCancel: "Изход",
-		bClose: "Затвори",
-		saveData: "Данните са променени! Да съхраня ли промените?",
-		bYes : "Да",
-		bNo : "Не",
-		bExit : "Отказ",
-		msg: {
-			required:"Полето е задължително",
-			number:"Въведете валидно число!",
-			minValue:"стойността трябва да е по-голяма или равна от",
-			maxValue:"стойността трябва да е по-малка или равна от",
-			email: "не е валиден ел. адрес",
-			integer: "Въведете валидно цяло число",
-			date: "Въведете валидна дата",
-			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
-			nodefined : " е недефинирана!",
-			novalue : " изисква връщане на стойност!",
-			customarray : "Потреб. Функция трябва да върне масив!",
-			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
-		}
-	},
-	view : {
-		caption: "Преглед запис",
-		bClose: "Затвори"
-	},
-	del : {
-		caption: "Изтриване",
-		msg: "Да изтрия ли избраният запис?",
-		bSubmit: "Изтрий",
-		bCancel: "Отказ"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Редакция избран запис",
-		addtext:" ",
-		addtitle: "Добавяне нов запис",
-		deltext: " ",
-		deltitle: "Изтриване избран запис",
-		searchtext: " ",
-		searchtitle: "Търсене запис(и)",
-		refreshtext: "",
-		refreshtitle: "Обнови таблица",
-		alertcap: "Предупреждение",
-		alerttext: "Моля, изберете запис",
-		viewtext: "",
-		viewtitle: "Преглед избран запис"
-	},
-	col : {
-		caption: "Избери колони",
-		bSubmit: "Ок",
-		bCancel: "Изход"	
-	},
-	errors : {
-		errcap : "Грешка",
-		nourl : "Няма посочен url адрес",
-		norecords: "Няма запис за обработка",
-		model : "Модела не съответства на имената!"	
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
-				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
-			],
-			monthNames: [
-				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
-				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {
-				if(j==7 || j==8 || j== 27 || j== 28) {
-					return 'ми';
-				}
-				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
-			},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-bg.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js	(nonexistent)
@@ -1,155 +0,0 @@
-;(function($){
-/**
- * jqGrid Japanese Translation
- * OKADA Yoshitada okada.dev@sth.jp
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ",
-	    emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
-		loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...",
-		pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE "
-	},
-	search : {
-	    caption: "\u691c\u7d22...",
-	    Find: "\u691c\u7d22",
-	    Reset: "\u30ea\u30bb\u30c3\u30c8",
-	    odata: ["\u6B21\u306B\u7B49\u3057\u3044", "\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044",
-            "\u6B21\u3088\u308A\u5C0F\u3055\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044",
-            "\u6B21\u3088\u308A\u5927\u304D\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044",
-            "\u6B21\u3067\u59CB\u307E\u308B", "\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044",
-            "\u6B21\u306B\u542B\u307E\u308C\u308B", "\u6B21\u306B\u542B\u307E\u308C\u306A\u3044",
-            "\u6B21\u3067\u7D42\u308F\u308B", "\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044",
-            "\u6B21\u3092\u542B\u3080", "\u6B21\u3092\u542B\u307E\u306A\u3044"],
-	    groupOps: [{
-                op: "AND",
-                text: "\u3059\u3079\u3066\u306E"
-            },
-            {
-                op: "OR",
-                text: "\u3044\u305A\u308C\u304B\u306E"
-            }],
-      matchText: " \u6B21\u306E",
-      rulesText: " \u6761\u4EF6\u3092\u6E80\u305F\u3059"
-	},
-	edit : {
-	    addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
-	    editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6",
-	    bSubmit: "\u9001\u4fe1",
-	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb",
-  		bClose: "\u9589\u3058\u308b",
-      saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
-      bYes: "\u306F\u3044",
-      bNo: "\u3044\u3044\u3048",
-      bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB",
-	    msg: {
-	        required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002",
-	        number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-	        minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-	        maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-	        email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
-	        integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-    			date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-          url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\20\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')",
-          nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
-          novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059",
-          customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
-          customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059"
-		}
-	},
-	view : {
-      caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A",
-      bClose: "\u9589\u3058\u308B"
-	},
-	del : {
-	    caption: "\u524a\u9664",
-	    msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f",
-	    bSubmit: "\u524a\u9664",
-	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
-	},
-	nav : {
-    	edittext: " ",
-	    edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6",
-      addtext:" ",
-	    addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0",
-	    deltext: " ",
-	    deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664",
-	    searchtext: " ",
-	    searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22",
-	    refreshtext: "",
-	    refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9",
-	    alertcap: "\u8b66\u544a",
-	    alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002",
-      viewtext: "",
-      viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A"
-	},
-	col : {
-	    caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059",
-	    bSubmit: "\u9001\u4fe1",
-	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"	
-	},
-	errors : {
-		errcap : "\u30a8\u30e9\u30fc",
-		nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
-		norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002",
-	    model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"
-	},
-	formatter : {
-            integer: {
-                thousandsSeparator: ",",
-                defaultValue: '0'
-            },
-            number: {
-                decimalSeparator: ".",
-                thousandsSeparator: ",",
-                decimalPlaces: 2,
-                defaultValue: '0.00'
-            },
-            currency: {
-                decimalSeparator: ".",
-                thousandsSeparator: ",",
-                decimalPlaces: 0,
-                prefix: "",
-                suffix: "",
-                defaultValue: '0'
-            },
-		date : {
-			dayNames:   [
-				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f",
-				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"
-			],
-			monthNames: [
-				"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
-				"1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: "\u756a\u76ee",
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-ja.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Hebrew Translation
- * Shuki Shukrun shukrun.shuki@gmail.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "מציג {0} - {1} מתוך {2}",
-		emptyrecords: "אין רשומות להציג",
-		loadtext: "טוען...",
-		pgtext : "דף {0} מתוך {1}"
-	},
-	search : {
-		caption: "מחפש...",
-		Find: "חפש",
-		Reset: "התחל",
-		odata : ['שווה', 'לא שווה', 'קטן', 'קטן או שווה','גדול','גדול או שווה', 'מתחיל ב','לא מתחיל ב','נמצא ב','לא נמצא ב','מסתיים ב','לא מסתיים ב','מכיל','לא מכיל'],
-		groupOps: [	{ op: "AND", text: "הכל" },	{ op: "OR",  text: "אחד מ" }	],
-		matchText: " תואם",
-		rulesText: " חוקים"
-	},
-	edit : {
-		addCaption: "הוסף רשומה",
-		editCaption: "ערוך רשומה",
-		bSubmit: "שלח",
-		bCancel: "בטל",
-		bClose: "סגור",
-		saveData: "נתונים השתנו! לשמור?",
-		bYes : "כן",
-		bNo : "לא",
-		bExit : "בטל",
-		msg: {
-			required:"שדה חובה",
-			number:"אנא, הכנס מספר תקין",
-			minValue:"ערך צריך להיות גדול או שווה ל ",
-			maxValue:"ערך צריך להיות קטן או שווה ל ",
-			email: "היא לא כתובת איימל תקינה",
-			integer: "אנא, הכנס מספר שלם",
-			date: "אנא, הכנס תאריך תקין",
-			url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-		caption: "הצג רשומה",
-		bClose: "סגור"
-	},
-	del : {
-		caption: "מחק",
-		msg: "האם למחוק את הרשומה/ות המסומנות?",
-		bSubmit: "מחק",
-		bCancel: "בטל"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "ערוך שורה מסומנת",
-		addtext:"",
-		addtitle: "הוסף שורה חדשה",
-		deltext: "",
-		deltitle: "מחק שורה מסומנת",
-		searchtext: "",
-		searchtitle: "חפש רשומות",
-		refreshtext: "",
-		refreshtitle: "טען גריד מחדש",
-		alertcap: "אזהרה",
-		alerttext: "אנא, בחר שורה",
-		viewtext: "",
-		viewtitle: "הצג שורה מסומנת"
-	},
-	col : {
-		caption: "הצג/הסתר עמודות",
-		bSubmit: "שלח",
-		bCancel: "בטל"
-	},
-	errors : {
-		errcap : "שגיאה",
-		nourl : "לא הוגדרה כתובת url",
-		norecords: "אין רשומות לעבד",
-		model : "אורך של colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"א", "ב", "ג", "ד", "ה", "ו", "ש",
-				"ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"
-			],
-			monthNames: [
-				"ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ",
-				"ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"
-			],
-			AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],
-			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/i18n/grid.locale-he.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/ui.multiselect.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/ui.multiselect.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/ui.multiselect.js	(nonexistent)
@@ -1,314 +0,0 @@
-/*
- * jQuery UI Multiselect
- *
- * Authors:
- *  Michael Aufreiter (quasipartikel.at)
- *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
- * 
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- * 
- * http://www.quasipartikel.at/multiselect/
- *
- * 
- * Depends:
- *	ui.core.js
- *	ui.sortable.js
- *
- * Optional:
- * localization (http://plugins.jquery.com/project/localisation)
- * scrollTo (http://plugins.jquery.com/project/ScrollTo)
- * 
- * Todo:
- *  Make batch actions faster
- *  Implement dynamic insertion through remote calls
- */
-
-
-(function($) {
-
-$.widget("ui.multiselect", {
-	_init: function() {
-		this.element.hide();
-		this.id = this.element.attr("id");
-		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
-		this.count = 0; // number of currently selected options
-		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
-		this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
-		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
-		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
-		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
-		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
-		
-		var that = this;
-
-		// set dimensions
-		this.container.width(this.element.width()+1);
-		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
-		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
-
-		// fix list height to match <option> depending on their individual header's heights
-		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
-		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
-		
-		if ( !this.options.animated ) {
-			this.options.show = 'show';
-			this.options.hide = 'hide';
-		}
-		
-		// init lists
-		this._populateLists(this.element.find('option'));
-		
-		// make selection sortable
-		if (this.options.sortable) {
-			$("ul.selected").sortable({
-				placeholder: 'ui-state-highlight',
-				axis: 'y',
-				update: function(event, ui) {
-					// apply the new sort order to the original selectbox
-					that.selectedList.find('li').each(function() {
-						if ($(this).data('optionLink'))
-							$(this).data('optionLink').remove().appendTo(that.element);
-					});
-				},
-				receive: function(event, ui) {
-					ui.item.data('optionLink').attr('selected', true);
-					// increment count
-					that.count += 1;
-					that._updateCount();
-					// workaround, because there's no way to reference 
-					// the new element, see http://dev.jqueryui.com/ticket/4303
-					that.selectedList.children('.ui-draggable').each(function() {
-						$(this).removeClass('ui-draggable');
-						$(this).data('optionLink', ui.item.data('optionLink'));
-						$(this).data('idx', ui.item.data('idx'));
-						that._applyItemState($(this), true);
-					});
-			
-					// workaround according to http://dev.jqueryui.com/ticket/4088
-					setTimeout(function() { ui.item.remove(); }, 1);
-				}
-			});
-		}
-		
-		// set up livesearch
-		if (this.options.searchable) {
-			this._registerSearchEvents(this.availableContainer.find('input.search'));
-		} else {
-			$('.search').hide();
-		}
-		
-		// batch actions
-		$(".remove-all").click(function() {
-			that._populateLists(that.element.find('option').removeAttr('selected'));
-			return false;
-		});
-		$(".add-all").click(function() {
-			that._populateLists(that.element.find('option').attr('selected', 'selected'));
-			return false;
-		});
-	},
-	destroy: function() {
-		this.element.show();
-		this.container.remove();
-
-		$.widget.prototype.destroy.apply(this, arguments);
-	},
-	_populateLists: function(options) {
-		this.selectedList.children('.ui-element').remove();
-		this.availableList.children('.ui-element').remove();
-		this.count = 0;
-
-		var that = this;
-		var items = $(options.map(function(i) {
-	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();
-
-			if (this.selected) that.count += 1;
-			that._applyItemState(item, this.selected);
-			item.data('idx', i);
-			return item[0];
-    }));
-		
-		// update count
-		this._updateCount();
-  },
-	_updateCount: function() {
-		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
-	},
-	_getOptionNode: function(option) {
-		option = $(option);
-		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
-		node.data('optionLink', option);
-		return node;
-	},
-	// clones an item with associated data
-	// didn't find a smarter away around this
-	_cloneWithData: function(clonee) {
-		var clone = clonee.clone();
-		clone.data('optionLink', clonee.data('optionLink'));
-		clone.data('idx', clonee.data('idx'));
-		return clone;
-	},
-	_setSelected: function(item, selected) {
-		item.data('optionLink').attr('selected', selected);
-
-		if (selected) {
-			var selectedItem = this._cloneWithData(item);
-			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
-			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
-			
-			this._applyItemState(selectedItem, true);
-			return selectedItem;
-		} else {
-			
-			// look for successor based on initial option index
-			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
-			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
-
-			// TODO: test needed for dynamic list populating
-			if ( direction ) {
-				while (i>=0 && i<items.length) {
-					direction > 0 ? i++ : i--;
-					if ( direction != comparator(item, $(items[i])) ) {
-						// going up, go back one item down, otherwise leave as is
-						succ = items[direction > 0 ? i : i+1];
-						break;
-					}
-				}
-			} else {
-				succ = items[i];
-			}
-			
-			var availableItem = this._cloneWithData(item);
-			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
-			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
-			availableItem.hide()[this.options.show](this.options.animated);
-			
-			this._applyItemState(availableItem, false);
-			return availableItem;
-		}
-	},
-	_applyItemState: function(item, selected) {
-		if (selected) {
-			if (this.options.sortable)
-				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
-			else
-				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
-			this._registerRemoveEvents(item.find('a.action'));
-			
-		} else {
-			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
-			this._registerAddEvents(item.find('a.action'));
-		}
-		
-		this._registerHoverEvents(item);
-	},
-	// taken from John Resig's liveUpdate script
-	_filter: function(list) {
-		var input = $(this);
-		var rows = list.children('li'),
-			cache = rows.map(function(){
-				
-				return $(this).text().toLowerCase();
-			});
-		
-		var term = $.trim(input.val().toLowerCase()), scores = [];
-		
-		if (!term) {
-			rows.show();
-		} else {
-			rows.hide();
-
-			cache.each(function(i) {
-				if (this.indexOf(term)>-1) { scores.push(i); }
-			});
-
-			$.each(scores, function() {
-				$(rows[this]).show();
-			});
-		}
-	},
-	_registerHoverEvents: function(elements) {
-		elements.removeClass('ui-state-hover');
-		elements.mouseover(function() {
-			$(this).addClass('ui-state-hover');
-		});
-		elements.mouseout(function() {
-			$(this).removeClass('ui-state-hover');
-		});
-	},
-	_registerAddEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			var item = that._setSelected($(this).parent(), true);
-			that.count += 1;
-			that._updateCount();
-			return false;
-		})
-		// make draggable
-		.each(function() {
-			$(this).parent().draggable({
-	      connectToSortable: 'ul.selected',
-				helper: function() {
-					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
-					selectedItem.width($(this).width());
-					return selectedItem;
-				},
-				appendTo: '.ui-multiselect',
-				containment: '.ui-multiselect',
-				revert: 'invalid'
-	    });
-		});
-	},
-	_registerRemoveEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			that._setSelected($(this).parent(), false);
-			that.count -= 1;
-			that._updateCount();
-			return false;
-		});
- 	},
-	_registerSearchEvents: function(input) {
-		var that = this;
-
-		input.focus(function() {
-			$(this).addClass('ui-state-active');
-		})
-		.blur(function() {
-			$(this).removeClass('ui-state-active');
-		})
-		.keypress(function(e) {
-			if (e.keyCode == 13)
-				return false;
-		})
-		.keyup(function() {
-			that._filter.apply(this, [that.availableList]);
-		});
-	}
-});
-		
-$.extend($.ui.multiselect, {
-	defaults: {
-		sortable: true,
-		searchable: true,
-		animated: 'fast',
-		show: 'slideDown',
-		hide: 'slideUp',
-		dividerLocation: 0.6,
-		nodeComparator: function(node1,node2) {
-			var text1 = node1.text(),
-			    text2 = node2.text();
-			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
-		}
-	},
-	locale: {
-		addAll:'Add all',
-		removeAll:'Remove all',
-		itemsCount:'items selected'
-	}
-});
-
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/ui.multiselect.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.celledit.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.celledit.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.celledit.js	(nonexistent)
@@ -1,483 +0,0 @@
-;(function($){
-/*
-**
- * jqGrid extension for cellediting Grid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-/**
- * all events and options here are aded anonynous and not in the base grid
- * since the array is to big. Here is the order of execution.
- * From this point we use jQuery isFunction
- * formatCell
- * beforeEditCell,
- * onSelectCell (used only for noneditable cels)
- * afterEditCell,
- * beforeSaveCell, (called before validation of values if any)
- * beforeSubmitCell (if cellsubmit remote (ajax))
- * afterSubmitCell(if cellsubmit remote (ajax)),
- * afterSaveCell,
- * errorCell,
- * serializeCellData - new
- * Options
- * cellsubmit (remote,clientArray) (added in grid options)
- * cellurl
- * ajaxCellOptions
-* */
-$.jgrid.extend({
-	editCell : function (iRow,iCol, ed){
-		return this.each(function (){
-			var $t = this, nm, tmp,cc;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			iCol = parseInt(iCol,10);
-			// select the row that can be used for other methods
-			$t.p.selrow = $t.rows[iRow].id;
-			if (!$t.p.knv) {$($t).jqGrid("GridNav");}
-			// check to see if we have already edited cell
-			if ($t.p.savedRow.length>0) {
-				// prevent second click on that field and enable selects
-				if (ed===true ) {
-					if(iRow == $t.p.iRow && iCol == $t.p.iCol){
-						return;
-					}
-				}
-				// save the cell
-				$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
-			} else {
-				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
-			}
-			nm = $t.p.colModel[iCol].name;
-			if (nm=='subgrid' || nm=='cb' || nm=='rn') {return;}
-			cc = $("td:eq("+iCol+")",$t.rows[iRow]);
-			if ($t.p.colModel[iCol].editable===true && ed===true && !cc.hasClass("not-editable-cell")) {
-				if(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
-					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
-					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
-				}
-				$(cc).addClass("edit-cell ui-state-highlight");
-				$($t.rows[iRow]).addClass("selected-row ui-state-hover");
-				try {
-					tmp =  $.unformat(cc,{rowId: $t.rows[iRow].id, colModel:$t.p.colModel[iCol]},iCol);
-				} catch (_) {
-					tmp = $(cc).html();
-				}
-				if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-				if (!$t.p.colModel[iCol].edittype) {$t.p.colModel[iCol].edittype = "text";}
-				$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});
-				if($.isFunction($t.p.formatCell)) {
-					var tmp2 = $t.p.formatCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-					if(tmp2 !== undefined ) {tmp = tmp2;}
-				}
-				var opt = $.extend({}, $t.p.colModel[iCol].editoptions || {} ,{id:iRow+"_"+nm,name:nm});
-				var elc = createEl($t.p.colModel[iCol].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
-				if ($.isFunction($t.p.beforeEditCell)) {
-					$t.p.beforeEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-				}
-				$(cc).html("").append(elc).attr("tabindex","0");
-				window.setTimeout(function () { $(elc).focus();},0);
-				$("input, select, textarea",cc).bind("keydown",function(e) { 
-					if (e.keyCode === 27) {
-						if($("input.hasDatepicker",cc).length >0) {
-							if( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }
-							else { $("input.hasDatepicker",cc).datepicker('hide'); }
-						} else {
-							$($t).jqGrid("restoreCell",iRow,iCol);
-						}
-					} //ESC
-					if (e.keyCode === 13) {$($t).jqGrid("saveCell",iRow,iCol);}//Enter
-					if (e.keyCode == 9)  {
-						if(!$t.grid.hDiv.loading ) {
-							if (e.shiftKey) {$($t).jqGrid("prevCell",iRow,iCol);} //Shift TAb
-							else {$($t).jqGrid("nextCell",iRow,iCol);} //Tab
-						} else {
-							return false;
-						}
-					}
-					e.stopPropagation();
-				});
-				if ($.isFunction($t.p.afterEditCell)) {
-					$t.p.afterEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-				}
-			} else {
-				if (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
-					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
-					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
-				}
-				cc.addClass("edit-cell ui-state-highlight");
-				$($t.rows[iRow]).addClass("selected-row ui-state-hover"); 
-				if ($.isFunction($t.p.onSelectCell)) {
-					tmp = cc.html().replace(/\&#160\;/ig,'');
-					$t.p.onSelectCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-				}
-			}
-			$t.p.iCol = iCol; $t.p.iRow = iRow;
-		});
-	},
-	saveCell : function (iRow, iCol){
-		return this.each(function(){
-			var $t= this, fr;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} 
-			if(fr !== null) {
-				var cc = $("td:eq("+iCol+")",$t.rows[iRow]),v,v2,
-				cm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm) ;
-				switch (cm.edittype) {
-					case "select":
-						if(!cm.editoptions.multiple) {
-							v = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).val();
-							v2 = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).text();
-						} else {
-							var sel = $("#"+iRow+"_"+nmjq,$t.rows[iRow]), selectedText = [];
-							v = $(sel).val();
-							if(v) { v.join(",");} else { v=""; }
-							$("option:selected",sel).each(
-								function(i,selected){
-									selectedText[i] = $(selected).text();
-								}
-							);
-							v2 = selectedText.join(",");
-						}
-						if(cm.formatter) { v2 = v; }
-						break;
-					case "checkbox":
-						var cbv  = ["Yes","No"];
-						if(cm.editoptions){
-							cbv = cm.editoptions.value.split(":");
-						}
-						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).attr("checked") ? cbv[0] : cbv[1];
-						v2=v;
-						break;
-					case "password":
-					case "text":
-					case "textarea":
-					case "button" :
-						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).val();
-						v2=v;
-						break;
-					case 'custom' :
-						try {
-							if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
-								v = cm.editoptions.custom_value($(".customelement",cc),'get');
-								if (v===undefined) { throw "e2";} else { v2=v; }
-							} else { throw "e1"; }
-						} catch (e) {
-							if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
-							if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
-							else {info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-						}
-						break;
-				}
-				// The common approach is if nothing changed do not do anything
-				if (v2 != $t.p.savedRow[fr].v){
-					if ($.isFunction($t.p.beforeSaveCell)) {
-						var vv = $t.p.beforeSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-						if (vv) {v = vv;}
-					}
-					var cv = checkValues(v,iCol,$t);
-					if(cv[0] === true) {
-						var addpost = {};
-						if ($.isFunction($t.p.beforeSubmitCell)) {
-							addpost = $t.p.beforeSubmitCell($t.rows[iRow].id,nm, v, iRow,iCol);
-							if (!addpost) {addpost={};}
-						}
-						if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); }
-						if ($t.p.cellsubmit == 'remote') {
-							if ($t.p.cellurl) {
-								var postdata = {};
-								if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }
-								postdata[nm] = v;
-								var idname,oper, opers;
-								opers = $t.p.prmNames;
-								idname = opers.id;
-								oper = opers.oper;
-								postdata[idname] = $t.rows[iRow].id;
-								postdata[oper] = opers.editoper;
-								postdata = $.extend(addpost,postdata);
-								$("#lui_"+$t.p.id).show();
-								$t.grid.hDiv.loading = true;
-								$.ajax( $.extend( {
-									url: $t.p.cellurl,
-									data :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData(postdata) : postdata,
-									type: "POST",
-									complete: function (result, stat) {
-										$("#lui_"+$t.p.id).hide();
-										$t.grid.hDiv.loading = false;
-										if (stat == 'success') {
-											if ($.isFunction($t.p.afterSubmitCell)) {
-												var ret = $t.p.afterSubmitCell(result,postdata.id,nm,v,iRow,iCol);
-												if(ret[0] === true) {
-													$(cc).empty();
-													$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
-													$(cc).addClass("dirty-cell");
-													$($t.rows[iRow]).addClass("edited");
-													if ($.isFunction($t.p.afterSaveCell)) {
-														$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-													}
-													$t.p.savedRow.splice(0,1);
-												} else {
-													info_dialog($.jgrid.errors.errcap,ret[1],$.jgrid.edit.bClose);
-													$($t).jqGrid("restoreCell",iRow,iCol);
-												}
-											} else {
-												$(cc).empty();
-												$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
-												$(cc).addClass("dirty-cell");
-												$($t.rows[iRow]).addClass("edited");
-												if ($.isFunction($t.p.afterSaveCell)) {
-													$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-												}
-												$t.p.savedRow.splice(0,1);
-											}
-										}
-									},
-									error:function(res,stat) {
-										$("#lui_"+$t.p.id).hide();
-										$t.grid.hDiv.loading = false;
-										if ($.isFunction($t.p.errorCell)) {
-											$t.p.errorCell(res,stat);
-											$($t).jqGrid("restoreCell",iRow,iCol);
-										} else {
-											info_dialog($.jgrid.errors.errcap,res.status+" : "+res.statusText+"<br/>"+stat,$.jgrid.edit.bClose);
-											$($t).jqGrid("restoreCell",iRow,iCol);
-										}
-									}
-								}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));
-							} else {
-								try {
-									info_dialog($.jgrid.errors.errcap,$.jgrid.errors.nourl,$.jgrid.edit.bClose);
-									$($t).jqGrid("restoreCell",iRow,iCol);
-								} catch (e) {}
-							}
-						}
-						if ($t.p.cellsubmit == 'clientArray') {
-							$(cc).empty();
-							$($t).jqGrid("setCell",$t.rows[iRow].id,iCol, v2, false, false, true);
-							$(cc).addClass("dirty-cell");
-							$($t.rows[iRow]).addClass("edited");
-							if ($.isFunction($t.p.afterSaveCell)) {
-								$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-							}
-							$t.p.savedRow.splice(0,1);
-						}
-					} else {
-						try {
-							window.setTimeout(function(){info_dialog($.jgrid.errors.errcap,v+" "+cv[1],$.jgrid.edit.bClose);},100);
-							$($t).jqGrid("restoreCell",iRow,iCol);
-						} catch (e) {}
-					}
-				} else {
-					$($t).jqGrid("restoreCell",iRow,iCol);
-				}
-			}
-			if ($.browser.opera) {
-				$("#"+$t.p.knv).attr("tabindex","-1").focus();
-			} else {
-				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
-			}
-		});
-	},
-	restoreCell : function(iRow, iCol) {
-		return this.each(function(){
-			var $t= this, fr;
-			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
-			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}
-			if(fr !== null) {
-				var cc = $("td:eq("+iCol+")",$t.rows[iRow]);
-				// datepicker fix
-				if($.isFunction($.fn.datepicker)) {
-					try {
-						$("input.hasDatepicker",cc).datepicker('hide');
-					} catch (e) {}
-				}
-				$(cc).empty().attr("tabindex","-1");
-				$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);
-				$t.p.savedRow.splice(0,1);
-			}
-			window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
-		});
-	},
-	nextCell : function (iRow,iCol) {
-		return this.each(function (){
-			var $t = this, nCol=false;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			// try to find next editable cell
-			for (var i=iCol+1; i<$t.p.colModel.length; i++) {
-				if ( $t.p.colModel[i].editable ===true) {
-					nCol = i; break;
-				}
-			}
-			if(nCol !== false) {
-				$($t).jqGrid("editCell",iRow,nCol,true);
-			} else {
-				if ($t.p.savedRow.length >0) {
-					$($t).jqGrid("saveCell",iRow,iCol);
-				}
-			}
-		});
-	},
-	prevCell : function (iRow,iCol) {
-		return this.each(function (){
-			var $t = this, nCol=false;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			// try to find next editable cell
-			for (var i=iCol-1; i>=0; i--) {
-				if ( $t.p.colModel[i].editable ===true) {
-					nCol = i; break;
-				}
-			}
-			if(nCol !== false) {
-				$($t).jqGrid("editCell",iRow,nCol,true);
-			} else {
-				if ($t.p.savedRow.length >0) {
-					$($t).jqGrid("saveCell",iRow,iCol);
-				}
-			}
-		});
-	},
-	GridNav : function() {
-		return this.each(function () {
-			var  $t = this;
-			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
-			// trick to process keydown on non input elements
-			$t.p.knv = $t.p.id + "_kn";
-			var selection = $("<span style='width:0px;height:0px;background-color:black;' tabindex='0'><span tabindex='-1' style='width:0px;height:0px;background-color:grey' id='"+$t.p.knv+"'></span></span>"),
-			i, kdir;
-			$(selection).insertBefore($t.grid.cDiv);
-			$("#"+$t.p.knv)
-			.focus()
-			.keydown(function (e){
-				kdir = e.keyCode;
-				if($t.p.direction == "rtl") {
-					if(kdir==37) { kdir = 39;}
-					else if (kdir==39) { kdir = 37; }
-				}
-				switch (kdir) {
-					case 38:
-						if ($t.p.iRow-1 >=0 ) {
-							scrollGrid($t.p.iRow-1,$t.p.iCol,'vu');
-							$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false);
-						}
-					break;
-					case 40 :
-						if ($t.p.iRow+1 <=  $t.rows.length-1) {
-							scrollGrid($t.p.iRow+1,$t.p.iCol,'vd');
-							$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false);
-						}
-					break;
-					case 37 :
-						if ($t.p.iCol -1 >=  0) {
-							i = findNextVisible($t.p.iCol-1,'lft');
-							scrollGrid($t.p.iRow, i,'h');
-							$($t).jqGrid("editCell",$t.p.iRow, i,false);
-						}
-					break;
-					case 39 :
-						if ($t.p.iCol +1 <=  $t.p.colModel.length-1) {
-							i = findNextVisible($t.p.iCol+1,'rgt');
-							scrollGrid($t.p.iRow,i,'h');
-							$($t).jqGrid("editCell",$t.p.iRow,i,false);
-						}
-					break;
-					case 13:
-						if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {
-							$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true);
-						}
-					break;
-				}
-				return false;
-			});
-			function scrollGrid(iR, iC, tp){
-				if (tp.substr(0,1)=='v') {
-					var ch = $($t.grid.bDiv)[0].clientHeight,
-					st = $($t.grid.bDiv)[0].scrollTop,
-					nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,
-					pROT = $t.rows[iR].offsetTop;
-					if(tp == 'vd') {
-						if(nROT >= ch) {
-							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;
-						}
-					}
-					if(tp == 'vu'){					
-						if (pROT < st) {
-							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;
-						}
-					}
-				}
-				if(tp=='h') {
-					var cw = $($t.grid.bDiv)[0].clientWidth,
-					sl = $($t.grid.bDiv)[0].scrollLeft,
-					nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,
-					pCOL = $t.rows[iR].cells[iC].offsetLeft;
-					if(nCOL >= cw+parseInt(sl,10)) {
-						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;
-					} else if (pCOL < sl) {
-						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;
-					}
-				}
-			}
-			function findNextVisible(iC,act){
-				var ind, i;
-				if(act == 'lft') {
-					ind = iC+1;
-					for (i=iC;i>=0;i--){
-						if ($t.p.colModel[i].hidden !== true) {
-							ind = i;
-							break;
-						}
-					}
-				}
-				if(act == 'rgt') {
-					ind = iC-1;
-					for (i=iC; i<$t.p.colModel.length;i++){
-						if ($t.p.colModel[i].hidden !== true) {
-							ind = i;
-							break;
-						}						
-					}
-				}
-				return ind;
-			}
-		});
-	},
-	getChangedCells : function (mthd) {
-		var ret=[];
-		if (!mthd) {mthd='all';}
-		this.each(function(){
-			var $t= this,nm;
-			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
-			$($t.rows).each(function(j){
-				var res = {};
-				if ($(this).hasClass("edited")) {
-					$('td',this).each( function(i) {
-						nm = $t.p.colModel[i].name;
-						if ( nm !== 'cb' && nm !== 'subgrid') {
-							if (mthd=='dirty') {
-								if ($(this).hasClass('dirty-cell')) {
-									try {
-										res[nm] = $.unformat(this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);
-									} catch (e){
-										res[nm] = $.jgrid.htmlDecode($(this).html());
-									}
-								}
-							} else {
-								try {
-									res[nm] = $.unformat(this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);
-								} catch (e) {
-									res[nm] = $.jgrid.htmlDecode($(this).html());
-								}
-							}
-						}
-					});
-					res.id = this.id;
-					ret.push(res);
-				}
-			});
-		});
-		return ret;
-	}
-/// end  cell editing
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.celledit.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.common.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.common.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.common.js	(nonexistent)
@@ -1,629 +0,0 @@
-/*
- * jqGrid common function
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-*/ 
-// Modal functions
-var showModal = function(h) {
-	h.w.show();
-};
-var closeModal = function(h) {
-	h.w.hide().attr("aria-hidden","true");
-	if(h.o) { h.o.remove(); }
-};
-var hideModal = function (selector,o) {
-	o = jQuery.extend({jqm : true, gb :''}, o || {});
-    if(o.onClose) {
-		var oncret =  o.onClose(selector);
-		if (typeof oncret == 'boolean'  && !oncret ) { return; }
-    }	
-	if (jQuery.fn.jqm && o.jqm === true) {
-		jQuery(selector).attr("aria-hidden","true").jqmHide();
-	} else {
-		if(o.gb != '') {
-			try {jQuery(".jqgrid-overlay:first",o.gb).hide();} catch (e){}
-		}
-		jQuery(selector).hide().attr("aria-hidden","true");
-	}
-};
-//Helper functions
-function findPos(obj) {
-	var curleft = 0, curtop = 0;
-	if (obj.offsetParent) {
-		do {
-			curleft += obj.offsetLeft;
-			curtop += obj.offsetTop; 
-		} while (obj = obj.offsetParent);
-		//do not change obj == obj.offsetParent 
-	}
-	return [curleft,curtop];
-}
-var createModal = function(aIDs, content, p, insertSelector, posSelector, appendsel) {
-	var mw  = document.createElement('div'), rtlsup;
-	rtlsup = jQuery(p.gbox).attr("dir") == "rtl" ? true : false;
-	mw.className= "ui-widget ui-widget-content ui-corner-all ui-jqdialog";
-	mw.id = aIDs.themodal; 
-	var mh = document.createElement('div');
-	mh.className = "ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix";
-	mh.id = aIDs.modalhead;
-	jQuery(mh).append("<span class='ui-jqdialog-title'>"+p.caption+"</span>");
-	var ahr= jQuery("<a href='javascript:void(0)' class='ui-jqdialog-titlebar-close ui-corner-all'></a>")
-	.hover(function(){ahr.addClass('ui-state-hover');},
-		   function(){ahr.removeClass('ui-state-hover');})
-	.append("<span class='ui-icon ui-icon-closethick'></span>");
-	jQuery(mh).append(ahr);
-	if(rtlsup) {
-		mw.dir = "rtl";
-		jQuery(".ui-jqdialog-title",mh).css("float","right");
-		jQuery(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em");
-	} else {
-		mw.dir = "ltr";
-		jQuery(".ui-jqdialog-title",mh).css("float","left");
-		jQuery(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em");
-	}
-	var mc = document.createElement('div');
-	jQuery(mc).addClass("ui-jqdialog-content ui-widget-content").attr("id",aIDs.modalcontent);
-	jQuery(mc).append(content);
-	mw.appendChild(mc);
-	jQuery(mw).prepend(mh);
-	if(appendsel===true) { jQuery('body').append(mw); } //append as first child in body -for alert dialog
-	else {jQuery(mw).insertBefore(insertSelector);}
-	if(typeof p.jqModal === 'undefined') {p.jqModal = true;} // internal use
-	var coord = {};
-	if ( jQuery.fn.jqm && p.jqModal === true) {
-		if(p.left ===0 && p.top===0) {
-			var pos = [];
-			pos = findPos(posSelector);
-			p.left = pos[0] + 4;
-			p.top = pos[1] + 4;
-		}
-		coord.top = p.top+"px";
-		coord.left = p.left;
-	} else if(p.left !==0 || p.top!==0) {
-		coord.left = p.left;
-		coord.top = p.top+"px";
-	}
-	jQuery("a.ui-jqdialog-titlebar-close",mh).click(function(e){
-		var oncm = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
-		var gboxclose = jQuery("#"+aIDs.themodal).data("gbox") || p.gbox;
-		hideModal("#"+aIDs.themodal,{gb:gboxclose,jqm:p.jqModal,onClose:oncm});
-		return false;
-	});
-	if (p.width === 0 || !p.width) {p.width = 300;}
-	if(p.height === 0 || !p.height) {p.height =200;}
-	if(!p.zIndex) {p.zIndex = 950;}
-	var rtlt = 0;
-	if( rtlsup && coord.left && !appendsel) {
-		rtlt = jQuery(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do
-		// just in case
-		coord.left = parseInt(coord.left,10) + parseInt(rtlt,10);
-	}
-	if(coord.left) { coord.left += "px"; }
-	jQuery(mw).css(jQuery.extend({
-		width: isNaN(p.width) ? "auto": p.width+"px",
-		height:isNaN(p.height) ? "auto" : p.height + "px",
-		zIndex:p.zIndex,
-		overflow: 'hidden'
-	},coord))
-	.attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"});
-	if(typeof p.drag == 'undefined') { p.drag=true;}
-	if(typeof p.resize == 'undefined') {p.resize=true;}
-	if (p.drag) {
-		jQuery(mh).css('cursor','move');
-		if(jQuery.fn.jqDrag) {
-			jQuery(mw).jqDrag(mh);
-		} else {
-			try {
-				jQuery(mw).draggable({handle: jQuery("#"+mh.id)});
-			} catch (e) {}
-		}
-	}
-	if(p.resize) {
-		if(jQuery.fn.jqResize) {
-			jQuery(mw).append("<div class='jqResize ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se'></div>");
-			jQuery("#"+aIDs.themodal).jqResize(".jqResize",aIDs.scrollelm ? "#"+aIDs.scrollelm : false);
-		} else {
-			try {
-				jQuery(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+aIDs.scrollelm : false});
-			} catch (e) {}
-		}
-	}
-	if(p.closeOnEscape === true){
-		jQuery(mw).keydown( function( e ) {
-			if( e.which == 27 ) {
-				var cone = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
-				hideModal(this,{gb:p.gbox,jqm:p.jqModal,onClose: cone});
-			}
-		});
-	}
-};
-var viewModal = function (selector,o){
-	o = jQuery.extend({
-		toTop: true,
-		overlay: 10,
-		modal: false,
-		onShow: showModal,
-		onHide: closeModal,
-		gbox: '',
-		jqm : true,
-		jqM : true
-	}, o || {});
-	if (jQuery.fn.jqm && o.jqm === true) {
-		if(o.jqM) { jQuery(selector).attr("aria-hidden","false").jqm(o).jqmShow(); }
-		else {jQuery(selector).attr("aria-hidden","false").jqmShow();}
-	} else {
-		if(o.gbox != '') {
-			jQuery(".jqgrid-overlay:first",o.gbox).show();
-			jQuery(selector).data("gbox",o.gbox);
-		}
-		jQuery(selector).show().attr("aria-hidden","false");
-		try{jQuery(':input:visible',selector)[0].focus();}catch(_){}
-	}
-};
-
-function info_dialog(caption, content,c_b, modalopt) {
-	var mopt = {
-		width:290,
-		height:'auto',
-		dataheight: 'auto',
-		drag: true,
-		resize: false,
-		caption:"<b>"+caption+"</b>",
-		left:250,
-		top:170,
-		zIndex : 1000,
-		jqModal : true,
-		modal : false,
-		closeOnEscape : true,
-		align: 'center',
-		buttonalign : 'center',
-		buttons : []
-		// {text:'textbutt', id:"buttid", onClick : function(){...}}
-		// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...
-	};
-	jQuery.extend(mopt,modalopt || {});
-	var jm = mopt.jqModal;
-	if(jQuery.fn.jqm && !jm) { jm = false; }
-	// in case there is no jqModal
-	var buttstr ="";
-	if(mopt.buttons.length > 0) {
-		for(var i=0;i<mopt.buttons.length;i++) {
-			if(typeof mopt.buttons[i].id == "undefined") { mopt.buttons[i].id = "info_button_"+i; }
-			buttstr += "<a href='javascript:void(0)' id='"+mopt.buttons[i].id+"' class='fm-button ui-state-default ui-corner-all'>"+mopt.buttons[i].text+"</a>";
-		}
-	}
-	var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px",
-	cn = "text-align:"+mopt.align+";";
-	var cnt = "<div id='info_id'>";
-	cnt += "<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>";
-	cnt += c_b ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a href='javascript:void(0)' id='closedialog' class='fm-button ui-state-default ui-corner-all'>"+c_b+"</a>"+buttstr+"</div>" :
-		buttstr != ""  ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : "";
-	cnt += "</div>";
-
-	try {
-		if(jQuery("#info_dialog").attr("aria-hidden") == "false") {
-			hideModal("#info_dialog",{jqm:jm});
-		}
-		jQuery("#info_dialog").remove();
-	} catch (e){}
-	createModal({
-		themodal:'info_dialog',
-		modalhead:'info_head',
-		modalcontent:'info_content',
-		scrollelm: 'infocnt'},
-		cnt,
-		mopt,
-		'','',true
-	);
-	// attach onclick after inserting into the dom
-	if(buttstr) {
-		jQuery.each(mopt.buttons,function(i){
-			jQuery("#"+this.id,"#info_id").bind('click',function(){mopt.buttons[i].onClick.call(jQuery("#info_dialog")); return false;});
-		});
-	}
-	jQuery("#closedialog", "#info_id").click(function(e){
-		hideModal("#info_dialog",{jqm:jm});
-		return false;
-	});
-	jQuery(".fm-button","#info_dialog").hover(
-		function(){jQuery(this).addClass('ui-state-hover');}, 
-		function(){jQuery(this).removeClass('ui-state-hover');}
-	);
-	viewModal("#info_dialog",{
-		onHide: function(h) {
-			h.w.hide().remove();
-			if(h.o) { h.o.remove(); }
-		},
-		modal :mopt.modal,
-		jqm:jm
-	});
-	try{$("#info_dialog").focus();} catch (e){}
-}
-// Form Functions
-function createEl(eltype,options,vl,autowidth, ajaxso) {
-	var elem = "";
-	if(options.defaultValue) { delete options.defaultValue; }
-	function bindEv (el, opt) {
-		if(jQuery.isFunction(opt.dataInit)) {
-			// datepicker fix 
-			el.id = opt.id;
-			opt.dataInit(el);
-			delete opt.id;
-			delete opt.dataInit;
-		}
-		if(opt.dataEvents) {
-		    jQuery.each(opt.dataEvents, function() {
-		        if (this.data !== undefined) {
-			        jQuery(el).bind(this.type, this.data, this.fn);
-		        } else {
-		            jQuery(el).bind(this.type, this.fn);
-		        }
-		    });
-			delete opt.dataEvents;
-		}
-		return opt;
-	}
-	switch (eltype)
-	{
-		case "textarea" :
-				elem = document.createElement("textarea");
-				if(autowidth) {
-					if(!options.cols) { jQuery(elem).css({width:"98%"});}
-				} else if (!options.cols) { options.cols = 20; }
-				if(!options.rows) { options.rows = 2; }
-				if(vl=='&nbsp;' || vl=='&#160;' || (vl.length==1 && vl.charCodeAt(0)==160)) {vl="";}
-				elem.value = vl;
-				options = bindEv(elem,options);
-				jQuery(elem).attr(options).attr({"role":"textbox","multiline":"true"});
-				break;
-		case "checkbox" : //what code for simple checkbox
-			elem = document.createElement("input");
-			elem.type = "checkbox";
-			if( !options.value ) {
-				var vl1 = vl.toLowerCase();
-				if(vl1.search(/(false|0|no|off|undefined)/i)<0 && vl1!=="") {
-					elem.checked=true;
-					elem.defaultChecked=true;
-					elem.value = vl;
-				} else {
-					elem.value = "on";
-				}
-				jQuery(elem).attr("offval","off");
-			} else {
-				var cbval = options.value.split(":");
-				if(vl === cbval[0]) {
-					elem.checked=true;
-					elem.defaultChecked=true;
-				}
-				elem.value = cbval[0];
-				jQuery(elem).attr("offval",cbval[1]);
-				try {delete options.value;} catch (e){}
-			}
-			options = bindEv(elem,options);
-			jQuery(elem).attr(options).attr("role","checkbox");
-			break;
-		case "select" :
-			elem = document.createElement("select");
-			elem.setAttribute("role","select");
-			var msl, ovm = [];
-			if(options.multiple===true) {
-				msl = true;
-				elem.multiple="multiple";
-				$(elem).attr("aria-multiselectable","true");
-			} else { msl = false; }
-			if(typeof(options.dataUrl) != "undefined") {
-				jQuery.ajax(jQuery.extend({
-					url: options.dataUrl,
-					type : "GET",
-					complete: function(data,status){
-						try {delete options.dataUrl; delete options.value;} catch (e){}
-						var a;
-						if(typeof(options.buildSelect) != "undefined") {
-							var b = options.buildSelect(data);
-							a = jQuery(b).html();
-							delete options.buildSelect;
-						} else {
-							a = jQuery(data.responseText).html();
-						}
-						if(a) {
-							jQuery(elem).append(a);
-							options = bindEv(elem,options);
-							if(typeof options.size === 'undefined') { options.size =  msl ? 3 : 1;}
-							if(msl) {
-								ovm = vl.split(",");
-								ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
-							} else {
-								ovm[0] = jQuery.trim(vl);
-							}
-							jQuery(elem).attr(options);
-							setTimeout(function(){
-								jQuery("option",elem).each(function(i){
-									if(i===0) { this.selected = ""; }
-									$(this).attr("role","option");
-									if(jQuery.inArray(jQuery.trim(jQuery(this).text()),ovm) > -1 || jQuery.inArray(jQuery.trim(jQuery(this).val()),ovm) > -1 ) {
-										this.selected= "selected";
-										if(!msl) { return false; }
-									}
-								});
-							},0);
-						}
-					}
-				},ajaxso || {}));
-			} else if(options.value) {
-				var i;
-				if(msl) {
-					ovm = vl.split(",");
-					ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
-					if(typeof options.size === 'undefined') {options.size = 3;}
-				} else {
-					options.size = 1;
-				}
-				if(typeof options.value === 'function') { options.value = options.value(); }
-				var so,sv, ov;
-				if(typeof options.value === 'string') {
-					so = options.value.split(";");
-					for(i=0; i<so.length;i++){
-						sv = so[i].split(":");
-						if(sv.length > 2 ) {
-							sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n;} }).join(":");
-						}
-						ov = document.createElement("option");
-						ov.setAttribute("role","option");
-						ov.value = sv[0]; ov.innerHTML = sv[1];
-						if (!msl &&  (jQuery.trim(sv[0]) == jQuery.trim(vl) || jQuery.trim(sv[1]) == jQuery.trim(vl))) { ov.selected ="selected"; }
-						if (msl && (jQuery.inArray(jQuery.trim(sv[1]), ovm)>-1 || jQuery.inArray(jQuery.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
-						elem.appendChild(ov);
-					}
-				} else if (typeof options.value === 'object') {
-					var oSv = options.value;
-					for ( var key in oSv) {
-						if (oSv.hasOwnProperty(key ) ){
-							ov = document.createElement("option");
-							ov.setAttribute("role","option");
-							ov.value = key; ov.innerHTML = oSv[key];
-							if (!msl &&  ( jQuery.trim(key) == jQuery.trim(vl) || jQuery.trim(oSv[key]) == jQuery.trim(vl)) ) { ov.selected ="selected"; }
-							if (msl && (jQuery.inArray(jQuery.trim(oSv[key]),ovm)>-1 || jQuery.inArray(jQuery.trim(key),ovm)>-1)) { ov.selected ="selected"; }
-							elem.appendChild(ov);
-						}
-					}
-				}
-				options = bindEv(elem,options);
-				try {delete options.value;} catch (e){}
-				jQuery(elem).attr(options);
-			}
-			break;
-		case "text" :
-		case "password" :
-		case "button" :
-			var role;
-			if(eltype=="button") { role = "button"; }
-			else { role = "textbox"; }
-			elem = document.createElement("input");
-			elem.type = eltype;
-			elem.value = vl;
-			options = bindEv(elem,options);
-			if(eltype != "button"){
-				if(autowidth) {
-					if(!options.size) { jQuery(elem).css({width:"98%"}); }
-				} else if (!options.size) { options.size = 20; }
-			}
-			jQuery(elem).attr(options).attr("role",role);
-			break;
-		case "image" :
-		case "file" :
-			elem = document.createElement("input");
-			elem.type = eltype;
-			options = bindEv(elem,options);
-			jQuery(elem).attr(options);
-			break;
-		case "custom" :
-			elem = document.createElement("span");
-			try {
-				if(jQuery.isFunction(options.custom_element)) {
-					var celm = options.custom_element.call(this,vl,options);
-					if(celm) {
-						celm = jQuery(celm).addClass("customelement").attr({id:options.id,name:options.name});
-						jQuery(elem).empty().append(celm);
-					} else {
-						throw "e2";
-					}
-				} else {
-					throw "e1";
-				}
-			} catch (e) {
-				if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose);}
-				if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
-				else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-			}
-			break;
-	}
-	return elem;
-}
-// Date Validation Javascript
-function daysInFebruary (year){
-	// February has 29 days in any year evenly divisible by four,
-    // EXCEPT for centurial years which are not also divisible by 400.
-    return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );
-}
-function DaysArray(n) {
-	for (var i = 1; i <= n; i++) {
-		this[i] = 31;
-		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
-		if (i==2) {this[i] = 29;}
-	} 
-	return this;
-}
-function checkDate (format, date) {
-	var tsp = {}, sep;
-	format = format.toLowerCase();
-	//we search for /,-,. for the date separator
-	if(format.indexOf("/") != -1) {
-		sep = "/";
-	} else if(format.indexOf("-") != -1) {
-		sep = "-";
-	} else if(format.indexOf(".") != -1) {
-		sep = ".";
-	} else {
-		sep = "/";
-	}
-	format = format.split(sep);
-	date = date.split(sep);
-	if (date.length != 3) { return false; }
-	var j=-1,yln, dln=-1, mln=-1;
-	for(var i=0;i<format.length;i++){
-		var dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10); 
-		tsp[format[i]] = dv;
-		yln = format[i];
-		if(yln.indexOf("y") != -1) { j=i; }
-		if(yln.indexOf("m") != -1) { mln=i; }
-		if(yln.indexOf("d") != -1) { dln=i; }
-	}
-	if (format[j] == "y" || format[j] == "yyyy") {
-		yln=4;
-	} else if(format[j] =="yy"){
-		yln = 2;
-	} else {
-		yln = -1;
-	}
-	var daysInMonth = DaysArray(12);
-	var strDate;
-	if (j === -1) {
-		return false;
-	} else {
-		strDate = tsp[format[j]].toString();
-		if(yln == 2 && strDate.length == 1) {yln = 1;}
-		if (strDate.length != yln || (tsp[format[j]]===0 && date[j]!="00")){
-			return false;
-		}
-	}
-	if(mln === -1) {
-		return false;
-	} else {
-		strDate = tsp[format[mln]].toString();
-		if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){
-			return false;
-		}
-	}
-	if(dln === -1) {
-		return false;
-	} else {
-		strDate = tsp[format[dln]].toString();
-		if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]==2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){
-			return false;
-		}
-	}
-	return true;
-}
-
-function isEmpty(val)
-{
-	if (val.match(/^s+$/) || val == "")	{
-		return true;
-	} else {
-		return false;
-	} 
-}
-function checkTime(time){
-	// checks only hh:ss (and optional am/pm)
-	var re = /^(\d{1,2}):(\d{2})([ap]m)?$/,regs;
-	if(!isEmpty(time))
-	{
-		regs = time.match(re);
-		if(regs) {
-			if(regs[3]) {
-				if(regs[1] < 1 || regs[1] > 12) { return false; }
-			} else {
-				if(regs[1] > 23) { return false; }
-			}
-			if(regs[2] > 59) {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
-	return true;
-}
-function checkValues(val, valref,g) {
-	var edtrul,i, nm;
-	if(typeof(valref)=='string'){
-		for( i =0, len=g.p.colModel.length;i<len; i++){
-			if(g.p.colModel[i].name==valref) {
-				edtrul = g.p.colModel[i].editrules;
-				valref = i;
-				try { nm = g.p.colModel[i].formoptions.label; } catch (e) {}
-				break;
-			}
-		}
-	} else if(valref >=0) {
-		edtrul = g.p.colModel[valref].editrules;
-	}
-	if(edtrul) {
-		if(!nm) { nm = g.p.colNames[valref]; }
-		if(edtrul.required === true) {
-			if( val.match(/^s+$/) || val == "" )  { return [false,nm+": "+jQuery.jgrid.edit.msg.required,""]; }
-		}
-		// force required
-		var rqfield = edtrul.required === false ? false : true;
-		if(edtrul.number === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.number,""]; }
-			}
-		}
-		if(typeof edtrul.minValue != 'undefined' && !isNaN(edtrul.minValue)) {
-			if (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.minValue+" "+edtrul.minValue,""];}
-		}
-		if(typeof edtrul.maxValue != 'undefined' && !isNaN(edtrul.maxValue)) {
-			if (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.maxValue+" "+edtrul.maxValue,""];}
-		}
-		var filter;
-		if(edtrul.email === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-			// taken from jquery Validate plugin
-				filter = /^((([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;
-				if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.email,""];}
-			}
-		}
-		if(edtrul.integer === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""]; }
-				if ((val % 1 !== 0) || (val.indexOf('.') != -1)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""];}
-			}
-		}
-		if(edtrul.date === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				var dft = g.p.colModel[valref].datefmt || "Y-m-d";
-				if(!checkDate (dft, val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - "+dft,""]; }
-			}
-		}
-		if(edtrul.time === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				if(!checkTime (val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - hh:mm (am/pm)",""]; }
-			}
-		}
-        if(edtrul.url === true) {
-            if( !(rqfield === false && isEmpty(val)) ) {
-                filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
-                if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.url,""];}
-            }
-        }
-		if(edtrul.custom === true) {
-            if( !(rqfield === false && isEmpty(val)) ) {
-				if(jQuery.isFunction(edtrul.custom_func)) {
-					var ret = edtrul.custom_func.call(g,val,nm);
-					if(jQuery.isArray(ret)) {
-						return ret;
-					} else {
-						return [false,jQuery.jgrid.edit.msg.customarray,""];
-					}
-				} else {
-					return [false,jQuery.jgrid.edit.msg.customfcheck,""];
-				}
-			}
-		}
-	}
-	return [true,"",""];
-}

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.common.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css	(nonexistent)
@@ -1,30 +0,0 @@
-/* Multiselect
-----------------------------------*/
-
-.ui-multiselect { border: solid 1px; font-size: 0.8em; }
-.ui-multiselect ul { -moz-user-select: none; }
-.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }
-.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}
-.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }
-
-.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }
-.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }
-.ui-multiselect ul.selected li { }
-
-.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }
-.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }
-.ui-multiselect ul.available li { padding-left: 10px; }
- 
-.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}
-.ui-multiselect .ui-state-hover { border: none; }
-.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}
- 
-.ui-multiselect .add-all { float: right; padding: 7px;}
-.ui-multiselect .remove-all { float: right; padding: 7px;}
-.ui-multiselect .search { float: left; padding: 4px;}
-.ui-multiselect .count { float: left; padding: 7px;}
-
-.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }
-.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }
- 
-.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.multiselect.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css	(nonexistent)
@@ -1,7 +0,0 @@
-.ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}
-.ui-searchFilter table {position:relative; margin:0em; width:auto}
-.ui-searchFilter table td {margin: 0em; padding: 1px;}
-.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}
-.ui-searchFilter .ui-state-default { cursor: pointer; }
-.ui-searchFilter .divider { height: 1px; }
-.ui-searchFilter .divider div { background-color: black; height: 1px; }
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/jquery.searchFilter.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css	(nonexistent)
@@ -1,129 +0,0 @@
-/*Grid*/
-.ui-jqgrid {position: relative; font-size:11px;}
-.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em;}
-/* caption*/
-.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0px none;border-right: 0px none; border-top: 0px none;}
-.ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; }
-.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
-.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }
-/* header*/
-.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0em;padding: 0em; overflow-x: hidden; overflow-y: auto; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
-.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}
-.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0em;}
-.ui-jqgrid .ui-jqgrid-htable th {height:22px;padding: 0 2px 0 2px;}
-.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative; height:17px;}
-.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0px none;border-bottom : 0px none;}
-.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0px none;}
-.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0px none;}
-.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}
-.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}
-.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}
-.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}
-.ui-jqgrid .ui-icon-desc {margin-top:3px;height:12px;}
-.ui-jqgrid .ui-i-asc {margin-top:0px;height:16px;}
-.ui-jqgrid .ui-i-desc {margin-top:0px;margin-left:13px;height:16px;}
-.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;}
-.ui-jqgrid tr.ui-search-toolbar th { border-top-width: 1px !important; border-top-color: inherit !important; border-top-style: ridge !important }
-tr.ui-search-toolbar input {margin: 1px 0px 0px 0px}
-tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}
-/* body */ 
-.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0em; padding:0; overflow: auto; text-align:left;}
-.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0em;}
-.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
-.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
-.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
-.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0px; border: 0px none;}
-.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none;	border:0 none;}
-/* footer */
-.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0em;padding: 0em; overflow: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
-.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0em;}
-.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 21px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;}
-.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
-.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
-/* Pager*/
-.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;}
-.ui-jqgrid .ui-pager-control {position: relative;}
-.ui-jqgrid .ui-pg-table {position: relative; padding-bottom:2px; width:auto; margin: 0em;}
-.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:1px;}
-.ui-jqgrid .ui-pg-button  { height:19px !important;}
-.ui-jqgrid .ui-pg-button span { display: block; margin: 1px; float:left;}
-.ui-jqgrid .ui-pg-button:hover { padding: 0px; }
-.ui-jqgrid .ui-state-disabled:hover {padding:1px;}
-.ui-jqgrid .ui-pg-input { height:13px;font-size:.8em; margin: 0em;}
-.ui-jqgrid .ui-pg-selbox {font-size:.8em; line-height:18px; display:block; height:18px; margin: 0em;}
-.ui-jqgrid .ui-separator {height: 18px; border-left: 1px solid #ccc ; border-right: 1px solid #ccc ; margin: 1px; float: right;}
-.ui-jqgrid .ui-paging-info {font-weight: normal;height:19px; margin-top:3px;margin-right:4px;}
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-button { cursor:pointer; }
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon {float:left;margin:0 2px;}
-.ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { margin: 0em;}
-.ui-jqgrid td textarea {width:auto;height:auto;}
-.ui-jqgrid .ui-jqgrid-toppager {border-left: 0px none !important;border-right: 0px none !important; border-top: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px !important;white-space: nowrap;overflow: hidden;}
-/*subgrid*/
-.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}
-.ui-jqgrid .ui-subgrid {margin:0em;padding:0em; width:100%;}
-.ui-jqgrid .ui-subgrid table {table-layout: fixed;}
-.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
-.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0px none !important;}
-.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0px 0px 1px 0px;}
-.ui-jqgrid .ui-th-subgrid {height:20px;}
-/* loading */
-.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important;}
-.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}
-* html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-/* end loading div */
-/* toolbar */
-.ui-jqgrid .ui-userdata {border-left: 0px none;	border-right: 0px none;	height : 21px;overflow: hidden;	}
-/*Modal Window */
-.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}
-.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative;  }
-.ui-jqdialog .ui-jqdialog-title { margin: .1em 0 .2em; } 
-.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-
-.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }
-.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }
-.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}
-.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}
-/* end Modal window*/
-/* Form edit */
-.ui-jqdialog-content .FormGrid {margin: 0px;}
-.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0em;}
-.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0em;}
-.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0em;}
-.EditTable td textarea { width:auto; height:auto;}
-.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0px none;border-left: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
-.ui-jqdialog-content td.navButton {text-align: center; border-left: 0px none;border-top: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
-
-.ui-jqdialog-content .CaptionTD {text-align: left; vertical-align: top;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; padding: 1px;white-space: nowrap;}
-.ui-jqdialog-content .DataTD {padding: 1px;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; vertical-align: top;}
-.ui-jqdialog-content .form-view-data {white-space:pre}
-.fm-button { display: inline-block; margin:0 4px 0 0; padding: .4em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
-.fm-button-icon-left { padding-left: 1.9em; }
-.fm-button-icon-right { padding-right: 1.9em; }
-.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }
-.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}
-#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }
-/* End Eorm edit */
-/*.ui-jqgrid .edit-cell {}*/
-.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0px none;}
-/* Tree Grid */
-.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}
-.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}
-.ui-jqgrid .tree-plus {position: absolute;	height: 18px; width: 18px;	overflow: hidden;}
-.ui-jqgrid .tree-leaf {position: absolute;	height: 18px; width: 18px;overflow: hidden;}
-.ui-jqgrid .treeclick {cursor: pointer;}
-/* moda dialog */
-.jqmOverlay { background-color: #000; }
-* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}
-/* RTL Support */
-.ui-jqgrid .ui-jqgrid-title-rtl {float:right;margin: .1em 0 .2em; }
-.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right; padding-left: 20px;}
-.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0px;}
-.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0px -1px -3px;}
-.ui-jqgrid .ui-sort-rtl {left:0px;}
-.ui-jqgrid .tree-wrap-ltr {float: left;}
-.ui-jqgrid .tree-wrap-rtl {float: right;}
-.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis; -moz-binding:url('ellipsis-xbl.xml#ellipsis');}
-

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ui.jqgrid.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml	(nonexistent)
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<bindings
-    xmlns="http://www.mozilla.org/xbl"
-    xmlns:xbl="http://www.mozilla.org/xbl"
-    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-    <binding id="ellipsis">
-        <content>
-            <xul:window><!-- xul:window tag required for FF2 -->
-                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
-            </xul:window>
-        </content>
-    </binding>
-</bindings>

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/css/ellipsis-xbl.xml
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqDnR.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqDnR.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqDnR.js	(nonexistent)
@@ -1,68 +0,0 @@
-/*
- * jqDnR - Minimalistic Drag'n'Resize for jQuery.
- *
- * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
- * Licensed under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- * 
- * $Version: 2007.08.19 +r2
- */
-
-(function($){
-$.fn.jqDrag=function(h){return i(this,h,'d');};
-$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
-$.jqDnR={
-	dnr:{},
-	e:0,
-	drag:function(v){
- 		if(M.k == 'd')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});
- 		else {
-			E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
-			if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
-		}
-  		return false;
-  	},
-	stop:function(){
-		//E.css('opacity',M.o);
-		$(document).unbind('mousemove',J.drag).unbind('mouseup',J.stop);
-	}
-};
-var J=$.jqDnR,M=J.dnr,E=J.e,E1,
-i=function(e,h,k,aR){
-	return e.each(function(){
-		h=(h)?$(h,e):e;
- 		h.bind('mousedown',{e:e,k:k},function(v){
- 			var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
- 			// attempt utilization of dimensions plugin to fix IE issues
- 			if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
- 			M={
- 				X:p.left||f('left')||0,
- 				Y:p.top||f('top')||0,
- 				W:f('width')||E[0].scrollWidth||0,
- 				H:f('height')||E[0].scrollHeight||0,
- 				pX:v.pageX,
- 				pY:v.pageY,
- 				k:d.k
- 				//o:E.css('opacity')
- 			};
-			// also resize
-			if(E1 && d.k != 'd'){
- 				M1={
-					X:p.left||f1('left')||0,
-					Y:p.top||f1('top')||0,
-					W:E1[0].offsetWidth||f1('width')||0,
-					H:E1[0].offsetHeight||f1('height')||0,
-					pX:v.pageX,
-					pY:v.pageY,
-					k:d.k
-				};
-			} else {M1 = false;}			
- 			//E.css({opacity:0.8});
- 			$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
- 			return false;
- 		});
-	});
-},
-f=function(k){return parseInt(E.css(k))||false;};
-f1=function(k){	return parseInt(E1.css(k))||false;};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jqDnR.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js	(nonexistent)
@@ -1,106 +0,0 @@
-/*
- Transform a table to a jqGrid.
- Peter Romianowski <peter.romianowski@optivo.de> 
- If the first column of the table contains checkboxes or
- radiobuttons then the jqGrid is made selectable.
-*/
-// Addition - selector can be a class or id
-function tableToGrid(selector, options) {
-jQuery(selector).each(function() {
-	if(this.grid) {return;} //Adedd from Tony Tomov
-	// This is a small "hack" to make the width of the jqGrid 100%
-	jQuery(this).width("99%");
-	var w = jQuery(this).width();
-
-	// Text whether we have single or multi select
-	var inputCheckbox = jQuery('input[type=checkbox]:first', jQuery(this));
-	var inputRadio = jQuery('input[type=radio]:first', jQuery(this));
-	var selectMultiple = inputCheckbox.length > 0;
-	var selectSingle = !selectMultiple && inputRadio.length > 0;
-	var selectable = selectMultiple || selectSingle;
-	var inputName = inputCheckbox.attr("name") || inputRadio.attr("name");
-
-	// Build up the columnModel and the data
-	var colModel = [];
-	var colNames = [];
-	jQuery('th', jQuery(this)).each(function() {
-		if (colModel.length === 0 && selectable) {
-			colModel.push({
-				name: '__selection__',
-				index: '__selection__',
-				width: 0,
-				hidden: true
-			});
-			colNames.push('__selection__');
-		} else {
-			colModel.push({
-				name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
-				index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
-				width: jQuery(this).width() || 150
-			});
-			colNames.push(jQuery(this).html());
-		}
-	});
-	var data = [];
-	var rowIds = [];
-	var rowChecked = [];
-	jQuery('tbody > tr', jQuery(this)).each(function() {
-		var row = {};
-		var rowPos = 0;
-		jQuery('td', jQuery(this)).each(function() {
-			if (rowPos === 0 && selectable) {
-				var input = jQuery('input', jQuery(this));
-				var rowId = input.attr("value");
-				rowIds.push(rowId || data.length);
-				if (input.attr("checked")) {
-					rowChecked.push(rowId);
-				}
-				row[colModel[rowPos].name] = input.attr("value");
-			} else {
-				row[colModel[rowPos].name] = jQuery(this).html();
-			}
-			rowPos++;
-		});
-		if(rowPos >0) { data.push(row); }
-	});
-
-	// Clear the original HTML table
-	jQuery(this).empty();
-
-	// Mark it as jqGrid
-	jQuery(this).addClass("scroll");
-
-	jQuery(this).jqGrid($.extend({
-		datatype: "local",
-		width: w,
-		colNames: colNames,
-		colModel: colModel,
-		multiselect: selectMultiple
-		//inputName: inputName,
-		//inputValueCol: imputName != null ? "__selection__" : null
-	}, options || {}));
-
-	// Add data
-	var a;
-	for (a = 0; a < data.length; a++) {
-		var id = null;
-		if (rowIds.length > 0) {
-			id = rowIds[a];
-			if (id && id.replace) {
-				// We have to do this since the value of a checkbox
-				// or radio button can be anything 
-				id = encodeURIComponent(id).replace(/[.\-%]/g, "_");
-			}
-		}
-		if (id === null) {
-			id = a + 1;
-		}
-		jQuery(this).jqGrid("addRowData",id, data[a]);
-	}
-
-	// Set the selection
-	for (a = 0; a < rowChecked.length; a++) {
-		jQuery(this).jqGrid("setSelection",rowChecked[a]);
-	}
-});
-};

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.tbltogrid.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js	(nonexistent)
@@ -1,526 +0,0 @@
-/*
-**
- * formatter for values but most of the values if for jqGrid
- * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
- * we are trying to keep it as light as possible
- * Joshua Burnett josh@9ci.com	
- * http://www.greenbill.com
- *
- * Changes from Tony Tomov tony@trirand.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
- * 
-**/
-
-;(function($) {
-	$.fmatter = {};
-	//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
-	//example {id:1234,}
-	$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
-		//debug(this);
-		//debug(cellval);
-		// build main options before element iteration
-		opts = $.extend({}, $.jgrid.formatter, opts);
-		return fireFormatter(formatType,cellval, opts, rwd, act); 
-	};
-	$.fmatter.util = {
-		// Taken from YAHOO utils
-		NumberFormat : function(nData,opts) {
-			if(!isNumber(nData)) {
-				nData *= 1;
-			}
-			if(isNumber(nData)) {
-		        var bNegative = (nData < 0);
-				var sOutput = nData + "";
-				var sDecimalSeparator = (opts.decimalSeparator) ? opts.decimalSeparator : ".";
-				var nDotIndex;
-				if(isNumber(opts.decimalPlaces)) {
-					// Round to the correct decimal place
-					var nDecimalPlaces = opts.decimalPlaces;
-					var nDecimal = Math.pow(10, nDecimalPlaces);
-					sOutput = Math.round(nData*nDecimal)/nDecimal + "";
-					nDotIndex = sOutput.lastIndexOf(".");
-					if(nDecimalPlaces > 0) {
-                    // Add the decimal separator
-						if(nDotIndex < 0) {
-							sOutput += sDecimalSeparator;
-							nDotIndex = sOutput.length-1;
-						}
-						// Replace the "."
-						else if(sDecimalSeparator !== "."){
-							sOutput = sOutput.replace(".",sDecimalSeparator);
-						}
-                    // Add missing zeros
-						while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
-						    sOutput += "0";
-						}
-	                }
-	            }
-	            if(opts.thousandsSeparator) {
-	                var sThousandsSeparator = opts.thousandsSeparator;
-	                nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
-	                nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
-	                var sNewOutput = sOutput.substring(nDotIndex);
-	                var nCount = -1;
-	                for (var i=nDotIndex; i>0; i--) {
-	                    nCount++;
-	                    if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
-	                        sNewOutput = sThousandsSeparator + sNewOutput;
-	                    }
-	                    sNewOutput = sOutput.charAt(i-1) + sNewOutput;
-	                }
-	                sOutput = sNewOutput;
-	            }
-	            // Prepend prefix
-	            sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
-	            // Append suffix
-	            sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
-	            return sOutput;
-				
-			} else {
-				return nData;
-			}
-		},
-		// Tony Tomov
-		// PHP implementation. Sorry not all options are supported.
-		// Feel free to add them if you want
-		DateFormat : function (format, date, newformat, opts)  {
-			var	token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,
-			timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
-			timezoneClip = /[^-+\dA-Z]/g,
-			pad = function (value, length) {
-				value = String(value);
-				length = parseInt(length,10) || 2;
-				while (value.length < length)  { value = '0' + value; }
-				return value;
-			},
-		    ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},
-		    timestamp=0, dM, k,hl,
-		    dateFormat=["i18n"];
-			// Internationalization strings
-		    dateFormat["i18n"] = {
-				dayNames: opts.dayNames,
-				monthNames: opts.monthNames
-			};
-			if( format in opts.masks ) { format = opts.masks[format]; }
-			if(date.constructor === Date) {
-				timestamp = date;
-			} else {
-				date = date.split(/[\\\/:_;.\t\T\s-]/);
-				format = format.split(/[\\\/:_;.\t\T\s-]/);
-				// parsing for month names
-				for(k=0,hl=format.length;k<hl;k++){
-					if(format[k] == 'M') {
-						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
-						if(dM !== -1 && dM < 12){date[k] = dM+1;}
-					}
-					if(format[k] == 'F') {
-						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
-						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
-					}
-				    ts[format[k].toLowerCase()] = parseInt(date[k],10);
-				}
-				ts.m = parseInt(ts.m,10)-1;
-				var ty = ts.y;
-				if (ty >= 70 && ty <= 99) { ts.y = 1900+ts.y; }
-				else if (ty >=0 && ty <=69) { ts.y= 2000+ts.y; }
-				timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
-			}
-			
-			if( newformat in opts.masks )  {
-				newformat = opts.masks[newformat];
-			} else if ( !newformat ) {
-				newformat = 'Y-m-d';
-			}
-		    var 
-		        G = timestamp.getHours(),
-		        i = timestamp.getMinutes(),
-		        j = timestamp.getDate(),
-				n = timestamp.getMonth() + 1,
-				o = timestamp.getTimezoneOffset(),
-				s = timestamp.getSeconds(),
-				u = timestamp.getMilliseconds(),
-				w = timestamp.getDay(),
-				Y = timestamp.getFullYear(),
-				N = (w + 6) % 7 + 1,
-				z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,
-				flags = {
-					// Day
-					d: pad(j),
-					D: dateFormat.i18n.dayNames[w],
-					j: j,
-					l: dateFormat.i18n.dayNames[w + 7],
-					N: N,
-					S: opts.S(j),
-					//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',
-					w: w,
-					z: z,
-					// Week
-					W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),
-					// Month
-					F: dateFormat.i18n.monthNames[n - 1 + 12],
-					m: pad(n),
-					M: dateFormat.i18n.monthNames[n - 1],
-					n: n,
-					t: '?',
-					// Year
-					L: '?',
-					o: '?',
-					Y: Y,
-					y: String(Y).substring(2),
-					// Time
-					a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],
-					A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],
-					B: '?',
-					g: G % 12 || 12,
-					G: G,
-					h: pad(G % 12 || 12),
-					H: pad(G),
-					i: pad(i),
-					s: pad(s),
-					u: u,
-					// Timezone
-					e: '?',
-					I: '?',
-					O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
-					P: '?',
-					T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""),
-					Z: '?',
-					// Full Date/Time
-					c: '?',
-					r: '?',
-					U: Math.floor(timestamp / 1000)
-				};	
-			return newformat.replace(token, function ($0) {
-				return $0 in flags ? flags[$0] : $0.substring(1);
-			});			
-		}
-	};
-	$.fn.fmatter.defaultFormat = function(cellval, opts) {
-		return (isValue(cellval) && cellval!=="" ) ?  cellval : opts.defaultValue ? opts.defaultValue : "&#160;";
-	};
-	$.fn.fmatter.email = function(cellval, opts) {
-		if(!isEmpty(cellval)) {
-			return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
-        }else {
-			return $.fn.fmatter.defaultFormat(cellval,opts );
-        }
-	};
-	$.fn.fmatter.checkbox =function(cval, opts) {
-		var op = $.extend({},opts.checkbox), ds;
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(op.disabled===true) {ds = "disabled";} else {ds="";}
-		if(isEmpty(cval) || isUndefined(cval) ) { cval = $.fn.fmatter.defaultFormat(cval,op); }
-		cval=cval+""; cval=cval.toLowerCase();
-		var bchk = cval.search(/(false|0|no|off)/i)<0 ? " checked='checked' " : "";
-        return "<input type=\"checkbox\" " + bchk  + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
-    };
-	$.fn.fmatter.link = function(cellval, opts) {
-		var op = {target:opts.target };
-		var target = "";
-		if(!isUndefined(opts.colModel.formatoptions)) {
-            op = $.extend({},op,opts.colModel.formatoptions);
-        }
-		if(op.target) {target = 'target=' + op.target;}
-        if(!isEmpty(cellval)) {
-			return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
-        }else {
-            return $.fn.fmatter.defaultFormat(cellval,opts);
-        }
-    };
-	$.fn.fmatter.showlink = function(cellval, opts) {
-		var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName },
-		target = "", idUrl;
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(op.target) {target = 'target=' + op.target;}
-		idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
-        if(isString(cellval)) {	//add this one even if its blank string
-			return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
-        }else {
-			return $.fn.fmatter.defaultFormat(cellval,opts);
-	    }
-    };
-	$.fn.fmatter.integer = function(cellval, opts) {
-		var op = $.extend({},opts.integer);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(isEmpty(cellval)) {
-			return op.defaultValue;
-		}
-		return $.fmatter.util.NumberFormat(cellval,op);
-	};
-	$.fn.fmatter.number = function (cellval, opts) {
-		var op = $.extend({},opts.number);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(isEmpty(cellval)) {
-			return op.defaultValue;
-		}
-		return $.fmatter.util.NumberFormat(cellval,op);
-	};
-	$.fn.fmatter.currency = function (cellval, opts) {
-		var op = $.extend({},opts.currency);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(isEmpty(cellval)) {
-			return op.defaultValue;
-		}
-		return $.fmatter.util.NumberFormat(cellval,op);
-	};
-	$.fn.fmatter.date = function (cellval, opts, rwd, act) {
-		var op = $.extend({},opts.date);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(!op.reformatAfterEdit && act=='edit'){
-			return $.fn.fmatter.defaultFormat(cellval, opts);
-		} else if(!isEmpty(cellval)) {
-			return  $.fmatter.util.DateFormat(op.srcformat,cellval,op.newformat,op);
-		} else {
-			return $.fn.fmatter.defaultFormat(cellval, opts);
-		}
-	};
-	$.fn.fmatter.select = function (cellval,opts, rwd, act) {
-		// jqGrid specific
-		cellval = cellval + "";
-		var oSelect = false, ret=[];
-		if(!isUndefined(opts.colModel.editoptions)){
-			oSelect= opts.colModel.editoptions.value;
-		}
-		if (oSelect) {
-			var	msl =  opts.colModel.editoptions.multiple === true ? true : false,
-			scell = [], sv;
-			if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
-			if (isString(oSelect)) {
-				// mybe here we can use some caching with care ????
-				var so = oSelect.split(";"), j=0;
-				for(var i=0; i<so.length;i++){
-					sv = so[i].split(":");
-					if(sv.length > 2 ) {
-						sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n; } }).join(":");
-					}
-					if(msl) {
-						if(jQuery.inArray(sv[0],scell)>-1) {
-							ret[j] = sv[1];
-							j++;
-						}
-					} else if($.trim(sv[0])==$.trim(cellval)) {
-						ret[0] = sv[1];
-						break;
-					}
-				}
-			} else if(isObject(oSelect)) {
-				// this is quicker
-				if(msl) {
-					ret = jQuery.map(scell, function(n, i){
-						return oSelect[n];
-					});
-				} else {
-					ret[0] = oSelect[cellval] || "";
-				}
-			}
-		}
-		cellval = ret.join(", ");
-		return  cellval == "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
-	};
-	$.fn.fmatter.rowactions = function(rid,gid,act,keys) {
-		switch(act)
-		{
-			case 'edit':
-				var restorerow = function()	{
-					$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
-					$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
-				};
-				$('#'+gid).jqGrid('editRow',rid,keys,null,null,null,{oper:'edit'},restorerow,null,restorerow);
-				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).hide();
-				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).show();
-			break;
-			case 'save':
-				$('#'+gid).jqGrid('saveRow',rid,null,null );
-				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
-				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
-				break;
-			case 'cancel' :
-				$('#'+gid).jqGrid('restoreRow',rid);
-				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
-				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
-				break;
-		}
-	};
-	$.fn.fmatter.actions = function(cellval,opts, rwd) {
-		var op ={keys:false, editbutton:true, delbutton:true};
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend(op,opts.colModel.formatoptions);
-		}
-		var rowid = opts.rowId, str="",ocl;
-		if(typeof(rowid) =='undefined' || isEmpty(rowid)) { return ""; }
-		if(op.editbutton){
-			ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','edit',"+op.keys+");";
-			str =str+ "<div style='margin-left:8px;'><div title='"+$.jgrid.nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='ui-icon ui-icon-pencil'></span></div>";
-		}
-		if(op.delbutton) {
-			ocl = "onclick=jQuery('#"+opts.gid+"').jqGrid('delGridRow','"+rowid+"');";
-			str = str+"<div title='"+$.jgrid.nav.deltitle+"' style='float:left;margin-left:5px;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='ui-icon ui-icon-trash'></span></div>";
-		}
-		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','save',false);";
-		str = str+"<div title='"+$.jgrid.edit.bSubmit+"' style='float:left;display:none' class='ui-pg-div ui-inline-save'><span class='ui-icon ui-icon-disk' "+ocl+"></span></div>";
-		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','cancel',false);";
-		str = str+"<div title='"+$.jgrid.edit.bCancel+"' style='float:left;display:none;margin-left:5px;' class='ui-pg-div ui-inline-cancel'><span class='ui-icon ui-icon-cancel' "+ocl+"></span></div></div>";
-		return str;
-	};
-	$.unformat = function (cellval,options,pos,cnt) {
-		// specific for jqGrid only
-		var ret, formatType = options.colModel.formatter,
-		op =options.colModel.formatoptions || {}, sep,
-		re = /([\.\*\_\'\(\)\{\}\+\?\\])/g;
-		unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
-		if(typeof unformatFunc !== 'undefined' && isFunction(unformatFunc) ) {
-			ret = unformatFunc($(cellval).text(), options, cellval);
-		} else if(typeof formatType !== 'undefined' && isString(formatType) ) {
-			var opts = $.jgrid.formatter || {}, stripTag;
-			switch(formatType) {
-				case 'integer' :
-					op = $.extend({},opts.integer,op);
-					sep = op.thousandsSeparator.replace(re,"\\$1");
-					stripTag = new RegExp(sep, "g");
-					ret = $(cellval).text().replace(stripTag,'');
-					break;
-				case 'number' :
-					op = $.extend({},opts.number,op);
-					sep = op.thousandsSeparator.replace(re,"\\$1");
-					stripTag = new RegExp(sep, "g");
-					ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
-					break;
-				case 'currency':
-					op = $.extend({},opts.currency,op);
-					sep = op.thousandsSeparator.replace(re,"\\$1");
-					stripTag = new RegExp(sep, "g");
-					ret = $(cellval).text().replace(stripTag,'').replace(op.decimalSeparator,'.').replace(op.prefix,'').replace(op.suffix,'');
-					break;
-				case 'checkbox':
-					var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
-					ret = $('input',cellval).attr("checked") ? cbv[0] : cbv[1];
-					break;
-				case 'select' :
-					ret = $.unformat.select(cellval,options,pos,cnt);
-					break;
-				case 'actions':
-					return "";
-				default:
-					ret= $(cellval).text();
-			}
-		}
-		return ret ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
-	};
-	$.unformat.select = function (cellval,options,pos,cnt) {
-		// Spacial case when we have local data and perform a sort
-		// cnt is set to true only in sortDataArray
-		var ret = [];
-		var cell = $(cellval).text();
-		if(cnt===true) { return cell; }
-		var op = $.extend({},options.colModel.editoptions);
-		if(op.value){
-			var oSelect = op.value,
-			msl =  op.multiple === true ? true : false,
-			scell = [], sv;
-			if(msl) { scell = cell.split(","); scell = $.map(scell,function(n){return $.trim(n);}); }
-			if (isString(oSelect)) {
-				var so = oSelect.split(";"), j=0;
-				for(var i=0; i<so.length;i++){
-					sv = so[i].split(":");
-					if(msl) {
-						if(jQuery.inArray(sv[1],scell)>-1) {
-							ret[j] = sv[0];
-							j++;
-						}
-					} else if($.trim(sv[1])==$.trim(cell)) {
-						ret[0] = sv[0];
-						break;
-					}
-				}
-			} else if(isObject(oSelect)) {
-				if(!msl) { scell[0] =  cell; }
-				ret = jQuery.map(scell, function(n){
-					var rv;
-					$.each(oSelect, function(i,val){
-						if (val == n) {
-							rv = i;
-							return false;
-						}
-					});
-					if( rv) { return rv; }
-				});
-			}
-			return ret.join(", ");
-		} else {
-			return cell || "";
-		}
-	};
-	function fireFormatter(formatType,cellval, opts, rwd, act) {
-		var v=cellval;
-
-        if ($.fn.fmatter[formatType]){
-            v = $.fn.fmatter[formatType](cellval, opts, rwd, act);
-        }
-
-        return v;
-	}
-	//private methods and data
-	function debug($obj) {
-		if (window.console && window.console.log) { window.console.log($obj); }
-	}
-	/**
-     * A convenience method for detecting a legitimate non-null value.
-     * Returns false for null/undefined/NaN, true for other values, 
-     * including 0/false/''
-	 *  --taken from the yui.lang
-     */
-    isValue= function(o) {
-		return (isObject(o) || isString(o) || isNumber(o) || isBoolean(o));
-    };
-	isBoolean= function(o) {
-        return typeof o === 'boolean';
-    };
-    isNull= function(o) {
-        return o === null;
-    };
-    isNumber= function(o) {
-        return typeof o === 'number' && isFinite(o);
-    };
-    isString= function(o) {
-        return typeof o === 'string';
-    };
-	/**
-	* check if its empty trim it and replace \&nbsp and \&#160 with '' and check if its empty ===""
-	* if its is not a string but has a value then it returns false, Returns true for null/undefined/NaN
-	essentailly this provdes a way to see if it has any value to format for things like links
-	*/
-	isEmpty= function(o) {
-		if(!isString(o) && isValue(o)) {
-			return false;
-		}else if (!isValue(o)){
-			return true;
-		}
-		o = $.trim(o).replace(/\&nbsp\;/ig,'').replace(/\&#160\;/ig,'');
-        return o==="";
-		
-    };
-    isUndefined= function(o) {
-        return typeof o === 'undefined';
-    };
-	isObject= function(o) {
-		return (o && (typeof o === 'object' || isFunction(o))) || false;
-    };
-	isFunction= function(o) {
-        return typeof o === 'function';
-    };
-
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/jquery.fmatter.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for manipulating columns properties
- * Piotr Roznicki roznicki@o2.pl
- * http://www.roznicki.prv.pl
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/
-$.jgrid.extend({
-	setColumns : function(p) {
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 200,
-			height: 'auto',
-			dataheight: 'auto',
-			modal: false,
-			drag: true,
-			beforeShowForm: null,
-			afterShowForm: null,
-			afterSubmitForm: null,
-			closeOnEscape : true,
-			ShrinkToFit : false,
-			jqModal : false,
-			saveicon: [true,"left","ui-icon-disk"],
-			closeicon: [true,"left","ui-icon-close"],
-			onClose : null,
-			colnameview : true,
-			closeAfterSubmit : true,
-			updateAfterCheck : false,
-			recreateForm : false
-		}, $.jgrid.col, p ||{});
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid ) { return; }
-			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;
-			var onAfterShow = typeof p.afterShowForm === 'function' ? true: false;
-			var onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;			
-			var gID = $t.p.id,
-			dtbl = "ColTbl_"+gID,
-			IDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};
-			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
-				$("#"+IDs.themodal).remove();
-			}
-			if ( $("#"+IDs.themodal).html() != null ) {
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			} else {
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var formdata = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
-				formdata += "<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>";
-				for(i=0;i<this.p.colNames.length;i++){
-					if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
-						formdata += "<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_" + this.p.colModel[i].name + "' class='cbox' value='T' " + 
-						((this.p.colModel[i].hidden===false)?"checked":"") + "/>" +  "<label for='col_" + this.p.colModel[i].name + "'>" + this.p.colNames[i] + ((p.colnameview) ? " (" + this.p.colModel[i].name + ")" : "" )+ "</label></td></tr>";
-					}
-				}
-				formdata += "</tbody></table></div>"
-				var bS  = !p.updateAfterCheck ? "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>" : "",
-				bC  ="<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
-				formdata += "<table border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
-				p.gbox = "#gbox_"+gID;
-				createModal(IDs,formdata,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				if(p.saveicon[0]==true) {
-					$("#dData","#"+dtbl+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
-				}
-				if(p.closeicon[0]==true) {
-					$("#eData","#"+dtbl+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
-				}
-				if(!p.updateAfterCheck) {
-					$("#dData","#"+dtbl+"_2").click(function(e){
-						for(i=0;i<$t.p.colModel.length;i++){
-							if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
-								var nm = $t.p.colModel[i].name.replace(".", "\\.");
-								if($("#col_" + nm,"#"+dtbl).attr("checked")) {
-									$($t).jqGrid("showCol",$t.p.colModel[i].name);
-									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",true); // Added from T. Tomov IE BUG
-								} else {
-									$($t).jqGrid("hideCol",$t.p.colModel[i].name);
-									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",""); // Added from T. Tomov IE BUG
-								}
-							}
-						}
-						if(p.ShrinkToFit===true) {
-							$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
-						}
-						if(p.closeAfterSubmit) hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
-						if (onAfterSubmit) { p.afterSubmitForm($("#"+dtbl)); }
-						return false;
-					});
-				} else {
-					$(":input","#"+dtbl).click(function(e){
-						var cn = this.id.substr(4);
-						if(cn){
-							if(this.checked) {
-								$($t).jqGrid("showCol",cn);
-							} else {
-								$($t).jqGrid("hideCol",cn);
-							}
-							if(p.ShrinkToFit===true) {
-								$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
-							}
-						}
-						return this;
-					});
-				}
-				$("#eData", "#"+dtbl+"_2").click(function(e){
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
-					return false;
-				});
-				$("#dData, #eData","#"+dtbl+"_2").hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);				
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			}
-		});
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/src/grid.setcolumns.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css	(nonexistent)
@@ -1,2 +0,0 @@
-.ui-jqgrid{position:relative;font-size:11px;}.ui-jqgrid .ui-jqgrid-view{position:relative;left:0;top:0;padding:.0em;}.ui-jqgrid .ui-jqgrid-titlebar{padding:.3em .2em .2em .3em;position:relative;border-left:0 none;border-right:0 none;border-top:0 none;}.ui-jqgrid .ui-jqgrid-title{float:left;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span{display:block;margin:1px;}.ui-jqgrid .ui-jqgrid-titlebar-close:hover{padding:0;}.ui-jqgrid .ui-jqgrid-hdiv{position:relative;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-hbox{float:left;padding-right:20px;}.ui-jqgrid .ui-jqgrid-htable{table-layout:fixed;margin:0;}.ui-jqgrid .ui-jqgrid-htable th{height:22px;padding:0 2px 0 2px;}.ui-jqgrid .ui-jqgrid-htable th div{overflow:hidden;position:relative;height:17px;}.ui-th-column,.ui-jqgrid .ui-jqgrid-htable th.ui-th-column{overflow:hidden;white-space:nowrap;text-align:center;border-top:0 none;border-bottom:0 none;}.ui-th-ltr,.ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr{border-left:0 none;}.ui-th-rtl,.ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl{border-right:0 none;}.ui-jqgrid .ui-th-div-ie{white-space:nowrap;zoom:1;height:17px;}.ui-jqgrid .ui-jqgrid-resize{height:20px!important;position:relative;cursor:e-resize;display:inline;overflow:hidden;}.ui-jqgrid .ui-grid-ico-sort{overflow:hidden;position:absolute;display:inline;cursor:pointer!important;}.ui-jqgrid .ui-icon-asc{margin-top:-3px;height:12px;}.ui-jqgrid .ui-icon-desc{margin-top:3px;height:12px;}.ui-jqgrid .ui-i-asc{margin-top:0;height:16px;}.ui-jqgrid .ui-i-desc{margin-top:0;margin-left:13px;height:16px;}.ui-jqgrid .ui-jqgrid-sortable{cursor:pointer;}.ui-jqgrid tr.ui-search-toolbar th{border-top-width:1px!important;border-top-color:inherit!important;border-top-style:ridge!important;}tr.ui-search-toolbar input{margin:1px 0 0 0;}tr.ui-search-toolbar select{margin:1px 0 0 0;}.ui-jqgrid .ui-jqgrid-bdiv{position:relative;margin:0;padding:0;overflow:auto;text-align:left;}.ui-jqgrid .ui-jqgrid-btable{table-layout:fixed;margin:0;}.ui-jqgrid tr.jqgrow td{font-weight:normal;overflow:hidden;white-space:pre;height:22px;padding:0 2px 0 2px;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid tr.ui-row-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.ui-row-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid td.jqgrid-rownum{padding:0 2px 0 2px;margin:0;border:0 none;}.ui-jqgrid .ui-jqgrid-resize-mark{width:2px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;display:none;border:0 none;}.ui-jqgrid .ui-jqgrid-sdiv{position:relative;margin:0;padding:0;overflow:hidden;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-ftable{table-layout:fixed;margin-bottom:0;}.ui-jqgrid tr.footrow td{font-weight:bold;overflow:hidden;white-space:nowrap;height:21px;padding:0 2px 0 2px;border-top-width:1px;border-top-color:inherit;border-top-style:solid;}.ui-jqgrid tr.footrow-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.footrow-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid .ui-jqgrid-pager{border-left:0 none!important;border-right:0 none!important;border-bottom:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-pager-control{position:relative;}.ui-jqgrid .ui-pg-table{position:relative;padding-bottom:2px;width:auto;margin:0;}.ui-jqgrid .ui-pg-table td{font-weight:normal;vertical-align:middle;padding:1px;}.ui-jqgrid .ui-pg-button{height:19px!important;}.ui-jqgrid .ui-pg-button span{display:block;margin:1px;float:left;}.ui-jqgrid .ui-pg-button:hover{padding:0;}.ui-jqgrid .ui-state-disabled:hover{padding:1px;}.ui-jqgrid .ui-pg-input{height:13px;font-size:.8em;margin:0;}.ui-jqgrid .ui-pg-selbox{font-size:.8em;line-height:18px;display:block;height:18px;margin:0;}.ui-jqgrid .ui-separator{height:18px;border-left:1px solid #ccc;border-right:1px solid #ccc;margin:1px;float:right;}.ui-jqgrid .ui-paging-info{font-weight:normal;height:19px;margin-top:3px;margin-right:4px;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div{padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-button{cursor:pointer;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div span.ui-icon{float:left;margin:0 2px;}.ui-jqgrid td input,.ui-jqgrid td select .ui-jqgrid td textarea{margin:0;}.ui-jqgrid td textarea{width:auto;height:auto;}.ui-jqgrid .ui-jqgrid-toppager{border-left:0 none!important;border-right:0 none!important;border-top:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px!important;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span{display:block;}.ui-jqgrid .ui-subgrid{margin:0;padding:0;width:100%;}.ui-jqgrid .ui-subgrid table{table-layout:fixed;}.ui-jqgrid .ui-subgrid tr.ui-subtblcell td{height:18px;border-right-width:1px;border-right-color:inherit;border-right-style:solid;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid .ui-subgrid td.subgrid-data{border-top:0 none!important;}.ui-jqgrid .ui-subgrid td.subgrid-cell{border-width:0 0 1px 0;}.ui-jqgrid .ui-th-subgrid{height:20px;}.ui-jqgrid .loading{position:absolute;top:45%;left:45%;width:auto;z-index:101;padding:6px;margin:5px;text-align:center;font-weight:bold;display:none;border-width:2px!important;}.ui-jqgrid .jqgrid-overlay{display:none;z-index:100;}* html .jqgrid-overlay{width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}* .jqgrid-overlay iframe{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid .ui-userdata{border-left:0 none;border-right:0 none;height:21px;overflow:hidden;}.ui-jqdialog{display:none;width:300px;position:absolute;padding:.2em;font-size:11px;overflow:visible;}.ui-jqdialog .ui-jqdialog-titlebar{padding:.3em .2em;position:relative;}.ui-jqdialog .ui-jqdialog-title{margin:.1em 0 .2em;}.ui-jqdialog .ui-jqdialog-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqdialog .ui-jqdialog-titlebar-close span{display:block;margin:1px;}.ui-jqdialog .ui-jqdialog-titlebar-close:hover,.ui-jqdialog .ui-jqdialog-titlebar-close:focus{padding:0;}.ui-jqdialog-content,.ui-jqdialog .ui-jqdialog-content{border:0;padding:.3em .2em;background:none;height:auto;}.ui-jqdialog .ui-jqconfirm{padding:.4em 1em;border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}.ui-jqdialog-content .FormGrid{margin:0;}.ui-jqdialog-content .EditTable{width:100%;margin-bottom:0;}.ui-jqdialog-content .DelTable{width:100%;margin-bottom:0;}.EditTable td input,.EditTable td select,.EditTable td textarea{margin:0;}.EditTable td textarea{width:auto;height:auto;}.ui-jqdialog-content td.EditButton{text-align:right;border-top:0 none;border-left:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content td.navButton{text-align:center;border-left:0 none;border-top:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content .CaptionTD{text-align:left;vertical-align:top;border-left:0 none;border-right:0 none;border-bottom:0 none;padding:1px;white-space:nowrap;}.ui-jqdialog-content .DataTD{padding:1px;border-left:0 none;border-right:0 none;border-bottom:0 none;vertical-align:top;}.ui-jqdialog-content .form-view-data{white-space:pre;}.fm-button{display:inline-block;margin:0 4px 0 0;padding:.4em .5em;text-decoration:none!important;cursor:pointer;position:relative;text-align:center;zoom:1;}.fm-button-icon-left{padding-left:1.9em;}.fm-button-icon-right{padding-right:1.9em;}.fm-button-icon-left .ui-icon{right:auto;left:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}.fm-button-icon-right .ui-icon{left:auto;right:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}#nData,#pData{float:left;margin:3px;padding:0;width:15px;}.ui-jqgrid .selected-row,div.ui-jqgrid .selected-row td{font-style:normal;border-left:0 none;}.ui-jqgrid .tree-wrap{float:left;position:relative;height:18px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .tree-minus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-plus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-leaf{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .treeclick{cursor:pointer;}.jqmOverlay{background-color:#000;}* iframe.jqm{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid-dnd tr td{border-right-width:1px;border-right-color:inherit;border-right-style:solid;height:20px;}.ui-jqgrid .ui-jqgrid-title-rtl{float:right;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-hbox-rtl{float:right;padding-left:20px;}.ui-jqgrid .ui-jqgrid-resize-ltr{float:right;margin:-2px -2px -2px 0;}.ui-jqgrid .ui-jqgrid-resize-rtl{float:left;margin:-2px 0 -1px -3px;}.ui-jqgrid .ui-sort-rtl{left:0;}.ui-jqgrid .tree-wrap-ltr{float:left;}.ui-jqgrid .tree-wrap-rtl{float:right;}.ui-jqgrid .ui-ellipsis{text-overflow:ellipsis;-moz-binding:url('ellipsis-xbl.xml#ellipsis');}
-.ui-searchFilter{display:none;position:absolute;z-index:770;overflow:visible;}.ui-searchFilter table{position:relative;margin:0;width:auto;}.ui-searchFilter table td{margin:0;padding:1px;}.ui-searchFilter table td input,.ui-searchFilter table td select{margin:.1em;}.ui-searchFilter .ui-state-default{cursor:pointer;}.ui-searchFilter .divider{height:1px;}.ui-searchFilter .divider div{background-color:black;height:1px;}
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ui.jqgrid.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml	(nonexistent)
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<bindings
-    xmlns="http://www.mozilla.org/xbl"
-    xmlns:xbl="http://www.mozilla.org/xbl"
-    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-    <binding id="ellipsis">
-        <content>
-            <xul:window><!-- xul:window tag required for FF2 -->
-                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
-            </xul:window>
-        </content>
-    </binding>
-</bindings>

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/css/ellipsis-xbl.xml
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js	(nonexistent)
@@ -1,117 +0,0 @@
-/* 
-* jqGrid  3.6.5 - jQuery Grid 
-* Copyright (c) 2008, Tony Tomov, tony@trirand.com 
-* Dual licensed under the MIT and GPL licenses 
-* http://www.opensource.org/licenses/mit-license.php 
-* http://www.gnu.org/licenses/gpl-2.0.html 
-* Date:2010-05-05 
-* Modules: grid.base.js; 
-*/
-(function(b){b.jgrid=b.jgrid||{};b.extend(b.jgrid,{htmlDecode:function(f){if(f=="&nbsp;"||f=="&#160;"||f.length==1&&f.charCodeAt(0)==160)return"";return!f?f:String(f).replace(/&amp;/g,"&").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"')},htmlEncode:function(f){return!f?f:String(f).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\"/g,"&quot;")},format:function(f){var k=b.makeArray(arguments).slice(1);if(f===undefined)f="";return f.replace(/\{(\d+)\}/g,function(i,
-h){return k[h]})},getCellIndex:function(f){f=b(f);f=(!f.is("td")&&!f.is("th")?f.closest("td,th"):f)[0];if(b.browser.msie)return b.inArray(f,f.parentNode.cells);return f.cellIndex},stripHtml:function(f){f+="";var k=/<("[^"]*"|'[^']*'|[^'">])*>/gi;if(f)return(f=f.replace(k,""))&&f!=="&nbsp;"&&f!=="&#160;"?f.replace(/\"/g,"'"):"";else return f},stringToDoc:function(f){var k;if(typeof f!=="string")return f;try{k=(new DOMParser).parseFromString(f,"text/xml")}catch(i){k=new ActiveXObject("Microsoft.XMLDOM");
-k.async=false;k.loadXML(f)}return k&&k.documentElement&&k.documentElement.tagName!="parsererror"?k:null},parse:function(f){f=f;if(f.substr(0,9)=="while(1);")f=f.substr(9);if(f.substr(0,2)=="/*")f=f.substr(2,f.length-4);f||(f="{}");return b.jgrid.useJSON===true&&typeof JSON==="object"&&typeof JSON.parse==="function"?JSON.parse(f):eval("("+f+")")},jqID:function(f){f+="";return f.replace(/([\.\:\[\]])/g,"\\$1")},ajaxOptions:{},extend:function(f){b.extend(b.fn.jqGrid,f);this.no_legacy_api||b.fn.extend(f)}});
-b.fn.jqGrid=function(f){if(typeof f=="string"){var k=b.fn.jqGrid[f];if(!k)throw"jqGrid - No such method: "+f;var i=b.makeArray(arguments).slice(1);return k.apply(this,i)}return this.each(function(){if(!this.grid){var h=b.extend(true,{url:"",height:150,page:1,rowNum:20,records:0,pager:"",pgbuttons:true,pginput:true,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:false,selarrrow:[],savedRow:[],shrinkToFit:true,xmlReader:{},jsonReader:{},subGrid:false,
-subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,onHeaderClick:null,viewrecords:false,loadonce:false,multiselect:false,multikey:false,editurl:null,search:false,caption:"",hidegrid:true,hiddengrid:false,postData:{},userData:{},treeGrid:false,treeGridModel:"nested",
-treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null},forceFit:false,gridstate:"visible",cellEdit:false,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[false,""],scroll:false,multiboxonly:false,deselectAfterSort:true,scrollrows:false,autowidth:false,scrollOffset:18,cellLayout:5,subGridWidth:20,multiselectWidth:20,
-gridview:false,rownumWidth:25,rownumbers:false,pagerpos:"center",recordpos:"right",footerrow:false,userDataOnFooter:false,hoverrows:true,altclass:"ui-priority-secondary",viewsortcols:[false,"vertical",true],resizeclass:"",autoencode:false,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:false,headertitles:false,scrollTimeout:200},b.jgrid.defaults,f||{}),g={headers:[],cols:[],footers:[],dragStart:function(c,d,e){this.resizing={idx:c,startX:d.clientX,sOL:e[0]};this.hDiv.style.cursor="col-resize";
-this.curGbox=b("#rs_m"+h.id,"#gbox_"+h.id);this.curGbox.css({display:"block",left:e[0],top:e[1],height:e[2]});b.isFunction(h.resizeStart)&&h.resizeStart.call(this,d,c);document.onselectstart=function(){return false}},dragMove:function(c){if(this.resizing){var d=c.clientX-this.resizing.startX;c=this.headers[this.resizing.idx];var e=h.direction==="ltr"?c.width+d:c.width-d,l;if(e>33){this.curGbox.css({left:this.resizing.sOL+d});if(h.forceFit===true){l=this.headers[this.resizing.idx+h.nv];d=h.direction===
-"ltr"?l.width-d:l.width+d;if(d>33){c.newWidth=e;l.newWidth=d}}else{this.newWidth=h.direction==="ltr"?h.tblwidth+d:h.tblwidth-d;c.newWidth=e}}}},dragEnd:function(){this.hDiv.style.cursor="default";if(this.resizing){var c=this.resizing.idx,d=this.headers[c].newWidth||this.headers[c].width;d=parseInt(d,10);this.resizing=false;b("#rs_m"+h.id).css("display","none");h.colModel[c].width=d;this.headers[c].width=d;this.headers[c].el.style.width=d+"px";if(this.cols.length>0)this.cols[c].style.width=d+"px";
-if(this.footers.length>0)this.footers[c].style.width=d+"px";if(h.forceFit===true){d=this.headers[c+h.nv].newWidth||this.headers[c+h.nv].width;this.headers[c+h.nv].width=d;this.headers[c+h.nv].el.style.width=d+"px";if(this.cols.length>0)this.cols[c+h.nv].style.width=d+"px";if(this.footers.length>0)this.footers[c+h.nv].style.width=d+"px";h.colModel[c+h.nv].width=d}else{h.tblwidth=this.newWidth||h.tblwidth;b("table:first",this.bDiv).css("width",h.tblwidth+"px");b("table:first",this.hDiv).css("width",
-h.tblwidth+"px");this.hDiv.scrollLeft=this.bDiv.scrollLeft;if(h.footerrow){b("table:first",this.sDiv).css("width",h.tblwidth+"px");this.sDiv.scrollLeft=this.bDiv.scrollLeft}}b.isFunction(h.resizeStop)&&h.resizeStop.call(this,d,c)}this.curGbox=null;document.onselectstart=function(){return true}},populateVisible:function(){g.timer&&clearTimeout(g.timer);g.timer=null;var c=b(g.bDiv).height();if(c){var d=b("table:first",g.bDiv),e=b("> tbody > tr:visible:first",d).outerHeight()||g.prevRowHeight;if(e){g.prevRowHeight=
-e;var l=h.rowNum,n=g.scrollTop=g.bDiv.scrollTop,o=Math.round(d.position().top)-n,p=o+d.height();e=e*l;var w,y,s;if(o<=0&&(h.lastpage===undefined||parseInt((p+n+e-1)/e,10)<=h.lastpage)){y=parseInt((c-p+e-1)/e,10);if(p>=0||y<2||h.scroll===true){w=Math.round((p+n)/e)+1;o=-1}else o=1}if(o>0){w=parseInt(n/e,10)+1;y=parseInt((n+c)/e,10)+2-w;s=true}if(y)if(!(h.lastpage&&w>h.lastpage))if(g.hDiv.loading)g.timer=setTimeout(g.populateVisible,h.scrollTimeout);else{h.page=w;if(s){g.selectionPreserver(d[0]);g.emptyRows(g.bDiv,
-false)}g.populate(y)}}}},scrollGrid:function(){if(h.scroll){var c=g.bDiv.scrollTop;if(c!=g.scrollTop){g.scrollTop=c;g.timer&&clearTimeout(g.timer);g.timer=setTimeout(g.populateVisible,200)}}g.hDiv.scrollLeft=g.bDiv.scrollLeft;if(h.footerrow)g.sDiv.scrollLeft=g.bDiv.scrollLeft},selectionPreserver:function(c){var d=c.p,e=d.selrow,l=d.selarrrow?b.makeArray(d.selarrrow):null,n=c.grid.bDiv.scrollLeft,o=d.gridComplete;d.gridComplete=function(){d.selrow=null;d.selarrrow=[];if(d.multiselect&&l&&l.length>
-0)for(var p=0;p<l.length;p++)l[p]!=e&&b(c).jqGrid("setSelection",l[p],false);e&&b(c).jqGrid("setSelection",e,false);c.grid.bDiv.scrollLeft=n;d.gridComplete=o;d.gridComplete&&o()}}};this.p=h;var j,m,a;if(this.p.colNames.length===0)for(j=0;j<this.p.colModel.length;j++)this.p.colNames[j]=this.p.colModel[j].label||this.p.colModel[j].name;if(this.p.colNames.length!==this.p.colModel.length)alert(b.jgrid.errors.model);else{var q=b("<div class='ui-jqgrid-view'></div>"),t,x=b.browser.msie?true:false,C=b.browser.safari?
-true:false;a=this;a.p.direction=b.trim(a.p.direction.toLowerCase());if(b.inArray(a.p.direction,["ltr","rtl"])==-1)a.p.direction="ltr";m=a.p.direction;b(q).insertBefore(this);b(this).appendTo(q).removeClass("scroll");var K=b("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");b(K).insertBefore(q).attr({id:"gbox_"+this.id,dir:m});b(q).appendTo(K).attr("id","gview_"+this.id);t=x&&b.browser.version<=6?'<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>':
-"";b("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(t).insertBefore(q);b("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(q);b(this).attr({cellSpacing:"0",cellPadding:"0",border:"0",role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});var J=function(c,d){c=parseInt(c,10);return isNaN(c)?d?d:0:c},F=function(c,d,e){var l=a.p.colModel[c],n=l.align,o='style="',
-p=l.classes,w=l.name;if(n)o+="text-align:"+n+";";if(l.hidden===true)o+="display:none;";if(d===0)o+="width: "+g.headers[c].width+"px;";o+='"'+(p!==undefined?' class="'+p+'"':"")+(l.title&&e?' title="'+b.jgrid.stripHtml(e)+'"':"");o+=' aria-describedby="'+a.p.id+"_"+w+'"';return o},Q=function(c){return c===undefined||c===null||c===""?"&#160;":a.p.autoencode?b.jgrid.htmlEncode(c):c+""},M=function(c,d,e,l,n){e=a.p.colModel[e];if(typeof e.formatter!=="undefined"){c={rowId:c,colModel:e,gid:a.p.id};d=b.isFunction(e.formatter)?
-e.formatter.call(a,d,c,l,n):b.fmatter?b.fn.fmatter(e.formatter,d,c,l,n):Q(d)}else d=Q(d);return d},R=function(c,d,e,l,n){c=M(c,d,e,n,"add");return'<td role="gridcell" '+F(e,l,c)+">"+c+"</td>"},u=function(c,d,e){c='<input role="checkbox" type="checkbox" id="jqg_'+c+'" class="cbox" name="jqg_'+c+'"/>';d=F(d,e,"");return'<td role="gridcell" aria-describedby="'+a.p.id+'_cb" '+d+">"+c+"</td>"},la=function(c,d,e,l){e=(parseInt(e,10)-1)*parseInt(l,10)+1+d;c=F(c,d,"");return'<td role="gridcell" aria-describedby="'+
-a.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+c+">"+e+"</td>"},ca=function(c){var d,e=[],l=0,n;for(n=0;n<a.p.colModel.length;n++){d=a.p.colModel[n];if(d.name!=="cb"&&d.name!=="subgrid"&&d.name!=="rn"){e[l]=c=="xml"?d.xmlmap||d.name:d.jsonmap||d.name;l++}}return e},fa=function(c){var d=a.p.remapColumns;if(!d||!d.length)d=b.map(a.p.colModel,function(e,l){return l});if(c)d=b.map(d,function(e){return e<c?null:e-c});return d},aa=function(c,d){a.p.deepempty?b("tbody:first tr",c).remove():b("tbody:first",
-c).empty();if(d&&a.p.scroll){b(">div:first",c).css({height:"auto"}).children("div:first").css({height:0,display:"none"});c.scrollTop=0}},U=function(c,d){var e,l,n,o;if(typeof d==="function")return d(c);e=c[d];if(e===undefined){if(typeof d==="string")n=d.split(".");try{if(o=n.length)for(e=c;e&&o--;){l=n.shift();e=e[l]}}catch(p){}}return e},ia=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(b.isXMLDoc(c)){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p,w=0,y,s,r=0,v=0,
-z=0,D,N,L=[],P,G={},da=a.rows.length,E,W,B=[],S=0,ga=a.p.altRows===true?" "+a.p.altclass:"";a.p.xmlReader.repeatitems||(L=ca("xml"));D=a.p.keyIndex===false?a.p.xmlReader.id:a.p.keyIndex;if(L.length>0&&!isNaN(D)){if(a.p.remapColumns&&a.p.remapColumns.length)D=b.inArray(D,a.p.remapColumns);D=L[D]}N=(D+"").indexOf("[")===-1?L.length?function(X,V){return b(D,X).text()||V}:function(X,V){return b(a.p.xmlReader.cell,X).eq(D).text()||V}:function(X,V){return X.getAttribute(D.replace(/[\[\]]/g,""))||V};a.p.userData=
-{};b(a.p.xmlReader.page,c).each(function(){a.p.page=this.textContent||this.text||0});b(a.p.xmlReader.total,c).each(function(){a.p.lastpage=this.textContent||this.text;if(a.p.lastpage===undefined)a.p.lastpage=1});b(a.p.xmlReader.records,c).each(function(){a.p.records=this.textContent||this.text||0});b(a.p.xmlReader.userdata,c).each(function(){a.p.userData[this.getAttribute("name")]=this.textContent||this.text});c=b(a.p.xmlReader.root+" "+a.p.xmlReader.row,c);var ha=c.length,O=0;if(c&&ha){var ma=parseInt(a.p.rowNum,
-10),wa=a.p.scroll?(parseInt(a.p.page,10)-1)*ma+1:1;if(n)ma*=n+1;for(n=b.isFunction(a.p.afterInsertRow);O<ha;){E=c[O];W=N(E,wa+O);p=e===0?0:e+1;p=(p+O)%2==1?ga:"";B[S++]='<tr id="'+W+'" role="row" class ="ui-widget-content jqgrow ui-row-'+a.p.direction+""+p+'">';if(a.p.rownumbers===true){B[S++]=la(0,O,a.p.page,a.p.rowNum);z=1}if(a.p.multiselect===true){B[S++]=u(W,z,O);r=1}if(a.p.subGrid===true){B[S++]=b(a).jqGrid("addSubGridCell",r+z,O+e);v=1}if(a.p.xmlReader.repeatitems){P||(P=fa(r+v+z));var za=b(a.p.xmlReader.cell,
-E);b.each(P,function(X){var V=za[this];if(!V)return false;y=V.textContent||V.text;G[a.p.colModel[X+r+v+z].name]=y;B[S++]=R(W,y,X+r+v+z,O+e,E)})}else for(p=0;p<L.length;p++){y=b(L[p],E).text();G[a.p.colModel[p+r+v+z].name]=y;B[S++]=R(W,y,p+r+v+z,O+e,E)}B[S++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){p=a.p.treeANode>=-1?a.p.treeANode:0;s=b(B.join(""))[0];try{b(a).jqGrid("setTreeNode",G,s)}catch(Fa){}da===0?b("tbody:first",d).append(s):b(a.rows[O+p+e]).after(s)}else b("tbody:first",d).append(B.join(""));
-if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],r+z)}catch(Ga){}n&&a.p.afterInsertRow.call(a,W,G,E);B=[];S=0}G={};w++;O++;if(w==ma)break}}a.p.gridview===true&&b("tbody:first",d).append(B.join(""));a.p.totaltime=new Date-o;if(w>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=ha}B=null;if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=w;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},
-ra=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(c){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p=0,w,y,s,r=[],v,z=0,D=0,N=0,L,P,G,da={},E,W=a.rows.length,B;s=[];E=0;var S=a.p.altRows===true?" "+a.p.altclass:"";a.p.page=U(c,a.p.jsonReader.page)||0;G=U(c,a.p.jsonReader.total);a.p.lastpage=G===undefined?1:G;a.p.records=U(c,a.p.jsonReader.records)||0;a.p.userData=U(c,a.p.jsonReader.userdata)||{};a.p.jsonReader.repeatitems||(v=r=ca("json"));G=a.p.keyIndex===false?a.p.jsonReader.id:
-a.p.keyIndex;if(r.length>0&&!isNaN(G)){if(a.p.remapColumns&&a.p.remapColumns.length)G=b.inArray(G,a.p.remapColumns);G=r[G]}if(P=U(c,a.p.jsonReader.root)){L=P.length;c=0;var ga=parseInt(a.p.rowNum,10),ha=a.p.scroll?(parseInt(a.p.page,10)-1)*ga+1:1;if(n)ga*=n+1;for(var O=b.isFunction(a.p.afterInsertRow);c<L;){n=P[c];B=U(n,G);if(B===undefined){B=ha+c;if(r.length===0)if(a.p.jsonReader.cell)B=n[a.p.jsonReader.cell][G]||B}w=e===0?0:e+1;w=(w+c)%2==1?S:"";s[E++]='<tr id="'+B+'" role="row" class= "ui-widget-content jqgrow ui-row-'+
-a.p.direction+""+w+'">';if(a.p.rownumbers===true){s[E++]=la(0,c,a.p.page,a.p.rowNum);N=1}if(a.p.multiselect){s[E++]=u(B,N,c);z=1}if(a.p.subGrid){s[E++]=b(a).jqGrid("addSubGridCell",z+N,c+e);D=1}if(a.p.jsonReader.repeatitems){if(a.p.jsonReader.cell)n=U(n,a.p.jsonReader.cell);v||(v=fa(z+D+N))}for(y=0;y<v.length;y++){w=U(n,v[y]);s[E++]=R(B,w,y+z+D+N,c+e,n);da[a.p.colModel[y+z+D+N].name]=w}s[E++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){E=a.p.treeANode>=-1?a.p.treeANode:0;s=b(s.join(""))[0];
-try{b(a).jqGrid("setTreeNode",da,s)}catch(ma){}W===0?b("tbody:first",d).append(s):b(a.rows[c+E+e]).after(s)}else b("tbody:first",d).append(s.join(""));if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],z+N)}catch(wa){}O&&a.p.afterInsertRow.call(a,B,da,n);s=[];E=0}da={};p++;c++;if(p==ga)break}a.p.gridview===true&&b("tbody:first",d).append(s.join(""));a.p.totaltime=new Date-o;if(p>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=L}}if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=
-0;a.p.reccount=p;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},na=function(c,d){var e,l,n,o,p,w,y,s="";n=parseInt(a.p.page,10)-1;if(n<0)n=0;n*=parseInt(a.p.rowNum,10);p=n+a.p.reccount;if(a.p.scroll){e=b("tbody:first > tr",a.grid.bDiv);n=p-e.length;if(l=e.outerHeight()){e=n*l;l=parseInt(a.p.records,10)*l;b(">div:first",a.grid.bDiv).css({height:l}).children("div:first").css({height:e,display:e?"":"none"})}}s=a.p.pager?a.p.pager:"";s+=a.p.toppager?
-s?","+a.p.toppager:a.p.toppager:"";if(s){y=b.jgrid.formatter.integer||{};if(a.p.loadonce){e=l=1;a.p.lastpage=a.page=1;b(".selbox",s).attr("disabled",true)}else{e=J(a.p.page);l=J(a.p.lastpage);b(".selbox",s).attr("disabled",false)}if(a.p.pginput===true){b(".ui-pg-input",s).val(a.p.page);b("#sp_1",s).html(b.fmatter?b.fmatter.util.NumberFormat(a.p.lastpage,y):a.p.lastpage)}if(a.p.viewrecords)if(a.p.reccount===0)b(".ui-paging-info",s).html(a.p.emptyrecords);else{o=n+1;w=a.p.records;if(b.fmatter){o=b.fmatter.util.NumberFormat(o,
-y);p=b.fmatter.util.NumberFormat(p,y);w=b.fmatter.util.NumberFormat(w,y)}b(".ui-paging-info",s).html(b.jgrid.format(a.p.recordtext,o,p,w))}if(a.p.pgbuttons===true){if(e<=0)e=l=0;if(e==1||e===0){b("#first, #prev",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#first, #prev",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).removeClass("ui-state-disabled")}if(e==
-l||e===0){b("#next, #last",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#next, #last",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).removeClass("ui-state-disabled")}}}c===true&&a.p.rownumbers===true&&b("td.jqgrid-rownum",a.rows).each(function(r){b(this).html(n+1+r)});d&&a.p.jqgdnd&&b(a).jqGrid("gridDnD","updateDnD");
-b.isFunction(a.p.gridComplete)&&a.p.gridComplete.call(a)},Y=function(c){if(!a.grid.hDiv.loading){var d=a.p.scroll&&c===false,e={},l,n=a.p.prmNames;if(a.p.page<=0)a.p.page=1;if(n.search!==null)e[n.search]=a.p.search;if(n.nd!==null)e[n.nd]=(new Date).getTime();if(n.rows!==null)e[n.rows]=a.p.rowNum;if(n.page!==null)e[n.page]=a.p.page;if(n.sort!==null)e[n.sort]=a.p.sortname;if(n.order!==null)e[n.order]=a.p.sortorder;var o=a.p.loadComplete,p=b.isFunction(o);p||(o=null);var w=0;c=c||1;if(c>1)if(n.npage!==
-null){e[n.npage]=c;w=c-1;c=1}else o=function(s){p&&a.p.loadComplete.call(a,s);a.grid.hDiv.loading=false;a.p.page++;Y(c-1)};else n.npage!==null&&delete a.p.postData[n.npage];b.extend(a.p.postData,e);var y=!a.p.scroll?0:a.rows.length-1;if(b.isFunction(a.p.datatype))a.p.datatype.call(a,a.p.postData,"load_"+a.p.id);else{b.isFunction(a.p.beforeRequest)&&a.p.beforeRequest.call(a);l=a.p.datatype.toLowerCase();switch(l){case "json":case "jsonp":case "xml":case "script":b.ajax(b.extend({url:a.p.url,type:a.p.mtype,
-dataType:l,data:b.isFunction(a.p.serializeGridData)?a.p.serializeGridData.call(a,a.p.postData):a.p.postData,success:function(s){l==="xml"?ia(s,a.grid.bDiv,y,c>1,w):ra(s,a.grid.bDiv,y,c>1,w);o&&o.call(a,s);d&&a.grid.populateVisible();if(a.p.loadonce||a.p.treeGrid)a.p.datatype="local";ja()},error:function(s,r,v){b.isFunction(a.p.loadError)&&a.p.loadError.call(a,s,r,v);ja()},beforeSend:function(s){oa();b.isFunction(a.p.loadBeforeSend)&&a.p.loadBeforeSend.call(a,s)}},b.jgrid.ajaxOptions,a.p.ajaxGridOptions));
-break;case "xmlstring":oa();e=b.jgrid.stringToDoc(a.p.datastr);p&&a.p.loadComplete.call(a,e);ia(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "jsonstring":oa();e=typeof a.p.datastr=="string"?b.jgrid.parse(a.p.datastr):a.p.datastr;p&&a.p.loadComplete.call(a,e);ra(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "local":case "clientside":oa();a.p.datatype="local";p&&a.p.loadComplete.call(a,"");Aa();na(true,true);ja();break}}}},oa=function(){a.grid.hDiv.loading=
-true;if(!a.p.hiddengrid)switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).show();break;case "block":b("#lui_"+a.p.id).show();b("#load_"+a.p.id).show();break}},ja=function(){a.grid.hDiv.loading=false;switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).hide();break;case "block":b("#lui_"+a.p.id).hide();b("#load_"+a.p.id).hide();break}},Aa=function(){var c=/[\$,%]/g,d=[],e=0,l,n,o,p=a.p.sortorder=="asc"?1:-1,w=false,y;b.each(a.p.colModel,function(r){if(this.index==
-a.p.sortname||this.name==a.p.sortname){if(a.p.lastsort==r)w=true;e=r;l=this.sorttype;return false}});o=l=="float"||l=="number"||l=="currency"?function(r){r=parseFloat(r.replace(c,""));return isNaN(r)?0:r}:l=="int"||l=="integer"?function(r){return J(r.replace(c,""),0)}:l=="date"||l=="datetime"?function(r){return Ba(a.p.colModel[e].datefmt||"Y-m-d",r).getTime()}:b.isFunction(l)?l:function(r){return b.trim(r.toUpperCase())};y=a.p.colModel[e];b.each(a.rows,function(r,v){try{n=b.unformat(b(v).children("td").eq(e),
-{rowId:v.id,colModel:y},e,true)}catch(z){n=b(v).children("td").eq(e).text()}v.sortKey=o(n);d[r]=this});if(a.p.treeGrid)b(a).jqGrid("SortTree",p);else{w?d.reverse():d.sort(function(r,v){if(r.sortKey<v.sortKey)return-p;if(r.sortKey>v.sortKey)return p;return 0});if(d[0]){b("td",d[0]).each(function(r){b(this).css("width",g.headers[r].width+"px")});a.grid.cols=d[0].cells}var s="";if(a.p.altRows)s=a.p.altclass;b.each(d,function(r,v){if(s)r%2==1?b(v).addClass(s):b(v).removeClass(s);b("tbody",a.grid.bDiv).append(v);
-v.sortKey=null})}a.grid.bDiv.scrollTop=0},Ba=function(c,d){var e={m:1,d:1,y:1970,h:0,i:0,s:0},l,n,o;if(d=b.trim(d)){d=d.split(/[\\\/:_;.\t\T\s-]/);c=c.split(/[\\\/:_;.\t\T\s-]/);var p=b.jgrid.formatter.date.monthNames,w=b.jgrid.formatter.date.AmPm,y=function(s,r){if(s===0){if(r==12)r=0}else if(r!=12)r+=12;return r};l=0;for(n=c.length;l<n;l++){if(c[l]=="M"){o=b.inArray(d[l],p);if(o!==-1&&o<12)d[l]=o+1}if(c[l]=="F"){o=b.inArray(d[l],p);if(o!==-1&&o>11)d[l]=o+1-12}if(c[l]=="a"){o=b.inArray(d[l],w);if(o!==
--1&&o<2&&d[l]==w[o]){d[l]=o;e.h=y(d[l],e.h)}}if(c[l]=="A"){o=b.inArray(d[l],w);if(o!==-1&&o>1&&d[l]==w[o]){d[l]=o-2;e.h=y(d[l],e.h)}}e[c[l].toLowerCase()]=parseInt(d[l],10)}e.m=parseInt(e.m,10)-1;c=e.y;if(c>=70&&c<=99)e.y=1900+e.y;else if(c>=0&&c<=69)e.y=2E3+e.y}return new Date(e.y,e.m,e.d,e.h,e.i,e.s,0)};t=function(c,d){var e="",l="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",n="",o,p,w,y,s=function(r){var v;if(b.isFunction(a.p.onPaging))v=
-a.p.onPaging.call(a,r);a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];if(v=="stop")return false;return true};c=c.substr(1);o="pg_"+c;p=c+"_left";w=c+"_center";y=c+"_right";b("#"+c).append("<div id='"+o+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+p+"' align='left'></td><td id='"+
-w+"' align='center' style='white-space:pre;'></td><td id='"+y+"' align='right'></td></tr></tbody></table></div>").attr("dir","ltr");if(a.p.rowList.length>0){n="<td dir='"+m+"'>";n+="<select class='ui-pg-selbox' role='listbox'>";for(p=0;p<a.p.rowList.length;p++)n+="<option role='option' value='"+a.p.rowList[p]+"'"+(a.p.rowNum==a.p.rowList[p]?" selected":"")+">"+a.p.rowList[p]+"</option>";n+="</select></td>"}if(m=="rtl")l+=n;if(a.p.pginput===true)e="<td dir='"+m+"'>"+b.jgrid.format(a.p.pgtext||"","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>",
-"<span id='sp_1'></span>")+"</td>";if(a.p.pgbuttons===true){p=["first"+d,"prev"+d,"next"+d,"last"+d];m=="rtl"&&p.reverse();l+="<td id='"+p[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";l+="<td id='"+p[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";l+=e!=""?"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>"+e+"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>":
-"";l+="<td id='"+p[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";l+="<td id='"+p[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>"}else if(e!="")l+=e;if(m=="ltr")l+=n;l+="</tr></tbody></table>";a.p.viewrecords===true&&b("td#"+c+"_"+a.p.recordpos,"#"+o).append("<div dir='"+m+"' style='text-align:"+a.p.recordpos+"' class='ui-paging-info'></div>");b("td#"+c+"_"+a.p.pagerpos,"#"+o).append(l);n=b(".ui-jqgrid").css("font-size")||
-"11px";b("body").append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+n+";visibility:hidden;' ></div>");l=b(l).clone().appendTo("#testpg").width();b("#testpg").remove();if(l>0){if(e!="")l+=50;b("td#"+c+"_"+a.p.pagerpos,"#"+o).width(l)}a.p._nvtd=[];a.p._nvtd[0]=l?Math.floor((a.p.width-l)/2):Math.floor(a.p.width/3);a.p._nvtd[1]=0;l=null;b(".ui-pg-selbox","#"+o).bind("change",function(){a.p.page=Math.round(a.p.rowNum*(a.p.page-1)/this.value-0.5)+1;a.p.rowNum=this.value;
-if(d)b(".ui-pg-selbox",a.p.pager).val(this.value);else a.p.toppager&&b(".ui-pg-selbox",a.p.toppager).val(this.value);if(!s("records"))return false;Y();return false});if(a.p.pgbuttons===true){b(".ui-pg-button","#"+o).hover(function(){if(b(this).hasClass("ui-state-disabled"))this.style.cursor="default";else{b(this).addClass("ui-state-hover");this.style.cursor="pointer"}},function(){if(!b(this).hasClass("ui-state-disabled")){b(this).removeClass("ui-state-hover");this.style.cursor="default"}});b("#first"+
-d+", #prev"+d+", #next"+d+", #last"+d,"#"+c).click(function(){var r=J(a.p.page,1),v=J(a.p.lastpage,1),z=false,D=true,N=true,L=true,P=true;if(v===0||v===1)P=L=N=D=false;else if(v>1&&r>=1)if(r===1)N=D=false;else{if(!(r>1&&r<v))if(r===v)P=L=false}else if(v>1&&r===0){P=L=false;r=v-1}if(this.id==="first"+d&&D){a.p.page=1;z=true}if(this.id==="prev"+d&&N){a.p.page=r-1;z=true}if(this.id==="next"+d&&L){a.p.page=r+1;z=true}if(this.id==="last"+d&&P){a.p.page=v;z=true}if(z){if(!s(this.id))return false;Y()}return false})}a.p.pginput===
-true&&b("input.ui-pg-input","#"+o).keypress(function(r){if((r.charCode?r.charCode:r.keyCode?r.keyCode:0)==13){a.p.page=b(this).val()>0?b(this).val():a.p.page;if(!s("user"))return false;Y();return false}return this})};var xa=function(c,d,e,l){if(a.p.colModel[d].sortable)if(!(a.p.savedRow.length>0)){if(!e){if(a.p.lastsort==d)if(a.p.sortorder=="asc")a.p.sortorder="desc";else{if(a.p.sortorder=="desc")a.p.sortorder="asc"}else a.p.sortorder=a.p.colModel[d].firstsortorder||"asc";a.p.page=1}if(l)if(a.p.lastsort==
-d&&a.p.sortorder==l&&!e)return;else a.p.sortorder=l;e=b("thead:first",a.grid.hDiv).get(0);b("tr th:eq("+a.p.lastsort+") span.ui-grid-ico-sort",e).addClass("ui-state-disabled");b("tr th:eq("+a.p.lastsort+")",e).attr("aria-selected","false");b("tr th:eq("+d+") span.ui-icon-"+a.p.sortorder,e).removeClass("ui-state-disabled");b("tr th:eq("+d+")",e).attr("aria-selected","true");if(!a.p.viewsortcols[0])if(a.p.lastsort!=d){b("tr th:eq("+a.p.lastsort+") span.s-ico",e).hide();b("tr th:eq("+d+") span.s-ico",
-e).show()}c=c.substring(5);a.p.sortname=a.p.colModel[d].index||c;e=a.p.sortorder;if(b.isFunction(a.p.onSortCol))if(a.p.onSortCol.call(a,c,d,e)=="stop"){a.p.lastsort=d;return}if(a.p.datatype=="local")a.p.deselectAfterSort&&b(a).jqGrid("resetSelection");else{a.p.selrow=null;a.p.multiselect&&b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false);a.p.selarrrow=[];a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}a.p.subGrid&&a.p.datatype=="local"&&b("td.sgexpanded","#"+a.p.id).each(function(){b(this).trigger("click")});
-Y();a.p.lastsort=d;if(a.p.sortname!=c&&d)a.p.lastsort=d}},Ca=function(c){var d=c,e;for(e=c+1;e<a.p.colModel.length;e++)if(a.p.colModel[e].hidden!==true){d=e;break}return d-c},Da=function(c){var d,e={},l=C?0:a.p.cellLayout;for(d=e[0]=e[1]=e[2]=0;d<=c;d++)if(a.p.colModel[d].hidden===false)e[0]+=a.p.colModel[d].width+l;if(a.p.direction=="rtl")e[0]=a.p.width-e[0];e[0]-=a.grid.bDiv.scrollLeft;if(b(a.grid.cDiv).is(":visible"))e[1]+=b(a.grid.cDiv).height()+parseInt(b(a.grid.cDiv).css("padding-top"),10)+
-parseInt(b(a.grid.cDiv).css("padding-bottom"),10);if(a.p.toolbar[0]===true&&(a.p.toolbar[1]=="top"||a.p.toolbar[1]=="both"))e[1]+=b(a.grid.uDiv).height()+parseInt(b(a.grid.uDiv).css("border-top-width"),10)+parseInt(b(a.grid.uDiv).css("border-bottom-width"),10);if(a.p.toppager)e[1]+=b(a.grid.topDiv).height()+parseInt(b(a.grid.topDiv).css("border-bottom-width"),10);e[2]+=b(a.grid.bDiv).height()+b(a.grid.hDiv).height();return e};this.p.id=this.id;if(b.inArray(a.p.multikey,["shiftKey","altKey","ctrlKey"])==
--1)a.p.multikey=false;a.p.keyIndex=false;for(j=0;j<a.p.colModel.length;j++)if(a.p.colModel[j].key===true){a.p.keyIndex=j;break}a.p.sortorder=a.p.sortorder.toLowerCase();if(this.p.treeGrid===true)try{b(this).jqGrid("setTreeGrid")}catch(Ha){}if(this.p.subGrid)try{b(a).jqGrid("setSubGrid")}catch(Ia){}if(this.p.multiselect){this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");this.p.colModel.unshift({name:"cb",width:C?a.p.multiselectWidth+a.p.cellLayout:
-a.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}if(this.p.rownumbers){this.p.colNames.unshift("");this.p.colModel.unshift({name:"rn",width:a.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}a.p.xmlReader=b.extend(true,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:true,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:true,
-cell:"cell"}},a.p.xmlReader);a.p.jsonReader=b.extend(true,{root:"rows",page:"page",total:"total",records:"records",repeatitems:true,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:true,cell:"cell"}},a.p.jsonReader);if(a.p.scroll){a.p.pgbuttons=false;a.p.pginput=false;a.p.rowList=[]}var H="<thead><tr class='ui-jqgrid-labels' role='rowheader'>",ya,ba,sa,ka,pa,I,A,ea;ba=ea="";if(a.p.shrinkToFit===true&&a.p.forceFit===true)for(j=a.p.colModel.length-1;j>=0;j--)if(!a.p.colModel[j].hidden){a.p.colModel[j].resizable=
-false;break}if(a.p.viewsortcols[1]=="horizontal"){ea=" ui-i-asc";ba=" ui-i-desc"}ya=x?"class='ui-th-div-ie'":"";ea="<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+ea+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+m+"'></span>";ea+="<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+ba+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+m+"'></span></span>";for(j=0;j<this.p.colNames.length;j++){ba=a.p.headertitles?' title="'+b.jgrid.stripHtml(a.p.colNames[j])+
-'"':"";H+="<th id='"+a.p.id+"_"+a.p.colModel[j].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+m+"'"+ba+">";ba=a.p.colModel[j].index||a.p.colModel[j].name;H+="<div id='jqgh_"+a.p.colModel[j].name+"' "+ya+">"+a.p.colNames[j];a.p.colModel[j].width=a.p.colModel[j].width?parseInt(a.p.colModel[j].width,10):150;if(typeof a.p.colModel[j].title!=="boolean")a.p.colModel[j].title=true;if(ba==a.p.sortname)a.p.lastsort=j;H+=ea+"</div></th>"}H+="</tr></thead>";b(this).append(H);b("thead tr:first th",
-this).hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")});if(this.p.multiselect){var ta=[],qa;b("#cb_"+b.jgrid.jqID(a.p.id),this).bind("click",function(){if(this.checked){b("[id^=jqg_]",a.rows).attr("checked",true);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).addClass("ui-state-highlight").attr("aria-selected","true");a.p.selarrrow[c]=a.p.selrow=this.id}});qa=true;ta=[]}else{b("[id^=jqg_]",a.rows).attr("checked",false);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).removeClass("ui-state-highlight").attr("aria-selected",
-"false");ta[c]=this.id}});a.p.selarrrow=[];a.p.selrow=null;qa=false}if(b.isFunction(a.p.onSelectAll))a.p.onSelectAll.call(a,qa?a.p.selarrrow:ta,qa)})}if(a.p.autowidth===true){H=b(K).innerWidth();a.p.width=H>0?H:"nw"}(function(){var c=0,d=a.p.cellLayout,e=0,l,n=a.p.scrollOffset,o,p=false,w,y=0,s=0,r=0,v;if(C)d=0;b.each(a.p.colModel,function(){if(typeof this.hidden==="undefined")this.hidden=false;if(this.hidden===false){c+=J(this.width,0);if(this.fixed){y+=this.width;s+=this.width+d}else e++;r++}});
-if(isNaN(a.p.width))a.p.width=g.width=c;else g.width=a.p.width;a.p.tblwidth=c;if(a.p.shrinkToFit===false&&a.p.forceFit===true)a.p.forceFit=false;if(a.p.shrinkToFit===true&&e>0){w=g.width-d*e-s;if(!isNaN(a.p.height)){w-=n;p=true}c=0;b.each(a.p.colModel,function(z){if(this.hidden===false&&!this.fixed){this.width=o=Math.round(w*this.width/(a.p.tblwidth-y));c+=o;l=z}});v=0;if(p){if(g.width-s-(c+d*e)!==n)v=g.width-s-(c+d*e)-n}else if(!p&&Math.abs(g.width-s-(c+d*e))!==1)v=g.width-s-(c+d*e);a.p.colModel[l].width+=
-v;a.p.tblwidth=c+v+y+r*d;if(a.p.tblwidth>a.p.width){a.p.colModel[l].width-=a.p.tblwidth-parseInt(a.p.width,10);a.p.tblwidth=a.p.width}}})();b(K).css("width",g.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+a.p.id+"'>&#160;</div>");b(q).css("width",g.width+"px");H=b("thead:first",a).get(0);var ua="<table role='grid' style='width:"+a.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+
-m+"'>";q=b("tr:first",H);a.p.disableClick=false;b("th",q).each(function(c){sa=a.p.colModel[c].width;if(typeof a.p.colModel[c].resizable==="undefined")a.p.colModel[c].resizable=true;if(a.p.colModel[c].resizable){ka=document.createElement("span");b(ka).html("&#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+m);b.browser.opera||b(ka).css("cursor","col-resize");b(this).addClass(a.p.resizeclass)}else ka="";b(this).css("width",sa+"px").prepend(ka);a.p.colModel[c].hidden&&b(this).css("display","none");
-g.headers[c]={width:sa,el:this};pa=a.p.colModel[c].sortable;if(typeof pa!=="boolean")pa=a.p.colModel[c].sortable=true;var d=a.p.colModel[c].name;d=="cb"||d=="subgrid"||d=="rn"||a.p.viewsortcols[2]&&b("div",this).addClass("ui-jqgrid-sortable");if(pa)if(a.p.viewsortcols[0]){b("div span.s-ico",this).show();c==a.p.lastsort&&b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}else if(c==a.p.lastsort){b("div span.s-ico",this).show();b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}ua+=
-"<td role='gridcell' "+F(c,0,"")+">&#160;</td>"}).mousedown(function(c){if(b(c.target).closest("th>span.ui-jqgrid-resize").length==1){var d=b.jgrid.getCellIndex(this);if(a.p.forceFit===true)a.p.nv=Ca(d);g.dragStart(d,c,Da(d));return false}}).click(function(c){if(a.p.disableClick)return a.p.disableClick=false;var d="th>div.ui-jqgrid-sortable",e,l;a.p.viewsortcols[2]||(d="th>div>span>span.ui-grid-ico-sort");c=b(c.target).closest(d);if(c.length==1){d=b.jgrid.getCellIndex(this);if(!a.p.viewsortcols[2]){e=
-true;l=c.attr("sort")}xa(b("div",this)[0].id,d,e,l);return false}});if(a.p.sortable&&b.fn.sortable)try{b(a).jqGrid("sortableColumns",q)}catch(Ja){}ua+="</tr></tbody></table>";this.appendChild(document.createElement("tbody"));b(this).addClass("ui-jqgrid-btable");q=b("<table class='ui-jqgrid-htable' style='width:"+a.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(H);var T=a.p.caption&&a.p.hiddengrid===true?true:false;H=b("<div class='ui-jqgrid-hbox"+
-(m=="rtl"?"-rtl":"")+"'></div>");g.hDiv=document.createElement("div");b(g.hDiv).css({width:g.width+"px"}).addClass("ui-state-default ui-jqgrid-hdiv").append(H);b(H).append(q);T&&b(g.hDiv).hide();if(a.p.pager){if(typeof a.p.pager=="string"){if(a.p.pager.substr(0,1)!="#")a.p.pager="#"+a.p.pager}else a.p.pager="#"+b(a.p.pager).attr("id");b(a.p.pager).css({width:g.width+"px"}).appendTo(K).addClass("ui-state-default ui-jqgrid-pager ui-corner-bottom");T&&b(a.p.pager).hide();t(a.p.pager,"")}a.p.cellEdit===
-false&&a.p.hoverrows===true&&b(a).bind("mouseover",function(c){A=b(c.target).closest("tr.jqgrow");b(A).attr("class")!=="subgrid"&&b(A).addClass("ui-state-hover");return false}).bind("mouseout",function(c){A=b(c.target).closest("tr.jqgrow");b(A).removeClass("ui-state-hover");return false});var Z,$;b(a).before(g.hDiv).click(function(c){I=c.target;var d=b(I).hasClass("cbox");A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return this;var e=true;if(b.isFunction(a.p.beforeSelectRow))e=a.p.beforeSelectRow.call(a,
-A[0].id,c);if(I.tagName=="A"||(I.tagName=="INPUT"||I.tagName=="TEXTAREA"||I.tagName=="OPTION"||I.tagName=="SELECT")&&!d)return this;if(e===true){if(a.p.cellEdit===true)if(a.p.multiselect&&d)b(a).jqGrid("setSelection",A[0].id,true);else{Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);try{b(a).jqGrid("editCell",Z,$,true)}catch(l){}}else if(a.p.multikey)if(c[a.p.multikey])b(a).jqGrid("setSelection",A[0].id,true);else{if(a.p.multiselect&&d){d=b("[id^=jqg_]",A).attr("checked");b("[id^=jqg_]",A).attr("checked",
-!d)}}else{if(a.p.multiselect&&a.p.multiboxonly)if(!d){b(a.p.selarrrow).each(function(n,o){n=a.rows.namedItem(o);b(n).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(o),n).attr("checked",false)});a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}b(a).jqGrid("setSelection",A[0].id,true)}if(b.isFunction(a.p.onCellSelect)){Z=A[0].id;$=b.jgrid.getCellIndex(I);a.p.onCellSelect.call(a,Z,$,b(I).html(),c)}c.stopPropagation()}else return this}).bind("reloadGrid",function(c,
-d){if(a.p.treeGrid===true)a.p.datatype=a.p.treedatatype;d&&d.current&&a.grid.selectionPreserver(a);if(a.p.datatype=="local")b(a).jqGrid("resetSelection");else if(!a.p.treeGrid){a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}if(d&&d.page){c=d.page;if(c>a.p.lastpage)c=a.p.lastpage;if(c<1)c=1;a.p.page=c;a.grid.bDiv.scrollTop=a.grid.prevRowHeight?(c-1)*a.grid.prevRowHeight*a.p.rowNum:
-0}if(a.grid.prevRowHeight&&a.p.scroll){delete a.p.lastpage;a.grid.populateVisible()}else a.grid.populate();return false});b.isFunction(this.p.ondblClickRow)&&b(this).dblclick(function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return false;Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.ondblClickRow.call(a,b(A).attr("id"),Z,$,c);return false});b.isFunction(this.p.onRightClickRow)&&b(this).bind("contextmenu",function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===
-0)return false;a.p.multiselect||b(a).jqGrid("setSelection",A[0].id,true);Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.onRightClickRow.call(a,b(A).attr("id"),Z,$,c);return false});g.bDiv=document.createElement("div");b(g.bDiv).append(b('<div style="position:relative;'+(x&&b.browser.version<8?"height:0.01%;":"")+'"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:a.p.height+(isNaN(a.p.height)?"":"px"),width:g.width+"px"}).scroll(g.scrollGrid);b("table:first",g.bDiv).css({width:a.p.tblwidth+
-"px"});if(x){b("tbody",this).size()==2&&b("tbody:first",this).remove();a.p.multikey&&b(g.bDiv).bind("selectstart",function(){return false})}else a.p.multikey&&b(g.bDiv).bind("mousedown",function(){return false});T&&b(g.bDiv).hide();g.cDiv=document.createElement("div");var va=a.p.hidegrid===true?b("<a role='link' href='javascript:void(0)'/>").addClass("ui-jqgrid-titlebar-close HeaderButton").hover(function(){va.addClass("ui-state-hover")},function(){va.removeClass("ui-state-hover")}).append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css(m==
-"rtl"?"left":"right","0px"):"";b(g.cDiv).append(va).append("<span class='ui-jqgrid-title"+(m=="rtl"?"-rtl":"")+"'>"+a.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");b(g.cDiv).insertBefore(g.hDiv);if(a.p.toolbar[0]){g.uDiv=document.createElement("div");if(a.p.toolbar[1]=="top")b(g.uDiv).insertBefore(g.hDiv);else a.p.toolbar[1]=="bottom"&&b(g.uDiv).insertAfter(g.hDiv);if(a.p.toolbar[1]=="both"){g.ubDiv=document.createElement("div");b(g.uDiv).insertBefore(g.hDiv).addClass("ui-userdata ui-state-default").attr("id",
-"t_"+this.id);b(g.ubDiv).insertAfter(g.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);T&&b(g.ubDiv).hide()}else b(g.uDiv).width(g.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);T&&b(g.uDiv).hide()}if(a.p.toppager){a.p.toppager=a.p.id+"_toppager";g.topDiv=b("<div id='"+a.p.toppager+"'></div>")[0];a.p.toppager="#"+a.p.toppager;b(g.topDiv).insertBefore(g.hDiv).addClass("ui-state-default ui-jqgrid-toppager").width(g.width);t(a.p.toppager,"_t")}if(a.p.footerrow){g.sDiv=
-b("<div class='ui-jqgrid-sdiv'></div>")[0];H=b("<div class='ui-jqgrid-hbox"+(m=="rtl"?"-rtl":"")+"'></div>");b(g.sDiv).append(H).insertAfter(g.hDiv).width(g.width);b(H).append(ua);g.footers=b(".ui-jqgrid-ftable",g.sDiv)[0].rows[0].cells;if(a.p.rownumbers)g.footers[0].className="ui-state-default jqgrid-rownum";T&&b(g.sDiv).hide()}if(a.p.caption){var Ea=a.p.datatype;if(a.p.hidegrid===true){b(".ui-jqgrid-titlebar-close",g.cDiv).click(function(c){var d=b.isFunction(a.p.onHeaderClick);if(a.p.gridstate==
-"visible"){b(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+a.p.id).slideUp("fast");a.p.pager&&b(a.p.pager).slideUp("fast");a.p.toppager&&b(a.p.toppager).slideUp("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideUp("fast");b(g.uDiv).slideUp("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideUp("fast");b("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");a.p.gridstate="hidden";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&
-b(".ui-resizable-handle","#gbox_"+a.p.id).hide();if(d)T||a.p.onHeaderClick.call(a,a.p.gridstate,c)}else if(a.p.gridstate=="hidden"){b(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+a.p.id).slideDown("fast");a.p.pager&&b(a.p.pager).slideDown("fast");a.p.toppager&&b(a.p.toppager).slideDown("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideDown("fast");b(g.uDiv).slideDown("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideDown("fast");b("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
-if(T){a.p.datatype=Ea;Y();T=false}a.p.gridstate="visible";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&b(".ui-resizable-handle","#gbox_"+a.p.id).show();d&&a.p.onHeaderClick.call(a,a.p.gridstate,c)}return false});if(T){a.p.datatype="local";b(".ui-jqgrid-titlebar-close",g.cDiv).trigger("click")}}}else b(g.cDiv).hide();b(g.hDiv).after(g.bDiv).mousemove(function(c){if(g.resizing){g.dragMove(c);return false}});b(".ui-jqgrid-labels",g.hDiv).bind("selectstart",function(){return false});b(document).mouseup(function(){if(g.resizing){g.dragEnd();
-return false}return true});this.updateColumns=function(){var c=this.rows[0],d=this;if(c){b("td",c).each(function(e){b(this).css("width",d.grid.headers[e].width+"px")});this.grid.cols=c.cells}return this};a.formatCol=F;a.sortData=xa;a.updatepager=na;a.formatter=function(c,d,e,l,n){return M(c,d,e,l,n)};b.extend(g,{populate:Y,emptyRows:aa});this.grid=g;a.addXmlData=function(c){ia(c,a.grid.bDiv)};a.addJSONData=function(c){ra(c,a.grid.bDiv)};Y();a.p.hiddengrid=false;b(window).unload(function(){a=null})}}})};
-b.jgrid.extend({getGridParam:function(f){var k=this[0];if(k.grid)return f?typeof k.p[f]!="undefined"?k.p[f]:null:k.p},setGridParam:function(f){return this.each(function(){this.grid&&typeof f==="object"&&b.extend(true,this.p,f)})},getDataIDs:function(){var f=[],k=0,i;this.each(function(){if((i=this.rows.length)&&i>0)for(;k<i;){f[k]=this.rows[k].id;k++}});return f},setSelection:function(f,k){return this.each(function(){function i(a){var q=b(h.grid.bDiv)[0].clientHeight,t=b(h.grid.bDiv)[0].scrollTop,
-x=h.rows[a].offsetTop;a=h.rows[a].clientHeight;if(x+a>=q+t)b(h.grid.bDiv)[0].scrollTop=x-(q+t)+a+t;else if(x<q+t)if(x<t)b(h.grid.bDiv)[0].scrollTop=x}var h=this,g,j,m;if(f!==undefined){k=k===false?false:true;if(j=h.rows.namedItem(f+"")){if(h.p.scrollrows===true){g=h.rows.namedItem(f).rowIndex;g>=0&&i(g)}if(h.p.multiselect){h.p.selrow=j.id;m=b.inArray(h.p.selrow,h.p.selarrrow);if(m===-1){j.className!=="ui-subgrid"&&b(j).addClass("ui-state-highlight").attr("aria-selected","true");g=true;b("#jqg_"+b.jgrid.jqID(h.p.selrow),
-h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.push(h.p.selrow);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g)}else{j.className!=="ui-subgrid"&&b(j).removeClass("ui-state-highlight").attr("aria-selected","false");g=false;b("#jqg_"+b.jgrid.jqID(h.p.selrow),h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.splice(m,1);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g);j=h.p.selarrrow[0];h.p.selrow=j===undefined?null:j}}else if(j.className!=="ui-subgrid"){h.p.selrow&&b(h.rows.namedItem(h.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected",
-"false");h.p.selrow=j.id;b(j).addClass("ui-state-highlight").attr("aria-selected","true");h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,true)}}}})},resetSelection:function(){return this.each(function(){var f=this,k;if(f.p.multiselect){b(f.p.selarrrow).each(function(i,h){k=f.rows.namedItem(h);b(k).removeClass("ui-state-highlight").attr("aria-selected","false");b("#jqg_"+b.jgrid.jqID(h),k).attr("checked",false)});b("#cb_"+b.jgrid.jqID(f.p.id),f.grid.hDiv).attr("checked",false);f.p.selarrrow=
-[]}else if(f.p.selrow){b("tr#"+b.jgrid.jqID(f.p.selrow),f.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");f.p.selrow=null}f.p.savedRow=[]})},getRowData:function(f){var k={},i,h=false,g,j=0;this.each(function(){var m=this,a,q;if(typeof f=="undefined"){h=true;i=[];g=m.rows.length}else{q=m.rows.namedItem(f);if(!q)return k;g=1}for(;j<g;){if(h)q=m.rows[j];b("td",q).each(function(t){a=m.p.colModel[t].name;if(a!=="cb"&&a!=="subgrid")if(m.p.treeGrid===true&&a==m.p.ExpandColumn)k[a]=
-b.jgrid.htmlDecode(b("span:first",this).html());else try{k[a]=b.unformat(this,{rowId:q.id,colModel:m.p.colModel[t]},t)}catch(x){k[a]=b.jgrid.htmlDecode(b(this).html())}});j++;if(h){i.push(k);k={}}}});return i?i:k},delRowData:function(f){var k=false,i,h,g;this.each(function(){var j=this;if(i=j.rows.namedItem(f)){g=i.rowIndex;b(i).remove();j.p.records--;j.p.reccount--;j.updatepager(true,false);k=true;if(j.p.multiselect){h=b.inArray(f,j.p.selarrrow);h!=-1&&j.p.selarrrow.splice(h,1)}if(f==j.p.selrow)j.p.selrow=
-null}else return false;g===0&&k&&j.updateColumns();if(j.p.altRows===true&&k){var m=j.p.altclass;b(j.rows).each(function(a){a%2==1?b(this).addClass(m):b(this).removeClass(m)})}});return k},setRowData:function(f,k,i){var h,g=false,j;this.each(function(){var m=this,a,q,t=typeof i;if(!m.grid)return false;q=m.rows.namedItem(f);if(!q)return false;k&&b(this.p.colModel).each(function(x){h=this.name;if(k[h]!==undefined){a=m.formatter(f,k[h],x,k,"edit");j=this.title?{title:b.jgrid.stripHtml(a)}:{};m.p.treeGrid===
-true&&h==m.p.ExpandColumn?b("td:eq("+x+") > span:first",q).html(a).attr(j):b("td:eq("+x+")",q).html(a).attr(j);g=true}});if(t==="string")b(q).addClass(i);else t==="object"&&b(q).css(i)});return g},addRowData:function(f,k,i,h){i||(i="last");var g=false,j,m,a,q,t,x,C,K,J="",F,Q,M,R;if(k){if(b.isArray(k)){F=true;i="last";Q=f}else{k=[k];F=false}this.each(function(){var u=this,la=k.length;t=u.p.rownumbers===true?1:0;a=u.p.multiselect===true?1:0;q=u.p.subGrid===true?1:0;if(!F)if(typeof f!="undefined")f+=
-"";else{f=u.p.records+1+"";if(u.p.keyIndex!==false){Q=u.p.colModel[u.p.keyIndex+a+q+t].name;if(typeof k[0][Q]!="undefined")f=k[0][Q]}}M=u.p.altclass;for(var ca=0,fa="",aa=b.isFunction(u.p.afterInsertRow)?true:false;ca<la;){R=k[ca];m="";if(F){try{f=R[Q]}catch(U){f=u.p.records+1}fa=u.p.altRows===true?(u.rows.length-1)%2===0?M:"":""}if(t){J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+J+">0</td>"}if(a){K='<input role="checkbox" type="checkbox" id="jqg_'+
-f+'" class="cbox"/>';J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_cb" '+J+">"+K+"</td>"}if(q)m+=b(u).jqGrid("addSubGridCell",a+t,1);for(C=a+q+t;C<this.p.colModel.length;C++){j=this.p.colModel[C].name;K=u.formatter(f,R[j],C,R,"add");J=u.formatCol(C,1,K);m+='<td role="gridcell" aria-describedby="'+u.p.id+"_"+j+'" '+J+">"+K+"</td>"}m='<tr id="'+f+'" role="row" class="ui-widget-content jqgrow ui-row-'+u.p.direction+" "+fa+'">'+m+"</tr>";if(u.p.subGrid===true){m=b(m)[0];b(u).jqGrid("addSubGrid",
-m,a+t)}if(u.rows.length===0)b("table:first",u.grid.bDiv).append(m);else switch(i){case "last":b(u.rows[u.rows.length-1]).after(m);break;case "first":b(u.rows[0]).before(m);break;case "after":if(x=u.rows.namedItem(h))b(u.rows[x.rowIndex+1]).hasClass("ui-subgrid")?b(u.rows[x.rowIndex+1]).after(m):b(x).after(m);break;case "before":if(x=u.rows.namedItem(h)){b(x).before(m);x=x.rowIndex}break}u.p.records++;u.p.reccount++;if(!u.grid.cols||!u.grid.cols.length)u.grid.cols=u.rows[0].cells;if(i==="first"||i===
-"before"&&x<=1||u.rows.length===1)u.updateColumns();aa&&u.p.afterInsertRow.call(u,f,R,R);ca++}if(u.p.altRows===true&&!F)if(i=="last")(u.rows.length-1)%2==1&&b(u.rows[u.rows.length-1]).addClass(M);else b(u.rows).each(function(ia){ia%2==1?b(this).addClass(M):b(this).removeClass(M)});u.updatepager(true,true);g=true})}return g},footerData:function(f,k,i){function h(q){for(var t in q)if(q.hasOwnProperty(t))return false;return true}var g,j=false,m={},a;if(typeof f=="undefined")f="get";if(typeof i!="boolean")i=
-true;f=f.toLowerCase();this.each(function(){var q=this,t;if(!q.grid||!q.p.footerrow)return false;if(f=="set")if(h(k))return false;j=true;b(this.p.colModel).each(function(x){g=this.name;if(f=="set"){if(k[g]!==undefined){t=i?q.formatter("",k[g],x,k,"edit"):k[g];a=this.title?{title:b.jgrid.stripHtml(t)}:{};b("tr.footrow td:eq("+x+")",q.grid.sDiv).html(t).attr(a);j=true}}else if(f=="get")m[g]=b("tr.footrow td:eq("+x+")",q.grid.sDiv).html()})});return f=="get"?m:j},ShowHideCol:function(f,k){return this.each(function(){var i=
-this,h=false;if(i.grid){if(typeof f==="string")f=[f];k=k!="none"?"":"none";var g=k==""?true:false;b(this.p.colModel).each(function(j){if(b.inArray(this.name,f)!==-1&&this.hidden===g){b("tr",i.grid.hDiv).each(function(){b("th:eq("+j+")",this).css("display",k)});b(i.rows).each(function(m){b("td:eq("+j+")",i.rows[m]).css("display",k)});i.p.footerrow&&b("td:eq("+j+")",i.grid.sDiv).css("display",k);if(k=="none")i.p.tblwidth-=this.width;else i.p.tblwidth+=this.width;this.hidden=!g;h=true}});if(h===true){b("table:first",
-i.grid.hDiv).width(i.p.tblwidth);b("table:first",i.grid.bDiv).width(i.p.tblwidth);i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){b("table:first",i.grid.sDiv).width(i.p.tblwidth);i.grid.sDiv.scrollLeft=i.grid.bDiv.scrollLeft}}}})},hideCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"none")})},showCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"")})},remapColumns:function(f,k,i){function h(m){var a;a=m.length?b.makeArray(m):b.extend({},
-m);b.each(f,function(q){m[q]=a[this]})}function g(m,a){b(">tr"+(a||""),m).each(function(){var q=this,t=b.makeArray(q.cells);b.each(f,function(){var x=t[this];x&&q.appendChild(x)})})}var j=this.get(0);h(j.p.colModel);h(j.p.colNames);h(j.grid.headers);g(b("thead:first",j.grid.hDiv),i&&":not(.ui-jqgrid-labels)");k&&g(b("tbody:first",j.grid.bDiv),".jqgrow");j.p.footerrow&&g(b("tbody:first",j.grid.sDiv));if(j.p.remapColumns)if(j.p.remapColumns.length)h(j.p.remapColumns);else j.p.remapColumns=b.makeArray(f);
-j.p.lastsort=b.inArray(j.p.lastsort,f);if(j.p.treeGrid)j.p.expColInd=b.inArray(j.p.expColInd,f)},setGridWidth:function(f,k){return this.each(function(){var i=this,h,g=0,j=i.p.cellLayout,m,a=0,q=false,t=i.p.scrollOffset,x,C=0,K=0,J=0,F;if(i.grid){if(typeof k!="boolean")k=i.p.shrinkToFit;if(!isNaN(f)){f=parseInt(f,10);i.grid.width=i.p.width=f;b("#gbox_"+i.p.id).css("width",f+"px");b("#gview_"+i.p.id).css("width",f+"px");b(i.grid.bDiv).css("width",f+"px");b(i.grid.hDiv).css("width",f+"px");i.p.pager&&
-b(i.p.pager).css("width",f+"px");i.p.toppager&&b(i.p.toppager).css("width",f+"px");if(i.p.toolbar[0]===true){b(i.grid.uDiv).css("width",f+"px");i.p.toolbar[1]=="both"&&b(i.grid.ubDiv).css("width",f+"px")}i.p.footerrow&&b(i.grid.sDiv).css("width",f+"px");if(k===false&&i.p.forceFit===true)i.p.forceFit=false;if(k===true){if(b.browser.safari)j=0;b.each(i.p.colModel,function(){if(this.hidden===false){g+=parseInt(this.width,10);if(this.fixed){K+=this.width;C+=this.width+j}else a++;J++}});if(a!==0){i.p.tblwidth=
-g;x=f-j*a-C;if(!isNaN(i.p.height))if(b(i.grid.bDiv)[0].clientHeight<b(i.grid.bDiv)[0].scrollHeight){q=true;x-=t}g=0;var Q=i.grid.cols.length>0;b.each(i.p.colModel,function(M){if(this.hidden===false&&!this.fixed){h=Math.round(x*this.width/(i.p.tblwidth-K));if(!(h<0)){this.width=h;g+=h;i.grid.headers[M].width=h;i.grid.headers[M].el.style.width=h+"px";if(i.p.footerrow)i.grid.footers[M].style.width=h+"px";if(Q)i.grid.cols[M].style.width=h+"px";m=M}}});F=0;if(q){if(f-C-(g+j*a)!==t)F=f-C-(g+j*a)-t}else if(Math.abs(f-
-C-(g+j*a))!==1)F=f-C-(g+j*a);i.p.colModel[m].width+=F;i.p.tblwidth=g+F+K+j*J;if(i.p.tblwidth>f){q=i.p.tblwidth-parseInt(f,10);i.p.tblwidth=f;h=i.p.colModel[m].width-=q}else h=i.p.colModel[m].width;i.grid.headers[m].width=h;i.grid.headers[m].el.style.width=h+"px";if(Q)i.grid.cols[m].style.width=h+"px";b("table:first",i.grid.bDiv).css("width",i.p.tblwidth+"px");b("table:first",i.grid.hDiv).css("width",i.p.tblwidth+"px");i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){i.grid.footers[m].style.width=
-h+"px";b("table:first",i.grid.sDiv).css("width",i.p.tblwidth+"px")}}}}}})},setGridHeight:function(f){return this.each(function(){var k=this;if(k.grid){b(k.grid.bDiv).css({height:f+(isNaN(f)?"":"px")});k.p.height=f;k.p.scroll&&k.grid.populateVisible()}})},setCaption:function(f){return this.each(function(){this.p.caption=f;b("span.ui-jqgrid-title",this.grid.cDiv).html(f);b(this.grid.cDiv).show()})},setLabel:function(f,k,i,h){return this.each(function(){var g=this,j=-1;if(g.grid){if(isNaN(f))b(g.p.colModel).each(function(q){if(this.name==
-f){j=q;return false}});else j=parseInt(f,10);if(j>=0){var m=b("tr.ui-jqgrid-labels th:eq("+j+")",g.grid.hDiv);if(k){var a=b(".s-ico",m);b("[id^=jqgh_]",m).empty().html(k).append(a);g.p.colNames[j]=k}if(i)typeof i==="string"?b(m).addClass(i):b(m).css(i);typeof h==="object"&&b(m).attr(h)}}})},setCell:function(f,k,i,h,g,j){return this.each(function(){var m=this,a=-1,q,t;if(m.grid){if(isNaN(k))b(m.p.colModel).each(function(C){if(this.name==k){a=C;return false}});else a=parseInt(k,10);if(a>=0)if(q=m.rows.namedItem(f)){var x=
-b("td:eq("+a+")",q);if(i!==""||j===true){q=m.formatter(f,i,a,q,"edit");t=m.p.colModel[a].title?{title:b.jgrid.stripHtml(q)}:{};m.p.treeGrid&&b(".tree-wrap",b(x)).length>0?b("span",b(x)).html(q).attr(t):b(x).html(q).attr(t)}if(typeof h==="string")b(x).addClass(h);else h&&b(x).css(h);typeof g==="object"&&b(x).attr(g)}}})},getCell:function(f,k){var i=false;this.each(function(){var h=this,g=-1;if(h.grid){if(isNaN(k))b(h.p.colModel).each(function(a){if(this.name===k){g=a;return false}});else g=parseInt(k,
-10);if(g>=0){var j=h.rows.namedItem(f);if(j)try{i=b.unformat(b("td:eq("+g+")",j),{rowId:j.id,colModel:h.p.colModel[g]},g)}catch(m){i=b.jgrid.htmlDecode(b("td:eq("+g+")",j).html())}}}});return i},getCol:function(f,k,i){var h=[],g,j=0;k=typeof k!="boolean"?false:k;if(typeof i=="undefined")i=false;this.each(function(){var m=this,a=-1;if(m.grid){if(isNaN(f))b(m.p.colModel).each(function(C){if(this.name===f){a=C;return false}});else a=parseInt(f,10);if(a>=0){var q=m.rows.length,t=0;if(q&&q>0){for(;t<q;){try{g=
-b.unformat(b(m.rows[t].cells[a]),{rowId:m.rows[t].id,colModel:m.p.colModel[a]},a)}catch(x){g=b.jgrid.htmlDecode(m.rows[t].cells[a].innerHTML)}if(i)j+=parseFloat(g);else if(k)h.push({id:m.rows[t].id,value:g});else h[t]=g;t++}if(i)switch(i.toLowerCase()){case "sum":h=j;break;case "avg":h=j/q;break;case "count":h=q;break}}}}});return h},clearGridData:function(f){return this.each(function(){var k=this;if(k.grid){if(typeof f!="boolean")f=false;b("tbody:first tr",k.grid.bDiv).remove();k.p.footerrow&&f&&
-b(".ui-jqgrid-ftable td",k.grid.sDiv).html("&#160;");k.p.selrow=null;k.p.selarrrow=[];k.p.savedRow=[];k.p.records=0;k.p.page="0";k.p.lastpage="0";k.p.reccount=0;k.updatepager(true,false)}})},getInd:function(f,k){var i=false,h;this.each(function(){if(h=this.rows.namedItem(f))i=k===true?h:h.rowIndex});return i}})})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/jquery.jqGrid.min.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jdgrid/grid.locale-sp.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jdgrid/grid.locale-sp.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jdgrid/grid.locale-sp.js	(nonexistent)
@@ -1 +0,0 @@
-(function(a){a.jgrid={defaults:{recordtext:"Mostrando {0} - {1} de {2}",emptyrecords:"Sin registros que mostrar",loadtext:"Cargando...",pgtext:"Página {0} de {1}"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpiar",odata:["igual ","no igual a","menor que","menor o igual que","mayor que","mayor o igual a","empiece por","no empiece por","está en","no está en","termina por","no termina por","contiene","no contiene"],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"cualquier"}],matchText:" match",rulesText:" reglas"},edit:{addCaption:"Agregar registro",editCaption:"Modificar registro",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Cerrar",saveData:"Se han modificado los datos, ¿guardar cambios?",bYes:"Si",bNo:"No",bExit:"Cancelar",msg:{required:"Campo obligatorio",number:"Introduzca un número",minValue:"El valor debe ser mayor o igual a ",maxValue:"El valor debe ser menor o igual a ",email:"no es una dirección de correo válida",integer:"Introduzca un valor entero",date:"Introduza una fecha correcta ",url:"no es una URL válida. Prefijo requerido ('http://' or 'https://')",nodefined:" no está definido.",novalue:" valor de retorno es requerido.",customarray:"La función personalizada debe devolver un array.",customfcheck:"La función personalizada debe estar presente en el caso de validación personalizada."}},view:{caption:"Consultar registro",bClose:"Cerrar"},del:{caption:"Eliminar",msg:"¿Desea eliminar los registros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nueva fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione una fila",viewtext:"",viewtitle:"Ver fila seleccionada"},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No se ha especificado una URL",norecords:"No hay datos para procesar",model:"Las columnas de nombres son diferentes de las columnas de modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"],monthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jdgrid/grid.locale-sp.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/superfish.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/superfish.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/superfish.js	(nonexistent)
@@ -1,121 +0,0 @@
-
-/*
- * Superfish v1.4.8 - jQuery menu widget
- * Copyright (c) 2008 Joel Birch
- *
- * Dual licensed under the MIT and GPL licenses:
- * 	http://www.opensource.org/licenses/mit-license.php
- * 	http://www.gnu.org/licenses/gpl.html
- *
- * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
- */
-
-;(function($){
-	$.fn.superfish = function(op){
-
-		var sf = $.fn.superfish,
-			c = sf.c,
-			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
-			over = function(){
-				var $$ = $(this), menu = getMenu($$);
-				clearTimeout(menu.sfTimer);
-				$$.showSuperfishUl().siblings().hideSuperfishUl();
-			},
-			out = function(){
-				var $$ = $(this), menu = getMenu($$), o = sf.op;
-				clearTimeout(menu.sfTimer);
-				menu.sfTimer=setTimeout(function(){
-					o.retainPath=($.inArray($$[0],o.$path)>-1);
-					$$.hideSuperfishUl();
-					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
-				},o.delay);	
-			},
-			getMenu = function($menu){
-				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
-				sf.op = sf.o[menu.serial];
-				return menu;
-			},
-			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
-			
-		return this.each(function() {
-			var s = this.serial = sf.o.length;
-			var o = $.extend({},sf.defaults,op);
-			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
-				$(this).addClass([o.hoverClass,c.bcClass].join(' '))
-					.filter('li:has(ul)').removeClass(o.pathClass);
-			});
-			sf.o[s] = sf.op = o;
-			
-			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
-				if (o.autoArrows) addArrow( $('>a:first-child',this) );
-			})
-			.not('.'+c.bcClass)
-				.hideSuperfishUl();
-			
-			var $a = $('a',this);
-			$a.each(function(i){
-				var $li = $a.eq(i).parents('li');
-				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
-			});
-			o.onInit.call(this);
-			
-		}).each(function() {
-			var menuClasses = [c.menuClass];
-			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
-			$(this).addClass(menuClasses.join(' '));
-		});
-	};
-
-	var sf = $.fn.superfish;
-	sf.o = [];
-	sf.op = {};
-	sf.IE7fix = function(){
-		var o = sf.op;
-		if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
-			this.toggleClass(sf.c.shadowClass+'-off');
-		};
-	sf.c = {
-		bcClass     : 'sf-breadcrumb',
-		menuClass   : 'sf-js-enabled',
-		anchorClass : 'sf-with-ul',
-		arrowClass  : 'sf-sub-indicator',
-		shadowClass : 'sf-shadow'
-	};
-	sf.defaults = {
-		hoverClass	: 'sfHover',
-		pathClass	: 'overideThisToUse',
-		pathLevels	: 1,
-		delay		: 800,
-		animation	: {opacity:'show'},
-		speed		: 'normal',
-		autoArrows	: true,
-		dropShadows : true,
-		disableHI	: false,		// true disables hoverIntent detection
-		onInit		: function(){}, // callback functions
-		onBeforeShow: function(){},
-		onShow		: function(){},
-		onHide		: function(){}
-	};
-	$.fn.extend({
-		hideSuperfishUl : function(){
-			var o = sf.op,
-				not = (o.retainPath===true) ? o.$path : '';
-			o.retainPath = false;
-			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
-					.find('>ul').hide().css('visibility','hidden');
-			o.onHide.call($ul);
-			return this;
-		},
-		showSuperfishUl : function(){
-			var o = sf.op,
-				sh = sf.c.shadowClass+'-off',
-				$ul = this.addClass(o.hoverClass)
-					.find('>ul:hidden').css('visibility','visible');
-			sf.IE7fix.call($ul);
-			o.onBeforeShow.call($ul);
-			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
-			return this;
-		}
-	});
-
-})(jQuery);
Index: controlies/branches/web2py/applications/controlies/static/js/calendar.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/calendar.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/calendar.js	(nonexistent)
@@ -1,42 +0,0 @@
-/* Copyright Notice for Dynarch Date Time Picker */
-/*  Copyright Mihai Bazon, 2002-2005  |  www.bazon.net/mishoo
- * -----------------------------------------------------------
- *
- * The DHTML Calendar, version 1.0 "It is happening again"
- *
- * Details and latest version at:
- * www.dynarch.com/projects/calendar
- *
- * This script is developed by Dynarch.com.  Visit us at www.dynarch.com.
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- */
-
-// Calendar EN language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-/* End Copyright Notice for Dynarch Date Time Picker */
-
-Calendar=function(J,K,H,G){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=H||null;this.onClose=G||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT.DEF_DATE_FORMAT;this.ttDateFormat=Calendar._TT.TT_DATE_FORMAT;this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof J=="number"?J:Calendar._FD;this.showsOtherMonths=false;this.dateStr=K;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined"){Calendar._SDN_len=3}var L=new Array();for(var I=8;I>0;){L[--I]=Calendar._DN[I].substr(0,Calendar._SDN_len)}Calendar._SDN=L;if(typeof Calendar._SMN_len=="undefined"){Calendar._SMN_len=3}L=new Array();for(var I=12;I>0;){L[--I]=Calendar._MN[I].substr(0,Calendar._SMN_len)}Calendar._SMN=L}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(I){var G=0,J=0;var K=/^div$/i.test(I.tagName);if(K&&I.scrollLeft){G=I.scrollLeft}if(K&&I.scrollTop){J=I.scrollTop}var H={x:I.offsetLeft-G,y:I.offsetTop-J};if(I.offsetParent){var L=this.getAbsolutePos(I.offsetParent);H.x+=L.x;H.y+=L.y}return H};Calendar.isRelated=function(G,E){var F=E.relatedTarget;if(!F){var H=E.type;if(H=="mouseover"){F=E.fromElement}else{if(H=="mouseout"){F=E.toElement}}}while(F){if(F==G){return true}F=F.parentNode}return false};Calendar.removeClass=function(G,H){if(!(G&&G.className)){return }var F=G.className.split(" ");var J=new Array();for(var I=F.length;I>0;){if(F[--I]!=H){J[J.length]=F[I]}}G.className=J.join(" ")};Calendar.addClass=function(D,C){Calendar.removeClass(D,C);D.className+=" "+C};Calendar.getElement=function(C){var D=Calendar.is_ie?window.event.srcElement:C.currentTarget;while(D.nodeType!=1||/^div$/i.test(D.tagName)){D=D.parentNode}return D};Calendar.getTargetElement=function(C){var D=Calendar.is_ie?window.event.srcElement:C.target;while(D.nodeType!=1){D=D.parentNode}return D};Calendar.stopEvent=function(B){B||(B=window.event);if(Calendar.is_ie){B.cancelBubble=true;B.returnValue=false}else{B.preventDefault();B.stopPropagation()}return false};Calendar.addEvent=function(D,E,F){if(D.attachEvent){D.attachEvent("on"+E,F)}else{if(D.addEventListener){D.addEventListener(E,F,true)}else{D["on"+E]=F}}};Calendar.removeEvent=function(D,E,F){if(D.detachEvent){D.detachEvent("on"+E,F)}else{if(D.removeEventListener){D.removeEventListener(E,F,true)}else{D["on"+E]=null}}};Calendar.createElement=function(E,F){var D=null;if(document.createElementNS){D=document.createElementNS("http://www.w3.org/1999/xhtml",E)}else{D=document.createElement(E)}if(typeof F!="undefined"){F.appendChild(D)}return D};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true)}}};Calendar.findMonth=function(B){if(typeof B.month!="undefined"){return B}else{if(typeof B.parentNode.month!="undefined"){return B.parentNode}}return null};Calendar.findYear=function(B){if(typeof B.year!="undefined"){return B}else{if(typeof B.parentNode.year!="undefined"){return B.parentNode}}return null};Calendar.showMonthsCombo=function(){var I=Calendar._C;if(!I){return false}var I=I;var H=I.activeDiv;var J=I.monthsCombo;if(I.hilitedMonth){Calendar.removeClass(I.hilitedMonth,"hilite")}if(I.activeMonth){Calendar.removeClass(I.activeMonth,"active")}var K=I.monthsCombo.getElementsByTagName("div")[I.date.getMonth()];Calendar.addClass(K,"active");I.activeMonth=K;var L=J.style;L.display="block";if(H.navtype<0){L.left=H.offsetLeft+"px"}else{var G=J.offsetWidth;if(typeof G=="undefined"){G=50}L.left=(H.offsetLeft+H.offsetWidth-G)+"px"}L.top=(H.offsetTop+H.offsetHeight)+"px"};Calendar.showYearsCombo=function(K){var N=Calendar._C;if(!N){return false}var N=N;var L=N.activeDiv;var S=N.yearsCombo;if(N.hilitedYear){Calendar.removeClass(N.hilitedYear,"hilite")}if(N.activeYear){Calendar.removeClass(N.activeYear,"active")}N.activeYear=null;var M=N.date.getFullYear()+(K?1:-1);var P=S.firstChild;var Q=false;for(var T=12;T>0;--T){if(M>=N.minYear&&M<=N.maxYear){P.innerHTML=M;P.year=M;P.style.display="block";Q=true}else{P.style.display="none"}P=P.nextSibling;M+=K?N.yearStep:-N.yearStep}if(Q){var O=S.style;O.display="block";if(L.navtype<0){O.left=L.offsetLeft+"px"}else{var R=S.offsetWidth;if(typeof R=="undefined"){R=50}O.left=(L.offsetLeft+L.offsetWidth-R)+"px"}O.top=(L.offsetTop+L.offsetHeight)+"px"}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false}if(cal.timeout){clearTimeout(cal.timeout)}var el=cal.activeDiv;if(!el){return false}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev)}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler()}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev)}};Calendar.tableMouseOver=function(X){var T=Calendar._C;if(!T){return }var R=T.activeDiv;var b=Calendar.getTargetElement(X);if(b==R||b.parentNode==R){Calendar.addClass(R,"hilite active");Calendar.addClass(R.parentNode,"rowhilite")}else{if(typeof R.navtype=="undefined"||(R.navtype!=50&&(R.navtype==0||Math.abs(R.navtype)>2))){Calendar.removeClass(R,"active")}Calendar.removeClass(R,"hilite");Calendar.removeClass(R.parentNode,"rowhilite")}X||(X=window.event);if(R.navtype==50&&b!=R){var Y=Calendar.getAbsolutePos(R);var V=R.offsetWidth;var W=X.clientX;var U;var Z=true;if(W>Y.x+V){U=W-Y.x-V;Z=false}else{U=Y.x-W}if(U<0){U=0}var e=R._range;var c=R._current;var d=Math.floor(U/10)%e.length;for(var f=e.length;--f>=0;){if(e[f]==c){break}}while(d-->0){if(Z){if(--f<0){f=e.length-1}}else{if(++f>=e.length){f=0}}}var S=e[f];R.innerHTML=S;T.onUpdateTime()}var Q=Calendar.findMonth(b);if(Q){if(Q.month!=T.date.getMonth()){if(T.hilitedMonth){Calendar.removeClass(T.hilitedMonth,"hilite")}Calendar.addClass(Q,"hilite");T.hilitedMonth=Q}else{if(T.hilitedMonth){Calendar.removeClass(T.hilitedMonth,"hilite")}}}else{if(T.hilitedMonth){Calendar.removeClass(T.hilitedMonth,"hilite")}var a=Calendar.findYear(b);if(a){if(a.year!=T.date.getFullYear()){if(T.hilitedYear){Calendar.removeClass(T.hilitedYear,"hilite")}Calendar.addClass(a,"hilite");T.hilitedYear=a}else{if(T.hilitedYear){Calendar.removeClass(T.hilitedYear,"hilite")}}}else{if(T.hilitedYear){Calendar.removeClass(T.hilitedYear,"hilite")}}}return Calendar.stopEvent(X)};Calendar.tableMouseDown=function(B){if(Calendar.getTargetElement(B)==Calendar.getElement(B)){return Calendar.stopEvent(B)}};Calendar.calDragIt=function(J){var I=Calendar._C;if(!(I&&I.dragging)){return false}var G;var H;if(Calendar.is_ie){H=window.event.clientY+document.body.scrollTop;G=window.event.clientX+document.body.scrollLeft}else{G=J.pageX;H=J.pageY}I.hideShowCovered();var F=I.element.style;F.left=(G-I.xOffs)+"px";F.top=(H-I.yOffs)+"px";return Calendar.stopEvent(J)};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev)}cal.hideShowCovered()};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300){with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver)}else{addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver)}addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp)}}else{if(cal.isPopup){cal._dragStart(ev)}}if(el.navtype==-1||el.navtype==1){if(cal.timeout){clearTimeout(cal.timeout)}cal.timeout=setTimeout("Calendar.showMonthsCombo()",250)}else{if(el.navtype==-2||el.navtype==2){if(cal.timeout){clearTimeout(cal.timeout)}cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250)}else{cal.timeout=null}}return Calendar.stopEvent(ev)};Calendar.dayMouseDblClick=function(B){Calendar.cellClick(Calendar.getElement(B),B||window.event);if(Calendar.is_ie){document.selection.empty()}};Calendar.dayMouseOver=function(D){var C=Calendar.getElement(D);if(Calendar.isRelated(C,D)||Calendar._C||C.disabled){return false}if(C.ttip){if(C.ttip.substr(0,1)=="_"){C.ttip=C.caldate.print(C.calendar.ttDateFormat)+C.ttip.substr(1)}C.calendar.tooltips.innerHTML=C.ttip}if(C.navtype!=300){Calendar.addClass(C,"hilite");if(C.caldate){Calendar.addClass(C.parentNode,"rowhilite")}}return Calendar.stopEvent(D)};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled){return false}removeClass(el,"hilite");if(el.caldate){removeClass(el.parentNode,"rowhilite")}if(el.calendar){el.calendar.tooltips.innerHTML=_TT.SEL_DATE}return stopEvent(ev)}};Calendar.cellClick=function(d,U){var Q=d.calendar;var a=false;var X=false;var c=null;if(typeof d.navtype=="undefined"){if(Q.currentDateEl){Calendar.removeClass(Q.currentDateEl,"selected");Calendar.addClass(d,"selected");a=(Q.currentDateEl==d);if(!a){Q.currentDateEl=d}}Q.date.setDateOnly(d.caldate);c=Q.date;var R=!(Q.dateClicked=!d.otherMonth);if(!R&&!Q.currentDateEl){Q._toggleMultipleDate(new Date(c))}else{X=!d.disabled}if(R){Q._init(Q.firstDayOfWeek,c)}}else{if(d.navtype==200){Calendar.removeClass(d,"hilite");Q.callCloseHandler();return }c=new Date(Q.date);if(d.navtype==0){c.setDateOnly(new Date())}Q.dateClicked=false;var V=c.getFullYear();var b=c.getMonth();function S(B){var A=c.getDate();var C=c.getMonthDays(B);if(A>C){c.setDate(C)}c.setMonth(B)}switch(d.navtype){case 400:Calendar.removeClass(d,"hilite");var T=Calendar._TT.ABOUT;if(typeof T!="undefined"){T+=Q.showsTime?Calendar._TT.ABOUT_TIME:""}else{T='Help and about box text is not translated into this language.\nIf you know this language and you feel generous please update\nthe corresponding file in "lang" subdir to match calendar-en.js\nand send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\nThank you!\nhttp://dynarch.com/mishoo/calendar.epl\n'}alert(T);return ;case -2:if(V>Q.minYear){c.setFullYear(V-1)}break;case -1:if(b>0){S(b-1)}else{if(V-->Q.minYear){c.setFullYear(V);S(11)}}break;case 1:if(b<11){S(b+1)}else{if(V<Q.maxYear){c.setFullYear(V+1);S(0)}}break;case 2:if(V<Q.maxYear){c.setFullYear(V+1)}break;case 100:Q.setFirstDayOfWeek(d.fdow);return ;case 50:var Y=d._range;var W=d.innerHTML;for(var Z=Y.length;--Z>=0;){if(Y[Z]==W){break}}if(U&&U.shiftKey){if(--Z<0){Z=Y.length-1}}else{if(++Z>=Y.length){Z=0}}var P=Y[Z];d.innerHTML=P;Q.onUpdateTime();return ;case 0:if((typeof Q.getDateStatus=="function")&&Q.getDateStatus(c,c.getFullYear(),c.getMonth(),c.getDate())){return false}break}if(!c.equalsTo(Q.date)){Q.setDate(c);X=true}else{if(d.navtype==0){X=a=true}}}if(X){U&&Q.callHandler()}if(a){Calendar.removeClass(d,"hilite");U&&Q.callCloseHandler()}};Calendar.prototype.create=function(Y){var Z=null;if(!Y){Z=document.getElementsByTagName("body")[0];this.isPopup=true}else{Z=Y;this.isPopup=false}this.date=this.dateStr?new Date(this.dateStr):new Date();var V=Calendar.createElement("table");this.table=V;V.cellSpacing=0;V.cellPadding=0;V.calendar=this;Calendar.addEvent(V,"mousedown",Calendar.tableMouseDown);var T=Calendar.createElement("div");this.element=T;T.className="calendar";if(this.isPopup){T.style.position="absolute";T.style.display="none"}T.appendChild(V);var b=Calendar.createElement("thead",V);var X=null;var U=null;var S=this;var f=function(A,B,C){X=Calendar.createElement("td",U);X.colSpan=B;X.className="button";if(C!=0&&Math.abs(C)<=2){X.className+=" nav"}Calendar._add_evs(X);X.calendar=S;X.navtype=C;X.innerHTML="<div unselectable='on'>"+A+"</div>";return X};U=Calendar.createElement("tr",b);var R=6;(this.isPopup)&&--R;(this.weekNumbers)&&++R;f("?",1,400).ttip=Calendar._TT.INFO;this.title=f("",R,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT.DRAG_TO_MOVE;this.title.style.cursor="move";f("&#x00d7;",1,200).ttip=Calendar._TT.CLOSE}U=Calendar.createElement("tr",b);U.className="headrow";this._nav_py=f("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT.PREV_YEAR;this._nav_pm=f("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT.PREV_MONTH;this._nav_now=f(Calendar._TT.TODAY,this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT.GO_TODAY;this._nav_nm=f("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT.NEXT_MONTH;this._nav_ny=f("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT.NEXT_YEAR;U=Calendar.createElement("tr",b);U.className="daynames";if(this.weekNumbers){X=Calendar.createElement("td",U);X.className="name wn";X.innerHTML=Calendar._TT.WK}for(var c=7;c>0;--c){X=Calendar.createElement("td",U);if(!c){X.navtype=100;X.calendar=this;Calendar._add_evs(X)}}this.firstdayname=(this.weekNumbers)?U.firstChild.nextSibling:U.firstChild;this._displayWeekdays();var d=Calendar.createElement("tbody",V);this.tbody=d;for(c=6;c>0;--c){U=Calendar.createElement("tr",d);if(this.weekNumbers){X=Calendar.createElement("td",U)}for(var e=7;e>0;--e){X=Calendar.createElement("td",U);X.calendar=this;Calendar._add_evs(X)}}if(this.showsTime){U=Calendar.createElement("tr",d);U.className="time";X=Calendar.createElement("td",U);X.className="time";X.colSpan=2;X.innerHTML=Calendar._TT.TIME||"&nbsp;";X=Calendar.createElement("td",U);X.className="time";X.colSpan=this.weekNumbers?4:3;(function(){function F(P,N,O,L){var K=Calendar.createElement("span",X);K.className=P;K.innerHTML=N;K.calendar=S;K.ttip=Calendar._TT.TIME_PART;K.navtype=50;K._range=[];if(typeof O!="number"){K._range=O}else{for(var J=O;J<=L;++J){var M;if(J<10&&L>=10){M="0"+J}else{M=""+J}K._range[K._range.length]=M}}Calendar._add_evs(K);return K}var B=S.date.getHours();var I=S.date.getMinutes();var A=!S.time24;var H=(B>12);if(A&&H){B-=12}var D=F("hour",B,A?1:0,A?12:23);var E=Calendar.createElement("span",X);E.innerHTML=":";E.className="colon";var G=F("minute",I,0,59);var C=null;X=Calendar.createElement("td",U);X.className="time";X.colSpan=2;if(A){C=F("ampm",H?"pm":"am",["am","pm"])}else{X.innerHTML="&nbsp;"}S.onSetTime=function(){var K,L=this.date.getHours(),J=this.date.getMinutes();if(A){K=(L>=12);if(K){L-=12}if(L==0){L=12}C.innerHTML=K?"pm":"am"}D.innerHTML=(L<10)?("0"+L):L;G.innerHTML=(J<10)?("0"+J):J};S.onUpdateTime=function(){var K=this.date;var J=parseInt(D.innerHTML,10);if(A){if(/pm/i.test(C.innerHTML)&&J<12){J+=12}else{if(/am/i.test(C.innerHTML)&&J==12){J=0}}}var N=K.getDate();var M=K.getMonth();var L=K.getFullYear();K.setHours(J);K.setMinutes(parseInt(G.innerHTML,10));K.setFullYear(L);K.setMonth(M);K.setDate(N);this.dateClicked=false;this.callHandler()}})()}else{this.onSetTime=this.onUpdateTime=function(){}}var a=Calendar.createElement("tfoot",V);U=Calendar.createElement("tr",a);U.className="footrow";X=f(Calendar._TT.SEL_DATE,this.weekNumbers?8:7,300);X.className="ttip";if(this.isPopup){X.ttip=Calendar._TT.DRAG_TO_MOVE;X.style.cursor="move"}this.tooltips=X;T=Calendar.createElement("div",this.element);this.monthsCombo=T;T.className="combo";for(c=0;c<Calendar._MN.length;++c){var Q=Calendar.createElement("div");Q.className=Calendar.is_ie?"label-IEfix":"label";Q.month=c;Q.innerHTML=Calendar._SMN[c];T.appendChild(Q)}T=Calendar.createElement("div",this.element);this.yearsCombo=T;T.className="combo";for(c=12;c>0;--c){var W=Calendar.createElement("div");W.className=Calendar.is_ie?"label-IEfix":"label";T.appendChild(W)}this._init(this.firstDayOfWeek,this.date);Z.appendChild(this.element)};Calendar._keyEvent=function(T){var Q=window._dynarch_popupCalendar;if(!Q||Q.multiple){return false}(Calendar.is_ie)&&(T=window.event);var V=(Calendar.is_ie||T.type=="keypress"),S=T.keyCode;if(T.ctrlKey){switch(S){case 37:V&&Calendar.cellClick(Q._nav_pm);break;case 38:V&&Calendar.cellClick(Q._nav_py);break;case 39:V&&Calendar.cellClick(Q._nav_nm);break;case 40:V&&Calendar.cellClick(Q._nav_ny);break;default:return false}}else{switch(S){case 32:Calendar.cellClick(Q._nav_now);break;case 27:V&&Q.callCloseHandler();break;case 37:case 38:case 39:case 40:if(V){var Z,R,U,X,O,K;Z=S==37||S==38;K=(S==37||S==39)?1:7;function P(){O=Q.currentDateEl;var A=O.pos;R=A&15;U=A>>4;X=Q.ar_days[U][R]}P();function Y(){var A=new Date(Q.date);A.setDate(A.getDate()-K);Q.setDate(A)}function W(){var A=new Date(Q.date);A.setDate(A.getDate()+K);Q.setDate(A)}while(1){switch(S){case 37:if(--R>=0){X=Q.ar_days[U][R]}else{R=6;S=38;continue}break;case 38:if(--U>=0){X=Q.ar_days[U][R]}else{Y();P()}break;case 39:if(++R<7){X=Q.ar_days[U][R]}else{R=0;S=40;continue}break;case 40:if(++U<Q.ar_days.length){X=Q.ar_days[U][R]}else{W();P()}break}break}if(X){if(!X.disabled){Calendar.cellClick(X)}else{if(Z){Y()}else{W()}}}}break;case 13:if(V){Calendar.cellClick(Q.currentDateEl,T)}break;default:return false}}return Calendar.stopEvent(T)};Calendar.prototype._init=function(q,e){var f=new Date(),l=f.getFullYear(),c=f.getMonth(),AB=f.getDate();this.table.style.visibility="hidden";var v=e.getFullYear();if(v<this.minYear){v=this.minYear;e.setFullYear(v)}else{if(v>this.maxYear){v=this.maxYear;e.setFullYear(v)}}this.firstDayOfWeek=q;this.date=new Date(e);var d=e.getMonth();var a=e.getDate();var b=e.getMonthDays();e.setDate(1);var k=(e.getDay()-this.firstDayOfWeek)%7;if(k<0){k+=7}e.setDate(0-k);e.setDate(e.getDate()+1);var y=this.tbody.firstChild;var s=Calendar._SMN[d];var o=this.ar_days=new Array();var p=Calendar._TT.WEEKEND;var z=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,y=y.nextSibling){var AC=y.firstChild;if(this.weekNumbers){AC.className="day wn";AC.innerHTML=e.getWeekNumber();AC=AC.nextSibling}y.className="daysrow";var g=false,x,AA=o[i]=[];for(var j=0;j<7;++j,AC=AC.nextSibling,e.setDate(x+1)){x=e.getDate();var w=e.getDay();AC.className="day";AC.pos=i<<4|j;AA[j]=AC;var r=(e.getMonth()==d);if(!r){if(this.showsOtherMonths){AC.className+=" othermonth";AC.otherMonth=true}else{AC.className="emptycell";AC.innerHTML="&nbsp;";AC.disabled=true;continue}}else{AC.otherMonth=false;g=true}AC.disabled=false;AC.innerHTML=this.getDateText?this.getDateText(e,x):x;if(z){z[e.print("%Y%m%d")]=AC}if(this.getDateStatus){var n=this.getDateStatus(e,v,d,x);if(this.getDateToolTip){var u=this.getDateToolTip(e,v,d,x);if(u){AC.title=u}}if(n===true){AC.className+=" disabled";AC.disabled=true}else{if(/disabled/i.test(n)){AC.disabled=true}AC.className+=" "+n}}if(!AC.disabled){AC.caldate=new Date(e);AC.ttip="_";if(!this.multiple&&r&&x==a&&this.hiliteToday){AC.className+=" selected";this.currentDateEl=AC}if(e.getFullYear()==l&&e.getMonth()==c&&x==AB){AC.className+=" today";AC.ttip+=Calendar._TT.PART_TODAY}if(p.indexOf(w.toString())!=-1){AC.className+=AC.otherMonth?" oweekend":" weekend"}}}if(!(g||this.showsOtherMonths)){y.className="emptyrow"}}this.title.innerHTML=Calendar._MN[d]+", "+v;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates()};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var F in this.multiple){var D=this.datesCells[F];var E=this.multiple[F];if(!E){continue}if(D){D.className+=" selected"}}}};Calendar.prototype._toggleMultipleDate=function(H){if(this.multiple){var G=H.print("%Y%m%d");var E=this.datesCells[G];if(E){var F=this.multiple[G];if(!F){Calendar.addClass(E,"selected");this.multiple[G]=H}else{Calendar.removeClass(E,"selected");delete this.multiple[G]}}}};Calendar.prototype.setDateToolTipHandler=function(B){this.getDateToolTip=B};Calendar.prototype.setDate=function(B){if(!B.equalsTo(this.date)){this._init(this.firstDayOfWeek,B)}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date)};Calendar.prototype.setFirstDayOfWeek=function(B){this._init(B,this.date);this._displayWeekdays()};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(B){this.getDateStatus=B};Calendar.prototype.setRange=function(C,D){this.minYear=C;this.maxYear=D};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat))}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this)}this.hideShowCovered()};Calendar.prototype.destroy=function(){var B=this.element.parentNode;B.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null};Calendar.prototype.reparent=function(D){var C=this.element;C.parentNode.removeChild(C);D.appendChild(C)};Calendar._checkCalendar=function(F){var E=window._dynarch_popupCalendar;if(!E){return false}var D=Calendar.is_ie?Calendar.getElement(F):Calendar.getTargetElement(F);for(;D!=null&&D!=E.element;D=D.parentNode){}if(D==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(F)}};Calendar.prototype.show=function(){var I=this.table.getElementsByTagName("tr");for(var J=I.length;J>0;){var H=I[--J];Calendar.removeClass(H,"rowhilite");var K=H.getElementsByTagName("td");for(var L=K.length;L>0;){var G=K[--L];Calendar.removeClass(G,"hilite");Calendar.removeClass(G,"active")}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar)}this.hideShowCovered()};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar)}this.element.style.display="none";this.hidden=true;this.hideShowCovered()};Calendar.prototype.showAt=function(D,E){var F=this.element.style;F.left=D+"px";F.top=E+"px";this.show()};Calendar.prototype.showAtElement=function(I,H){var F=this;var G=Calendar.getAbsolutePos(I);if(!H||typeof H!="string"){this.showAt(G.x,G.y+I.offsetHeight);return true}function J(B){if(B.x<0){B.x=0}if(B.y<0){B.y=0}var A=document.createElement("div");var C=A.style;C.position="absolute";C.right=C.bottom=C.width=C.height="0px";document.body.appendChild(A);var D=Calendar.getAbsolutePos(A);document.body.removeChild(A);if(Calendar.is_ie){D.y+=document.body.scrollTop;D.x+=document.body.scrollLeft}else{D.y+=window.scrollY;D.x+=window.scrollX}var E=B.x+B.width-D.x;if(E>0){B.x-=E}E=B.y+B.height-D.y;if(E>0){B.y-=E}}this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var D=F.element.offsetWidth;var B=F.element.offsetHeight;F.element.style.display="none";var C=H.substr(0,1);var A="l";if(H.length>1){A=H.substr(1,1)}switch(C){case"T":G.y-=B;break;case"B":G.y+=I.offsetHeight;break;case"C":G.y+=(I.offsetHeight-B)/2;break;case"t":G.y+=I.offsetHeight-B;break;case"b":break}switch(A){case"L":G.x-=D;break;case"R":G.x+=I.offsetWidth;break;case"C":G.x+=(I.offsetWidth-D)/2;break;case"l":G.x+=I.offsetWidth-D;break;case"r":break}G.width=D;G.height=B+40;F.monthsCombo.style.display="none";J(G);F.showAt(G.x,G.y)};if(Calendar.is_khtml){setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10)}else{Calendar.continuation_for_the_fucking_khtml_browser()}};Calendar.prototype.setDateFormat=function(B){this.dateFormat=B};Calendar.prototype.setTtDateFormat=function(B){this.ttDateFormat=B};Calendar.prototype.parseDate=function(D,C){if(!C){C=this.dateFormat}this.setDate(Date.parseDate(D,C))};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera){return }function S(A){var B=A.style.visibility;if(!B){if(document.defaultView&&typeof (document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml){B=document.defaultView.getComputedStyle(A,"").getPropertyValue("visibility")}else{B=""}}else{if(A.currentStyle){B=A.currentStyle.visibility}else{B=""}}}return B}var U=new Array("applet","iframe","select");var R=this.element;var T=Calendar.getAbsolutePos(R);var e=T.x;var Q=R.offsetWidth+e;var V=T.y;var W=R.offsetHeight+V;for(var c=U.length;c>0;){var d=document.getElementsByTagName(U[--c]);var f=null;for(var a=d.length;a>0;){f=d[--a];T=Calendar.getAbsolutePos(f);var X=T.x;var Y=f.offsetWidth+X;var Z=T.y;var b=f.offsetHeight+Z;if(this.hidden||(X>Q)||(Y<e)||(Z>W)||(b<V)){if(!f.__msh_save_visibility){f.__msh_save_visibility=S(f)}f.style.visibility=f.__msh_save_visibility}else{if(!f.__msh_save_visibility){f.__msh_save_visibility=S(f)}f.style.visibility="hidden"}}}};Calendar.prototype._displayWeekdays=function(){var J=this.firstDayOfWeek;var F=this.firstdayname;var H=Calendar._TT.WEEKEND;for(var I=0;I<7;++I){F.className="day name";var G=(I+J)%7;if(I){F.ttip=Calendar._TT.DAY_FIRST.replace("%s",Calendar._DN[G]);F.navtype=100;F.calendar=this;F.fdow=G;Calendar._add_evs(F)}if(H.indexOf(G.toString())!=-1){Calendar.addClass(F,"weekend")}F.innerHTML=Calendar._SDN[(I+J)%7];F=F.nextSibling}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none"};Calendar.prototype._dragStart=function(ev){if(this.dragging){return }this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd)}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(X,Q){var W=new Date();var V=0;var P=-1;var Y=0;var T=X.split(/\W+/);var U=Q.match(/%./g);var Z=0,N=0;var S=0;var O=0;for(Z=0;Z<T.length;++Z){if(!T[Z]){continue}switch(U[Z]){case"%d":case"%e":Y=parseInt(T[Z],10);break;case"%m":P=parseInt(T[Z],10)-1;break;case"%Y":case"%y":V=parseInt(T[Z],10);(V<100)&&(V+=(V>29)?1900:2000);break;case"%b":case"%B":for(N=0;N<12;++N){if(Calendar._MN[N].substr(0,T[Z].length).toLowerCase()==T[Z].toLowerCase()){P=N;break}}break;case"%H":case"%I":case"%k":case"%l":S=parseInt(T[Z],10);break;case"%P":case"%p":if(/pm/i.test(T[Z])&&S<12){S+=12}else{if(/am/i.test(T[Z])&&S>=12){S-=12}}break;case"%M":O=parseInt(T[Z],10);break}}if(isNaN(V)){V=W.getFullYear()}if(isNaN(P)){P=W.getMonth()}if(isNaN(Y)){Y=W.getDate()}if(isNaN(S)){S=W.getHours()}if(isNaN(O)){O=W.getMinutes()}if(V!=0&&P!=-1&&Y!=0){return new Date(V,P,Y,S,O,0)}V=0;P=-1;Y=0;for(Z=0;Z<T.length;++Z){if(T[Z].search(/[a-zA-Z]+/)!=-1){var R=-1;for(N=0;N<12;++N){if(Calendar._MN[N].substr(0,T[Z].length).toLowerCase()==T[Z].toLowerCase()){R=N;break}}if(R!=-1){if(P!=-1){Y=P+1}P=R}}else{if(parseInt(T[Z],10)<=12&&P==-1){P=T[Z]-1}else{if(parseInt(T[Z],10)>31&&V==0){V=parseInt(T[Z],10);(V<100)&&(V+=(V>29)?1900:2000)}else{if(Y==0){Y=T[Z]}}}}}if(V==0){V=W.getFullYear()}if(P!=-1&&Y!=0){return new Date(V,P,Y,S,O,0)}return W};Date.prototype.getMonthDays=function(D){var C=this.getFullYear();if(typeof D=="undefined"){D=this.getMonth()}if(((0==(C%4))&&((0!=(C%100))||(0==(C%400))))&&D==1){return 29}else{return Date._MD[D]}};Date.prototype.getDayOfYear=function(){var D=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var E=new Date(this.getFullYear(),0,0,0,0,0);var F=D-E;return Math.floor(F/Date.DAY)};Date.prototype.getWeekNumber=function(){var E=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var F=E.getDay();E.setDate(E.getDate()-(F+6)%7+3);var D=E.valueOf();E.setMonth(0);E.setDate(4);return Math.round((D-E.valueOf())/(7*86400000))+1};Date.prototype.equalsTo=function(B){return((this.getFullYear()==B.getFullYear())&&(this.getMonth()==B.getMonth())&&(this.getDate()==B.getDate())&&(this.getHours()==B.getHours())&&(this.getMinutes()==B.getMinutes()))};Date.prototype.setDateOnly=function(C){var D=new Date(C);this.setDate(1);this.setFullYear(D.getFullYear());this.setMonth(D.getMonth());this.setDate(D.getDate())};Date.prototype.print=function(d){var U=this.getMonth();var e=this.getDate();var c=this.getFullYear();var a=this.getWeekNumber();var Z=this.getDay();var V={};var Y=this.getHours();var T=(Y>=12);var g=(T)?(Y-12):Y;var W=this.getDayOfYear();if(g==0){g=12}var S=this.getMinutes();var f=this.getSeconds();V["%a"]=Calendar._SDN[Z];V["%A"]=Calendar._DN[Z];V["%b"]=Calendar._SMN[U];V["%B"]=Calendar._MN[U];V["%C"]=1+Math.floor(c/100);V["%d"]=(e<10)?("0"+e):e;V["%e"]=e;V["%H"]=(Y<10)?("0"+Y):Y;V["%I"]=(g<10)?("0"+g):g;V["%j"]=(W<100)?((W<10)?("00"+W):("0"+W)):W;V["%k"]=Y;V["%l"]=g;V["%m"]=(U<9)?("0"+(1+U)):(1+U);V["%M"]=(S<10)?("0"+S):S;V["%n"]="\n";V["%p"]=T?"PM":"AM";V["%P"]=T?"pm":"am";V["%s"]=Math.floor(this.getTime()/1000);V["%S"]=(f<10)?("0"+f):f;V["%t"]="\t";V["%U"]=V["%W"]=V["%V"]=(a<10)?("0"+a):a;V["%u"]=Z+1;V["%w"]=Z;V["%y"]=(""+c).substr(2,2);V["%Y"]=c;V["%%"]="%";var X=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml){return d.replace(X,function(A){return V[A]||A})}var b=d.match(X);for(var i=0;i<b.length;i++){var R=V[b[i]];if(R){X=new RegExp(b[i],"g");d=d.replace(X,R)}}return d};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(D){var C=new Date(this);C.__msh_oldSetFullYear(D);if(C.getMonth()!=this.getMonth()){this.setDate(28)}this.__msh_oldSetFullYear(D)};window._dynarch_popupCalendar=null;Calendar._DN=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday");Calendar._SDN=new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun");Calendar._FD=0;Calendar._MN=new Array("January","February","March","April","May","June","July","August","September","October","November","December");Calendar._SMN=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");Calendar._TT={};Calendar._TT.INFO="About the calendar";Calendar._TT.ABOUT="DHTML Date/Time Selector\n(c) dynarch.com 2002-2005 / Author: Mihai Bazon\nFor latest version visit: http://www.dynarch.com/projects/calendar/\nDistributed under GNU LGPL.  See http://gnu.org/licenses/lgpl.html for details.\n\nDate selection:\n- Use the \xab, \xbb buttons to select year\n- Use the "+String.fromCharCode(8249)+", "+String.fromCharCode(8250)+" buttons to select month\n- Hold mouse button on any of the above buttons for faster selection.";Calendar._TT.ABOUT_TIME="\n\nTime selection:\n- Click on any of the time parts to increase it\n- or Shift-click to decrease it\n- or click and drag for faster selection.";Calendar._TT.PREV_YEAR="Prev. year (hold for menu)";Calendar._TT.PREV_MONTH="Prev. month (hold for menu)";Calendar._TT.GO_TODAY="Go Today";Calendar._TT.NEXT_MONTH="Next month (hold for menu)";Calendar._TT.NEXT_YEAR="Next year (hold for menu)";Calendar._TT.SEL_DATE="Select date";Calendar._TT.DRAG_TO_MOVE="Drag to move";Calendar._TT.PART_TODAY=" (today)";Calendar._TT.DAY_FIRST="Display %s first";Calendar._TT.WEEKEND="0,6";Calendar._TT.CLOSE="Close";Calendar._TT.TODAY="Today";Calendar._TT.TIME_PART="(Shift-)Click or drag to change value";Calendar._TT.DEF_DATE_FORMAT="%Y-%m-%d";Calendar._TT.TT_DATE_FORMAT="%a, %b %e";Calendar._TT.WK="wk";Calendar._TT.TIME="Time:";Calendar.setup=function(I){function J(B,A){if(typeof I[B]=="undefined"){I[B]=A}}J("inputField",null);J("displayArea",null);J("button",null);J("eventName","click");J("ifFormat","%Y/%m/%d");J("daFormat","%Y/%m/%d");J("singleClick",true);J("disableFunc",null);J("dateStatusFunc",I.disableFunc);J("dateText",null);J("firstDay",null);J("align","Br");J("range",[1900,2999]);J("weekNumbers",true);J("flat",null);J("flatCallback",null);J("onSelect",null);J("onClose",null);J("onUpdate",null);J("date",null);J("showsTime",false);J("timeFormat","24");J("electric",true);J("step",2);J("position",null);J("cache",false);J("showOthers",false);J("multiple",null);var M=["inputField","displayArea","button"];for(var N in M){if(typeof I[M[N]]=="string"){I[M[N]]=document.getElementById(I[M[N]])}}if(!(I.flat||I.multiple||I.inputField||I.displayArea||I.button)){alert("Calendar.setup:\n  Nothing to setup (no fields found).  Please check your code");return false}function H(B){var C=B.params;var A=(B.dateClicked||C.electric);if(A&&C.inputField){C.inputField.value=B.date.print(C.ifFormat);if(typeof C.inputField.onchange=="function"){C.inputField.onchange()}}if(A&&C.displayArea){C.displayArea.innerHTML=B.date.print(C.daFormat)}if(A&&typeof C.onUpdate=="function"){C.onUpdate(B)}if(A&&C.flat){if(typeof C.flatCallback=="function"){C.flatCallback(B)}}if(A&&C.singleClick&&B.dateClicked){B.callCloseHandler()}}if(I.flat!=null){if(typeof I.flat=="string"){I.flat=document.getElementById(I.flat)}if(!I.flat){alert("Calendar.setup:\n  Flat specified but can't find parent.");return false}var K=new Calendar(I.firstDay,I.date,I.onSelect||H);K.showsOtherMonths=I.showOthers;K.showsTime=I.showsTime;K.time24=(I.timeFormat=="24");K.params=I;K.weekNumbers=I.weekNumbers;K.setRange(I.range[0],I.range[1]);K.setDateStatusHandler(I.dateStatusFunc);K.getDateText=I.dateText;if(I.ifFormat){K.setDateFormat(I.ifFormat)}if(I.inputField&&typeof I.inputField.value=="string"){K.parseDate(I.inputField.value)}K.create(I.flat);K.show();return false}var L=I.button||I.displayArea||I.inputField;L["on"+I.eventName]=function(){var E=I.inputField||I.displayArea;var C=I.inputField?I.ifFormat:I.daFormat;var F=false;var A=window.calendar;if(E){I.date=Date.parseDate(E.value||E.innerHTML,C)}if(!(A&&I.cache)){window.calendar=A=new Calendar(I.firstDay,I.date,I.onSelect||H,I.onClose||function(P){P.hide()});A.showsTime=I.showsTime;A.time24=(I.timeFormat=="24");A.weekNumbers=I.weekNumbers;F=true}else{if(I.date){A.setDate(I.date)}A.hide()}if(I.multiple){A.multiple={};for(var D=I.multiple.length;--D>=0;){var G=I.multiple[D];var B=G.print("%Y%m%d");A.multiple[B]=G}}A.showsOtherMonths=I.showOthers;A.yearStep=I.step;A.setRange(I.range[0],I.range[1]);A.params=I;A.setDateStatusHandler(I.dateStatusFunc);A.getDateText=I.dateText;A.setDateFormat(C);if(F){A.create()}A.refresh();if(!I.position){A.showAtElement(I.button||I.displayArea||I.inputField,I.align)}else{A.showAt(I.position[0],I.position[1])}return false};return K};
-
-/*
-   http://keith-wood.name/timeEntry.html
-   Time entry for jQuery v1.4.8.
-   Written by Keith Wood (kbwood{at}iinet.com.au) June 2007.
-   Minor changes by Massimo Di Pierro Nov 2010 (simplified and changed behavior)
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it.
-
-   Turn an input field into an entry point for a time value.
-   The time can be entered via directly typing the value,
-   via the arrow keys.
-   It is configurable to show 12 or 24-hour time, to show or hide seconds,
-   to enforce a minimum and/or maximum time, to change the spinner image.
-
-   Example:  jQuery('input.time').timeEntry();
-*/
-
-(function(a){var d=12,k="ampmNames",i="show24Hours",m="showSeconds",l="character",b=10,f=false,j="string",e=-1,c=null,h=true,g="timeEntry";function o(){this._disabledInputs=[];this._defaults={showSeconds:h,defaultTime:c,minTime:c,maxTime:c,show24Hours:h,ampmNames:["am","pm"]};a.extend(this._defaults)}a.extend(o.prototype,{markerClassName:"hasTimeEntry",setDefaults:function(a){n(this._defaults,a||{});return this},_connectTimeEntry:function(e,f){var c=this,d=a(e);if(d.hasClass(c.markerClassName))return;var b={};b.options=a.extend({},f);b._selectedHour=0;b._selectedMinute=0;b._selectedSecond=0;b._field=0;b.input=a(e);a.data(e,g,b);d.addClass(c.markerClassName).bind("focus.timeEntry",c._doFocus).bind("blur.timeEntry",c._doBlur).bind("click.timeEntry",c._doClick).bind("keydown.timeEntry",c._doKeyDown).bind("keypress.timeEntry",c._doKeyPress);a.browser.mozilla&&d.bind("input.timeEntry",function(){a.timeEntry._parseTime(b)});a.browser.msie&&d.bind("paste.timeEntry",function(){setTimeout(function(){a.timeEntry._parseTime(b)},1)})},_isDisabledTimeEntry:function(b){return a.inArray(b,this._disabledInputs)>e},_changeTimeEntry:function(e,b,f){var c=a.data(e,g);if(c){if(typeof b==j){var h=b;b={};b[h]=f}var d=this._extractTime(c);n(c.options,b||{});d&&this._setTime(c,new Date(0,0,0,d[0],d[1],d[2]))}a.data(e,g,c)},_destroyTimeEntry:function(d){var b=this;jQueryinput=a(d);if(!jQueryinput.hasClass(b.markerClassName))return;jQueryinput.removeClass(b.markerClassName).unbind(".timeEntry");b._disabledInputs=a.map(b._disabledInputs,function(a){return a==d?c:a});jQueryinput.parent().replaceWith(jQueryinput);a.removeData(d,g)},_setTimeTimeEntry:function(e,b){var d=a.data(e,g);d&&this._setTime(d,b?typeof b=="object"?new Date(b.getTime()):b:c)},_getTimeTimeEntry:function(e){var d=a.data(e,g),b=d?this._extractTime(d):c;return !b?c:new Date(0,0,0,b[0],b[1],b[2])},_getOffsetTimeEntry:function(e){var d=a.data(e,g),b=d?this._extractTime(d):c;return !b?0:(b[0]*3600+b[1]*60+b[2])*1e3},_doFocus:function(e){var d=e.nodeName&&e.nodeName.toLowerCase()=="input"?e:this;if(a.timeEntry._lastInput==d||a.timeEntry._isDisabledTimeEntry(d)){a.timeEntry._focussed=f;return}var i=a.data(d,g);a.timeEntry._focussed=h;a.timeEntry._lastInput=d;a.timeEntry._blurredInput=c;a.data(d,g,i);a.timeEntry._parseTime(i);setTimeout(function(){a.timeEntry._showField(i)},b)},_doBlur:function(){a.timeEntry._blurredInput=a.timeEntry._lastInput;a.timeEntry._lastInput=c},_doClick:function(k){var h=k.target,d=a.data(h,g);if(!a.timeEntry._focussed){var i=3;d._field=0;if(h.selectionStart!=c)for(var e=0;e<=Math.max(1,d._secondField,d._ampmField);e++){var m=e!=d._ampmField?e*i+2:d._ampmField*i+2;d._field=e;if(h.selectionStart<m)break}else if(h.createTextRange)for(var n=a(k.srcElement),j=h.createTextRange(),o=function(a){return ({thin:2,medium:4,thick:6})[a]||a},p=k.clientX+document.documentElement.scrollLeft-(n.offset().left+parseInt(o(n.css("border-left-width")),b))-j.offsetLeft,e=0;e<=Math.max(1,d._secondField,d._ampmField);e++){var m=e!=d._ampmField?e*i+2:d._ampmField*i+2;j.collapse();j.moveEnd(l,m);d._field=e;if(p<j.boundingWidth)break}}a.data(h,g,d);a.timeEntry._showField(d);a.timeEntry._focussed=f},_doKeyDown:function(c){if(c.keyCode>=48)return h;var b=a.data(c.target,g);switch(c.keyCode){case 9:var d=a(":input");d.eq(d.index(this)+(c.shiftKey?e:+1)).focus();break;case 37:a.timeEntry._changeField(b,e,f);break;case 38:a.timeEntry._adjustField(b,e);break;case 16:!c.shiftKey&&a.timeEntry._changeField(b,+1,f);break;case 39:a.timeEntry._changeField(b,+1,f);break;case 40:a.timeEntry._adjustField(b,+1);break;case 32:case 46:a.timeEntry._setValue(b,"")}return f},_doKeyPress:function(b){var c=String.fromCharCode(b.charCode==undefined?b.keyCode:b.charCode);if(c<" ")return h;var d=a.data(b.target,g);a.timeEntry._handleKeyPress(d,c);return f},_get:function(d,b){return d.options[b]!=c?d.options[b]:a.timeEntry._defaults[b]},_parseTime:function(a){var b=this,c=b._extractTime(a),d=b._get(a,m);if(c){a._selectedHour=c[0];a._selectedMinute=c[1];a._selectedSecond=c[2]}else{var f=b._constrainTime(a);a._selectedHour=f[0];a._selectedMinute=f[1];a._selectedSecond=d?f[2]:0}a._secondField=d?2:e;a._ampmField=b._get(a,i)?e:d?3:2;a._lastChr="";a._field=Math.max(0,Math.min(Math.max(1,a._secondField,a._ampmField),0));a.input.val()!=""&&b._showTime(a)},_extractTime:function(h,g){var n=this;g=g||h.input.val();var f=g.split(":"),p=n._get(h,k),o=n._get(h,i);if(f.length>=2){var r=!o&&g.indexOf(p[0])>e,q=!o&&g.indexOf(p[1])>e,a=parseInt(f[0],b);a=isNaN(a)?0:a;a=((r||q)&&a==d?0:a)+(q?d:0);var j=parseInt(f[1],b);j=isNaN(j)?0:j;var l=f.length>=3?parseInt(f[2],b):0;l=isNaN(l)||!n._get(h,m)?0:l;return n._constrainTime(h,[a,j,l])}return c},_constrainTime:function(d,a){var e=a!=c;if(!e){var b=this._determineTime(d,this._get(d,"defaultTime"))||new Date;a=[b.getHours(),b.getMinutes(),b.getSeconds()]}return a},_showTime:function(a){var b=this,c=b._get(a,i),e=b._formatNumber(c?a._selectedHour:(a._selectedHour+11)%d+1)+":"+b._formatNumber(a._selectedMinute)+(b._get(a,m)?":"+b._formatNumber(a._selectedSecond):"")+(c?"":b._get(a,k)[a._selectedHour<d?0:1]);b._setValue(a,e);b._showField(a)},_showField:function(b){var c=b.input[0];if(b.input.is(":hidden")||a.timeEntry._lastInput!=c)return;var f=3,e=b._field==b._ampmField?b._ampmField*f-1:b._field*f,g=e+(b._field==b._ampmField?2:2);if(c.setSelectionRange)c.setSelectionRange(e,g);else if(c.createTextRange){var d=c.createTextRange();d.moveStart(l,e);d.moveEnd(l,g-b.input.val().length);d.select()}!c.disabled&&c.focus()},_formatNumber:function(a){return (a<b?"0":"")+a},_setValue:function(b,a){a!=b.input.val()&&b.input.val(a).trigger("change")},_changeField:function(b,d,f){var c=b.input.val()==""||b._field==(d==e?0:Math.max(1,b._secondField,b._ampmField));if(!c)b._field+=d;this._showField(b);b._lastChr="";a.data(b.input[0],g,b);return c&&f},_adjustField:function(a,b){if(a.input.val()=="")b=0;this._setTime(a,new Date(0,0,0,a._selectedHour+(a._field==0?b:0)+(a._field==a._ampmField?b*d:0),a._selectedMinute+(a._field==1?b:0),a._selectedSecond+(a._field==a._secondField?b:0)))},_setTime:function(d,b){var e=this;b=e._determineTime(d,b);var i=e._constrainTime(d,b?[b.getHours(),b.getMinutes(),b.getSeconds()]:c);b=new Date(0,0,0,i[0],i[1],i[2]);var b=e._normaliseTime(b),h=e._normaliseTime(e._determineTime(d,e._get(d,"minTime"))),f=e._normaliseTime(e._determineTime(d,e._get(d,"maxTime")));b=h&&b<h?h:f&&b>f?f:b;d._selectedHour=b.getHours();d._selectedMinute=b.getMinutes();d._selectedSecond=b.getSeconds();e._showTime(d);a.data(d.input[0],g,d)},_normaliseTime:function(a){if(!a)return c;a.setFullYear(1900);a.setMonth(0);a.setDate(0);return a},_determineTime:function(g,d){var e=function(b){var a=new Date;a.setTime(a.getTime()+b*1e3);return a},f=function(f){var d=a.timeEntry._extractTime(g,f),c=new Date,k=d?d[0]:c.getHours(),i=d?d[1]:c.getMinutes(),j=d?d[2]:c.getSeconds();if(!d){var h=/([+-]?[0-9]+)\s*(s|S|m|M|h|H)?/g,e=h.exec(f);while(e){switch(e[2]||"s"){case "s":case "S":j+=parseInt(e[1],b);break;case "m":case "M":i+=parseInt(e[1],b);break;case "h":case "H":k+=parseInt(e[1],b)}e=h.exec(f)}}c=new Date(0,0,b,k,i,j,0);if(/^!/.test(f))if(c.getDate()>b)c=new Date(0,0,b,23,59,59);else if(c.getDate()<b)c=new Date(0,0,b,0,0,0);return c};return d?typeof d==j?f(d):typeof d=="number"?e(d):d:c},_handleKeyPress:function(a,c){var g=this;if(c==":")g._changeField(a,+1,f);else if(c>="0"&&c<="9"){var h=parseInt(c,b),e=parseInt(a._lastChr+c,b),m=g._get(a,i),q=a._field!=0?a._selectedHour:m?e<24?e:h:(e>=1&&e<=d?e:h>0?h:a._selectedHour)%d+(a._selectedHour>=d?d:0),o=a._field!=1?a._selectedMinute:e<60?e:h,p=a._field!=a._secondField?a._selectedSecond:e<60?e:h,j=g._constrainTime(a,[q,o,p]);g._setTime(a,new Date(0,0,0,j[0],j[1],j[2]));a._lastChr=c}else if(!g._get(a,i)){c=c.toLowerCase();var l=g._get(a,k);if(c==l[0].substring(0,1).toLowerCase()&&a._selectedHour>=d||c==l[1].substring(0,1).toLowerCase()&&a._selectedHour<d){var n=a._field;a._field=a._ampmField;g._adjustField(a,+1);a._field=n;g._showField(a)}}}});function n(b,d){a.extend(b,d);for(var e in d)if(d[e]==c)b[e]=c;return b}var p=["getOffset","getTime","isDisabled"];a.fn.timeEntry=function(b){var c="TimeEntry",d=Array.prototype.slice.call(arguments,1);if(typeof b==j&&a.inArray(b,p)>e)return a.timeEntry["_"+b+c].apply(a.timeEntry,[this[0]].concat(d));return this.each(function(){var e=this,g=e.nodeName.toLowerCase();if(g=="input")if(typeof b==j)a.timeEntry["_"+b+c].apply(a.timeEntry,[e].concat(d));else{var f=a.fn.metadata?a(e).metadata():{};a.timeEntry._connectTimeEntry(e,a.extend(f,b))}})};a.timeEntry=new o})(jQuery)
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/calendar.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/dd_belatedpng.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/dd_belatedpng.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/dd_belatedpng.js	(nonexistent)
@@ -1,13 +0,0 @@
-/**
-* DD_belatedPNG: Adds IE6 support: PNG images for CSS background-image and HTML <IMG/>.
-* Author: Drew Diller
-* Email: drew.diller@gmail.com
-* URL: http://www.dillerdesign.com/experiment/DD_belatedPNG/
-* Version: 0.0.8a
-* Licensed under the MIT License: http://dillerdesign.com/experiment/DD_belatedPNG/#license
-*
-* Example usage:
-* DD_belatedPNG.fix('.png_bg'); // argument is a CSS selector
-* DD_belatedPNG.fixPng( someNode ); // argument is an HTMLDomElement
-**/
-var DD_belatedPNG={ns:"DD_belatedPNG",imgSize:{},delay:10,nodesFixed:0,createVmlNameSpace:function(){if(document.namespaces&&!document.namespaces[this.ns]){document.namespaces.add(this.ns,"urn:schemas-microsoft-com:vml")}},createVmlStyleSheet:function(){var b,a;b=document.createElement("style");b.setAttribute("media","screen");document.documentElement.firstChild.insertBefore(b,document.documentElement.firstChild.firstChild);if(b.styleSheet){b=b.styleSheet;b.addRule(this.ns+"\\:*","{behavior:url(#default#VML)}");b.addRule(this.ns+"\\:shape","position:absolute;");b.addRule("img."+this.ns+"_sizeFinder","behavior:none; border:none; position:absolute; z-index:-1; top:-10000px; visibility:hidden;");this.screenStyleSheet=b;a=document.createElement("style");a.setAttribute("media","print");document.documentElement.firstChild.insertBefore(a,document.documentElement.firstChild.firstChild);a=a.styleSheet;a.addRule(this.ns+"\\:*","{display: none !important;}");a.addRule("img."+this.ns+"_sizeFinder","{display: none !important;}")}},readPropertyChange:function(){var b,c,a;b=event.srcElement;if(!b.vmlInitiated){return}if(event.propertyName.search("background")!=-1||event.propertyName.search("border")!=-1){DD_belatedPNG.applyVML(b)}if(event.propertyName=="style.display"){c=(b.currentStyle.display=="none")?"none":"block";for(a in b.vml){if(b.vml.hasOwnProperty(a)){b.vml[a].shape.style.display=c}}}if(event.propertyName.search("filter")!=-1){DD_belatedPNG.vmlOpacity(b)}},vmlOpacity:function(b){if(b.currentStyle.filter.search("lpha")!=-1){var a=b.currentStyle.filter;a=parseInt(a.substring(a.lastIndexOf("=")+1,a.lastIndexOf(")")),10)/100;b.vml.color.shape.style.filter=b.currentStyle.filter;b.vml.image.fill.opacity=a}},handlePseudoHover:function(a){setTimeout(function(){DD_belatedPNG.applyVML(a)},1)},fix:function(a){if(this.screenStyleSheet){var c,b;c=a.split(",");for(b=0;b<c.length;b++){this.screenStyleSheet.addRule(c[b],"behavior:expression(DD_belatedPNG.fixPng(this))")}}},applyVML:function(a){a.runtimeStyle.cssText="";this.vmlFill(a);this.vmlOffsets(a);this.vmlOpacity(a);if(a.isImg){this.copyImageBorders(a)}},attachHandlers:function(i){var d,c,g,e,b,f;d=this;c={resize:"vmlOffsets",move:"vmlOffsets"};if(i.nodeName=="A"){e={mouseleave:"handlePseudoHover",mouseenter:"handlePseudoHover",focus:"handlePseudoHover",blur:"handlePseudoHover"};for(b in e){if(e.hasOwnProperty(b)){c[b]=e[b]}}}for(f in c){if(c.hasOwnProperty(f)){g=function(){d[c[f]](i)};i.attachEvent("on"+f,g)}}i.attachEvent("onpropertychange",this.readPropertyChange)},giveLayout:function(a){a.style.zoom=1;if(a.currentStyle.position=="static"){a.style.position="relative"}},copyImageBorders:function(b){var c,a;c={borderStyle:true,borderWidth:true,borderColor:true};for(a in c){if(c.hasOwnProperty(a)){b.vml.color.shape.style[a]=b.currentStyle[a]}}},vmlFill:function(e){if(!e.currentStyle){return}else{var d,f,g,b,a,c;d=e.currentStyle}for(b in e.vml){if(e.vml.hasOwnProperty(b)){e.vml[b].shape.style.zIndex=d.zIndex}}e.runtimeStyle.backgroundColor="";e.runtimeStyle.backgroundImage="";f=true;if(d.backgroundImage!="none"||e.isImg){if(!e.isImg){e.vmlBg=d.backgroundImage;e.vmlBg=e.vmlBg.substr(5,e.vmlBg.lastIndexOf('")')-5)}else{e.vmlBg=e.src}g=this;if(!g.imgSize[e.vmlBg]){a=document.createElement("img");g.imgSize[e.vmlBg]=a;a.className=g.ns+"_sizeFinder";a.runtimeStyle.cssText="behavior:none; position:absolute; left:-10000px; top:-10000px; border:none; margin:0; padding:0;";c=function(){this.width=this.offsetWidth;this.height=this.offsetHeight;g.vmlOffsets(e)};a.attachEvent("onload",c);a.src=e.vmlBg;a.removeAttribute("width");a.removeAttribute("height");document.body.insertBefore(a,document.body.firstChild)}e.vml.image.fill.src=e.vmlBg;f=false}e.vml.image.fill.on=!f;e.vml.image.fill.color="none";e.vml.color.shape.style.backgroundColor=d.backgroundColor;e.runtimeStyle.backgroundImage="none";e.runtimeStyle.backgroundColor="transparent"},vmlOffsets:function(d){var h,n,a,e,g,m,f,l,j,i,k;h=d.currentStyle;n={W:d.clientWidth+1,H:d.clientHeight+1,w:this.imgSize[d.vmlBg].width,h:this.imgSize[d.vmlBg].height,L:d.offsetLeft,T:d.offsetTop,bLW:d.clientLeft,bTW:d.clientTop};a=(n.L+n.bLW==1)?1:0;e=function(b,p,q,c,s,u){b.coordsize=c+","+s;b.coordorigin=u+","+u;b.path="m0,0l"+c+",0l"+c+","+s+"l0,"+s+" xe";b.style.width=c+"px";b.style.height=s+"px";b.style.left=p+"px";b.style.top=q+"px"};e(d.vml.color.shape,(n.L+(d.isImg?0:n.bLW)),(n.T+(d.isImg?0:n.bTW)),(n.W-1),(n.H-1),0);e(d.vml.image.shape,(n.L+n.bLW),(n.T+n.bTW),(n.W),(n.H),1);g={X:0,Y:0};if(d.isImg){g.X=parseInt(h.paddingLeft,10)+1;g.Y=parseInt(h.paddingTop,10)+1}else{for(j in g){if(g.hasOwnProperty(j)){this.figurePercentage(g,n,j,h["backgroundPosition"+j])}}}d.vml.image.fill.position=(g.X/n.W)+","+(g.Y/n.H);m=h.backgroundRepeat;f={T:1,R:n.W+a,B:n.H,L:1+a};l={X:{b1:"L",b2:"R",d:"W"},Y:{b1:"T",b2:"B",d:"H"}};if(m!="repeat"||d.isImg){i={T:(g.Y),R:(g.X+n.w),B:(g.Y+n.h),L:(g.X)};if(m.search("repeat-")!=-1){k=m.split("repeat-")[1].toUpperCase();i[l[k].b1]=1;i[l[k].b2]=n[l[k].d]}if(i.B>n.H){i.B=n.H}d.vml.image.shape.style.clip="rect("+i.T+"px "+(i.R+a)+"px "+i.B+"px "+(i.L+a)+"px)"}else{d.vml.image.shape.style.clip="rect("+f.T+"px "+f.R+"px "+f.B+"px "+f.L+"px)"}},figurePercentage:function(d,c,f,a){var b,e;e=true;b=(f=="X");switch(a){case"left":case"top":d[f]=0;break;case"center":d[f]=0.5;break;case"right":case"bottom":d[f]=1;break;default:if(a.search("%")!=-1){d[f]=parseInt(a,10)/100}else{e=false}}d[f]=Math.ceil(e?((c[b?"W":"H"]*d[f])-(c[b?"w":"h"]*d[f])):parseInt(a,10));if(d[f]%2===0){d[f]++}return d[f]},fixPng:function(c){c.style.behavior="none";var g,b,f,a,d;if(c.nodeName=="BODY"||c.nodeName=="TD"||c.nodeName=="TR"){return}c.isImg=false;if(c.nodeName=="IMG"){if(c.src.toLowerCase().search(/\.png$/)!=-1){c.isImg=true;c.style.visibility="hidden"}else{return}}else{if(c.currentStyle.backgroundImage.toLowerCase().search(".png")==-1){return}}g=DD_belatedPNG;c.vml={color:{},image:{}};b={shape:{},fill:{}};for(a in c.vml){if(c.vml.hasOwnProperty(a)){for(d in b){if(b.hasOwnProperty(d)){f=g.ns+":"+d;c.vml[a][d]=document.createElement(f)}}c.vml[a].shape.stroked=false;c.vml[a].shape.appendChild(c.vml[a].fill);c.parentNode.insertBefore(c.vml[a].shape,c)}}c.vml.image.shape.fillcolor="none";c.vml.image.fill.type="tile";c.vml.color.fill.on=false;g.attachHandlers(c);g.giveLayout(c);g.giveLayout(c.offsetParent);c.vmlInitiated=true;g.applyVML(c)}};try{document.execCommand("BackgroundImageCache",false,true)}catch(r){}DD_belatedPNG.createVmlNameSpace();DD_belatedPNG.createVmlStyleSheet();
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/modernizr-1.7.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/modernizr-1.7.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/modernizr-1.7.min.js	(nonexistent)
@@ -1,2 +0,0 @@
-// Modernizr v1.7  www.modernizr.com
-window.Modernizr=function(a,b,c){function G(){e.input=function(a){for(var b=0,c=a.length;b<c;b++)t[a[b]]=!!(a[b]in l);return t}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)l.setAttribute("type",f=a[d]),e=l.type!=="text",e&&(l.value=m,l.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&l.style.WebkitAppearance!==c?(g.appendChild(l),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(l,null).WebkitAppearance!=="textfield"&&l.offsetHeight!==0,g.removeChild(l)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=l.checkValidity&&l.checkValidity()===!1:/^color$/.test(f)?(g.appendChild(l),g.offsetWidth,e=l.value!=m,g.removeChild(l)):e=l.value!=m)),s[a[d]]=!!e;return s}("search tel url email datetime date month week time datetime-local number range color".split(" "))}function F(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+p.join(c+" ")+c).split(" ");return!!E(d,b)}function E(a,b){for(var d in a)if(k[a[d]]!==c&&(!b||b(a[d],j)))return!0}function D(a,b){return(""+a).indexOf(b)!==-1}function C(a,b){return typeof a===b}function B(a,b){return A(o.join(a+";")+(b||""))}function A(a){k.cssText=a}var d="1.7",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l=b.createElement("input"),m=":)",n=Object.prototype.toString,o=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),p="Webkit Moz O ms Khtml".split(" "),q={svg:"http://www.w3.org/2000/svg"},r={},s={},t={},u=[],v,w=function(a){var c=b.createElement("style"),d=b.createElement("div"),e;c.textContent=a+"{#modernizr{height:3px}}",h.appendChild(c),d.id="modernizr",g.appendChild(d),e=d.offsetHeight===3,c.parentNode.removeChild(c),d.parentNode.removeChild(d);return!!e},x=function(){function d(d,e){e=e||b.createElement(a[d]||"div");var f=(d="on"+d)in e;f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=C(e[d],"function"),C(e[d],c)||(e[d]=c),e.removeAttribute(d))),e=null;return f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),y=({}).hasOwnProperty,z;C(y,c)||C(y.call,c)?z=function(a,b){return b in a&&C(a.constructor.prototype[b],c)}:z=function(a,b){return y.call(a,b)},r.flexbox=function(){function c(a,b,c,d){a.style.cssText=o.join(b+":"+c+";")+(d||"")}function a(a,b,c,d){b+=":",a.style.cssText=(b+o.join(c+";"+b)).slice(0,-b.length)+(d||"")}var d=b.createElement("div"),e=b.createElement("div");a(d,"display","box","width:42px;padding:0;"),c(e,"box-flex","1","width:10px;"),d.appendChild(e),g.appendChild(d);var f=e.offsetWidth===42;d.removeChild(e),g.removeChild(d);return f},r.canvas=function(){var a=b.createElement("canvas");return a.getContext&&a.getContext("2d")},r.canvastext=function(){return e.canvas&&C(b.createElement("canvas").getContext("2d").fillText,"function")},r.webgl=function(){return!!a.WebGLRenderingContext},r.touch=function(){return"ontouchstart"in a||w("@media ("+o.join("touch-enabled),(")+"modernizr)")},r.geolocation=function(){return!!navigator.geolocation},r.postmessage=function(){return!!a.postMessage},r.websqldatabase=function(){var b=!!a.openDatabase;return b},r.indexedDB=function(){for(var b=-1,c=p.length;++b<c;){var d=p[b].toLowerCase();if(a[d+"_indexedDB"]||a[d+"IndexedDB"])return!0}return!1},r.hashchange=function(){return x("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},r.history=function(){return !!(a.history&&history.pushState)},r.draganddrop=function(){return x("dragstart")&&x("drop")},r.websockets=function(){return"WebSocket"in a},r.rgba=function(){A("background-color:rgba(150,255,150,.5)");return D(k.backgroundColor,"rgba")},r.hsla=function(){A("background-color:hsla(120,40%,100%,.5)");return D(k.backgroundColor,"rgba")||D(k.backgroundColor,"hsla")},r.multiplebgs=function(){A("background:url(//:),url(//:),red url(//:)");return(new RegExp("(url\\s*\\(.*?){3}")).test(k.background)},r.backgroundsize=function(){return F("backgroundSize")},r.borderimage=function(){return F("borderImage")},r.borderradius=function(){return F("borderRadius","",function(a){return D(a,"orderRadius")})},r.boxshadow=function(){return F("boxShadow")},r.textshadow=function(){return b.createElement("div").style.textShadow===""},r.opacity=function(){B("opacity:.55");return/^0.55$/.test(k.opacity)},r.cssanimations=function(){return F("animationName")},r.csscolumns=function(){return F("columnCount")},r.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";A((a+o.join(b+a)+o.join(c+a)).slice(0,-a.length));return D(k.backgroundImage,"gradient")},r.cssreflections=function(){return F("boxReflect")},r.csstransforms=function(){return!!E(["transformProperty","WebkitTransform","MozTransform","OTransform","msTransform"])},r.csstransforms3d=function(){var a=!!E(["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"]);a&&"webkitPerspective"in g.style&&(a=w("@media ("+o.join("transform-3d),(")+"modernizr)"));return a},r.csstransitions=function(){return F("transitionProperty")},r.fontface=function(){var a,c,d=h||g,e=b.createElement("style"),f=b.implementation||{hasFeature:function(){return!1}};e.type="text/css",d.insertBefore(e,d.firstChild),a=e.sheet||e.styleSheet;var i=f.hasFeature("CSS2","")?function(b){if(!a||!b)return!1;var c=!1;try{a.insertRule(b,0),c=/src/i.test(a.cssRules[0].cssText),a.deleteRule(a.cssRules.length-1)}catch(d){}return c}:function(b){if(!a||!b)return!1;a.cssText=b;return a.cssText.length!==0&&/src/i.test(a.cssText)&&a.cssText.replace(/\r+|\n+/g,"").indexOf(b.split(" ")[0])===0};c=i('@font-face { font-family: "font"; src: url(data:,); }'),d.removeChild(e);return c},r.video=function(){var a=b.createElement("video"),c=!!a.canPlayType;if(c){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}return c},r.audio=function(){var a=b.createElement("audio"),c=!!a.canPlayType;c&&(c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"'),c.mp3=a.canPlayType("audio/mpeg;"),c.wav=a.canPlayType('audio/wav; codecs="1"'),c.m4a=a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;"));return c},r.localstorage=function(){try{return!!localStorage.getItem}catch(a){return!1}},r.sessionstorage=function(){try{return!!sessionStorage.getItem}catch(a){return!1}},r.webWorkers=function(){return!!a.Worker},r.applicationcache=function(){return!!a.applicationCache},r.svg=function(){return!!b.createElementNS&&!!b.createElementNS(q.svg,"svg").createSVGRect},r.inlinesvg=function(){var a=b.createElement("div");a.innerHTML="<svg/>";return(a.firstChild&&a.firstChild.namespaceURI)==q.svg},r.smil=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"animate")))},r.svgclippaths=function(){return!!b.createElementNS&&/SVG/.test(n.call(b.createElementNS(q.svg,"clipPath")))};for(var H in r)z(r,H)&&(v=H.toLowerCase(),e[v]=r[H](),u.push((e[v]?"":"no-")+v));e.input||G(),e.crosswindowmessaging=e.postmessage,e.historymanagement=e.history,e.addTest=function(a,b){a=a.toLowerCase();if(!e[a]){b=!!b(),g.className+=" "+(b?"":"no-")+a,e[a]=b;return e}},A(""),j=l=null,f&&a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}()&&function(a,b){function p(a,b){var c=-1,d=a.length,e,f=[];while(++c<d)e=a[c],(b=e.media||b)!="screen"&&f.push(p(e.imports,b),e.cssText);return f.join("")}function o(a){var b=-1;while(++b<e)a.createElement(d[b])}var c="abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",d=c.split("|"),e=d.length,f=new RegExp("(^|\\s)("+c+")","gi"),g=new RegExp("<(/*)("+c+")","gi"),h=new RegExp("(^|[^\\n]*?\\s)("+c+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),i=b.createDocumentFragment(),j=b.documentElement,k=j.firstChild,l=b.createElement("body"),m=b.createElement("style"),n;o(b),o(i),k.insertBefore(m,k.firstChild),m.media="print",a.attachEvent("onbeforeprint",function(){var a=-1,c=p(b.styleSheets,"all"),k=[],o;n=n||b.body;while((o=h.exec(c))!=null)k.push((o[1]+o[2]+o[3]).replace(f,"$1.iepp_$2")+o[4]);m.styleSheet.cssText=k.join("\n");while(++a<e){var q=b.getElementsByTagName(d[a]),r=q.length,s=-1;while(++s<r)q[s].className.indexOf("iepp_")<0&&(q[s].className+=" iepp_"+d[a])}i.appendChild(n),j.appendChild(l),l.className=n.className,l.innerHTML=n.innerHTML.replace(g,"<$1font")}),a.attachEvent("onafterprint",function(){l.innerHTML="",j.removeChild(l),j.appendChild(n),m.styleSheet.cssText=""})}(a,b),e._enableHTML5=f,e._version=d,g.className=g.className.replace(/\bno-js\b/,"")+" js "+u.join(" ");return e}(this,this.document)
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.es.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.es.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.es.js	(nonexistent)
@@ -1,9 +0,0 @@
-﻿/* Spanish initialisation for the jQuery UI multiselect plugin. */
-/* Written by Vinius Fontoura Correa(vinusfc@gmail.com). */
-
-$.extend($.ech.multiselect.prototype.options, {
-	checkAllText: 'Todas',
-	uncheckAllText: 'Ninguna',
-	noneSelectedText: 'Seleccione las opciones',
-	selectedText: '# seleccionado'
-});
Index: controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.css	(nonexistent)
@@ -1,23 +0,0 @@
-.ui-multiselect { padding:2px 0 2px 4px; text-align:left }
-.ui-multiselect span.ui-icon { float:right }
-.ui-multiselect-single input { position:absolute !important; top: auto !important; left:-9999px; }
-.ui-multiselect-single label { padding:5px !important }
-
-.ui-multiselect-header { margin-bottom:3px; padding:3px 0 3px 4px }
-.ui-multiselect-header ul { font-size:0.9em }
-.ui-multiselect-header ul li { float:left; padding:0 10px 0 0 }
-.ui-multiselect-header a { text-decoration:none }
-.ui-multiselect-header a:hover { text-decoration:underline }
-.ui-multiselect-header span.ui-icon { float:left }
-.ui-multiselect-header li.ui-multiselect-close { float:right; text-align:right; padding-right:0 }
-
-.ui-multiselect-menu { display:none; padding:3px; position:absolute; z-index:10000 }
-.ui-multiselect-checkboxes { position:relative /* fixes bug in IE6/7 */; overflow-y:scroll }
-.ui-multiselect-checkboxes label { cursor:default; display:block; border:1px solid transparent; padding:3px 1px }
-.ui-multiselect-checkboxes label input { position:relative; top:1px }
-.ui-multiselect-checkboxes li { clear:both; font-size:0.9em; padding-right:3px }
-.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label { text-align:center; font-weight:bold; border-bottom:1px solid }
-.ui-multiselect-checkboxes li.ui-multiselect-optgroup-label a { display:block; padding:3px; margin:1px 0; text-decoration:none }
-
-/* remove label borders in IE6 because IE6 does not support transparency */
-* html .ui-multiselect-checkboxes label { border:none }
Index: controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/multiselect/jquery.multiselect.min.js	(nonexistent)
@@ -1,20 +0,0 @@
-/*
- * jQuery MultiSelect UI Widget 1.9
- * Copyright (c) 2011 Eric Hynds
- *
- * http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/
- *
- * Depends:
- *   - jQuery 1.4.2+
- *   - jQuery UI 1.8 widget factory
- *
- * Optional:
- *   - jQuery UI effects
- *   - jQuery UI position utility
- *
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
-*/
-(function(d){var o=0;d.widget("ech.multiselect",{options:{header:true,height:175,minWidth:225,classes:"",checkAllText:"Check all",uncheckAllText:"Uncheck all",noneSelectedText:"Select options",selectedText:"# selected",selectedList:0,show:"",hide:"",autoOpen:false,multiple:true,position:{}},_create:function(){var a=this.element.hide(),b=this.options;this.speed=d.fx.speeds._default;this._isOpen=false;a=(this.button=d('<button type="button"><span class="ui-icon ui-icon-triangle-2-n-s"></span></button>')).addClass("ui-multiselect ui-widget ui-state-default ui-corner-all").addClass(b.classes).attr({title:a.attr("title"), "aria-haspopup":true}).insertAfter(a);(this.buttonlabel=d("<span />")).html(b.noneSelectedText).appendTo(a);a=(this.menu=d("<div />")).addClass("ui-multiselect-menu ui-widget ui-widget-content ui-corner-all").addClass(b.classes).insertAfter(a);var e=(this.header=d("<div />")).addClass("ui-widget-header ui-corner-all ui-multiselect-header ui-helper-clearfix").appendTo(a);(this.headerLinkContainer=d("<ul />")).addClass("ui-helper-reset").html(function(){return b.header===true?'<li><a class="ui-multiselect-all" href="#"><span class="ui-icon ui-icon-check"></span><span>'+ b.checkAllText+'</span></a></li><li><a class="ui-multiselect-none" href="#"><span class="ui-icon ui-icon-closethick"></span><span>'+b.uncheckAllText+"</span></a></li>":typeof b.header==="string"?"<li>"+b.header+"</li>":""}).append('<li class="ui-multiselect-close"><a href="#" class="ui-multiselect-close"><span class="ui-icon ui-icon-circle-close"></span></a></li>').appendTo(e);(this.checkboxContainer=d("<ul />")).addClass("ui-multiselect-checkboxes ui-helper-reset").appendTo(a);this._bindEvents(); this.refresh(true);b.multiple||a.addClass("ui-multiselect-single")},_init:function(){this.options.header===false&&this.header.hide();this.options.multiple||this.headerLinkContainer.find(".ui-multiselect-all, .ui-multiselect-none").hide();this.options.autoOpen&&this.open();this.element.is(":disabled")&&this.disable()},refresh:function(a){var b=this.options,e=this.menu,c=this.button,g=this.checkboxContainer,f=[],h=this.element.attr("id")||o++;g.empty();this.element.find("option").each(function(k){var i= d(this),m=i.html(),n=this.value;k=this.id||"ui-multiselect-"+h+"-option-"+k;var j=i.parent();i=i.is(":disabled");var l=["ui-corner-all"];if(j.is("optgroup")){j=j.attr("label");if(d.inArray(j,f)===-1){d('<li><a href="#">'+j+"</a></li>").addClass("ui-multiselect-optgroup-label").appendTo(g);f.push(j)}}if(n.length>0){i&&l.push("ui-state-disabled");j=d("<li />").addClass(i?"ui-multiselect-disabled":"").appendTo(g);l=d("<label />").attr("for",k).addClass(l.join(" ")).appendTo(j);d('<input type="'+(b.multiple? "checkbox":"radio")+'" '+(this.selected?'checked="checked"':"")+' name="multiselect_'+h+'" />').attr({id:k,checked:this.selected,title:m,disabled:i,"aria-disabled":i,"aria-selected":this.selected}).val(n).appendTo(l).after("<span>"+m+"</span>")}});this.labels=e.find("label");this._setButtonWidth();this._setMenuWidth();c[0].defaultValue=this.update();a||this._trigger("refresh")},update:function(){var a=this.options,b=this.labels.find("input"),e=b.filter(":checked"),c=e.length;a=c===0?a.noneSelectedText: d.isFunction(a.selectedText)?a.selectedText.call(this,c,b.length,e.get()):/\d/.test(a.selectedList)&&a.selectedList>0&&c<=a.selectedList?e.map(function(){return this.title}).get().join(", "):a.selectedText.replace("#",c).replace("#",b.length);this.buttonlabel.html(a);return a},_bindEvents:function(){function a(){b[b._isOpen?"close":"open"]();return false}var b=this,e=this.button;e.find("span").bind("click.multiselect",a);e.bind({click:a,keypress:function(c){switch(c.which){case 27:case 38:case 37:b.close(); break;case 39:case 40:b.open()}},mouseenter:function(){e.hasClass("ui-state-disabled")||d(this).addClass("ui-state-hover")},mouseleave:function(){d(this).removeClass("ui-state-hover")},focus:function(){e.hasClass("ui-state-disabled")||d(this).addClass("ui-state-focus")},blur:function(){d(this).removeClass("ui-state-focus")}});this.header.delegate("a","click.multiselect",function(c){d(this).hasClass("ui-multiselect-close")?b.close():b[d(this).hasClass("ui-multiselect-all")?"checkAll":"uncheckAll"](); c.preventDefault()});this.menu.delegate("li.ui-multiselect-optgroup-label a","click.multiselect",function(c){c.preventDefault();var g=d(this),f=g.parent().nextUntil("li.ui-multiselect-optgroup-label").find("input:visible:not(:disabled)");b._trigger("optgrouptoggle",c,{inputs:f.get(),label:g.parent().text(),checked:f[0].checked})!==false&&b._toggleChecked(f.filter(":checked").length!==f.length,f)}).delegate("label","mouseenter.multiselect",function(){if(!d(this).hasClass("ui-state-disabled")){b.labels.removeClass("ui-state-hover"); d(this).addClass("ui-state-hover").find("input").focus()}}).delegate("label","keydown.multiselect",function(c){switch(c.which){case 9:case 27:b.close();break;case 38:case 40:case 37:case 39:b._traverse(c.which,this);c.preventDefault();break;case 13:c.preventDefault();d(this).find("input")[0].click()}}).delegate('input[type="checkbox"], input[type="radio"]',"click.multiselect",function(c){var g=d(this),f=this.value,h=this.checked,k=b.element.find("option");if(g.is(":disabled")||b._trigger("click", c,{value:f,text:this.title,checked:h})===false)c.preventDefault();else{g.attr("aria-selected",h);k.filter(function(){return this.value===f}).attr("selected",h?"selected":"");if(!b.options.multiple){k.not(function(){return this.value===f}).removeAttr("selected");b.labels.removeClass("ui-state-active");g.closest("label").toggleClass("ui-state-active",h);b.close()}setTimeout(d.proxy(b.update,b),10)}});d(document).bind("mousedown.multiselect",function(c){b._isOpen&&!d.contains(b.menu[0],c.target)&&c.target!== b.button[0]&&b.close()});d(this.element[0].form).bind("reset.multiselect",function(){setTimeout(function(){b.update()},10)})},_setButtonWidth:function(){var a=this.element.outerWidth(),b=this.options;if(/\d/.test(b.minWidth)&&a<b.minWidth)a=b.minWidth;this.button.width(a)},_setMenuWidth:function(){var a=this.menu,b=this.button.outerWidth()-parseInt(a.css("padding-left"),10)-parseInt(a.css("padding-right"),10)-parseInt(a.css("border-right-width"),10)-parseInt(a.css("border-left-width"),10);a.width(b|| this.button.outerWidth())},_traverse:function(a,b){var e=d(b),c=a===38||a===37;e=e.parent()[c?"prevAll":"nextAll"]("li:not(.ui-multiselect-disabled, .ui-multiselect-optgroup-label)")[c?"last":"first"]();if(e.length)e.find("label").trigger("mouseover");else{e=this.menu.find("ul:last");this.menu.find("label")[c?"last":"first"]().trigger("mouseover");e.scrollTop(c?e.height():0)}},_toggleChecked:function(a,b){var e=b&&b.length?b:this.labels.find("input");e.not(":disabled").attr({checked:a,"aria-selected":a}); this.update();var c=e.map(function(){return this.value}).get();this.element.find("option").filter(function(){return!this.disabled&&d.inArray(this.value,c)>-1}).attr({selected:a,"aria-selected":a})},_toggleDisabled:function(a){this.button.attr({disabled:a,"aria-disabled":a})[a?"addClass":"removeClass"]("ui-state-disabled");this.menu.find("input").attr({disabled:a,"aria-disabled":a}).parent()[a?"addClass":"removeClass"]("ui-state-disabled");this.element.attr({disabled:a,"aria-disabled":a})},open:function(){var a= this.button,b=this.menu,e=this.speed,c=this.options;if(!(this._trigger("beforeopen")===false||a.hasClass("ui-state-disabled")||this._isOpen)){var g=b.find("ul:last"),f=c.show,h=a.position();if(d.isArray(c.show)){f=c.show[0];e=c.show[1]||this.speed}g.scrollTop(0).height(c.height);if(d.ui.position&&!d.isEmptyObject(c.position)){c.position.of=c.position.of||a;b.show().position(c.position).hide().show(f,e)}else b.css({top:h.top+a.outerHeight(),left:h.left}).show(f,e);this.labels.eq(0).trigger("mouseover").trigger("mouseenter").find("input").trigger("focus"); a.addClass("ui-state-active");this._isOpen=true;this._trigger("open")}},close:function(){if(this._trigger("beforeclose")!==false){var a=this.options,b=a.hide,e=this.speed;if(d.isArray(a.hide)){b=a.hide[0];e=a.hide[1]||this.speed}this.menu.hide(b,e);this.button.removeClass("ui-state-active").trigger("blur").trigger("mouseleave");this._trigger("close");this._isOpen=false}},enable:function(){this._toggleDisabled(false)},disable:function(){this._toggleDisabled(true)},checkAll:function(){this._toggleChecked(true); this._trigger("checkAll")},uncheckAll:function(){this._toggleChecked(false);this._trigger("uncheckAll")},getChecked:function(){return this.menu.find("input").filter(":checked")},destroy:function(){d.Widget.prototype.destroy.call(this);this.button.remove();this.menu.remove();this.element.show();return this},isOpen:function(){return this._isOpen},widget:function(){return this.menu},_setOption:function(a,b){var e=this.menu;switch(a){case "header":e.find("div.ui-multiselect-header")[b?"show":"hide"](); break;case "checkAllText":e.find("a.ui-multiselect-all span").eq(-1).text(b);break;case "uncheckAllText":e.find("a.ui-multiselect-none span").eq(-1).text(b);break;case "height":e.find("ul:last").height(parseInt(b,10));break;case "minWidth":this.options[a]=parseInt(b,10);this._setButtonWidth();this._setMenuWidth();break;case "selectedText":case "selectedList":case "noneSelectedText":this.options[a]=b;this.update();break;case "classes":e.add(this.button).removeClass(this.options.classes).addClass(b)}d.Widget.prototype._setOption.apply(this, arguments)}})})(jQuery);
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/utils.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/utils.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/utils.js	(nonexistent)
@@ -1,111 +0,0 @@
-/* #########################################################################
-# Project:     ControlIES
-# Module:     	utils.js
-# Purpose:     Util functions
-# Language:    javascript
-# Copyright:   2009-2010 - Manuel Mora Gordillo <manuito @nospam@ gmail.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-# 
-############################################################################## */
-
-function selectAll(){
-	$("#tabsClassroom").tabs("select","tabsClassroom-1");
-	$("#selectable li").addClass("ui-selected");
-}
-
-function selectNone(){
-	$("#tabsClassroom").tabs("select","tabsClassroom-1");
-	$("#selectable li").removeClass("ui-selected");
-}
-
-function computersSelected(){
-	var selected = Array();
-	var j=0;
-	
-	$("#selectable li").each(function(i, item){
-		if($("#"+item.id).hasClass('ui-selected')==true){
-			selected[j] = $("#"+item.id + ":eq(0) > #pcName").html();
-			j++;
-		}
-	});
-	return selected;
-}
-
-function sendOrderSelected(url,args,action){
-
-	var selected = computersSelected(url);
-
-	if(selected.length==0){
-		modalAlert("Para realizar la acci&oacute;n debe seleccionar al menos un equipo");
-		return;
-	}
-
-	var classroom = {
-		"pclist" : selected,
-		"args" : args
-	}
-
-	var dataString = $.JSON.encode(classroom)
-	connection(url,dataString,action);
-}
-
-function sendOrder(url,args,action){
-
-	var classroom = {
-		"args" : args
-	}
-
-	var dataString = $.JSON.encode(classroom);
-	connection(url,dataString,action);
-}
-
-
-function modalAlert(message){
-
-	$("#dialogAlertMessage").html(message);
-
-	$("#dialogAlert")
-		.dialog({
-			modal: true,
-			width: 350,
-			resizable: false,
-			hide: "explode",
-			buttons: {
-				Ok: function() { $( this ).dialog( "close" ); }
-			}
-		})
-		.dialog('open'); 
-
-	return true;
-}
-
-function modalConfirm(message, funct){
-
-	$("#dialogAlertMessage").html(message);
-
-	$("#dialogAlert")
-		.dialog({
-			modal: true,
-			width: 350,
-			resizable: false,
-			buttons: {
-				"Si": function() { eval(funct); },
-				"No": function() { $( this ).dialog( "close" ); }
-			}
-		})
-		.dialog('open'); 
-
-	return true;
-}
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffffff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_228ef1_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_228ef1_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/jquery-ui-1.8.9.custom.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/jquery-ui-1.8.9.custom.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/css/ui-lightness/jquery-ui-1.8.9.custom.css	(nonexistent)
@@ -1,573 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
-.ui-widget-content a { color: #333333; }
-.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-.ui-widget-header a { color: #ffffff; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
-.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
- * jQuery UI Resizable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.9
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.js	(nonexistent)
@@ -1 +0,0 @@
-link jquery-1.5.min.js
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.js
___________________________________________________________________
Deleted: svn:special
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui-1.8.9.custom.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui-1.8.9.custom.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui-1.8.9.custom.min.js	(nonexistent)
@@ -1,781 +0,0 @@
-/*!
- * jQuery UI 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.9",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
-NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
-"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
-if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
-"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
-d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
-c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
-b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
-a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
-e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
-this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
-widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
-enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(true===c.data(b.target,a.widgetName+".preventClickEvent")){c.removeData(b.target,a.widgetName+".preventClickEvent");b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
-a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);
-return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent",
-true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Position 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
-left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
-k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
-m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
-d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
-a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
-g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
-;/*
- * jQuery UI Draggable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
-d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
-this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&
-this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
-a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
-0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
-"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?
-0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),
-10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==
-Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
-f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;
-if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/
-b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-
-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=
-this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.9"});
-d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=
-0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=
-c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,
-true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=
-0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=
-a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},
-stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=
-document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-
-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-
-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable",
-"snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=
-c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",
-{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,
-left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,
-a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,
-b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.9"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
-d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
-;/*
- * jQuery UI Resizable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
-if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
-d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
-this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
-this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
-b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
-f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
-b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=
-a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
-k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),
-c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
-this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
-a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,
-arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,
-{version:"1.8.9"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,
-function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=
-(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=
-false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-
-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",
-b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top",
-"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,
-f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=
-a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+
-a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&
-e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",
-height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=
-d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
-;/*
- * jQuery UI Selectable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.9"})})(jQuery);
-;/*
- * jQuery UI Sortable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
-arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
-c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
-{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
-if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
-a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
-if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
-this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
-b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
-"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
-c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
-document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-
-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});
-this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&
-a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?
-"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?
-c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;
-return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=
-d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});
-return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=
-d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=
-this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=
-e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
-if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);
-c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===
-1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=
-this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):
-b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==
-""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions=
-{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||
-document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,
-b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=
-document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<
-this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&
-this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=
-this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();
-this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],
-this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",
-g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||
-this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,
-originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.9"})})(jQuery);
-;/*
- * jQuery UI Accordion 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
-function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+
-a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
-this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
-e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
-e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
-tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.9",animations:{slide:function(a,b){a=
-c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1],
-unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",
-paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
-;/*
- * jQuery UI Autocomplete 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(function(d){d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,f;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){f=false;var e=d.ui.keyCode;
-switch(c.keyCode){case e.PAGE_UP:a._move("previousPage",c);break;case e.PAGE_DOWN:a._move("nextPage",c);break;case e.UP:a._move("previous",c);c.preventDefault();break;case e.DOWN:a._move("next",c);c.preventDefault();break;case e.ENTER:case e.NUMPAD_ENTER:if(a.menu.active){f=true;c.preventDefault()}case e.TAB:if(!a.menu.active)return;a.menu.select(c);break;case e.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=
-null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(f){f=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||
-"body",b)[0]).mousedown(function(c){var e=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(g){g.target!==a.element[0]&&g.target!==e&&!d.ui.contains(e,g.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,e){e=e.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:e})&&/^key/.test(c.originalEvent.type)&&a.element.val(e.value)},selected:function(c,e){var g=e.item.data("item.autocomplete"),
-h=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=h;setTimeout(function(){a.previous=h;a.selectedItem=g},1)}false!==a._trigger("select",c,{item:g})&&a.element.val(g.value);a.term=a.element.val();a.close(c);a.selectedItem=g},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
-this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,f;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,e){e(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source===
-"string"){f=this.options.source;this.source=function(c,e){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:f,data:c,dataType:"json",success:function(g,h,i){i===a.xhr&&e(g);a.xhr=null},error:function(g){g===a.xhr&&e([]);a.xhr=null}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;
-this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==
-this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position))},
-_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var f=this;d.each(b,function(c,e){f._renderItem(a,e)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);
-else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var f=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return f.test(c.label||c.value||c)})}})})(jQuery);
-(function(d){d.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(d(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
--1).mouseenter(function(b){a.activate(b,d(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var f=b.offset().top-this.element.offset().top,c=this.element.attr("scrollTop"),e=this.element.height();if(f<0)this.element.attr("scrollTop",c+f);else f>=e&&this.element.attr("scrollTop",c+f-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})},
-deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,f){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);
-a.length?this.activate(f,a):this.activate(f,this.element.children(b))}else this.activate(f,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(".ui-menu-item:first"));else{var b=this.active.offset().top,f=this.element.height(),c=this.element.children(".ui-menu-item").filter(function(){var e=d(this).offset().top-b-f+d(this).height();return e<10&&e>-10});c.length||(c=this.element.children(".ui-menu-item:last"));this.activate(a,
-c)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(".ui-menu-item:last"));else{var b=this.active.offset().top,f=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-b+f-d(this).height();return c<10&&c>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
-this.activate(a,result)}else this.activate(a,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
-;/*
- * jQuery UI Button 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
-b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
-g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
-c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=
-this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
-this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
-this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},
-destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
-;/*
- * jQuery UI Dialog 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&
-c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
--1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
-"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
-b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
-a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");
-isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);
-d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});
-c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,
-h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=
-d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,
-position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,
-h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===
-1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
-l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");
-break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=
-this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&
-this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.9",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===
-0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
-height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
-b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,
-function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-;/*
- * jQuery UI Slider 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
-this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
-if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();
-else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
-false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
-b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
-this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,
-g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},
-_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;
-if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=
-this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],
-value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=
-this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();
-else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case "disabled":if(a){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];
-return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},
-_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);
-if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,
-1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.9"})})(jQuery);
-;/*
- * jQuery UI Tabs 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
-d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
-this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
-this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
-g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
-function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
-this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
--1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
-d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=
-d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
-e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
-j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
-if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
-this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
-load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
-"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
-url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.9"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
-a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
-;/*
- * jQuery UI Datepicker 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function(d,G){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
-"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]==
-null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.9"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();
-f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
-_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
-b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
-""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
-c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
-true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});
-b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);
-this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",
-this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,
-function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:
-f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},
-e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);
-this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?
-d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||
-a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,
-e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,
-"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},
-_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=
-d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,
-c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&
-d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",
-function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=
--1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,
-"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},
-_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-
-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?
-b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},
-_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):
-0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=
-false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=
-d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);
-else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=
-a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,
-g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
-s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case "!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
-1;l=w.getDate();break;case "'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",
-RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&
-a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",
-b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+=
-"0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=
-f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=
-(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,
-l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=
-a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),
-b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=
-this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,
-"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=
-this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var M="",D=0;D<i[1];D++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=
-(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=
-p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!v?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":
-""))+'"'+((!B||v)&&F[2]?' title="'+F[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!v?"&#xa0;":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=
-P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',
-o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&
-l)?"&#xa0;":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
-a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=
-a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
-"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
-c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
-"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
-function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));
-return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.9";window["DP_jQuery_"+y]=d})(jQuery);
-;/*
- * jQuery UI Progressbar 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
-this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.9"})})(jQuery);
-;/*
- * jQuery UI Effects 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
-"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
-0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
-211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
-d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];
-h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,
-a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.9",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,
-a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",
-border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
-return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);
-else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),
-b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,
-a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,
-a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==
-e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=
-g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
-h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,
-a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
-;/*
- * jQuery UI Effects Blind 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
-g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Bounce 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Clip 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
-c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Drop 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
-"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Explode 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
-;/*
- * jQuery UI Effects Fade 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Fold 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
-10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Highlight 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Pulsate 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Scale 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
-p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
-if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
-a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
-child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
-n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Shake 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
-(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Slide 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
-var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Transfer 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
-;
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-1.5.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-1.5.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-1.5.min.js	(nonexistent)
@@ -1,16 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.5
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Mon Jan 31 08:31:29 2011 -0500
- */
-(function(a,b){function b$(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function bX(a){if(!bR[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bR[a]=c}return bR[a]}function bW(a,b){var c={};d.each(bV.concat.apply([],bV.slice(0,b)),function(){c[this]=a});return c}function bJ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f=a.converters,g,h=e.length,i,j=e[0],k,l,m,n,o;for(g=1;g<h;g++){k=j,j=e[g];if(j==="*")j=k;else if(k!=="*"&&k!==j){l=k+" "+j,m=f[l]||f["* "+j];if(!m){o=b;for(n in f){i=n.split(" ");if(i[0]===k||i[0]==="*"){o=f[i[1]+" "+j];if(o){n=f[n],n===!0?m=o:o===!0&&(m=n);break}}}}!m&&!o&&d.error("No conversion from "+l.replace(" "," to ")),m!==!0&&(c=m?m(c):o(n(c)))}}return c}function bI(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bH(a,b,c,e){d.isArray(b)&&b.length?d.each(b,function(b,f){c||bp.test(a)?e(a,f):bH(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)}):c||b==null||typeof b!=="object"?e(a,b):d.isArray(b)||d.isEmptyObject(b)?e(a,""):d.each(b,function(b,d){bH(a+"["+b+"]",d,c,e)})}function bG(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bD,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(g[l]?l=b:(c.dataTypes.unshift(l),l=bG(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bG(a,c,d,e,"*",g));return l}function bF(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bz),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bn(a,b,c){var e=b==="width"?bh:bi,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function _(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(q,"`").replace(r,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,p,q=[],r=[],s=d._data(this,u);typeof s==="function"&&(s=s.events);if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(o,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,p=f.handleObj.origHandler.apply(f.elem,arguments);if(p===!1||a.isPropagationStopped()){c=f.level,p===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,b,c){c[0].type=a;return d.event.handle.apply(b,c)}function w(){return!0}function v(){return!1}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");e.type="text/javascript",d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a,c){if(a==null){if(e)return e;e=a={}}c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.then(c.cancel,b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments,c=b.length,e=c<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),f=e.promise(),g;c>1?(g=Array(c),d.each(b,function(a,b){d.when(b).then(function(b){g[a]=arguments.length>1?E.call(arguments,0):b,--c||e.resolveWith(f,g)},e.reject)})):e!==a&&e.resolve(a);return f},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return a.jQuery=a.$=d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option"));if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:b.getElementsByTagName("input")[0].value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,_scriptEval:null,noCloneEvent:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},g.disabled=!0,d.support.optDisabled=!h.disabled,d.support.scriptEval=function(){if(d.support._scriptEval===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();e.type="text/javascript";try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(d.support._scriptEval=!0,delete a[f]):d.support._scriptEval=!1,b.removeChild(e),b=e=f=null}return d.support._scriptEval};try{delete b.test}catch(i){d.support.deleteExpando=!1}b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function j(){d.support.noCloneEvent=!1,b.detachEvent("onclick",j)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var k=c.createDocumentFragment();k.appendChild(b.firstChild),d.support.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var l=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=l("submit"),d.support.changeBubbles=l("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!d.isEmptyObject(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={}),typeof c==="object"&&(f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c)),i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,i=g?b[d.expando]:d.expando;if(!h[i])return;if(c){var j=e?h[i][f]:h[i];if(j){delete j[c];if(!d.isEmptyObject(j))return}}if(e){delete h[i][f];if(!d.isEmptyObject(h[i]))return}var k=h[i][f];d.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},h[i][f]=k):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var g=/[\n\t\r]/g,h=/\s+/,i=/\r/g,j=/^(?:href|src|style)$/,k=/^(?:button|input)$/i,l=/^(?:button|input|object|select|textarea)$/i,m=/^a(?:rea)?$/i,n=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(h);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",i=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(i+=" "+b[j]);f.className=d.trim(i)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(h);for(var e=0,f=this.length;e<f;e++){var i=this[e];if(i.nodeType===1&&i.className)if(a){var j=(" "+i.className+" ").replace(g," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");i.className=d.trim(j)}else i.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,i=d(this),j=b,k=a.split(h);while(f=k[g++])j=e?j:!i.hasClass(f),i[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(g," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,j=c.type==="select-one";if(f<0)return null;for(var k=j?f:0,l=j?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(j)return a;g.push(a)}}return g}if(n.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(i,"")}return b}var o=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){o&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&n.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=j.test(c);if(c==="selected"&&!d.support.optSelected){var n=a.parentNode;n&&(n.selectedIndex,n.parentNode&&n.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&k.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:l.test(a.nodeName)||m.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var o=/\.(.*)$/,p=/^(?:textarea|input|select)$/i,q=/\./g,r=/ /g,s=/[^\w\s.|`]/g,t=function(a){return a.replace(s,"\\$&")},u="events";d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a);if(f===!1)f=v;else if(!f)return;var h,i;f.handler&&(h=f,f=h.handler),f.guid||(f.guid=d.guid++);var j=d._data(c);if(!j)return;var k=j[u],l=j.handle;typeof k==="function"?(l=k.handle,k=k.events):k||(c.nodeType||(j[u]=j=function(){}),j.events=k={}),l||(j.handle=l=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(l.elem,arguments):b}),l.elem=c,e=e.split(" ");var m,n=0,o;while(m=e[n++]){i=h?d.extend({},h):{handler:f,data:g},m.indexOf(".")>-1?(o=m.split("."),m=o.shift(),i.namespace=o.slice(0).sort().join(".")):(o=[],i.namespace=""),i.type=m,i.guid||(i.guid=f.guid);var p=k[m],q=d.event.special[m]||{};if(!p){p=k[m]=[];if(!q.setup||q.setup.call(c,g,o,l)===!1)c.addEventListener?c.addEventListener(m,l,!1):c.attachEvent&&c.attachEvent("on"+m,l)}q.add&&(q.add.call(c,i),i.handler.guid||(i.handler.guid=f.guid)),p.push(i),d.event.global[m]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),w=s&&s[u];if(!s||!w)return;typeof w==="function"&&(s=w,w=w.events),c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in w)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),t).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=w[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete w[h]}if(d.isEmptyObject(w)){var x=s.handle;x&&(x.elem=null),delete s.events,delete s.handle,typeof s==="function"?d.removeData(a,u,!0):d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=e.nodeType?d._data(e,"handle"):(d._data(e,u)||{}).handle;h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(o,""),n=d.nodeName(l,"a")&&m==="click",p=d.event.special[m]||{};if((!p._default||p._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,u),typeof i==="function"&&(i=i.events),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(c){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,c){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="submit"||e==="image")&&d(c).closest("form").length){a.liveFired=b;return C("submit",this,arguments)}}),d.event.add(this,"keypress.specialSubmit",function(a){var c=a.target,e=c.type;if((e==="text"||e==="password")&&d(c).closest("form").length&&a.keyCode===13){a.liveFired=b;return C("submit",this,arguments)}});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(p.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f){a.type="change",a.liveFired=b;return d.event.trigger(a,arguments[1],c)}}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;if(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")return B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")return B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return p.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return p.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var p in a)n[c](p,e,a[p],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=o.exec(h),k="",j&&(k=j[0],h=h.replace(o,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.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".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function s(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var j=d[g];if(j){var k=!1;j=j[a];while(j){if(j.sizcache===c){k=d[j.sizset];break}if(j.nodeType===1){f||(j.sizcache=c,j.sizset=g);if(typeof b!=="string"){if(j===b){k=!0;break}}else if(i.filter(b,[j]).length>0){k=j;break}}j=j[a]}d[g]=k}}}function r(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0;[0,0].sort(function(){h=!1;return 0});var i=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var l,m,o,p,q,r,s,u,v=!0,w=i.isXML(d),x=[],y=b;do{a.exec(""),l=a.exec(y);if(l){y=l[3],x.push(l[1]);if(l[2]){p=l[3];break}}}while(l);if(x.length>1&&k.exec(b))if(x.length===2&&j.relative[x[0]])m=t(x[0]+x[1],d);else{m=j.relative[x[0]]?[d]:i(x.shift(),d);while(x.length)b=x.shift(),j.relative[b]&&(b+=x.shift()),m=t(b,m)}else{!g&&x.length>1&&d.nodeType===9&&!w&&j.match.ID.test(x[0])&&!j.match.ID.test(x[x.length-1])&&(q=i.find(x.shift(),d,w),d=q.expr?i.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:n(g)}:i.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),m=q.expr?i.filter(q.expr,q.set):q.set,x.length>0?o=n(m):v=!1;while(x.length)r=x.pop(),s=r,j.relative[r]?s=x.pop():r="",s==null&&(s=d),j.relative[r](o,s,w)}else o=x=[]}o||(o=m),o||i.error(r||b);if(f.call(o)==="[object Array]")if(v)if(d&&d.nodeType===1)for(u=0;o[u]!=null;u++)o[u]&&(o[u]===!0||o[u].nodeType===1&&i.contains(d,o[u]))&&e.push(m[u]);else for(u=0;o[u]!=null;u++)o[u]&&o[u].nodeType===1&&e.push(m[u]);else e.push.apply(e,o);else n(o,e);p&&(i(p,h,e,g),i.uniqueSort(e));return e};i.uniqueSort=function(a){if(p){g=h,a.sort(p);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},i.matches=function(a,b){return i(a,null,null,b)},i.matchesSelector=function(a,b){return i(b,null,null,[a]).length>0},i.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=j.order.length;e<f;e++){var g,h=j.order[e];if(g=j.leftMatch[h].exec(a)){var i=g[1];g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(/\\/g,""),d=j.find[h](g,b,c);if(d!=null){a=a.replace(j.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},i.filter=function(a,c,d,e){var f,g,h=a,k=[],l=c,m=c&&c[0]&&i.isXML(c[0]);while(a&&c.length){for(var n in j.filter)if((f=j.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=j.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;l===k&&(k=[]);if(j.preFilter[n]){f=j.preFilter[n](f,l,d,k,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=l[s])!=null;s++)if(p){o=q(p,f,s,l);var t=e^!!o;d&&o!=null?t?g=!0:l[s]=!1:t&&(k.push(p),g=!0)}if(o!==b){d||(l=k),a=a.replace(j.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)i.error(a);else break;h=a}return l},i.error=function(a){throw"Syntax error, unrecognized expression: "+a};var j=i.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!/\W/.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&i.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!/\W/.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&i.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=s;typeof b==="string"&&!/\W/.test(b)&&(b=b.toLowerCase(),d=b,g=r),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(/\\/g,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a,b){return a[1].toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||i.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&i.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(/\\/g,"");!f&&j.attrMap[g]&&(a[1]=j.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(/\\/g,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=i(b[3],null,null,c);else{var g=i.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(j.match.POS.test(b[0])||j.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!i(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=j.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||i.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,k=g.length;h<k;h++)if(g[h]===a)return!1;return!0}i.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=j.attrHandle[c]?j.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=j.setFilters[e];if(f)return f(a,c,b,d)}}},k=j.match.POS,l=function(a,b){return"\\"+(b-0+1)};for(var m in j.match)j.match[m]=new RegExp(j.match[m].source+/(?![^\[]*\])(?![^\(]*\))/.source),j.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+j.match[m].source.replace(/\\(\d+)/g,l));var n=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(o){n=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var p,q;c.documentElement.compareDocumentPosition?p=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(p=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return q(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return q(e[k],f[k]);return k===c?q(a,f[k],-1):q(e[k],b,1)},q=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),i.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=i.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(j.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},j.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(j.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(j.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=i,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){i=function(b,e,f,g){e=e||c;if(!g&&!i.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return n(e.getElementsByTagName(b),f);if(h[2]&&j.find.CLASS&&e.getElementsByClassName)return n(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return n([e.body],f);if(h&&h[3]){var k=e.getElementById(h[3]);if(!k||!k.parentNode)return n([],f);if(k.id===h[3])return n([k],f)}try{return n(e.querySelectorAll(b),f)}catch(l){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e.getAttribute("id"),o=m||d,p=e.parentNode,q=/^\s*[+~]/.test(b);m?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),q&&p&&(e=e.parentNode);try{if(!q||p)return n(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(r){}finally{m||e.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)i[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(i.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!i.isXML(a))try{if(d||!j.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return i(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;j.order.splice(1,0,"CLASS"),j.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?i.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?i.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains=function(){return!1},i.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var t=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=j.match.PSEUDO.exec(a))e+=c[0],a=a.replace(j.match.PSEUDO,"");a=j.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)i(a,f[g],d);return i.filter(e,d)};d.find=i,d.expr=i.selectors,d.expr[":"]=d.expr.filters,d.unique=i.uniqueSort,d.text=i.getText,d.isXMLDoc=i.isXML,d.contains=i.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!0:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,_)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if(!d.support.noCloneEvent&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");for(h=0;f[h];++h)$(f[h],g[h]);$(a,e)}if(b){Z(a,e);if(c&&"getElementsByTagName"in a){f=a.getElementsByTagName("*"),g=e.getElementsByTagName("*");if(f.length)for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var ba=/alpha\([^)]*\)/i,bb=/opacity=([^)]*)/,bc=/-([a-z])/ig,bd=/([A-Z])/g,be=/^-?\d+(?:px)?$/i,bf=/^-?\d/,bg={position:"absolute",visibility:"hidden",display:"block"},bh=["Left","Right"],bi=["Top","Bottom"],bj,bk,bl,bm=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bj(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bj)return bj(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bc,bm)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bn(a,b,e):d.swap(a,bg,function(){f=bn(a,b,e)});if(f<=0){f=bj(a,b,b),f==="0px"&&bl&&(f=bl(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!be.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=ba.test(f)?f.replace(ba,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bk=function(a,c,e){var f,g,h;e=e.replace(bd,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bl=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!be.test(d)&&bf.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bj=bk||bl,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bo=/%20/g,bp=/\[\]$/,bq=/\r?\n/g,br=/#.*$/,bs=/^(.*?):\s*(.*?)\r?$/mg,bt=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bu=/^(?:GET|HEAD)$/,bv=/^\/\//,bw=/\?/,bx=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,by=/^(?:select|textarea)/i,bz=/\s+/,bA=/([?&])_=[^&]*/,bB=/^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,bC=d.fn.load,bD={},bE={};d.fn.extend({load:function(a,b,c){if(typeof a!=="string"&&bC)return bC.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}var g="GET";b&&(d.isFunction(b)?(c=b,b=null):typeof b==="object"&&(b=d.param(b,d.ajaxSettings.traditional),g="POST"));var h=this;d.ajax({url:a,type:g,dataType:"html",data:b,complete:function(a,b,e){e=a.responseText,a.isResolved()&&(a.done(function(a){e=a}),h.html(f?d("<div>").append(e.replace(bx,"")).find(f):e)),c&&h.each(c,[e,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||by.test(this.nodeName)||bt.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bq,"\r\n")}}):{name:b.name,value:c.replace(bq,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,b){d[b]=function(a,c,e,f){d.isFunction(c)&&(f=f||e,e=c,c=null);return d.ajax({type:b,url:a,data:c,success:e,dataType:f})}}),d.extend({getScript:function(a,b){return d.get(a,null,b,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a){d.extend(!0,d.ajaxSettings,a),a.context&&(d.ajaxSettings.context=a.context)},ajaxSettings:{url:location.href,global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bF(bD),ajaxTransport:bF(bE),ajax:function(a,e){function w(a,c,e,l){if(t!==2){t=2,p&&clearTimeout(p),o=b,m=l||"",v.readyState=a?4:0;var n,q,r,s=e?bI(f,v,e):b,u,w;if(a>=200&&a<300||a===304){if(f.ifModified){if(u=v.getResponseHeader("Last-Modified"))d.lastModified[f.url]=u;if(w=v.getResponseHeader("Etag"))d.etag[f.url]=w}if(a===304)c="notmodified",n=!0;else try{q=bJ(f,s),c="success",n=!0}catch(x){c="parsererror",r=x}}else r=c,a&&(c="error",a<0&&(a=0));v.status=a,v.statusText=c,n?i.resolveWith(g,[q,c,v]):i.rejectWith(g,[v,c,r]),v.statusCode(k),k=b,f.global&&h.trigger("ajax"+(n?"Success":"Error"),[v,f,n?q:r]),j.resolveWith(g,[v,c]),f.global&&(h.trigger("ajaxComplete",[v,f]),--d.active||d.event.trigger("ajaxStop"))}}typeof e!=="object"&&(e=a,a=b),e=e||{};var f=d.extend(!0,{},d.ajaxSettings,e),g=(f.context=("context"in e?e:d.ajaxSettings).context)||f,h=g===f?d.event:d(g),i=d.Deferred(),j=d._Deferred(),k=f.statusCode||{},l={},m,n,o,p,q=c.location,r=q.protocol||"http:",s,t=0,u,v={readyState:0,setRequestHeader:function(a,b){t===0&&(l[a.toLowerCase()]=b);return this},getAllResponseHeaders:function(){return t===2?m:null},getResponseHeader:function(a){var b;if(t===2){if(!n){n={};while(b=bs.exec(m))n[b[1].toLowerCase()]=b[2]}b=n[a.toLowerCase()]}return b||null},abort:function(a){a=a||"abort",o&&o.abort(a),w(0,a);return this}};i.promise(v),v.success=v.done,v.error=v.fail,v.complete=j.done,v.statusCode=function(a){if(a){var b;if(t<2)for(b in a)k[b]=[k[b],a[b]];else b=a[v.status],v.then(b,b)}return this},f.url=(""+(a||f.url)).replace(br,"").replace(bv,r+"//"),f.dataTypes=d.trim(f.dataType||"*").toLowerCase().split(bz),f.crossDomain||(s=bB.exec(f.url.toLowerCase()),f.crossDomain=s&&(s[1]!=r||s[2]!=q.hostname||(s[3]||(s[1]==="http:"?80:443))!=(q.port||(r==="http:"?80:443)))),f.data&&f.processData&&typeof f.data!=="string"&&(f.data=d.param(f.data,f.traditional)),bG(bD,f,e,v),f.type=f.type.toUpperCase(),f.hasContent=!bu.test(f.type),f.global&&d.active++===0&&d.event.trigger("ajaxStart");if(!f.hasContent){f.data&&(f.url+=(bw.test(f.url)?"&":"?")+f.data);if(f.cache===!1){var x=d.now(),y=f.url.replace(bA,"$1_="+x);f.url=y+(y===f.url?(bw.test(f.url)?"&":"?")+"_="+x:"")}}if(f.data&&f.hasContent&&f.contentType!==!1||e.contentType)l["content-type"]=f.contentType;f.ifModified&&(d.lastModified[f.url]&&(l["if-modified-since"]=d.lastModified[f.url]),d.etag[f.url]&&(l["if-none-match"]=d.etag[f.url])),l.accept=f.dataTypes[0]&&f.accepts[f.dataTypes[0]]?f.accepts[f.dataTypes[0]]+(f.dataTypes[0]!=="*"?", */*; q=0.01":""):f.accepts["*"];for(u in f.headers)l[u.toLowerCase()]=f.headers[u];if(!f.beforeSend||f.beforeSend.call(g,v,f)!==!1&&t!==2){for(u in {success:1,error:1,complete:1})v[u](f[u]);o=bG(bE,f,e,v);if(o){t=v.readyState=1,f.global&&h.trigger("ajaxSend",[v,f]),f.async&&f.timeout>0&&(p=setTimeout(function(){v.abort("timeout")},f.timeout));try{o.send(l,w)}catch(z){status<2?w(-1,z):d.error(z)}}else w(-1,"No Transport")}else w(0,"abort"),v=!1;return v},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery)d.each(a,function(){f(this.name,this.value)});else for(var g in a)bH(g,a[g],c,f);return e.join("&").replace(bo,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bK=d.now(),bL=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bK++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){e=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bL.test(b.url)||e&&bL.test(b.data))){var f,g=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h=a[g],i=b.url,j=b.data,k="$1"+g+"$2";b.jsonp!==!1&&(i=i.replace(bL,k),b.url===i&&(e&&(j=j.replace(bL,k)),b.data===j&&(i+=(/\?/.test(i)?"&":"?")+b.jsonp+"="+g))),b.url=i,b.data=j,a[g]=function(a){f=[a]},b.complete=[function(){a[g]=h;if(h)f&&d.isFunction(h)&&a[g](f[0]);else try{delete a[g]}catch(b){}},b.complete],b.converters["script json"]=function(){f||d.error(g+" was not called");return f[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript"},contents:{script:/javascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bM=d.now(),bN={},bO,bP;d.ajaxSettings.xhr=a.ActiveXObject?function(){if(a.location.protocol!=="file:")try{return new a.XMLHttpRequest}catch(b){}try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(c){}}:function(){return new a.XMLHttpRequest};try{bP=d.ajaxSettings.xhr()}catch(bQ){}d.support.ajax=!!bP,d.support.cors=bP&&"withCredentials"in bP,bP=b,d.support.ajax&&d.ajaxTransport(function(b){if(!b.crossDomain||d.support.cors){var c;return{send:function(e,f){bO||(bO=1,d(a).bind("unload",function(){d.each(bN,function(a,b){b.onreadystatechange&&b.onreadystatechange(1)})}));var g=b.xhr(),h;b.username?g.open(b.type,b.url,b.async,b.username,b.password):g.open(b.type,b.url,b.async),(!b.crossDomain||b.hasContent)&&!e["x-requested-with"]&&(e["x-requested-with"]="XMLHttpRequest");try{d.each(e,function(a,b){g.setRequestHeader(a,b)})}catch(i){}g.send(b.hasContent&&b.data||null),c=function(a,e){if(c&&(e||g.readyState===4)){c=0,h&&(g.onreadystatechange=d.noop,delete bN[h]);if(e)g.readyState!==4&&g.abort();else{var i=g.status,j,k=g.getAllResponseHeaders(),l={},m=g.responseXML;m&&m.documentElement&&(l.xml=m),l.text=g.responseText;try{j=g.statusText}catch(n){j=""}i=i===0?!b.crossDomain||j?k?304:0:302:i==1223?204:i,f(i,j,l,k)}}},b.async&&g.readyState!==4?(h=bM++,bN[h]=g,g.onreadystatechange=c):c()},abort:function(){c&&c(0,1)}}}});var bR={},bS=/^(?:toggle|show|hide)$/,bT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,bU,bV=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(bW("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",bX(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(bW("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(bW("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=bX(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(bS.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=bT.exec(e),j=f.cur()||0;if(i){var k=parseFloat(i[2]),l=i[3]||"px";l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:bW("show",1),slideUp:bW("hide",1),slideToggle:bW("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(d.css(this.elem,this.prop));return a||0},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||"px",this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!bU&&(bU=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(bU),bU=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var bY=/^t(?:able|d|h)$/i,bZ=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=b$(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!bY.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=bZ.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!bZ.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=b$(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=b$(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}})})(window);
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui.custom.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui.custom.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui.custom.min.js	(nonexistent)
@@ -1 +0,0 @@
-link jquery-ui-1.8.9.custom.min.js
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery-ui.custom.min.js
___________________________________________________________________
Deleted: svn:special
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js	(nonexistent)
@@ -1 +0,0 @@
-(function(a){a.jgrid={defaults:{recordtext:"Mostrando {0} - {1} de {2}",emptyrecords:"Sin registros que mostrar",loadtext:"Cargando...",pgtext:"Página {0} de {1}"},search:{caption:"Búsqueda...",Find:"Buscar",Reset:"Limpiar",odata:["igual ","no igual a","menor que","menor o igual que","mayor que","mayor o igual a","empiece por","no empiece por","está en","no está en","termina por","no termina por","contiene","no contiene"],groupOps:[{op:"AND",text:"todo"},{op:"OR",text:"cualquier"}],matchText:" match",rulesText:" reglas"},edit:{addCaption:"Agregar registro",editCaption:"Modificar registro",bSubmit:"Guardar",bCancel:"Cancelar",bClose:"Cerrar",saveData:"Se han modificado los datos, ¿guardar cambios?",bYes:"Si",bNo:"No",bExit:"Cancelar",msg:{required:"Campo obligatorio",number:"Introduzca un número",minValue:"El valor debe ser mayor o igual a ",maxValue:"El valor debe ser menor o igual a ",email:"no es una dirección de correo válida",integer:"Introduzca un valor entero",date:"Introduza una fecha correcta ",url:"no es una URL válida. Prefijo requerido ('http://' or 'https://')",nodefined:" no está definido.",novalue:" valor de retorno es requerido.",customarray:"La función personalizada debe devolver un array.",customfcheck:"La función personalizada debe estar presente en el caso de validación personalizada."}},view:{caption:"Consultar registro",bClose:"Cerrar"},del:{caption:"Eliminar",msg:"¿Desea eliminar los registros seleccionados?",bSubmit:"Eliminar",bCancel:"Cancelar"},nav:{edittext:" ",edittitle:"Modificar fila seleccionada",addtext:" ",addtitle:"Agregar nueva fila",deltext:" ",deltitle:"Eliminar fila seleccionada",searchtext:" ",searchtitle:"Buscar información",refreshtext:"",refreshtitle:"Recargar datos",alertcap:"Aviso",alerttext:"Seleccione una fila",viewtext:"",viewtitle:"Ver fila seleccionada"},col:{caption:"Mostrar/ocultar columnas",bSubmit:"Enviar",bCancel:"Cancelar"},errors:{errcap:"Error",nourl:"No se ha especificado una URL",norecords:"No hay datos para procesar",model:"Las columnas de nombres son diferentes de las columnas de modelo"},formatter:{integer:{thousandsSeparator:".",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:".",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Do","Lu","Ma","Mi","Ju","Vi","Sa","Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"],monthNames:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d-m-Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/grid.locale-sp.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js	(nonexistent)
@@ -1,629 +0,0 @@
-/*
- * jqGrid common function
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-*/ 
-// Modal functions
-var showModal = function(h) {
-	h.w.show();
-};
-var closeModal = function(h) {
-	h.w.hide().attr("aria-hidden","true");
-	if(h.o) { h.o.remove(); }
-};
-var hideModal = function (selector,o) {
-	o = jQuery.extend({jqm : true, gb :''}, o || {});
-    if(o.onClose) {
-		var oncret =  o.onClose(selector);
-		if (typeof oncret == 'boolean'  && !oncret ) { return; }
-    }	
-	if (jQuery.fn.jqm && o.jqm === true) {
-		jQuery(selector).attr("aria-hidden","true").jqmHide();
-	} else {
-		if(o.gb != '') {
-			try {jQuery(".jqgrid-overlay:first",o.gb).hide();} catch (e){}
-		}
-		jQuery(selector).hide().attr("aria-hidden","true");
-	}
-};
-//Helper functions
-function findPos(obj) {
-	var curleft = 0, curtop = 0;
-	if (obj.offsetParent) {
-		do {
-			curleft += obj.offsetLeft;
-			curtop += obj.offsetTop; 
-		} while (obj = obj.offsetParent);
-		//do not change obj == obj.offsetParent 
-	}
-	return [curleft,curtop];
-}
-var createModal = function(aIDs, content, p, insertSelector, posSelector, appendsel) {
-	var mw  = document.createElement('div'), rtlsup;
-	rtlsup = jQuery(p.gbox).attr("dir") == "rtl" ? true : false;
-	mw.className= "ui-widget ui-widget-content ui-corner-all ui-jqdialog";
-	mw.id = aIDs.themodal; 
-	var mh = document.createElement('div');
-	mh.className = "ui-jqdialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix";
-	mh.id = aIDs.modalhead;
-	jQuery(mh).append("<span class='ui-jqdialog-title'>"+p.caption+"</span>");
-	var ahr= jQuery("<a href='javascript:void(0)' class='ui-jqdialog-titlebar-close ui-corner-all'></a>")
-	.hover(function(){ahr.addClass('ui-state-hover');},
-		   function(){ahr.removeClass('ui-state-hover');})
-	.append("<span class='ui-icon ui-icon-closethick'></span>");
-	jQuery(mh).append(ahr);
-	if(rtlsup) {
-		mw.dir = "rtl";
-		jQuery(".ui-jqdialog-title",mh).css("float","right");
-		jQuery(".ui-jqdialog-titlebar-close",mh).css("left",0.3+"em");
-	} else {
-		mw.dir = "ltr";
-		jQuery(".ui-jqdialog-title",mh).css("float","left");
-		jQuery(".ui-jqdialog-titlebar-close",mh).css("right",0.3+"em");
-	}
-	var mc = document.createElement('div');
-	jQuery(mc).addClass("ui-jqdialog-content ui-widget-content").attr("id",aIDs.modalcontent);
-	jQuery(mc).append(content);
-	mw.appendChild(mc);
-	jQuery(mw).prepend(mh);
-	if(appendsel===true) { jQuery('body').append(mw); } //append as first child in body -for alert dialog
-	else {jQuery(mw).insertBefore(insertSelector);}
-	if(typeof p.jqModal === 'undefined') {p.jqModal = true;} // internal use
-	var coord = {};
-	if ( jQuery.fn.jqm && p.jqModal === true) {
-		if(p.left ===0 && p.top===0) {
-			var pos = [];
-			pos = findPos(posSelector);
-			p.left = pos[0] + 4;
-			p.top = pos[1] + 4;
-		}
-		coord.top = p.top+"px";
-		coord.left = p.left;
-	} else if(p.left !==0 || p.top!==0) {
-		coord.left = p.left;
-		coord.top = p.top+"px";
-	}
-	jQuery("a.ui-jqdialog-titlebar-close",mh).click(function(e){
-		var oncm = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
-		var gboxclose = jQuery("#"+aIDs.themodal).data("gbox") || p.gbox;
-		hideModal("#"+aIDs.themodal,{gb:gboxclose,jqm:p.jqModal,onClose:oncm});
-		return false;
-	});
-	if (p.width === 0 || !p.width) {p.width = 300;}
-	if(p.height === 0 || !p.height) {p.height =200;}
-	if(!p.zIndex) {p.zIndex = 950;}
-	var rtlt = 0;
-	if( rtlsup && coord.left && !appendsel) {
-		rtlt = jQuery(p.gbox).width()- (!isNaN(p.width) ? parseInt(p.width,10) :0) - 8; // to do
-		// just in case
-		coord.left = parseInt(coord.left,10) + parseInt(rtlt,10);
-	}
-	if(coord.left) { coord.left += "px"; }
-	jQuery(mw).css(jQuery.extend({
-		width: isNaN(p.width) ? "auto": p.width+"px",
-		height:isNaN(p.height) ? "auto" : p.height + "px",
-		zIndex:p.zIndex,
-		overflow: 'hidden'
-	},coord))
-	.attr({tabIndex: "-1","role":"dialog","aria-labelledby":aIDs.modalhead,"aria-hidden":"true"});
-	if(typeof p.drag == 'undefined') { p.drag=true;}
-	if(typeof p.resize == 'undefined') {p.resize=true;}
-	if (p.drag) {
-		jQuery(mh).css('cursor','move');
-		if(jQuery.fn.jqDrag) {
-			jQuery(mw).jqDrag(mh);
-		} else {
-			try {
-				jQuery(mw).draggable({handle: jQuery("#"+mh.id)});
-			} catch (e) {}
-		}
-	}
-	if(p.resize) {
-		if(jQuery.fn.jqResize) {
-			jQuery(mw).append("<div class='jqResize ui-resizable-handle ui-resizable-se ui-icon ui-icon-gripsmall-diagonal-se ui-icon-grip-diagonal-se'></div>");
-			jQuery("#"+aIDs.themodal).jqResize(".jqResize",aIDs.scrollelm ? "#"+aIDs.scrollelm : false);
-		} else {
-			try {
-				jQuery(mw).resizable({handles: 'se, sw',alsoResize: aIDs.scrollelm ? "#"+aIDs.scrollelm : false});
-			} catch (e) {}
-		}
-	}
-	if(p.closeOnEscape === true){
-		jQuery(mw).keydown( function( e ) {
-			if( e.which == 27 ) {
-				var cone = jQuery("#"+aIDs.themodal).data("onClose") || p.onClose;
-				hideModal(this,{gb:p.gbox,jqm:p.jqModal,onClose: cone});
-			}
-		});
-	}
-};
-var viewModal = function (selector,o){
-	o = jQuery.extend({
-		toTop: true,
-		overlay: 10,
-		modal: false,
-		onShow: showModal,
-		onHide: closeModal,
-		gbox: '',
-		jqm : true,
-		jqM : true
-	}, o || {});
-	if (jQuery.fn.jqm && o.jqm === true) {
-		if(o.jqM) { jQuery(selector).attr("aria-hidden","false").jqm(o).jqmShow(); }
-		else {jQuery(selector).attr("aria-hidden","false").jqmShow();}
-	} else {
-		if(o.gbox != '') {
-			jQuery(".jqgrid-overlay:first",o.gbox).show();
-			jQuery(selector).data("gbox",o.gbox);
-		}
-		jQuery(selector).show().attr("aria-hidden","false");
-		try{jQuery(':input:visible',selector)[0].focus();}catch(_){}
-	}
-};
-
-function info_dialog(caption, content,c_b, modalopt) {
-	var mopt = {
-		width:290,
-		height:'auto',
-		dataheight: 'auto',
-		drag: true,
-		resize: false,
-		caption:"<b>"+caption+"</b>",
-		left:250,
-		top:170,
-		zIndex : 1000,
-		jqModal : true,
-		modal : false,
-		closeOnEscape : true,
-		align: 'center',
-		buttonalign : 'center',
-		buttons : []
-		// {text:'textbutt', id:"buttid", onClick : function(){...}}
-		// if the id is not provided we set it like info_button_+ the index in the array - i.e info_button_0,info_button_1...
-	};
-	jQuery.extend(mopt,modalopt || {});
-	var jm = mopt.jqModal;
-	if(jQuery.fn.jqm && !jm) { jm = false; }
-	// in case there is no jqModal
-	var buttstr ="";
-	if(mopt.buttons.length > 0) {
-		for(var i=0;i<mopt.buttons.length;i++) {
-			if(typeof mopt.buttons[i].id == "undefined") { mopt.buttons[i].id = "info_button_"+i; }
-			buttstr += "<a href='javascript:void(0)' id='"+mopt.buttons[i].id+"' class='fm-button ui-state-default ui-corner-all'>"+mopt.buttons[i].text+"</a>";
-		}
-	}
-	var dh = isNaN(mopt.dataheight) ? mopt.dataheight : mopt.dataheight+"px",
-	cn = "text-align:"+mopt.align+";";
-	var cnt = "<div id='info_id'>";
-	cnt += "<div id='infocnt' style='margin:0px;padding-bottom:1em;width:100%;overflow:auto;position:relative;height:"+dh+";"+cn+"'>"+content+"</div>";
-	cnt += c_b ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'><a href='javascript:void(0)' id='closedialog' class='fm-button ui-state-default ui-corner-all'>"+c_b+"</a>"+buttstr+"</div>" :
-		buttstr != ""  ? "<div class='ui-widget-content ui-helper-clearfix' style='text-align:"+mopt.buttonalign+";padding-bottom:0.8em;padding-top:0.5em;background-image: none;border-width: 1px 0 0 0;'>"+buttstr+"</div>" : "";
-	cnt += "</div>";
-
-	try {
-		if(jQuery("#info_dialog").attr("aria-hidden") == "false") {
-			hideModal("#info_dialog",{jqm:jm});
-		}
-		jQuery("#info_dialog").remove();
-	} catch (e){}
-	createModal({
-		themodal:'info_dialog',
-		modalhead:'info_head',
-		modalcontent:'info_content',
-		scrollelm: 'infocnt'},
-		cnt,
-		mopt,
-		'','',true
-	);
-	// attach onclick after inserting into the dom
-	if(buttstr) {
-		jQuery.each(mopt.buttons,function(i){
-			jQuery("#"+this.id,"#info_id").bind('click',function(){mopt.buttons[i].onClick.call(jQuery("#info_dialog")); return false;});
-		});
-	}
-	jQuery("#closedialog", "#info_id").click(function(e){
-		hideModal("#info_dialog",{jqm:jm});
-		return false;
-	});
-	jQuery(".fm-button","#info_dialog").hover(
-		function(){jQuery(this).addClass('ui-state-hover');}, 
-		function(){jQuery(this).removeClass('ui-state-hover');}
-	);
-	viewModal("#info_dialog",{
-		onHide: function(h) {
-			h.w.hide().remove();
-			if(h.o) { h.o.remove(); }
-		},
-		modal :mopt.modal,
-		jqm:jm
-	});
-	try{$("#info_dialog").focus();} catch (e){}
-}
-// Form Functions
-function createEl(eltype,options,vl,autowidth, ajaxso) {
-	var elem = "";
-	if(options.defaultValue) { delete options.defaultValue; }
-	function bindEv (el, opt) {
-		if(jQuery.isFunction(opt.dataInit)) {
-			// datepicker fix 
-			el.id = opt.id;
-			opt.dataInit(el);
-			delete opt.id;
-			delete opt.dataInit;
-		}
-		if(opt.dataEvents) {
-		    jQuery.each(opt.dataEvents, function() {
-		        if (this.data !== undefined) {
-			        jQuery(el).bind(this.type, this.data, this.fn);
-		        } else {
-		            jQuery(el).bind(this.type, this.fn);
-		        }
-		    });
-			delete opt.dataEvents;
-		}
-		return opt;
-	}
-	switch (eltype)
-	{
-		case "textarea" :
-				elem = document.createElement("textarea");
-				if(autowidth) {
-					if(!options.cols) { jQuery(elem).css({width:"98%"});}
-				} else if (!options.cols) { options.cols = 20; }
-				if(!options.rows) { options.rows = 2; }
-				if(vl=='&nbsp;' || vl=='&#160;' || (vl.length==1 && vl.charCodeAt(0)==160)) {vl="";}
-				elem.value = vl;
-				options = bindEv(elem,options);
-				jQuery(elem).attr(options).attr({"role":"textbox","multiline":"true"});
-				break;
-		case "checkbox" : //what code for simple checkbox
-			elem = document.createElement("input");
-			elem.type = "checkbox";
-			if( !options.value ) {
-				var vl1 = vl.toLowerCase();
-				if(vl1.search(/(false|0|no|off|undefined)/i)<0 && vl1!=="") {
-					elem.checked=true;
-					elem.defaultChecked=true;
-					elem.value = vl;
-				} else {
-					elem.value = "on";
-				}
-				jQuery(elem).attr("offval","off");
-			} else {
-				var cbval = options.value.split(":");
-				if(vl === cbval[0]) {
-					elem.checked=true;
-					elem.defaultChecked=true;
-				}
-				elem.value = cbval[0];
-				jQuery(elem).attr("offval",cbval[1]);
-				try {delete options.value;} catch (e){}
-			}
-			options = bindEv(elem,options);
-			jQuery(elem).attr(options).attr("role","checkbox");
-			break;
-		case "select" :
-			elem = document.createElement("select");
-			elem.setAttribute("role","select");
-			var msl, ovm = [];
-			if(options.multiple===true) {
-				msl = true;
-				elem.multiple="multiple";
-				$(elem).attr("aria-multiselectable","true");
-			} else { msl = false; }
-			if(typeof(options.dataUrl) != "undefined") {
-				jQuery.ajax(jQuery.extend({
-					url: options.dataUrl,
-					type : "GET",
-					complete: function(data,status){
-						try {delete options.dataUrl; delete options.value;} catch (e){}
-						var a;
-						if(typeof(options.buildSelect) != "undefined") {
-							var b = options.buildSelect(data);
-							a = jQuery(b).html();
-							delete options.buildSelect;
-						} else {
-							a = jQuery(data.responseText).html();
-						}
-						if(a) {
-							jQuery(elem).append(a);
-							options = bindEv(elem,options);
-							if(typeof options.size === 'undefined') { options.size =  msl ? 3 : 1;}
-							if(msl) {
-								ovm = vl.split(",");
-								ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
-							} else {
-								ovm[0] = jQuery.trim(vl);
-							}
-							jQuery(elem).attr(options);
-							setTimeout(function(){
-								jQuery("option",elem).each(function(i){
-									if(i===0) { this.selected = ""; }
-									$(this).attr("role","option");
-									if(jQuery.inArray(jQuery.trim(jQuery(this).text()),ovm) > -1 || jQuery.inArray(jQuery.trim(jQuery(this).val()),ovm) > -1 ) {
-										this.selected= "selected";
-										if(!msl) { return false; }
-									}
-								});
-							},0);
-						}
-					}
-				},ajaxso || {}));
-			} else if(options.value) {
-				var i;
-				if(msl) {
-					ovm = vl.split(",");
-					ovm = jQuery.map(ovm,function(n){return jQuery.trim(n);});
-					if(typeof options.size === 'undefined') {options.size = 3;}
-				} else {
-					options.size = 1;
-				}
-				if(typeof options.value === 'function') { options.value = options.value(); }
-				var so,sv, ov;
-				if(typeof options.value === 'string') {
-					so = options.value.split(";");
-					for(i=0; i<so.length;i++){
-						sv = so[i].split(":");
-						if(sv.length > 2 ) {
-							sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n;} }).join(":");
-						}
-						ov = document.createElement("option");
-						ov.setAttribute("role","option");
-						ov.value = sv[0]; ov.innerHTML = sv[1];
-						if (!msl &&  (jQuery.trim(sv[0]) == jQuery.trim(vl) || jQuery.trim(sv[1]) == jQuery.trim(vl))) { ov.selected ="selected"; }
-						if (msl && (jQuery.inArray(jQuery.trim(sv[1]), ovm)>-1 || jQuery.inArray(jQuery.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
-						elem.appendChild(ov);
-					}
-				} else if (typeof options.value === 'object') {
-					var oSv = options.value;
-					for ( var key in oSv) {
-						if (oSv.hasOwnProperty(key ) ){
-							ov = document.createElement("option");
-							ov.setAttribute("role","option");
-							ov.value = key; ov.innerHTML = oSv[key];
-							if (!msl &&  ( jQuery.trim(key) == jQuery.trim(vl) || jQuery.trim(oSv[key]) == jQuery.trim(vl)) ) { ov.selected ="selected"; }
-							if (msl && (jQuery.inArray(jQuery.trim(oSv[key]),ovm)>-1 || jQuery.inArray(jQuery.trim(key),ovm)>-1)) { ov.selected ="selected"; }
-							elem.appendChild(ov);
-						}
-					}
-				}
-				options = bindEv(elem,options);
-				try {delete options.value;} catch (e){}
-				jQuery(elem).attr(options);
-			}
-			break;
-		case "text" :
-		case "password" :
-		case "button" :
-			var role;
-			if(eltype=="button") { role = "button"; }
-			else { role = "textbox"; }
-			elem = document.createElement("input");
-			elem.type = eltype;
-			elem.value = vl;
-			options = bindEv(elem,options);
-			if(eltype != "button"){
-				if(autowidth) {
-					if(!options.size) { jQuery(elem).css({width:"98%"}); }
-				} else if (!options.size) { options.size = 20; }
-			}
-			jQuery(elem).attr(options).attr("role",role);
-			break;
-		case "image" :
-		case "file" :
-			elem = document.createElement("input");
-			elem.type = eltype;
-			options = bindEv(elem,options);
-			jQuery(elem).attr(options);
-			break;
-		case "custom" :
-			elem = document.createElement("span");
-			try {
-				if(jQuery.isFunction(options.custom_element)) {
-					var celm = options.custom_element.call(this,vl,options);
-					if(celm) {
-						celm = jQuery(celm).addClass("customelement").attr({id:options.id,name:options.name});
-						jQuery(elem).empty().append(celm);
-					} else {
-						throw "e2";
-					}
-				} else {
-					throw "e1";
-				}
-			} catch (e) {
-				if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.nodefined, jQuery.jgrid.edit.bClose);}
-				if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_element' "+jQuery.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
-				else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-			}
-			break;
-	}
-	return elem;
-}
-// Date Validation Javascript
-function daysInFebruary (year){
-	// February has 29 days in any year evenly divisible by four,
-    // EXCEPT for centurial years which are not also divisible by 400.
-    return (((year % 4 === 0) && ( year % 100 !== 0 || (year % 400 === 0))) ? 29 : 28 );
-}
-function DaysArray(n) {
-	for (var i = 1; i <= n; i++) {
-		this[i] = 31;
-		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
-		if (i==2) {this[i] = 29;}
-	} 
-	return this;
-}
-function checkDate (format, date) {
-	var tsp = {}, sep;
-	format = format.toLowerCase();
-	//we search for /,-,. for the date separator
-	if(format.indexOf("/") != -1) {
-		sep = "/";
-	} else if(format.indexOf("-") != -1) {
-		sep = "-";
-	} else if(format.indexOf(".") != -1) {
-		sep = ".";
-	} else {
-		sep = "/";
-	}
-	format = format.split(sep);
-	date = date.split(sep);
-	if (date.length != 3) { return false; }
-	var j=-1,yln, dln=-1, mln=-1;
-	for(var i=0;i<format.length;i++){
-		var dv =  isNaN(date[i]) ? 0 : parseInt(date[i],10); 
-		tsp[format[i]] = dv;
-		yln = format[i];
-		if(yln.indexOf("y") != -1) { j=i; }
-		if(yln.indexOf("m") != -1) { mln=i; }
-		if(yln.indexOf("d") != -1) { dln=i; }
-	}
-	if (format[j] == "y" || format[j] == "yyyy") {
-		yln=4;
-	} else if(format[j] =="yy"){
-		yln = 2;
-	} else {
-		yln = -1;
-	}
-	var daysInMonth = DaysArray(12);
-	var strDate;
-	if (j === -1) {
-		return false;
-	} else {
-		strDate = tsp[format[j]].toString();
-		if(yln == 2 && strDate.length == 1) {yln = 1;}
-		if (strDate.length != yln || (tsp[format[j]]===0 && date[j]!="00")){
-			return false;
-		}
-	}
-	if(mln === -1) {
-		return false;
-	} else {
-		strDate = tsp[format[mln]].toString();
-		if (strDate.length<1 || tsp[format[mln]]<1 || tsp[format[mln]]>12){
-			return false;
-		}
-	}
-	if(dln === -1) {
-		return false;
-	} else {
-		strDate = tsp[format[dln]].toString();
-		if (strDate.length<1 || tsp[format[dln]]<1 || tsp[format[dln]]>31 || (tsp[format[mln]]==2 && tsp[format[dln]]>daysInFebruary(tsp[format[j]])) || tsp[format[dln]] > daysInMonth[tsp[format[mln]]]){
-			return false;
-		}
-	}
-	return true;
-}
-
-function isEmpty(val)
-{
-	if (val.match(/^s+$/) || val == "")	{
-		return true;
-	} else {
-		return false;
-	} 
-}
-function checkTime(time){
-	// checks only hh:ss (and optional am/pm)
-	var re = /^(\d{1,2}):(\d{2})([ap]m)?$/,regs;
-	if(!isEmpty(time))
-	{
-		regs = time.match(re);
-		if(regs) {
-			if(regs[3]) {
-				if(regs[1] < 1 || regs[1] > 12) { return false; }
-			} else {
-				if(regs[1] > 23) { return false; }
-			}
-			if(regs[2] > 59) {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
-	return true;
-}
-function checkValues(val, valref,g) {
-	var edtrul,i, nm;
-	if(typeof(valref)=='string'){
-		for( i =0, len=g.p.colModel.length;i<len; i++){
-			if(g.p.colModel[i].name==valref) {
-				edtrul = g.p.colModel[i].editrules;
-				valref = i;
-				try { nm = g.p.colModel[i].formoptions.label; } catch (e) {}
-				break;
-			}
-		}
-	} else if(valref >=0) {
-		edtrul = g.p.colModel[valref].editrules;
-	}
-	if(edtrul) {
-		if(!nm) { nm = g.p.colNames[valref]; }
-		if(edtrul.required === true) {
-			if( val.match(/^s+$/) || val == "" )  { return [false,nm+": "+jQuery.jgrid.edit.msg.required,""]; }
-		}
-		// force required
-		var rqfield = edtrul.required === false ? false : true;
-		if(edtrul.number === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.number,""]; }
-			}
-		}
-		if(typeof edtrul.minValue != 'undefined' && !isNaN(edtrul.minValue)) {
-			if (parseFloat(val) < parseFloat(edtrul.minValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.minValue+" "+edtrul.minValue,""];}
-		}
-		if(typeof edtrul.maxValue != 'undefined' && !isNaN(edtrul.maxValue)) {
-			if (parseFloat(val) > parseFloat(edtrul.maxValue) ) { return [false,nm+": "+jQuery.jgrid.edit.msg.maxValue+" "+edtrul.maxValue,""];}
-		}
-		var filter;
-		if(edtrul.email === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-			// taken from jquery Validate plugin
-				filter = /^((([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;
-				if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.email,""];}
-			}
-		}
-		if(edtrul.integer === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				if(isNaN(val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""]; }
-				if ((val % 1 !== 0) || (val.indexOf('.') != -1)) { return [false,nm+": "+jQuery.jgrid.edit.msg.integer,""];}
-			}
-		}
-		if(edtrul.date === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				var dft = g.p.colModel[valref].datefmt || "Y-m-d";
-				if(!checkDate (dft, val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - "+dft,""]; }
-			}
-		}
-		if(edtrul.time === true) {
-			if( !(rqfield === false && isEmpty(val)) ) {
-				if(!checkTime (val)) { return [false,nm+": "+jQuery.jgrid.edit.msg.date+" - hh:mm (am/pm)",""]; }
-			}
-		}
-        if(edtrul.url === true) {
-            if( !(rqfield === false && isEmpty(val)) ) {
-                filter = /^(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;
-                if(!filter.test(val)) {return [false,nm+": "+jQuery.jgrid.edit.msg.url,""];}
-            }
-        }
-		if(edtrul.custom === true) {
-            if( !(rqfield === false && isEmpty(val)) ) {
-				if(jQuery.isFunction(edtrul.custom_func)) {
-					var ret = edtrul.custom_func.call(g,val,nm);
-					if(jQuery.isArray(ret)) {
-						return ret;
-					} else {
-						return [false,jQuery.jgrid.edit.msg.customarray,""];
-					}
-				} else {
-					return [false,jQuery.jgrid.edit.msg.customfcheck,""];
-				}
-			}
-		}
-	}
-	return [true,"",""];
-}

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.common.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css	(nonexistent)
@@ -1,30 +0,0 @@
-/* Multiselect
-----------------------------------*/
-
-.ui-multiselect { border: solid 1px; font-size: 0.8em; }
-.ui-multiselect ul { -moz-user-select: none; }
-.ui-multiselect li { margin: 0; padding: 0; cursor: default; line-height: 20px; height: 20px; font-size: 11px; list-style: none; }
-.ui-multiselect li a { color: #999; text-decoration: none; padding: 0; display: block; float: left; cursor: pointer;}
-.ui-multiselect li.ui-draggable-dragging { padding-left: 10px; }
-
-.ui-multiselect div.selected { position: relative; padding: 0; margin: 0; border: 0; float:left; }
-.ui-multiselect ul.selected { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; position: relative; width: 100%; }
-.ui-multiselect ul.selected li { }
-
-.ui-multiselect div.available { position: relative; padding: 0; margin: 0; border: 0; float:left; border-left: 1px solid; }
-.ui-multiselect ul.available { position: relative; padding: 0; overflow: auto; overflow-x: hidden; background: #fff; margin: 0; list-style: none; border: 0; width: 100%; }
-.ui-multiselect ul.available li { padding-left: 10px; }
- 
-.ui-multiselect .ui-state-default { border: none; margin-bottom: 1px; position: relative; padding-left: 20px;}
-.ui-multiselect .ui-state-hover { border: none; }
-.ui-multiselect .ui-widget-header {border: none; font-size: 11px; margin-bottom: 1px;}
- 
-.ui-multiselect .add-all { float: right; padding: 7px;}
-.ui-multiselect .remove-all { float: right; padding: 7px;}
-.ui-multiselect .search { float: left; padding: 4px;}
-.ui-multiselect .count { float: left; padding: 7px;}
-
-.ui-multiselect li span.ui-icon-arrowthick-2-n-s { position: absolute; left: 2px; }
-.ui-multiselect li a.action { position: absolute; right: 2px; top: 2px; }
- 
-.ui-multiselect input.search { height: 14px; padding: 1px; opacity: 0.5; margin: 4px; width: 100px; }
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.multiselect.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css	(nonexistent)
@@ -1,7 +0,0 @@
-.ui-searchFilter { display: none; position: absolute; z-index: 770; overflow: visible;}
-.ui-searchFilter table {position:relative; margin:0em; width:auto}
-.ui-searchFilter table td {margin: 0em; padding: 1px;}
-.ui-searchFilter table td input, .ui-searchFilter table td select {margin: 0.1em;}
-.ui-searchFilter .ui-state-default { cursor: pointer; }
-.ui-searchFilter .divider { height: 1px; }
-.ui-searchFilter .divider div { background-color: black; height: 1px; }
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/jquery.searchFilter.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css	(nonexistent)
@@ -1,129 +0,0 @@
-/*Grid*/
-.ui-jqgrid {position: relative; font-size:11px;}
-.ui-jqgrid .ui-jqgrid-view {position: relative;left:0px; top: 0px; padding: .0em;}
-/* caption*/
-.ui-jqgrid .ui-jqgrid-titlebar {padding: .3em .2em .2em .3em; position: relative; border-left: 0px none;border-right: 0px none; border-top: 0px none;}
-.ui-jqgrid .ui-jqgrid-title { float: left; margin: .1em 0 .2em; }
-.ui-jqgrid .ui-jqgrid-titlebar-close { position: absolute;top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span { display: block; margin: 1px; }
-.ui-jqgrid .ui-jqgrid-titlebar-close:hover { padding: 0; }
-/* header*/
-.ui-jqgrid .ui-jqgrid-hdiv {position: relative; margin: 0em;padding: 0em; overflow-x: hidden; overflow-y: auto; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
-.ui-jqgrid .ui-jqgrid-hbox {float: left; padding-right: 20px;}
-.ui-jqgrid .ui-jqgrid-htable {table-layout:fixed;margin:0em;}
-.ui-jqgrid .ui-jqgrid-htable th {height:22px;padding: 0 2px 0 2px;}
-.ui-jqgrid .ui-jqgrid-htable th div {overflow: hidden; position:relative; height:17px;}
-.ui-th-column, .ui-jqgrid .ui-jqgrid-htable th.ui-th-column {overflow: hidden;white-space: nowrap;text-align:center;border-top : 0px none;border-bottom : 0px none;}
-.ui-th-ltr, .ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr {border-left : 0px none;}
-.ui-th-rtl, .ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl {border-right : 0px none;}
-.ui-jqgrid .ui-th-div-ie {white-space: nowrap; zoom :1; height:17px;}
-.ui-jqgrid .ui-jqgrid-resize {height:20px !important;position: relative; cursor :e-resize;display: inline;overflow: hidden;}
-.ui-jqgrid .ui-grid-ico-sort {overflow:hidden;position:absolute;display:inline; cursor: pointer !important;}
-.ui-jqgrid .ui-icon-asc {margin-top:-3px; height:12px;}
-.ui-jqgrid .ui-icon-desc {margin-top:3px;height:12px;}
-.ui-jqgrid .ui-i-asc {margin-top:0px;height:16px;}
-.ui-jqgrid .ui-i-desc {margin-top:0px;margin-left:13px;height:16px;}
-.ui-jqgrid .ui-jqgrid-sortable {cursor:pointer;}
-.ui-jqgrid tr.ui-search-toolbar th { border-top-width: 1px !important; border-top-color: inherit !important; border-top-style: ridge !important }
-tr.ui-search-toolbar input {margin: 1px 0px 0px 0px}
-tr.ui-search-toolbar select {margin: 1px 0px 0px 0px}
-/* body */ 
-.ui-jqgrid .ui-jqgrid-bdiv {position: relative; margin: 0em; padding:0; overflow: auto; text-align:left;}
-.ui-jqgrid .ui-jqgrid-btable {table-layout:fixed; margin:0em;}
-.ui-jqgrid tr.jqgrow td {font-weight: normal; overflow: hidden; white-space: pre; height: 22px;padding: 0 2px 0 2px;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
-.ui-jqgrid tr.ui-row-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
-.ui-jqgrid tr.ui-row-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
-.ui-jqgrid td.jqgrid-rownum { padding: 0 2px 0 2px; margin: 0px; border: 0px none;}
-.ui-jqgrid .ui-jqgrid-resize-mark { width:2px; left:0; background-color:#777; cursor: e-resize; cursor: col-resize; position:absolute; top:0; height:100px; overflow:hidden; display:none;	border:0 none;}
-/* footer */
-.ui-jqgrid .ui-jqgrid-sdiv {position: relative; margin: 0em;padding: 0em; overflow: hidden; border-left: 0px none !important; border-top : 0px none !important; border-right : 0px none !important;}
-.ui-jqgrid .ui-jqgrid-ftable {table-layout:fixed; margin-bottom:0em;}
-.ui-jqgrid tr.footrow td {font-weight: bold; overflow: hidden; white-space:nowrap; height: 21px;padding: 0 2px 0 2px;border-top-width: 1px; border-top-color: inherit; border-top-style: solid;}
-.ui-jqgrid tr.footrow-ltr td {text-align:left;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;}
-.ui-jqgrid tr.footrow-rtl td {text-align:right;border-left-width: 1px; border-left-color: inherit; border-left-style: solid;}
-/* Pager*/
-.ui-jqgrid .ui-jqgrid-pager { border-left: 0px none !important;border-right: 0px none !important; border-bottom: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px;white-space: nowrap;overflow: hidden;}
-.ui-jqgrid .ui-pager-control {position: relative;}
-.ui-jqgrid .ui-pg-table {position: relative; padding-bottom:2px; width:auto; margin: 0em;}
-.ui-jqgrid .ui-pg-table td {font-weight:normal; vertical-align:middle; padding:1px;}
-.ui-jqgrid .ui-pg-button  { height:19px !important;}
-.ui-jqgrid .ui-pg-button span { display: block; margin: 1px; float:left;}
-.ui-jqgrid .ui-pg-button:hover { padding: 0px; }
-.ui-jqgrid .ui-state-disabled:hover {padding:1px;}
-.ui-jqgrid .ui-pg-input { height:13px;font-size:.8em; margin: 0em;}
-.ui-jqgrid .ui-pg-selbox {font-size:.8em; line-height:18px; display:block; height:18px; margin: 0em;}
-.ui-jqgrid .ui-separator {height: 18px; border-left: 1px solid #ccc ; border-right: 1px solid #ccc ; margin: 1px; float: right;}
-.ui-jqgrid .ui-paging-info {font-weight: normal;height:19px; margin-top:3px;margin-right:4px;}
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-div {padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-button { cursor:pointer; }
-.ui-jqgrid .ui-jqgrid-pager .ui-pg-div  span.ui-icon {float:left;margin:0 2px;}
-.ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { margin: 0em;}
-.ui-jqgrid td textarea {width:auto;height:auto;}
-.ui-jqgrid .ui-jqgrid-toppager {border-left: 0px none !important;border-right: 0px none !important; border-top: 0px none !important; margin: 0px !important; padding: 0px !important; position: relative; height: 25px !important;white-space: nowrap;overflow: hidden;}
-/*subgrid*/
-.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span {display: block;}
-.ui-jqgrid .ui-subgrid {margin:0em;padding:0em; width:100%;}
-.ui-jqgrid .ui-subgrid table {table-layout: fixed;}
-.ui-jqgrid .ui-subgrid tr.ui-subtblcell td {height:18px;border-right-width: 1px; border-right-color: inherit; border-right-style: solid;border-bottom-width: 1px; border-bottom-color: inherit; border-bottom-style: solid;}
-.ui-jqgrid .ui-subgrid td.subgrid-data {border-top:  0px none !important;}
-.ui-jqgrid .ui-subgrid td.subgrid-cell {border-width: 0px 0px 1px 0px;}
-.ui-jqgrid .ui-th-subgrid {height:20px;}
-/* loading */
-.ui-jqgrid .loading {position: absolute; top: 45%;left: 45%;width: auto;z-index:101;padding: 6px; margin: 5px;text-align: center;font-weight: bold;display: none;border-width: 2px !important;}
-.ui-jqgrid .jqgrid-overlay {display:none;z-index:100;}
-* html .jqgrid-overlay {width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-* .jqgrid-overlay iframe {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-/* end loading div */
-/* toolbar */
-.ui-jqgrid .ui-userdata {border-left: 0px none;	border-right: 0px none;	height : 21px;overflow: hidden;	}
-/*Modal Window */
-.ui-jqdialog { display: none; width: 300px; position: absolute; padding: .2em; font-size:11px; overflow:visible;}
-.ui-jqdialog .ui-jqdialog-titlebar { padding: .3em .2em; position: relative;  }
-.ui-jqdialog .ui-jqdialog-title { margin: .1em 0 .2em; } 
-.ui-jqdialog .ui-jqdialog-titlebar-close { position: absolute;  top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-
-.ui-jqdialog .ui-jqdialog-titlebar-close span { display: block; margin: 1px; }
-.ui-jqdialog .ui-jqdialog-titlebar-close:hover, .ui-jqdialog .ui-jqdialog-titlebar-close:focus { padding: 0; }
-.ui-jqdialog-content, .ui-jqdialog .ui-jqdialog-content { border: 0; padding: .3em .2em; background: none; height:auto;}
-.ui-jqdialog .ui-jqconfirm {padding: .4em 1em; border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}
-/* end Modal window*/
-/* Form edit */
-.ui-jqdialog-content .FormGrid {margin: 0px;}
-.ui-jqdialog-content .EditTable { width: 100%; margin-bottom:0em;}
-.ui-jqdialog-content .DelTable { width: 100%; margin-bottom:0em;}
-.EditTable td input, .EditTable td select, .EditTable td textarea {margin: 0em;}
-.EditTable td textarea { width:auto; height:auto;}
-.ui-jqdialog-content td.EditButton {text-align: right;border-top: 0px none;border-left: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
-.ui-jqdialog-content td.navButton {text-align: center; border-left: 0px none;border-top: 0px none;border-right: 0px none; padding-bottom:5px; padding-top:5px;}
-
-.ui-jqdialog-content .CaptionTD {text-align: left; vertical-align: top;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; padding: 1px;white-space: nowrap;}
-.ui-jqdialog-content .DataTD {padding: 1px;border-left: 0px none;border-right: 0px none; border-bottom: 0px none; vertical-align: top;}
-.ui-jqdialog-content .form-view-data {white-space:pre}
-.fm-button { display: inline-block; margin:0 4px 0 0; padding: .4em .5em; text-decoration:none !important; cursor:pointer; position: relative; text-align: center; zoom: 1; }
-.fm-button-icon-left { padding-left: 1.9em; }
-.fm-button-icon-right { padding-right: 1.9em; }
-.fm-button-icon-left .ui-icon { right: auto; left: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px; }
-.fm-button-icon-right .ui-icon { left: auto; right: .2em; margin-left: 0; position: absolute; top: 50%; margin-top: -8px;}
-#nData, #pData { float: left; margin:3px;padding: 0; width: 15px; }
-/* End Eorm edit */
-/*.ui-jqgrid .edit-cell {}*/
-.ui-jqgrid .selected-row, div.ui-jqgrid .selected-row td {font-style : normal;border-left: 0px none;}
-/* Tree Grid */
-.ui-jqgrid .tree-wrap {float: left; position: relative;height: 18px;white-space: nowrap;overflow: hidden;}
-.ui-jqgrid .tree-minus {position: absolute; height: 18px; width: 18px; overflow: hidden;}
-.ui-jqgrid .tree-plus {position: absolute;	height: 18px; width: 18px;	overflow: hidden;}
-.ui-jqgrid .tree-leaf {position: absolute;	height: 18px; width: 18px;overflow: hidden;}
-.ui-jqgrid .treeclick {cursor: pointer;}
-/* moda dialog */
-.jqmOverlay { background-color: #000; }
-* iframe.jqm {position:absolute;top:0;left:0;z-index:-1;width: expression(this.parentNode.offsetWidth+'px');height: expression(this.parentNode.offsetHeight+'px');}
-.ui-jqgrid-dnd tr td {border-right-width: 1px; border-right-color: inherit; border-right-style: solid; height:20px}
-/* RTL Support */
-.ui-jqgrid .ui-jqgrid-title-rtl {float:right;margin: .1em 0 .2em; }
-.ui-jqgrid .ui-jqgrid-hbox-rtl {float: right; padding-left: 20px;}
-.ui-jqgrid .ui-jqgrid-resize-ltr {float: right;margin: -2px -2px -2px 0px;}
-.ui-jqgrid .ui-jqgrid-resize-rtl {float: left;margin: -2px 0px -1px -3px;}
-.ui-jqgrid .ui-sort-rtl {left:0px;}
-.ui-jqgrid .tree-wrap-ltr {float: left;}
-.ui-jqgrid .tree-wrap-rtl {float: right;}
-.ui-jqgrid .ui-ellipsis {text-overflow:ellipsis; -moz-binding:url('ellipsis-xbl.xml#ellipsis');}
-

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ui.jqgrid.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml	(nonexistent)
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<bindings
-    xmlns="http://www.mozilla.org/xbl"
-    xmlns:xbl="http://www.mozilla.org/xbl"
-    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-    <binding id="ellipsis">
-        <content>
-            <xul:window><!-- xul:window tag required for FF2 -->
-                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
-            </xul:window>
-        </content>
-    </binding>
-</bindings>

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/css/ellipsis-xbl.xml
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js	(nonexistent)
@@ -1,68 +0,0 @@
-/*
- * jqDnR - Minimalistic Drag'n'Resize for jQuery.
- *
- * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
- * Licensed under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- * 
- * $Version: 2007.08.19 +r2
- */
-
-(function($){
-$.fn.jqDrag=function(h){return i(this,h,'d');};
-$.fn.jqResize=function(h,ar){return i(this,h,'r',ar);};
-$.jqDnR={
-	dnr:{},
-	e:0,
-	drag:function(v){
- 		if(M.k == 'd')E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});
- 		else {
-			E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)});
-			if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});}
-		}
-  		return false;
-  	},
-	stop:function(){
-		//E.css('opacity',M.o);
-		$(document).unbind('mousemove',J.drag).unbind('mouseup',J.stop);
-	}
-};
-var J=$.jqDnR,M=J.dnr,E=J.e,E1,
-i=function(e,h,k,aR){
-	return e.each(function(){
-		h=(h)?$(h,e):e;
- 		h.bind('mousedown',{e:e,k:k},function(v){
- 			var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false;
- 			// attempt utilization of dimensions plugin to fix IE issues
- 			if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}}
- 			M={
- 				X:p.left||f('left')||0,
- 				Y:p.top||f('top')||0,
- 				W:f('width')||E[0].scrollWidth||0,
- 				H:f('height')||E[0].scrollHeight||0,
- 				pX:v.pageX,
- 				pY:v.pageY,
- 				k:d.k
- 				//o:E.css('opacity')
- 			};
-			// also resize
-			if(E1 && d.k != 'd'){
- 				M1={
-					X:p.left||f1('left')||0,
-					Y:p.top||f1('top')||0,
-					W:E1[0].offsetWidth||f1('width')||0,
-					H:E1[0].offsetHeight||f1('height')||0,
-					pX:v.pageX,
-					pY:v.pageY,
-					k:d.k
-				};
-			} else {M1 = false;}			
- 			//E.css({opacity:0.8});
- 			$(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop);
- 			return false;
- 		});
-	});
-},
-f=function(k){return parseInt(E.css(k))||false;};
-f1=function(k){	return parseInt(E1.css(k))||false;};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqDnR.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js	(nonexistent)
@@ -1,106 +0,0 @@
-/*
- Transform a table to a jqGrid.
- Peter Romianowski <peter.romianowski@optivo.de> 
- If the first column of the table contains checkboxes or
- radiobuttons then the jqGrid is made selectable.
-*/
-// Addition - selector can be a class or id
-function tableToGrid(selector, options) {
-jQuery(selector).each(function() {
-	if(this.grid) {return;} //Adedd from Tony Tomov
-	// This is a small "hack" to make the width of the jqGrid 100%
-	jQuery(this).width("99%");
-	var w = jQuery(this).width();
-
-	// Text whether we have single or multi select
-	var inputCheckbox = jQuery('input[type=checkbox]:first', jQuery(this));
-	var inputRadio = jQuery('input[type=radio]:first', jQuery(this));
-	var selectMultiple = inputCheckbox.length > 0;
-	var selectSingle = !selectMultiple && inputRadio.length > 0;
-	var selectable = selectMultiple || selectSingle;
-	var inputName = inputCheckbox.attr("name") || inputRadio.attr("name");
-
-	// Build up the columnModel and the data
-	var colModel = [];
-	var colNames = [];
-	jQuery('th', jQuery(this)).each(function() {
-		if (colModel.length === 0 && selectable) {
-			colModel.push({
-				name: '__selection__',
-				index: '__selection__',
-				width: 0,
-				hidden: true
-			});
-			colNames.push('__selection__');
-		} else {
-			colModel.push({
-				name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
-				index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
-				width: jQuery(this).width() || 150
-			});
-			colNames.push(jQuery(this).html());
-		}
-	});
-	var data = [];
-	var rowIds = [];
-	var rowChecked = [];
-	jQuery('tbody > tr', jQuery(this)).each(function() {
-		var row = {};
-		var rowPos = 0;
-		jQuery('td', jQuery(this)).each(function() {
-			if (rowPos === 0 && selectable) {
-				var input = jQuery('input', jQuery(this));
-				var rowId = input.attr("value");
-				rowIds.push(rowId || data.length);
-				if (input.attr("checked")) {
-					rowChecked.push(rowId);
-				}
-				row[colModel[rowPos].name] = input.attr("value");
-			} else {
-				row[colModel[rowPos].name] = jQuery(this).html();
-			}
-			rowPos++;
-		});
-		if(rowPos >0) { data.push(row); }
-	});
-
-	// Clear the original HTML table
-	jQuery(this).empty();
-
-	// Mark it as jqGrid
-	jQuery(this).addClass("scroll");
-
-	jQuery(this).jqGrid($.extend({
-		datatype: "local",
-		width: w,
-		colNames: colNames,
-		colModel: colModel,
-		multiselect: selectMultiple
-		//inputName: inputName,
-		//inputValueCol: imputName != null ? "__selection__" : null
-	}, options || {}));
-
-	// Add data
-	var a;
-	for (a = 0; a < data.length; a++) {
-		var id = null;
-		if (rowIds.length > 0) {
-			id = rowIds[a];
-			if (id && id.replace) {
-				// We have to do this since the value of a checkbox
-				// or radio button can be anything 
-				id = encodeURIComponent(id).replace(/[.\-%]/g, "_");
-			}
-		}
-		if (id === null) {
-			id = a + 1;
-		}
-		jQuery(this).jqGrid("addRowData",id, data[a]);
-	}
-
-	// Set the selection
-	for (a = 0; a < rowChecked.length; a++) {
-		jQuery(this).jqGrid("setSelection",rowChecked[a]);
-	}
-});
-};

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.tbltogrid.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js	(nonexistent)
@@ -1,526 +0,0 @@
-/*
-**
- * formatter for values but most of the values if for jqGrid
- * Some of this was inspired and based on how YUI does the table datagrid but in jQuery fashion
- * we are trying to keep it as light as possible
- * Joshua Burnett josh@9ci.com	
- * http://www.greenbill.com
- *
- * Changes from Tony Tomov tony@trirand.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
- * 
-**/
-
-;(function($) {
-	$.fmatter = {};
-	//opts can be id:row id for the row, rowdata:the data for the row, colmodel:the column model for this column
-	//example {id:1234,}
-	$.fn.fmatter = function(formatType, cellval, opts, rwd, act) {
-		//debug(this);
-		//debug(cellval);
-		// build main options before element iteration
-		opts = $.extend({}, $.jgrid.formatter, opts);
-		return fireFormatter(formatType,cellval, opts, rwd, act); 
-	};
-	$.fmatter.util = {
-		// Taken from YAHOO utils
-		NumberFormat : function(nData,opts) {
-			if(!isNumber(nData)) {
-				nData *= 1;
-			}
-			if(isNumber(nData)) {
-		        var bNegative = (nData < 0);
-				var sOutput = nData + "";
-				var sDecimalSeparator = (opts.decimalSeparator) ? opts.decimalSeparator : ".";
-				var nDotIndex;
-				if(isNumber(opts.decimalPlaces)) {
-					// Round to the correct decimal place
-					var nDecimalPlaces = opts.decimalPlaces;
-					var nDecimal = Math.pow(10, nDecimalPlaces);
-					sOutput = Math.round(nData*nDecimal)/nDecimal + "";
-					nDotIndex = sOutput.lastIndexOf(".");
-					if(nDecimalPlaces > 0) {
-                    // Add the decimal separator
-						if(nDotIndex < 0) {
-							sOutput += sDecimalSeparator;
-							nDotIndex = sOutput.length-1;
-						}
-						// Replace the "."
-						else if(sDecimalSeparator !== "."){
-							sOutput = sOutput.replace(".",sDecimalSeparator);
-						}
-                    // Add missing zeros
-						while((sOutput.length - 1 - nDotIndex) < nDecimalPlaces) {
-						    sOutput += "0";
-						}
-	                }
-	            }
-	            if(opts.thousandsSeparator) {
-	                var sThousandsSeparator = opts.thousandsSeparator;
-	                nDotIndex = sOutput.lastIndexOf(sDecimalSeparator);
-	                nDotIndex = (nDotIndex > -1) ? nDotIndex : sOutput.length;
-	                var sNewOutput = sOutput.substring(nDotIndex);
-	                var nCount = -1;
-	                for (var i=nDotIndex; i>0; i--) {
-	                    nCount++;
-	                    if ((nCount%3 === 0) && (i !== nDotIndex) && (!bNegative || (i > 1))) {
-	                        sNewOutput = sThousandsSeparator + sNewOutput;
-	                    }
-	                    sNewOutput = sOutput.charAt(i-1) + sNewOutput;
-	                }
-	                sOutput = sNewOutput;
-	            }
-	            // Prepend prefix
-	            sOutput = (opts.prefix) ? opts.prefix + sOutput : sOutput;
-	            // Append suffix
-	            sOutput = (opts.suffix) ? sOutput + opts.suffix : sOutput;
-	            return sOutput;
-				
-			} else {
-				return nData;
-			}
-		},
-		// Tony Tomov
-		// PHP implementation. Sorry not all options are supported.
-		// Feel free to add them if you want
-		DateFormat : function (format, date, newformat, opts)  {
-			var	token = /\\.|[dDjlNSwzWFmMntLoYyaABgGhHisueIOPTZcrU]/g,
-			timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
-			timezoneClip = /[^-+\dA-Z]/g,
-			pad = function (value, length) {
-				value = String(value);
-				length = parseInt(length,10) || 2;
-				while (value.length < length)  { value = '0' + value; }
-				return value;
-			},
-		    ts = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0, u:0},
-		    timestamp=0, dM, k,hl,
-		    dateFormat=["i18n"];
-			// Internationalization strings
-		    dateFormat["i18n"] = {
-				dayNames: opts.dayNames,
-				monthNames: opts.monthNames
-			};
-			if( format in opts.masks ) { format = opts.masks[format]; }
-			if(date.constructor === Date) {
-				timestamp = date;
-			} else {
-				date = date.split(/[\\\/:_;.\t\T\s-]/);
-				format = format.split(/[\\\/:_;.\t\T\s-]/);
-				// parsing for month names
-				for(k=0,hl=format.length;k<hl;k++){
-					if(format[k] == 'M') {
-						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
-						if(dM !== -1 && dM < 12){date[k] = dM+1;}
-					}
-					if(format[k] == 'F') {
-						dM = $.inArray(date[k],dateFormat.i18n.monthNames);
-						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
-					}
-				    ts[format[k].toLowerCase()] = parseInt(date[k],10);
-				}
-				ts.m = parseInt(ts.m,10)-1;
-				var ty = ts.y;
-				if (ty >= 70 && ty <= 99) { ts.y = 1900+ts.y; }
-				else if (ty >=0 && ty <=69) { ts.y= 2000+ts.y; }
-				timestamp = new Date(ts.y, ts.m, ts.d, ts.h, ts.i, ts.s, ts.u);
-			}
-			
-			if( newformat in opts.masks )  {
-				newformat = opts.masks[newformat];
-			} else if ( !newformat ) {
-				newformat = 'Y-m-d';
-			}
-		    var 
-		        G = timestamp.getHours(),
-		        i = timestamp.getMinutes(),
-		        j = timestamp.getDate(),
-				n = timestamp.getMonth() + 1,
-				o = timestamp.getTimezoneOffset(),
-				s = timestamp.getSeconds(),
-				u = timestamp.getMilliseconds(),
-				w = timestamp.getDay(),
-				Y = timestamp.getFullYear(),
-				N = (w + 6) % 7 + 1,
-				z = (new Date(Y, n - 1, j) - new Date(Y, 0, 1)) / 86400000,
-				flags = {
-					// Day
-					d: pad(j),
-					D: dateFormat.i18n.dayNames[w],
-					j: j,
-					l: dateFormat.i18n.dayNames[w + 7],
-					N: N,
-					S: opts.S(j),
-					//j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th',
-					w: w,
-					z: z,
-					// Week
-					W: N < 5 ? Math.floor((z + N - 1) / 7) + 1 : Math.floor((z + N - 1) / 7) || ((new Date(Y - 1, 0, 1).getDay() + 6) % 7 < 4 ? 53 : 52),
-					// Month
-					F: dateFormat.i18n.monthNames[n - 1 + 12],
-					m: pad(n),
-					M: dateFormat.i18n.monthNames[n - 1],
-					n: n,
-					t: '?',
-					// Year
-					L: '?',
-					o: '?',
-					Y: Y,
-					y: String(Y).substring(2),
-					// Time
-					a: G < 12 ? opts.AmPm[0] : opts.AmPm[1],
-					A: G < 12 ? opts.AmPm[2] : opts.AmPm[3],
-					B: '?',
-					g: G % 12 || 12,
-					G: G,
-					h: pad(G % 12 || 12),
-					H: pad(G),
-					i: pad(i),
-					s: pad(s),
-					u: u,
-					// Timezone
-					e: '?',
-					I: '?',
-					O: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
-					P: '?',
-					T: (String(timestamp).match(timezone) || [""]).pop().replace(timezoneClip, ""),
-					Z: '?',
-					// Full Date/Time
-					c: '?',
-					r: '?',
-					U: Math.floor(timestamp / 1000)
-				};	
-			return newformat.replace(token, function ($0) {
-				return $0 in flags ? flags[$0] : $0.substring(1);
-			});			
-		}
-	};
-	$.fn.fmatter.defaultFormat = function(cellval, opts) {
-		return (isValue(cellval) && cellval!=="" ) ?  cellval : opts.defaultValue ? opts.defaultValue : "&#160;";
-	};
-	$.fn.fmatter.email = function(cellval, opts) {
-		if(!isEmpty(cellval)) {
-			return "<a href=\"mailto:" + cellval + "\">" + cellval + "</a>";
-        }else {
-			return $.fn.fmatter.defaultFormat(cellval,opts );
-        }
-	};
-	$.fn.fmatter.checkbox =function(cval, opts) {
-		var op = $.extend({},opts.checkbox), ds;
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(op.disabled===true) {ds = "disabled";} else {ds="";}
-		if(isEmpty(cval) || isUndefined(cval) ) { cval = $.fn.fmatter.defaultFormat(cval,op); }
-		cval=cval+""; cval=cval.toLowerCase();
-		var bchk = cval.search(/(false|0|no|off)/i)<0 ? " checked='checked' " : "";
-        return "<input type=\"checkbox\" " + bchk  + " value=\""+ cval+"\" offval=\"no\" "+ds+ "/>";
-    };
-	$.fn.fmatter.link = function(cellval, opts) {
-		var op = {target:opts.target };
-		var target = "";
-		if(!isUndefined(opts.colModel.formatoptions)) {
-            op = $.extend({},op,opts.colModel.formatoptions);
-        }
-		if(op.target) {target = 'target=' + op.target;}
-        if(!isEmpty(cellval)) {
-			return "<a "+target+" href=\"" + cellval + "\">" + cellval + "</a>";
-        }else {
-            return $.fn.fmatter.defaultFormat(cellval,opts);
-        }
-    };
-	$.fn.fmatter.showlink = function(cellval, opts) {
-		var op = {baseLinkUrl: opts.baseLinkUrl,showAction:opts.showAction, addParam: opts.addParam || "", target: opts.target, idName: opts.idName },
-		target = "", idUrl;
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(op.target) {target = 'target=' + op.target;}
-		idUrl = op.baseLinkUrl+op.showAction + '?'+ op.idName+'='+opts.rowId+op.addParam;
-        if(isString(cellval)) {	//add this one even if its blank string
-			return "<a "+target+" href=\"" + idUrl + "\">" + cellval + "</a>";
-        }else {
-			return $.fn.fmatter.defaultFormat(cellval,opts);
-	    }
-    };
-	$.fn.fmatter.integer = function(cellval, opts) {
-		var op = $.extend({},opts.integer);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(isEmpty(cellval)) {
-			return op.defaultValue;
-		}
-		return $.fmatter.util.NumberFormat(cellval,op);
-	};
-	$.fn.fmatter.number = function (cellval, opts) {
-		var op = $.extend({},opts.number);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(isEmpty(cellval)) {
-			return op.defaultValue;
-		}
-		return $.fmatter.util.NumberFormat(cellval,op);
-	};
-	$.fn.fmatter.currency = function (cellval, opts) {
-		var op = $.extend({},opts.currency);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(isEmpty(cellval)) {
-			return op.defaultValue;
-		}
-		return $.fmatter.util.NumberFormat(cellval,op);
-	};
-	$.fn.fmatter.date = function (cellval, opts, rwd, act) {
-		var op = $.extend({},opts.date);
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend({},op,opts.colModel.formatoptions);
-		}
-		if(!op.reformatAfterEdit && act=='edit'){
-			return $.fn.fmatter.defaultFormat(cellval, opts);
-		} else if(!isEmpty(cellval)) {
-			return  $.fmatter.util.DateFormat(op.srcformat,cellval,op.newformat,op);
-		} else {
-			return $.fn.fmatter.defaultFormat(cellval, opts);
-		}
-	};
-	$.fn.fmatter.select = function (cellval,opts, rwd, act) {
-		// jqGrid specific
-		cellval = cellval + "";
-		var oSelect = false, ret=[];
-		if(!isUndefined(opts.colModel.editoptions)){
-			oSelect= opts.colModel.editoptions.value;
-		}
-		if (oSelect) {
-			var	msl =  opts.colModel.editoptions.multiple === true ? true : false,
-			scell = [], sv;
-			if(msl) {scell = cellval.split(",");scell = $.map(scell,function(n){return $.trim(n);});}
-			if (isString(oSelect)) {
-				// mybe here we can use some caching with care ????
-				var so = oSelect.split(";"), j=0;
-				for(var i=0; i<so.length;i++){
-					sv = so[i].split(":");
-					if(sv.length > 2 ) {
-						sv[1] = jQuery.map(sv,function(n,i){if(i>0) { return n; } }).join(":");
-					}
-					if(msl) {
-						if(jQuery.inArray(sv[0],scell)>-1) {
-							ret[j] = sv[1];
-							j++;
-						}
-					} else if($.trim(sv[0])==$.trim(cellval)) {
-						ret[0] = sv[1];
-						break;
-					}
-				}
-			} else if(isObject(oSelect)) {
-				// this is quicker
-				if(msl) {
-					ret = jQuery.map(scell, function(n, i){
-						return oSelect[n];
-					});
-				} else {
-					ret[0] = oSelect[cellval] || "";
-				}
-			}
-		}
-		cellval = ret.join(", ");
-		return  cellval == "" ? $.fn.fmatter.defaultFormat(cellval,opts) : cellval;
-	};
-	$.fn.fmatter.rowactions = function(rid,gid,act,keys) {
-		switch(act)
-		{
-			case 'edit':
-				var restorerow = function()	{
-					$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
-					$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
-				};
-				$('#'+gid).jqGrid('editRow',rid,keys,null,null,null,{oper:'edit'},restorerow,null,restorerow);
-				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).hide();
-				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).show();
-			break;
-			case 'save':
-				$('#'+gid).jqGrid('saveRow',rid,null,null );
-				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
-				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
-				break;
-			case 'cancel' :
-				$('#'+gid).jqGrid('restoreRow',rid);
-				$("tr#"+rid+" div.ui-inline-edit, "+"tr#"+rid+" div.ui-inline-del","#"+gid).show();
-				$("tr#"+rid+" div.ui-inline-save, "+"tr#"+rid+" div.ui-inline-cancel","#"+gid).hide();
-				break;
-		}
-	};
-	$.fn.fmatter.actions = function(cellval,opts, rwd) {
-		var op ={keys:false, editbutton:true, delbutton:true};
-		if(!isUndefined(opts.colModel.formatoptions)) {
-			op = $.extend(op,opts.colModel.formatoptions);
-		}
-		var rowid = opts.rowId, str="",ocl;
-		if(typeof(rowid) =='undefined' || isEmpty(rowid)) { return ""; }
-		if(op.editbutton){
-			ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','edit',"+op.keys+");";
-			str =str+ "<div style='margin-left:8px;'><div title='"+$.jgrid.nav.edittitle+"' style='float:left;cursor:pointer;' class='ui-pg-div ui-inline-edit' "+ocl+"><span class='ui-icon ui-icon-pencil'></span></div>";
-		}
-		if(op.delbutton) {
-			ocl = "onclick=jQuery('#"+opts.gid+"').jqGrid('delGridRow','"+rowid+"');";
-			str = str+"<div title='"+$.jgrid.nav.deltitle+"' style='float:left;margin-left:5px;' class='ui-pg-div ui-inline-del' "+ocl+"><span class='ui-icon ui-icon-trash'></span></div>";
-		}
-		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','save',false);";
-		str = str+"<div title='"+$.jgrid.edit.bSubmit+"' style='float:left;display:none' class='ui-pg-div ui-inline-save'><span class='ui-icon ui-icon-disk' "+ocl+"></span></div>";
-		ocl = "onclick=$.fn.fmatter.rowactions('"+rowid+"','"+opts.gid+"','cancel',false);";
-		str = str+"<div title='"+$.jgrid.edit.bCancel+"' style='float:left;display:none;margin-left:5px;' class='ui-pg-div ui-inline-cancel'><span class='ui-icon ui-icon-cancel' "+ocl+"></span></div></div>";
-		return str;
-	};
-	$.unformat = function (cellval,options,pos,cnt) {
-		// specific for jqGrid only
-		var ret, formatType = options.colModel.formatter,
-		op =options.colModel.formatoptions || {}, sep,
-		re = /([\.\*\_\'\(\)\{\}\+\?\\])/g;
-		unformatFunc = options.colModel.unformat||($.fn.fmatter[formatType] && $.fn.fmatter[formatType].unformat);
-		if(typeof unformatFunc !== 'undefined' && isFunction(unformatFunc) ) {
-			ret = unformatFunc($(cellval).text(), options, cellval);
-		} else if(typeof formatType !== 'undefined' && isString(formatType) ) {
-			var opts = $.jgrid.formatter || {}, stripTag;
-			switch(formatType) {
-				case 'integer' :
-					op = $.extend({},opts.integer,op);
-					sep = op.thousandsSeparator.replace(re,"\\$1");
-					stripTag = new RegExp(sep, "g");
-					ret = $(cellval).text().replace(stripTag,'');
-					break;
-				case 'number' :
-					op = $.extend({},opts.number,op);
-					sep = op.thousandsSeparator.replace(re,"\\$1");
-					stripTag = new RegExp(sep, "g");
-					ret = $(cellval).text().replace(stripTag,"").replace(op.decimalSeparator,'.');
-					break;
-				case 'currency':
-					op = $.extend({},opts.currency,op);
-					sep = op.thousandsSeparator.replace(re,"\\$1");
-					stripTag = new RegExp(sep, "g");
-					ret = $(cellval).text().replace(stripTag,'').replace(op.decimalSeparator,'.').replace(op.prefix,'').replace(op.suffix,'');
-					break;
-				case 'checkbox':
-					var cbv = (options.colModel.editoptions) ? options.colModel.editoptions.value.split(":") : ["Yes","No"];
-					ret = $('input',cellval).attr("checked") ? cbv[0] : cbv[1];
-					break;
-				case 'select' :
-					ret = $.unformat.select(cellval,options,pos,cnt);
-					break;
-				case 'actions':
-					return "";
-				default:
-					ret= $(cellval).text();
-			}
-		}
-		return ret ? ret : cnt===true ? $(cellval).text() : $.jgrid.htmlDecode($(cellval).html());
-	};
-	$.unformat.select = function (cellval,options,pos,cnt) {
-		// Spacial case when we have local data and perform a sort
-		// cnt is set to true only in sortDataArray
-		var ret = [];
-		var cell = $(cellval).text();
-		if(cnt===true) { return cell; }
-		var op = $.extend({},options.colModel.editoptions);
-		if(op.value){
-			var oSelect = op.value,
-			msl =  op.multiple === true ? true : false,
-			scell = [], sv;
-			if(msl) { scell = cell.split(","); scell = $.map(scell,function(n){return $.trim(n);}); }
-			if (isString(oSelect)) {
-				var so = oSelect.split(";"), j=0;
-				for(var i=0; i<so.length;i++){
-					sv = so[i].split(":");
-					if(msl) {
-						if(jQuery.inArray(sv[1],scell)>-1) {
-							ret[j] = sv[0];
-							j++;
-						}
-					} else if($.trim(sv[1])==$.trim(cell)) {
-						ret[0] = sv[0];
-						break;
-					}
-				}
-			} else if(isObject(oSelect)) {
-				if(!msl) { scell[0] =  cell; }
-				ret = jQuery.map(scell, function(n){
-					var rv;
-					$.each(oSelect, function(i,val){
-						if (val == n) {
-							rv = i;
-							return false;
-						}
-					});
-					if( rv) { return rv; }
-				});
-			}
-			return ret.join(", ");
-		} else {
-			return cell || "";
-		}
-	};
-	function fireFormatter(formatType,cellval, opts, rwd, act) {
-		var v=cellval;
-
-        if ($.fn.fmatter[formatType]){
-            v = $.fn.fmatter[formatType](cellval, opts, rwd, act);
-        }
-
-        return v;
-	}
-	//private methods and data
-	function debug($obj) {
-		if (window.console && window.console.log) { window.console.log($obj); }
-	}
-	/**
-     * A convenience method for detecting a legitimate non-null value.
-     * Returns false for null/undefined/NaN, true for other values, 
-     * including 0/false/''
-	 *  --taken from the yui.lang
-     */
-    isValue= function(o) {
-		return (isObject(o) || isString(o) || isNumber(o) || isBoolean(o));
-    };
-	isBoolean= function(o) {
-        return typeof o === 'boolean';
-    };
-    isNull= function(o) {
-        return o === null;
-    };
-    isNumber= function(o) {
-        return typeof o === 'number' && isFinite(o);
-    };
-    isString= function(o) {
-        return typeof o === 'string';
-    };
-	/**
-	* check if its empty trim it and replace \&nbsp and \&#160 with '' and check if its empty ===""
-	* if its is not a string but has a value then it returns false, Returns true for null/undefined/NaN
-	essentailly this provdes a way to see if it has any value to format for things like links
-	*/
-	isEmpty= function(o) {
-		if(!isString(o) && isValue(o)) {
-			return false;
-		}else if (!isValue(o)){
-			return true;
-		}
-		o = $.trim(o).replace(/\&nbsp\;/ig,'').replace(/\&#160\;/ig,'');
-        return o==="";
-		
-    };
-    isUndefined= function(o) {
-        return typeof o === 'undefined';
-    };
-	isObject= function(o) {
-		return (o && (typeof o === 'object' || isFunction(o))) || false;
-    };
-	isFunction= function(o) {
-        return typeof o === 'function';
-    };
-
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.fmatter.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for manipulating columns properties
- * Piotr Roznicki roznicki@o2.pl
- * http://www.roznicki.prv.pl
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/
-$.jgrid.extend({
-	setColumns : function(p) {
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 200,
-			height: 'auto',
-			dataheight: 'auto',
-			modal: false,
-			drag: true,
-			beforeShowForm: null,
-			afterShowForm: null,
-			afterSubmitForm: null,
-			closeOnEscape : true,
-			ShrinkToFit : false,
-			jqModal : false,
-			saveicon: [true,"left","ui-icon-disk"],
-			closeicon: [true,"left","ui-icon-close"],
-			onClose : null,
-			colnameview : true,
-			closeAfterSubmit : true,
-			updateAfterCheck : false,
-			recreateForm : false
-		}, $.jgrid.col, p ||{});
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid ) { return; }
-			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false;
-			var onAfterShow = typeof p.afterShowForm === 'function' ? true: false;
-			var onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true: false;			
-			var gID = $t.p.id,
-			dtbl = "ColTbl_"+gID,
-			IDs = {themodal:'colmod'+gID,modalhead:'colhd'+gID,modalcontent:'colcnt'+gID, scrollelm: dtbl};
-			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
-				$("#"+IDs.themodal).remove();
-			}
-			if ( $("#"+IDs.themodal).html() != null ) {
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM:false, modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			} else {
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var formdata = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
-				formdata += "<table class='ColTable' cellspacing='1' cellpading='2' border='0'><tbody>";
-				for(i=0;i<this.p.colNames.length;i++){
-					if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
-						formdata += "<tr><td style='white-space: pre;'><input type='checkbox' style='margin-right:5px;' id='col_" + this.p.colModel[i].name + "' class='cbox' value='T' " + 
-						((this.p.colModel[i].hidden===false)?"checked":"") + "/>" +  "<label for='col_" + this.p.colModel[i].name + "'>" + this.p.colNames[i] + ((p.colnameview) ? " (" + this.p.colModel[i].name + ")" : "" )+ "</label></td></tr>";
-					}
-				}
-				formdata += "</tbody></table></div>"
-				var bS  = !p.updateAfterCheck ? "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>" : "",
-				bC  ="<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
-				formdata += "<table border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DataTD ui-widget-content'></td></tr><tr><td class='ColButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
-				p.gbox = "#gbox_"+gID;
-				createModal(IDs,formdata,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				if(p.saveicon[0]==true) {
-					$("#dData","#"+dtbl+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
-				}
-				if(p.closeicon[0]==true) {
-					$("#eData","#"+dtbl+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
-				}
-				if(!p.updateAfterCheck) {
-					$("#dData","#"+dtbl+"_2").click(function(e){
-						for(i=0;i<$t.p.colModel.length;i++){
-							if(!$t.p.colModel[i].hidedlg) { // added from T. Tomov
-								var nm = $t.p.colModel[i].name.replace(".", "\\.");
-								if($("#col_" + nm,"#"+dtbl).attr("checked")) {
-									$($t).jqGrid("showCol",$t.p.colModel[i].name);
-									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",true); // Added from T. Tomov IE BUG
-								} else {
-									$($t).jqGrid("hideCol",$t.p.colModel[i].name);
-									$("#col_" + nm,"#"+dtbl).attr("defaultChecked",""); // Added from T. Tomov IE BUG
-								}
-							}
-						}
-						if(p.ShrinkToFit===true) {
-							$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
-						}
-						if(p.closeAfterSubmit) hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
-						if (onAfterSubmit) { p.afterSubmitForm($("#"+dtbl)); }
-						return false;
-					});
-				} else {
-					$(":input","#"+dtbl).click(function(e){
-						var cn = this.id.substr(4);
-						if(cn){
-							if(this.checked) {
-								$($t).jqGrid("showCol",cn);
-							} else {
-								$($t).jqGrid("hideCol",cn);
-							}
-							if(p.ShrinkToFit===true) {
-								$($t).jqGrid("setGridWidth",$t.grid.width-0.001,true);
-							}
-						}
-						return this;
-					});
-				}
-				$("#eData", "#"+dtbl+"_2").click(function(e){
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
-					return false;
-				});
-				$("#dData, #eData","#"+dtbl+"_2").hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);				
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: true, modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			}
-		});
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.setcolumns.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js	(nonexistent)
@@ -1,260 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for SubGrid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/
-$.jgrid.extend({
-setSubGrid : function () {
-	return this.each(function (){
-		var $t = this, cm;
-		$t.p.colNames.unshift("");
-		$t.p.colModel.unshift({name:'subgrid',width: $.browser.safari ?  $t.p.subGridWidth+$t.p.cellLayout : $t.p.subGridWidth,sortable: false,resizable:false,hidedlg:true,search:false,fixed:true});
-		cm = $t.p.subGridModel;
-		if(cm[0]) {
-			cm[0].align = $.extend([],cm[0].align || []);
-			for(var i=0;i<cm[0].name.length;i++) { cm[0].align[i] = cm[0].align[i] || 'left';}
-		}
-	});
-},
-addSubGridCell :function (pos,iRow) {
-	var prp='',gv,sid;
-	this.each(function(){
-		prp = this.formatCol(pos,iRow);
-		gv = this.p.gridview;
-		sid= this.p.id;
-	});
-	if( gv === false ){
-		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" class=\"ui-sgcollapsed sgcollapsed\" "+prp+"><a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a></td>";
-	} else  {
-		return "<td role=\"grid\" aria-describedby=\""+sid+"_subgrid\" " +prp +"></td>";
-	}
-},
-addSubGrid : function(t,pos) {
-	return this.each(function(){
-		var ts = this;
-		if (!ts.grid ) { return; }
-		var res,_id, pID,atd, nhc, subdata, bfsc;
-		$("td:eq("+pos+")",t).click( function(e) {
-			if($(this).hasClass("sgcollapsed")) {
-				pID = ts.p.id;
-				res = $(this).parent();
-				atd = pos >=1 ? "<td colspan='"+pos+"'>&#160;</td>":"";
-				_id = $(res).attr("id");
-				bfsc =true;
-				if($.isFunction(ts.p.subGridBeforeExpand)) {
-					bfsc = ts.p.subGridBeforeExpand(pID+"_"+_id,_id);
-				}
-				if(bfsc === false) {return false;}
-				nhc = 0;
-				$.each(ts.p.colModel,function(i,v){
-					if(this.hidden === true || this.name == 'rn' || this.name == 'cb') {nhc++;}
-				});
-				subdata = "<tr role='row' class='ui-subgrid'>"+atd+"<td class='ui-widget-content subgrid-cell'><span class='ui-icon ui-icon-carat-1-sw'/></td><td colspan='"+parseInt(ts.p.colNames.length-1-nhc,10)+"' class='ui-widget-content subgrid-data'><div id="+pID+"_"+_id+" class='tablediv'>";
-				$(this).parent().after( subdata+ "</div></td></tr>" );
-				if( $.isFunction(ts.p.subGridRowExpanded)) {
-					ts.p.subGridRowExpanded(pID+"_"+ _id,_id);
-				} else {
-					populatesubgrid(res);
-				}
-				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-minus'></span></a>").removeClass("sgcollapsed").addClass("sgexpanded");
-			} else if($(this).hasClass("sgexpanded")) {
-				bfsc = true;
-				if( $.isFunction(ts.p.subGridRowColapsed)) {
-					res = $(this).parent();
-					_id = $(res).attr("id");
-					bfsc = ts.p.subGridRowColapsed(pID+"_"+_id,_id );
-				}
-				if(bfsc===false) {return false;}
-				$(this).parent().next().remove(".ui-subgrid");
-				$(this).html("<a href='javascript:void(0);'><span class='ui-icon ui-icon-plus'></span></a>").removeClass("sgexpanded").addClass("sgcollapsed");
-			}
-			return false;
-		});
-		//-------------------------
-		var populatesubgrid = function( rd ) {
-			var res,sid,dp, i, j;
-			sid = $(rd).attr("id");
-			dp = {nd_: (new Date().getTime())};
-			dp[ts.p.prmNames.subgridid]=sid;
-			if(!ts.p.subGridModel[0]) { return false; }
-			if(ts.p.subGridModel[0].params) {
-				for(j=0; j < ts.p.subGridModel[0].params.length; j++) {
-					for(i=0; i<ts.p.colModel.length; i++) {
-						if(ts.p.colModel[i].name == ts.p.subGridModel[0].params[j]) {
-							dp[ts.p.colModel[i].name]= $("td:eq("+i+")",rd).text().replace(/\&#160\;/ig,'');
-						}
-					}
-				}
-			}
-			if(!ts.grid.hDiv.loading) {
-				ts.grid.hDiv.loading = true;
-				$("#load_"+ts.p.id).show();
-				if(!ts.p.subgridtype) { ts.p.subgridtype = ts.p.datatype; }
-				if($.isFunction(ts.p.subgridtype)) {
-					ts.p.subgridtype(dp);
-				} else {
-					ts.p.subgridtype = ts.p.subgridtype.toLowerCase();
-				}
-				switch(ts.p.subgridtype) {
-					case "xml":
-					case "json":
-					$.ajax($.extend({
-						type:ts.p.mtype,
-						url: ts.p.subGridUrl,
-						dataType:ts.p.subgridtype,
-						data: $.isFunction(ts.p.serializeSubGridData)? ts.p.serializeSubGridData(dp) : dp,
-						complete: function(sxml) {
-							if(ts.p.subgridtype == "xml") {
-								subGridXml(sxml.responseXML, sid);
-							} else {
-								subGridJson($.jgrid.parse(sxml.responseText),sid);
-							}
-							sxml=null;
-						}
-					}, $.jgrid.ajaxOptions, ts.p.ajaxSubgridOptions || {}));
-					break;
-				}
-			}
-			return false;
-		};
-		var subGridCell = function(trdiv,cell,pos){
-			var tddiv = $("<td align='"+ts.p.subGridModel[0].align[pos]+"'></td>").html(cell);
-			$(trdiv).append(tddiv);
-		};
-		var subGridXml = function(sjxml, sbid){
-			var tddiv, i, cur, sgmap,
-			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
-			trdiv = $("<tr></tr>");
-			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
-				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
-				$(tddiv).html(ts.p.subGridModel[0].name[i]);
-				$(tddiv).width( ts.p.subGridModel[0].width[i]);
-				$(trdiv).append(tddiv);
-			}
-			$(dummy).append(trdiv);
-			if (sjxml){
-				sgmap = ts.p.xmlReader.subgrid;
-				$(sgmap.root+" "+sgmap.row, sjxml).each( function(){
-					trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
-					if(sgmap.repeatitems === true) {
-						$(sgmap.cell,this).each( function(i) {
-							subGridCell(trdiv, $(this).text() || '&#160;',i);
-						});
-					} else {
-						var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
-						if (f) {
-							for (i=0;i<f.length;i++) {
-								subGridCell(trdiv, $(f[i],this).text() || '&#160;',i);
-							}
-						}
-					}
-					$(dummy).append(trdiv);
-				});
-			}
-			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
-			$("#"+pID+sbid).append(dummy);
-			ts.grid.hDiv.loading = false;
-			$("#load_"+ts.p.id).hide();
-			return false;
-		};
-		var subGridJson = function(sjxml, sbid){
-			var tddiv,result , i,cur, sgmap,j,
-			dummy = $("<table cellspacing='0' cellpadding='0' border='0'><tbody></tbody></table>"),
-			trdiv = $("<tr></tr>");
-			for (i = 0; i<ts.p.subGridModel[0].name.length; i++) {
-				tddiv = $("<th class='ui-state-default ui-th-subgrid ui-th-column ui-th-"+ts.p.direction+"'></th>");
-				$(tddiv).html(ts.p.subGridModel[0].name[i]);
-				$(tddiv).width( ts.p.subGridModel[0].width[i]);
-				$(trdiv).append(tddiv);
-			}
-			$(dummy).append(trdiv);
-			if (sjxml){
-				sgmap = ts.p.jsonReader.subgrid;
-				result = sjxml[sgmap.root];
-				if ( typeof result !== 'undefined' ) {
-					for (i=0;i<result.length;i++) {
-						cur = result[i];
-						trdiv = $("<tr class='ui-widget-content ui-subtblcell'></tr>");
-						if(sgmap.repeatitems === true) {
-							if(sgmap.cell) { cur=cur[sgmap.cell]; }
-							for (j=0;j<cur.length;j++) {
-								subGridCell(trdiv, cur[j] || '&#160;',j);
-							}
-						} else {
-							var f = ts.p.subGridModel[0].mapping || ts.p.subGridModel[0].name;
-							if(f.length) {
-								for (j=0;j<f.length;j++) {
-									subGridCell(trdiv, cur[f[j]] || '&#160;',j);
-								}
-							}
-						}
-						$(dummy).append(trdiv);
-					}
-				}
-			}
-			var pID = $("table:first",ts.grid.bDiv).attr("id")+"_";
-			$("#"+pID+sbid).append(dummy);
-			ts.grid.hDiv.loading = false;
-			$("#load_"+ts.p.id).hide();
-			return false;
-		};
-		ts.subGridXml = function(xml,sid) {subGridXml(xml,sid);};
-		ts.subGridJson = function(json,sid) {subGridJson(json,sid);};
-	});
-},
-expandSubGridRow : function(rowid) {
-	return this.each(function () {
-		var $t = this;
-		if(!$t.grid && !rowid) {return;}
-		if($t.p.subGrid===true) {
-			var rc = $(this).jqGrid("getInd",rowid,true);
-			if(rc) {
-				var sgc = $("td.sgcollapsed",rc)[0];
-				if(sgc) {
-					$(sgc).trigger("click");
-				}
-			}
-		}
-	});
-},
-collapseSubGridRow : function(rowid) {
-	return this.each(function () {
-		var $t = this;
-		if(!$t.grid && !rowid) {return;}
-		if($t.p.subGrid===true) {
-			var rc = $(this).jqGrid("getInd",rowid,true);
-			if(rc) {
-				var sgc = $("td.sgexpanded",rc)[0];
-				if(sgc) {
-					$(sgc).trigger("click");
-				}
-			}
-		}
-	});
-},
-toggleSubGridRow : function(rowid) {
-	return this.each(function () {
-		var $t = this;
-		if(!$t.grid && !rowid) {return;}
-		if($t.p.subGrid===true) {
-			var rc = $(this).jqGrid("getInd",rowid,true);
-			if(rc) {
-				var sgc = $("td.sgcollapsed",rc)[0];
-				if(sgc) {
-					$(sgc).trigger("click");
-				} else {
-					sgc = $("td.sgexpanded",rc)[0];
-					if(sgc) {
-						$(sgc).trigger("click");
-					}
-				}
-			}
-		}
-	});
-}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.subgrid.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js	(nonexistent)
@@ -1,69 +0,0 @@
-/*
- * jqModal - Minimalist Modaling with jQuery
- *   (http://dev.iceburg.net/jquery/jqmodal/)
- *
- * Copyright (c) 2007,2008 Brice Burgess <bhb@iceburg.net>
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- * 
- * $Version: 07/06/2008 +r13
- */
-(function($) {
-$.fn.jqm=function(o){
-var p={
-overlay: 50,
-closeoverlay : true,
-overlayClass: 'jqmOverlay',
-closeClass: 'jqmClose',
-trigger: '.jqModal',
-ajax: F,
-ajaxText: '',
-target: F,
-modal: F,
-toTop: F,
-onShow: F,
-onHide: F,
-onLoad: F
-};
-return this.each(function(){if(this._jqm)return H[this._jqm].c=$.extend({},H[this._jqm].c,o);s++;this._jqm=s;
-H[s]={c:$.extend(p,$.jqm.params,o),a:F,w:$(this).addClass('jqmID'+s),s:s};
-if(p.trigger)$(this).jqmAddTrigger(p.trigger);
-});};
-
-$.fn.jqmAddClose=function(e){return hs(this,e,'jqmHide');};
-$.fn.jqmAddTrigger=function(e){return hs(this,e,'jqmShow');};
-$.fn.jqmShow=function(t){return this.each(function(){$.jqm.open(this._jqm,t);});};
-$.fn.jqmHide=function(t){return this.each(function(){$.jqm.close(this._jqm,t)});};
-
-$.jqm = {
-hash:{},
-open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(parseInt(h.w.css('z-index')));z=(z>0)?z:3000;var o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});if(h.a)return F;h.t=t;h.a=true;h.w.css('z-index',z);
- if(c.modal) {if(!A[0])setTimeout(function(){L('bind');},1);A.push(s);}
- else if(c.overlay > 0) {if(c.closeoverlay) h.w.jqmAddClose(o);}
- else o=F;
-
- h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):F;
- if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}
-
- if(c.ajax) {var r=c.target||h.w,u=c.ajax;r=(typeof r == 'string')?$(r,h.w):$(r);u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
-  r.html(c.ajaxText).load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
- else if(cc)h.w.jqmAddClose($(cc,h.w));
-
- if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
- (c.onShow)?c.onShow(h):h.w.show();e(h);return F;
-},
-close:function(s){var h=H[s];if(!h.a)return F;h.a=F;
- if(A[0]){A.pop();if(!A[0])L('unbind');}
- if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
- if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return F;
-},
-params:{}};
-var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),F=false,
-e=function(h){var i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0});if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
-f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
-L=function(t){$(document)[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
-m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
-hs=function(w,t,c){return w.each(function(){var s=this._jqm;$(t).each(function() {
- if(!this[c]){this[c]=[];$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return F;});}this[c].push(s);});});};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jqModal.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js	(nonexistent)
@@ -1,714 +0,0 @@
-/* Plugin:      searchFilter v1.2.9
- * Author:      Kasey Speakman (kasey@cornerspeed.com)
- * License:     Dual Licensed, MIT and GPL v2 (http://www.gnu.org/licenses/gpl-2.0.html)
- *
- * REQUIREMENTS:
- *    jQuery 1.3+           (http://jquery.com/)
- *    A Themeroller Theme   (http://jqueryui.com/themeroller/)
- *
- * SECURITY WARNING
- *    You should always implement server-side checking to ensure that
- *    the query will fail when forged/invalid data is received.
- *    Clever users can send any value they want through JavaScript and HTTP POST/GET.
- *
- * THEMES
- *    Simply include the CSS file for your Themeroller theme.
- *
- * DESCRIPTION
- *     This plugin creates a new searchFilter object in the specified container
- *
- * INPUT TYPE
- *     fields:  an array of field objects. each object has the following properties:
- *              text: a string containing the display name of the field (e.g. "Field 1")
- *              itemval: a string containing the actual field name (e.g. "field1")
- *              optional properties:
- *                  ops: an array of operators in the same format as jQuery.fn.searchFilter.defaults.operators
- *                       that is: [ { op: 'gt', text: 'greater than'}, { op:'lt', text: 'less than'}, ... ]
- *                       if not specified, the passed-in options used, and failting that, jQuery.fn.searchFilter.defaults.operators will be used
- *                  *** NOTE ***
- *                  Specifying a dataUrl or dataValues property means that a <select ...> (drop-down-list) will be generated
- *                  instead of a text input <input type='text'.../> where the user would normally type in their search data
- *                  ************
- *                  dataUrl: a url that will return the html select for this field, this url will only be called once for this field
- *                  dataValues: the possible values for this field in the form [ { text: 'Data Display Text', value: 'data_actual_value' }, { ... } ]
- *                  dataInit: a function that you can use to initialize the data field. this function is passed the jQuery-fied data element
- *                  dataEvents: list of events to apply to the data element. uses $("#id").bind(type, [data], fn) to bind events to data element
- *              *** JSON of this object could look like this: ***
- *               var fields = [
- *                 {
- *                   text: 'Field Display Name',
- *                   itemval: 'field_actual_name',
- *                   // below this are optional values
- *                   ops: [ // this format is the same as jQuery.fn.searchFilter.defaults.operators
- *                     { op: 'gt', text: 'greater than' },
- *                     { op: 'lt', text: 'less than' }
- *                   ],
- *                   dataUrl: 'http://server/path/script.php?propName=propValue', // using this creates a select for the data input instead of an input type='text'
- *                   dataValues: [ // using this creates a select for the data input instead of an input type='text'
- *                     { text: 'Data Value Display Name', value: 'data_actual_value' },
- *                     { ... }
- *                   ],
- *                   dataInit: function(jElem) { jElem.datepicker(options); },
- *                   dataEvents: [ // these are the same options that you pass to $("#id").bind(type, [data], fn)
- *                     { type: 'click', data: { i: 7 }, fn: function(e) { console.log(e.data.i); } },
- *                     { type: 'keypress', fn: function(e) { console.log('keypress'); } }
- *                   ]
- *                 },
- *                 { ... }
- *               ]
- *     options: name:value properties containing various creation options
- *              see jQuery.fn.searchFilter.defaults for the overridable options
- *
- * RETURN TYPE: This plugin returns a SearchFilter object, which has additional SearchFilter methods:
- *     Methods
- *         add:    Adds a filter. added to the end of the list unless a jQuery event object or valid row number is passed.
- *         del:    Removes a filter. removed from the end of the list unless a jQuery event object or valid row number is passed.
- *         reset:  resets filters back to original state (only one blank filter), and calls onReset
- *         search: puts the search rules into an object and calls onSearch with it
- *         close:  calls the onClose event handler
- *
- * USAGE
- *     HTML
- *         <head>
- *             ...
- *             <script src="path/to/jquery.min.js" type="text/javascript"></script>
- *             <link href="path/to/themeroller.css" rel="Stylesheet" type="text/css" />
- *             <script src="path/to/jquery.searchFilter.js" type="text/javascript"></script>
- *             <link href="path/to/jquery.searchFilter.css" rel="Stylesheet" type="text/css" />
- *             ...
- *         </head>
- *         <body>
- *             ...
- *             <div id='mySearch'></div>
- *             ...
- *         </body>
- *     JQUERY
- *         Methods
- *             initializing: $("#mySearch").searchFilter([{text: "Field 1", value: "field1"},{text: "Field 2", value: "field2"}], {onSearch: myFilterRuleReceiverFn, onReset: myFilterResetFn });
- *         Manual Methods (there's no need to call these methods unless you are trying to manipulate searchFilter with script)
- *             add:          $("#mySearch").searchFilter().add();     // appends a blank filter
- *                           $("#mySearch").searchFilter().add(0);    // copies the first filter as second
- *             del:          $("#mySearch").searchFilter().del();     // removes the bottom filter
- *                           $("#mySearch").searchFilter().del(1);    // removes the second filter
- *             search:       $("#mySearch").searchFilter().search();  // invokes onSearch, passing it a ruleGroup object
- *             reset:        $("#mySearch").searchFilter().reset();   // resets rules and invokes onReset
- *             close:        $("#mySearch").searchFilter().close();   // without an onClose handler, equivalent to $("#mySearch").hide();
- * 
- * NOTE: You can get the jQuery object back from the SearchFilter object by chaining .$
- *     Example
- *         $("#mySearch").searchFilter().add().add().reset().$.hide();
- *     Verbose Example
- *         $("#mySearch")      // gets jQuery object for the HTML element with id="mySearch"
- *             .searchFilter() // gets the SearchFilter object for an existing search filter
- *             .add()          // adds a new filter to the end of the list
- *             .add()          // adds another new filter to the end of the list
- *             .reset()        // resets filters back to original state, triggers onReset
- *             .$              // returns jQuery object for $("#mySearch")
- *             .hide();        // equivalent to $("#mySearch").hide();
- */
-
-jQuery.fn.searchFilter = function(fields, options) {
-
-    function SearchFilter(jQ, fields, options) {
-
-
-        //---------------------------------------------------------------
-        // PUBLIC VARS
-        //---------------------------------------------------------------
-
-        this.$ = jQ; // makes the jQuery object available as .$ from the return value
-
-
-        //---------------------------------------------------------------
-        // PUBLIC FUNCTIONS
-        //---------------------------------------------------------------
-
-        this.add = function(i) {
-            if (i == null) jQ.find(".ui-add-last").click();
-            else jQ.find(".sf:eq(" + i + ") .ui-add").click();
-            return this;
-        };
-
-        this.del = function(i) {
-            if (i == null) jQ.find(".sf:last .ui-del").click();
-            else jQ.find(".sf:eq(" + i + ") .ui-del").click();
-            return this;
-        };
-
-        this.search = function(e) {
-            jQ.find(".ui-search").click();
-            return this;
-        };
-
-        this.reset = function(e) {
-            jQ.find(".ui-reset").click();
-            return this;
-        };
-
-        this.close = function() {
-            jQ.find(".ui-closer").click();
-            return this;
-        };
-
-
-
-        //---------------------------------------------------------------
-        // "CONSTRUCTOR" (in air quotes)
-        //---------------------------------------------------------------
-
-        if (fields != null) { // type coercion matches undefined as well as null
-
-
-            //---------------------------------------------------------------
-            // UTILITY FUNCTIONS
-            //---------------------------------------------------------------
-
-            function hover() {
-                jQuery(this).toggleClass("ui-state-hover");
-                return false;
-            }
-
-            function active(e) {
-                jQuery(this).toggleClass("ui-state-active", (e.type == "mousedown"));
-                return false;
-            }
-
-            function buildOpt(value, text) {
-                return "<option value='" + value + "'>" + text + "</option>";
-            }
-
-            function buildSel(className, options, isHidden) {
-                return "<select class='" + className + "'" + (isHidden ? " style='display:none;'" : "") + ">" + options + "</select>";
-            }
-
-            function initData(selector, fn) {
-                var jElem = jQ.find("tr.sf td.data " + selector);
-                if (jElem[0] != null)
-                    fn(jElem);
-            }
-
-            function bindDataEvents(selector, events) {
-                var jElem = jQ.find("tr.sf td.data " + selector);
-                if (jElem[0] != null) {
-                    jQuery.each(events, function() {
-                        if (this.data != null)
-                            jElem.bind(this.type, this.data, this.fn);
-                        else
-                            jElem.bind(this.type, this.fn);
-                    });
-                }
-            }
-
-
-            //---------------------------------------------------------------
-            // SUPER IMPORTANT PRIVATE VARS
-            //---------------------------------------------------------------
-
-            // copies jQuery.fn.searchFilter.defaults.options properties onto an empty object, then options onto that
-            var opts = jQuery.extend({}, jQuery.fn.searchFilter.defaults, options);
-
-            // this is keeps track of the last asynchronous setup
-            var highest_late_setup = -1;
-
-
-            //---------------------------------------------------------------
-            // CREATION PROCESS STARTS
-            //---------------------------------------------------------------
-
-            // generate the global ops
-            var gOps_html = "";
-            jQuery.each(opts.groupOps, function() { gOps_html += buildOpt(this.op, this.text); });
-            gOps_html = "<select name='groupOp'>" + gOps_html + "</select>";
-
-            /* original content - doesn't minify very well
-            jQ
-            .html("") // clear any old content
-            .addClass("ui-searchFilter") // add classes
-            .append( // add content
-            "\
-            <div class='ui-widget-overlay' style='z-index: -1'>&nbsp;</div>\
-            <table class='ui-widget-content ui-corner-all'>\
-            <thead>\
-            <tr>\
-            <td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'>\
-            <div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'>\
-            <span class='ui-icon ui-icon-close'></span>\
-            </div>\
-            " + opts.windowTitle + "\
-            </td>\
-            </tr>\
-            </thead>\
-            <tbody>\
-            <tr class='sf'>\
-            <td class='fields'></td>\
-            <td class='ops'></td>\
-            <td class='data'></td>\
-            <td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td>\
-            <td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td>\
-            </tr>\
-            <tr>\
-            <td colspan='5' class='divider'><div>&nbsp;</div></td>\
-            </tr>\
-            </tbody>\
-            <tfoot>\
-            <tr>\
-            <td colspan='3'>\
-            <span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span>\
-            <span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span>\
-            <span class='matchText'>" + opts.matchText + "</span> \
-            " + gOps_html + " \
-            <span class='rulesText'>" + opts.rulesText + "</span>\
-            </td>\
-            <td>&nbsp;</td>\
-            <td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td>\
-            </tr>\
-            </tfoot>\
-            </table>\
-            ");
-            /* end hard-to-minify code */
-            /* begin easier to minify code */
-            jQ.html("").addClass("ui-searchFilter").append("<div class='ui-widget-overlay' style='z-index: -1'>&#160;</div><table class='ui-widget-content ui-corner-all'><thead><tr><td colspan='5' class='ui-widget-header ui-corner-all' style='line-height: 18px;'><div class='ui-closer ui-state-default ui-corner-all ui-helper-clearfix' style='float: right;'><span class='ui-icon ui-icon-close'></span></div>" + opts.windowTitle + "</td></tr></thead><tbody><tr class='sf'><td class='fields'></td><td class='ops'></td><td class='data'></td><td><div class='ui-del ui-state-default ui-corner-all'><span class='ui-icon ui-icon-minus'></span></div></td><td><div class='ui-add ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plus'></span></div></td></tr><tr><td colspan='5' class='divider'><div>&#160;</div></td></tr></tbody><tfoot><tr><td colspan='3'><span class='ui-reset ui-state-default ui-corner-all' style='display: inline-block; float: left;'><span class='ui-icon ui-icon-arrowreturnthick-1-w' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.resetText + "</span></span><span class='ui-search ui-state-default ui-corner-all' style='display: inline-block; float: right;'><span class='ui-icon ui-icon-search' style='float: left;'></span><span style='line-height: 18px; padding: 0 7px 0 3px;'>" + opts.searchText + "</span></span><span class='matchText'>" + opts.matchText + "</span> " + gOps_html + " <span class='rulesText'>" + opts.rulesText + "</span></td><td>&#160;</td><td><div class='ui-add-last ui-state-default ui-corner-all'><span class='ui-icon ui-icon-plusthick'></span></div></td></tr></tfoot></table>");
-            /* end easier-to-minify code */
-
-            var jRow = jQ.find("tr.sf");
-            var jFields = jRow.find("td.fields");
-            var jOps = jRow.find("td.ops");
-            var jData = jRow.find("td.data");
-
-            // generate the defaults
-            var default_ops_html = "";
-            jQuery.each(opts.operators, function() { default_ops_html += buildOpt(this.op, this.text); });
-            default_ops_html = buildSel("default", default_ops_html, true);
-            jOps.append(default_ops_html);
-            var default_data_html = "<input type='text' class='default' style='display:none;' />";
-            jData.append(default_data_html);
-
-            // generate the field list as a string
-            var fields_html = "";
-            var has_custom_ops = false;
-            var has_custom_data = false;
-            jQuery.each(fields, function(i) {
-                var field_num = i;
-                fields_html += buildOpt(this.itemval, this.text);
-                // add custom ops if they exist
-                if (this.ops != null) {
-                    has_custom_ops = true;
-                    var custom_ops = "";
-                    jQuery.each(this.ops, function() { custom_ops += buildOpt(this.op, this.text); });
-                    custom_ops = buildSel("field" + field_num, custom_ops, true);
-                    jOps.append(custom_ops);
-                }
-                // add custom data if it is given
-                if (this.dataUrl != null) {
-                    if (i > highest_late_setup) highest_late_setup = i;
-                    has_custom_data = true;
-                    var dEvents = this.dataEvents;
-                    var iEvent = this.dataInit;
-                    var bs = this.buildSelect;
-                    jQuery.ajax(jQuery.extend({
-                        url : this.dataUrl,
-                        complete: function(data) {
-                            var $d;
-                            if(bs != null) $d =jQuery("<div />").append(bs(data));
-                            else $d = jQuery("<div />").append(data.responseText);
-                            $d.find("select").addClass("field" + field_num).hide();
-                            jData.append($d.html());
-                            if (iEvent) initData(".field" + i, iEvent);
-                            if (dEvents) bindDataEvents(".field" + i, dEvents);
-                            if (i == highest_late_setup) { // change should get called no more than twice when this searchFilter is constructed
-                                jQ.find("tr.sf td.fields select[name='field']").change();
-                            }
-                        }
-                    },opts.ajaxSelectOptions));
-                } else if (this.dataValues != null) {
-                    has_custom_data = true;
-                    var custom_data = "";
-                    jQuery.each(this.dataValues, function() { custom_data += buildOpt(this.value, this.text); });
-                    custom_data = buildSel("field" + field_num, custom_data, true);
-                    jData.append(custom_data);
-                } else if (this.dataEvents != null || this.dataInit != null) {
-                    has_custom_data = true;
-                    var custom_data = "<input type='text' class='field" + field_num + "' />";
-                    jData.append(custom_data);
-                }
-                // attach events to data if they exist
-                if (this.dataInit != null && i != highest_late_setup)
-                    initData(".field" + i, this.dataInit);
-                if (this.dataEvents != null && i != highest_late_setup)
-                    bindDataEvents(".field" + i, this.dataEvents);
-            });
-            fields_html = "<select name='field'>" + fields_html + "</select>";
-            jFields.append(fields_html);
-
-            // setup the field select with an on-change event if there are custom ops or data
-            var jFSelect = jFields.find("select[name='field']");
-            if (has_custom_ops) jFSelect.change(function(e) {
-                var index = e.target.selectedIndex;
-                var td = jQuery(e.target).parents("tr.sf").find("td.ops");
-                td.find("select").removeAttr("name").hide(); // disown and hide all elements
-                var jElem = td.find(".field" + index);
-                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
-                jElem.attr("name", "op").show();
-
-            });
-            else jOps.find(".default").attr("name", "op").show();
-            if (has_custom_data) jFSelect.change(function(e) {
-                var index = e.target.selectedIndex;
-                var td = jQuery(e.target).parents("tr.sf").find("td.data");
-                td.find("select,input").removeClass("vdata").hide(); // disown and hide all elements
-                var jElem = td.find(".field" + index);
-                if (jElem[0] == null) jElem = td.find(".default"); // if there's not an element for that field, use the default one
-                jElem.show().addClass("vdata");
-            });
-            else jData.find(".default").show().addClass("vdata");
-            // go ahead and call the change event and setup the ops and data values
-            if (has_custom_ops || has_custom_data) jFSelect.change();
-
-            // bind events
-            jQ.find(".ui-state-default").hover(hover, hover).mousedown(active).mouseup(active); // add hover/active effects to all buttons
-            jQ.find(".ui-closer").click(function(e) {
-                opts.onClose(jQuery(jQ.selector));
-                return false;
-            });
-            jQ.find(".ui-del").click(function(e) {
-                var row = jQuery(e.target).parents(".sf");
-                if (row.siblings(".sf").length > 0) { // doesn't remove if there's only one filter left
-                    if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined)
-                        row.find(".hasDatepicker").datepicker("destroy"); // clean up datepicker's $.data mess
-                    row.remove(); // also unbinds
-                } else { // resets the filter if it's the last one
-                    row.find("select[name='field']")[0].selectedIndex = 0;
-                    row.find("select[name='op']")[0].selectedIndex = 0;
-                    row.find(".data input").val(""); // blank all input values
-                    row.find(".data select").each(function() { this.selectedIndex = 0; }); // select first option on all selects
-                    row.find("select[name='field']").change(); // trigger any change events
-                }
-                return false;
-            });
-            jQ.find(".ui-add").click(function(e) {
-                var row = jQuery(e.target).parents(".sf");
-                var newRow = row.clone(true).insertAfter(row);
-                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
-                if (opts.clone) {
-                    newRow.find("select[name='field']")[0].selectedIndex = row.find("select[name='field']")[0].selectedIndex;
-                    var stupid_browser = (newRow.find("select[name='op']")[0] == null); // true for IE6
-                    if (!stupid_browser)
-                        newRow.find("select[name='op']").focus()[0].selectedIndex = row.find("select[name='op']")[0].selectedIndex;
-                    var jElem = newRow.find("select.vdata");
-                    if (jElem[0] != null) // select doesn't copy it's selected index when cloned
-                        jElem[0].selectedIndex = row.find("select.vdata")[0].selectedIndex;
-                } else {
-                    newRow.find(".data input").val(""); // blank all input values
-                    newRow.find("select[name='field']").focus();
-                }
-                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
-                    row.find(".hasDatepicker").each(function() {
-                        var settings = jQuery.data(this, "datepicker").settings;
-                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
-                    });
-                }
-                newRow.find("select[name='field']").change();
-                return false;
-            });
-            jQ.find(".ui-search").click(function(e) {
-                var ui = jQuery(jQ.selector); // pointer to search box wrapper element
-                var ruleGroup;
-                var group_op = ui.find("select[name='groupOp'] :selected").val(); // puls "AND" or "OR"
-                if (!opts.stringResult) {
-                    ruleGroup = {
-                        groupOp: group_op,
-                        rules: []
-                    };
-                } else {
-                    ruleGroup = "{\"groupOp\":\"" + group_op + "\",\"rules\":[";
-                }
-                ui.find(".sf").each(function(i) {
-                    var tField = jQuery(this).find("select[name='field'] :selected").val();
-                    var tOp = jQuery(this).find("select[name='op'] :selected").val();
-                    var tData = jQuery(this).find("input.vdata,select.vdata :selected").val();
-                    tData += "";
-                    tData = tData.replace(/\\/g,'\\\\').replace(/\"/g,'\\"');
-                    if (!opts.stringResult) {
-                        ruleGroup.rules.push({
-                            field: tField,
-                            op: tOp,
-                            data: tData
-                        });
-                    } else {
-                        if (i > 0) ruleGroup += ",";
-                        ruleGroup += "{\"field\":\"" + tField + "\",";
-                        ruleGroup += "\"op\":\"" + tOp + "\",";
-                        ruleGroup += "\"data\":\"" + tData + "\"}";
-                    }
-                });
-                if (opts.stringResult) ruleGroup += "]}";
-                opts.onSearch(ruleGroup);
-                return false;
-            });
-            jQ.find(".ui-reset").click(function(e) {
-                var ui = jQuery(jQ.selector);
-                ui.find(".ui-del").click(); // removes all filters, resets the last one
-                ui.find("select[name='groupOp']")[0].selectedIndex = 0; // changes the op back to the default one
-                opts.onReset();
-                return false;
-            });
-            jQ.find(".ui-add-last").click(function() {
-                var row = jQuery(jQ.selector + " .sf:last");
-                var newRow = row.clone(true).insertAfter(row);
-                newRow.find(".ui-state-default").removeClass("ui-state-hover ui-state-active");
-                newRow.find(".data input").val(""); // blank all input values
-                newRow.find("select[name='field']").focus();
-                if (opts.datepickerFix === true && jQuery.fn.datepicker !== undefined) { // using $.data to associate data with document elements is Not Good
-                    row.find(".hasDatepicker").each(function() {
-                        var settings = jQuery.data(this, "datepicker").settings;
-                        newRow.find("#" + this.id).unbind().removeAttr("id").removeClass("hasDatepicker").datepicker(settings);
-                    });
-                }
-                newRow.find("select[name='field']").change();
-                return false;
-            });
-
-            this.setGroupOp = function(setting) {
-                /* a "setter" for groupping argument.
-                 *  ("AND" or "OR")
-                 *
-                 * Inputs:
-                 *  setting - a string
-                 *
-                 * Returns:
-                 *  Does not return anything. May add success / failure reporting in future versions.
-                 *
-                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
-                 */
-                selDOMobj = this.$.find("select[name='groupOp']")[0];
-                var indexmap = {}, l = selDOMobj.options.length, i;
-                for (i=0; i<l; i++) {
-                    indexmap[selDOMobj.options[i].value] = i;
-                }
-                selDOMobj.selectedIndex = indexmap[setting];
-                $(selDOMobj).change();
-            };
-
-            this.setFilter = function(settings) {
-                /* a "setter" for an arbitrary SearchFilter's filter line.
-                 * designed to abstract the DOM manipulations required to infer
-                 * a particular filter is a fit to the search box.
-                 *
-                 * Inputs:
-                 *  settings - an "object" (dictionary)
-                 *   index (optional*) (to be implemented in the future) : signed integer index (from top to bottom per DOM) of the filter line to fill.
-                 *           Negative integers (rooted in -1 and lower) denote position of the line from the bottom.
-                 *   sfref (optional*) : DOM object referencing individual '.sf' (normally a TR element) to be populated. (optional)
-                 *   filter (mandatory) : object (dictionary) of form {'field':'field_value','op':'op_value','data':'data value'}
-                 *
-                 * * It is mandatory to have either index or sfref defined.
-                 *
-                 * Returns:
-                 *  Does not return anything. May add success / failure reporting in future versions.
-                 *
-                 *  author: Daniel Dotsenko (dotsa@hotmail.com)
-                 */
-
-                var o = settings['sfref'], filter = settings['filter'];
-                
-                // setting up valueindexmap that we will need to manipulate SELECT elements.
-                var fields = [], i, j , l, lj, li,
-                    valueindexmap = {};
-                    // example of valueindexmap:
-                    // {'field1':{'index':0,'ops':{'eq':0,'ne':1}},'fieldX':{'index':1,'ops':{'eq':0,'ne':1},'data':{'true':0,'false':1}}},
-                    // if data is undefined it's a INPUT field. If defined, it's SELECT
-                selDOMobj = o.find("select[name='field']")[0];
-                for (i=0, l=selDOMobj.options.length; i<l; i++) {
-                    valueindexmap[selDOMobj.options[i].value] = {'index':i,'ops':{}};
-                    fields.push(selDOMobj.options[i].value);
-                }
-                for (i=0, li=fields.length; i < li; i++) {
-                    selDOMobj = o.find(".ops > select[class='field"+i+"']")[0];
-                    if (selDOMobj) {
-                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
-                            valueindexmap[fields[i]]['ops'][selDOMobj.options[j].value] = j;
-                        }
-                    }
-                    selDOMobj = o.find(".data > select[class='field"+i+"']")[0];
-                    if (selDOMobj) {
-                        valueindexmap[fields[i]]['data'] = {}; // this setting is the flag that 'data' is contained in a SELECT
-                        for (j=0, lj=selDOMobj.options.length; j<lj; j++) {
-                            valueindexmap[fields[i]]['data'][selDOMobj.options[j].value] = j;
-                        }
-                    }
-                } // done populating valueindexmap
-
-                // preparsing the index values for SELECT elements.
-                var fieldvalue, fieldindex, opindex, datavalue, dataindex;
-                fieldvalue = filter['field'];
-				if (valueindexmap[fieldvalue]) {
-					fieldindex = valueindexmap[fieldvalue]['index'];
-				}
-                if (fieldindex != null) {
-                    opindex = valueindexmap[fieldvalue]['ops'][filter['op']];
-                    if(opindex === undefined) {
-                        for(i=0,li=options.operators.length; i<li;i++) {
-                            if(options.operators[i].op == filter.op ){
-                                opindex = i;
-                                break;
-                            }
-                        }
-                    }
-                    datavalue = filter['data'];
-                    if (valueindexmap[fieldvalue]['data'] == null) {
-                        dataindex = -1; // 'data' is not SELECT, Making the var 'defined'
-                    } else {
-                        dataindex = valueindexmap[fieldvalue]['data'][datavalue]; // 'undefined' may come from here.
-                    }
-                }
-                // only if values for 'field' and 'op' and 'data' are 'found' in mapping...
-                if (fieldindex != null && opindex != null && dataindex != null) {
-                    o.find("select[name='field']")[0].selectedIndex = fieldindex;
-                    o.find("select[name='field']").change();
-                    o.find("select[name='op']")[0].selectedIndex = opindex;
-                    o.find("input.vdata").val(datavalue); // if jquery does not find any INPUT, it does not set any. This means we deal with SELECT
-                    o = o.find("select.vdata")[0];
-                    if (o) {
-                        o.selectedIndex = dataindex;
-                    }
-					return true
-                } else {
-					return false
-				}
-            }; // end of this.setFilter fn
-        } // end of if fields != null
-    }
-    return new SearchFilter(this, fields, options);
-};
-
-jQuery.fn.searchFilter.version = '1.2.9';
-
-/* This property contains the default options */
-jQuery.fn.searchFilter.defaults = {
-
-    /*
-     * PROPERTY
-     * TYPE:        boolean 
-     * DESCRIPTION: clone a row if it is added from an existing row
-     *              when false, any new added rows will be blank.
-     */
-    clone: true,
-
-    /*
-     * PROPERTY
-     * TYPE:        boolean 
-     * DESCRIPTION: current version of datepicker uses a data store,
-     *              which is incompatible with $().clone(true)
-     */
-    datepickerFix: true,
-
-    /*
-     * FUNCTION
-     * DESCRIPTION: the function that will be called when the user clicks Reset
-     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
-     */
-    onReset: function(data) { alert("Reset Clicked. Data Returned: " + data) },
-
-    /*
-     * FUNCTION
-     * DESCRIPTION: the function that will be called when the user clicks Search
-     * INPUT TYPE:  JS object if stringResult is false, otherwise is JSON string
-     */
-    onSearch: function(data) { alert("Search Clicked. Data Returned: " + data) },
-
-    /*
-     * FUNCTION
-     * DESCRIPTION: the function that will be called when the user clicks the Closer icon
-     *              or the close() function is called
-     *              if left null, it simply does a .hide() on the searchFilter
-     * INPUT TYPE:  a jQuery object for the searchFilter
-     */
-    onClose: function(jElem) { jElem.hide(); },
-
-    /* 
-     * PROPERTY
-     * TYPE:        array of objects, each object has the properties op and text 
-     * DESCRIPTION: the selectable operators that are applied between rules
-     *              e.g. for {op:"AND", text:"all"}
-     *                  the search filter box will say: match all rules
-     *                  the server should interpret this as putting the AND op between each rule:
-     *                      rule1 AND rule2 AND rule3
-     *              text will be the option text, and op will be the option value
-     */
-    groupOps: [
-        { op: "AND", text: "all" },
-        { op: "OR",  text: "any" }
-    ],
-
-
-    /* 
-     * PROPERTY
-     * TYPE:        array of objects, each object has the properties op and text 
-     * DESCRIPTION: the operators that will appear as drop-down options
-     *              text will be the option text, and op will be the option value
-     */
-    operators: [
-        { op: "eq", text: "is equal to" },
-        { op: "ne", text: "is not equal to" },
-        { op: "lt", text: "is less than" },
-        { op: "le", text: "is less or equal to" },
-        { op: "gt", text: "is greater than" },
-        { op: "ge", text: "is greater or equal to" },
-        { op: "in", text: "is in" },
-        { op: "ni", text: "is not in" },
-        { op: "bw", text: "begins with" },
-        { op: "bn", text: "does not begin with" },
-        { op: "ew", text: "ends with" },
-        { op: "en", text: "does not end with" },
-        { op: "cn", text: "contains" },
-        { op: "nc", text: "does not contain" }
-    ],
-
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: part of the phrase: _match_ ANY/ALL rules
-     */
-    matchText: "match",
-
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: part of the phrase: match ANY/ALL _rules_
-     */
-    rulesText: "rules",
-
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: the text that will be displayed in the reset button
-     */
-    resetText: "Reset",
-    
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: the text that will be displayed in the search button
-     */
-    searchText: "Search",
-    
-    /*
-     * PROPERTY
-     * TYPE:        boolean
-     * DESCRIPTION: a flag that, when set, will make the onSearch and onReset return strings instead of objects
-     */
-    stringResult: true,    
-    
-    /*
-     * PROPERTY
-     * TYPE:        string
-     * DESCRIPTION: the title of the searchFilter window
-     */
-    windowTitle: "Search Rules",
-    /*
-     * PROPERTY
-     * TYPE:        object
-     * DESCRIPTION: options to extend the ajax request
-     */
-    ajaxSelectOptions : {}
-}; /* end of searchFilter */
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/jquery.searchFilter.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js	(nonexistent)
@@ -1,445 +0,0 @@
-;(function($) {
-/*
-**
- * jqGrid extension - Tree Grid
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-	setTreeNode : function(rd, row){
-		return this.each(function(){
-			var $t = this;
-			if( !$t.grid || !$t.p.treeGrid ) { return; }
-			var expCol = $t.p.expColInd;
-			var expanded = $t.p.treeReader.expanded_field;
-			var isLeaf = $t.p.treeReader.leaf_field;
-			var level = $t.p.treeReader.level_field;
-			row.level = rd[level];
-			
-			if($t.p.treeGridModel == 'nested') {
-				row.lft = rd[$t.p.treeReader.left_field];
-				row.rgt = rd[$t.p.treeReader.right_field];
-				if(!rd[isLeaf]) {
-				// NS Model
-					rd[isLeaf] = (parseInt(row.rgt,10) === parseInt(row.lft,10)+1) ? 'true' : 'false';
-				}
-			} else {
-				row.parent_id = rd[$t.p.treeReader.parent_id_field];
-			}
-			var curLevel = parseInt(row.level,10), ident,lftpos;
-			if($t.p.tree_root_level === 0) {
-				ident = curLevel+1;
-				lftpos = curLevel;
-			} else {
-				ident = curLevel;
-				lftpos = curLevel -1;
-			}
-			var twrap = "<div class='tree-wrap tree-wrap-"+$t.p.direction+"' style='width:"+(ident*18)+"px;'>";
-			twrap += "<div style='"+($t.p.direction=="rtl" ? "right:" : "left:")+(lftpos*18)+"px;' class='ui-icon ";
-
-			if(rd[isLeaf] == "true" || rd[isLeaf] === true) {
-				twrap += $t.p.treeIcons.leaf+" tree-leaf'";
-				row.isLeaf = true;
-			} else {
-				if(rd[expanded] == "true" || rd[expanded] === true) {
-					twrap += $t.p.treeIcons.minus+" tree-minus treeclick'";
-					row.expanded = true;
-				} else {
-					twrap += $t.p.treeIcons.plus+" tree-plus treeclick'";
-					row.expanded = false;
-				}
-				row.isLeaf = false;
-			}
-			twrap += "</div></div>";
-			if(parseInt(rd[level],10) !== parseInt($t.p.tree_root_level,10)) {                
-				if(!$($t).jqGrid("isVisibleNode",row)){ 
-					$(row).css("display","none");
-				}
-			}
-			$("td:eq("+expCol+")",row).wrapInner("<span></span>").prepend(twrap);
-			$(".treeclick",row).bind("click",function(e){
-				var target = e.target || e.srcElement;
-				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
-				if(!$t.rows[ind].isLeaf){
-					if($t.rows[ind].expanded){
-						$($t).jqGrid("collapseRow",$t.rows[ind]);
-						$($t).jqGrid("collapseNode",$t.rows[ind]);
-					} else {
-						$($t).jqGrid("expandRow",$t.rows[ind]);
-						$($t).jqGrid("expandNode",$t.rows[ind]);
-					}
-				}
-				return false;
-			});
-			if($t.p.ExpandColClick === true) {
-			$("span", row).css("cursor","pointer").bind("click",function(e){
-				var target = e.target || e.srcElement;
-				var ind =$(target,$t.rows).parents("tr.jqgrow")[0].rowIndex;
-				if(!$t.rows[ind].isLeaf){
-					if($t.rows[ind].expanded){
-						$($t).jqGrid("collapseRow",$t.rows[ind]);
-						$($t).jqGrid("collapseNode",$t.rows[ind]);
-					} else {
-						$($t).jqGrid("expandRow",$t.rows[ind]);
-						$($t).jqGrid("expandNode",$t.rows[ind]);
-					}
-				}
-				$($t).jqGrid("setSelection",$t.rows[ind].id);
-				return false;
-			});
-			}
-		});
-	},
-	setTreeGrid : function() {
-		return this.each(function (){
-			var $t = this, i=0, pico;
-			if(!$t.p.treeGrid) { return; }
-			if(!$t.p.treedatatype ) { $.extend($t.p,{treedatatype: $t.p.datatype}); }
-			$t.p.subGrid = false; $t.p.altRows =false;
-			$t.p.pgbuttons = false; $t.p.pginput = false;
-			$t.p.multiselect = false; $t.p.rowList = [];
-			pico = 'ui-icon-triangle-1-' + ($t.p.direction=="rtl" ? 'w' : 'e');
-			$t.p.treeIcons = $.extend({plus:pico,minus:'ui-icon-triangle-1-s',leaf:'ui-icon-radio-off'},$t.p.treeIcons || {});
-			if($t.p.treeGridModel == 'nested') {
-				$t.p.treeReader = $.extend({
-					level_field: "level",
-					left_field:"lft",
-					right_field: "rgt",
-					leaf_field: "isLeaf",
-					expanded_field: "expanded"
-				},$t.p.treeReader);
-			} else
-				if($t.p.treeGridModel == 'adjacency') {
-				$t.p.treeReader = $.extend({
-						level_field: "level",
-						parent_id_field: "parent",
-						leaf_field: "isLeaf",
-						expanded_field: "expanded"
-				},$t.p.treeReader );
-			}
-			for (var key in $t.p.colModel){
-				if($t.p.colModel.hasOwnProperty(key)) {
-					if($t.p.colModel[key].name == $t.p.ExpandColumn) {
-						$t.p.expColInd = i;
-						break;
-					}
-					i++;
-				}
-			}
-			if(!$t.p.expColInd) { $t.p.expColInd = 0; }
-			$.each($t.p.treeReader,function(i,n){
-				if(n){
-					$t.p.colNames.push(n);
-					$t.p.colModel.push({name:n,width:1,hidden:true,sortable:false,resizable:false,hidedlg:true,editable:true,search:false});
-				}
-			});			
-		});
-	},
-	expandRow: function (record){
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var childern = $($t).jqGrid("getNodeChildren",record);
-			//if ($($t).jqGrid("isVisibleNode",record)) {
-			$(childern).each(function(i){
-				$(this).css("display","");
-				if(this.expanded) {
-					$($t).jqGrid("expandRow",this);
-				}
-			});
-			//}
-		});
-	},
-	collapseRow : function (record) {
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var childern = $($t).jqGrid("getNodeChildren",record);
-			$(childern).each(function(i){
-				$(this).css("display","none");
-				if(this.expanded){
-					$($t).jqGrid("collapseRow",this);
-				}
-			});
-		});
-	},
-	// NS ,adjacency models
-	getRootNodes : function() {
-		var result = [];
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var level = $t.p.treeReader.level_field;
-					$($t.rows).each(function(i){
-						if(parseInt(this[level],10) === parseInt($t.p.tree_root_level,10)) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					$($t.rows).each(function(i){
-						if(this.parent_id === null || String(this.parent_id).toLowerCase() == "null") {
-							result.push(this);
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getNodeDepth : function(rc) {
-		var ret = null;
-		this.each(function(){
-			var $t = this;
-			if(!this.grid || !this.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					ret = parseInt(rc.level,10) - parseInt(this.p.tree_root_level,10);
-					break;
-				case 'adjacency' :
-					ret = $($t).jqGrid("getNodeAncestors",rc).length;
-					break;
-			}
-		});
-		return ret;
-	},
-	getNodeParent : function(rc) {
-		var result = null;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
-					$(this.rows).each(function(){
-						if(parseInt(this.level,10) === level-1 && parseInt(this.lft,10) < lft && parseInt(this.rgt,10) > rgt) {
-							result = this;
-							return false;
-						}
-					});
-					break;
-				case 'adjacency' :
-					$(this.rows).each(function(){
-						if(this.id == rc.parent_id ) {
-							result = this;
-							return false;
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getNodeChildren : function(rc) {
-		var result = [];
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
-					$(this.rows).each(function(i){
-						if(parseInt(this.level,10) === level+1 && parseInt(this.lft,10) > lft && parseInt(this.rgt,10) < rgt) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					$(this.rows).each(function(i){
-						if(this.parent_id == rc.id) {
-							result.push(this);
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},
-	getFullTreeNode : function(rc) {
-		var result = [];
-		this.each(function(){
-			var $t = this, len;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			switch ($t.p.treeGridModel) {
-				case 'nested' :
-					var lft = parseInt(rc.lft,10), rgt = parseInt(rc.rgt,10), level = parseInt(rc.level,10);
-					$(this.rows).each(function(i){
-						if(parseInt(this.level,10) >= level && parseInt(this.lft,10) >= lft && parseInt(this.lft,10) <= rgt) {
-							result.push(this);
-						}
-					});
-					break;
-				case 'adjacency' :
-					result.push(rc);
-					$(this.rows).each(function(i){
-						len = result.length;
-						for (i = 0; i < len; i++) {
-							if (result[i].id == this.parent_id) {
-								result.push(this);
-								break;
-							}
-						}
-					});
-					break;
-			}
-		});
-		return result;
-	},	
-	// End NS, adjacency Model
-	getNodeAncestors : function(rc) {
-		var ancestors = [];
-		this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			var parent = $(this).jqGrid("getNodeParent",rc);
-			while (parent) {
-				ancestors.push(parent);
-				parent = $(this).jqGrid("getNodeParent",parent);	
-			}
-		});
-		return ancestors;
-	},
-	isVisibleNode : function(rc) {
-		var result = true;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var ancestors = $($t).jqGrid("getNodeAncestors",rc);
-			$(ancestors).each(function(){
-				result = result && this.expanded;
-				if(!result) {return false;}
-			});
-		});
-		return result;
-	},
-	isNodeLoaded : function(rc) {
-		var result;
-		this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			if(rc.loaded !== undefined) {
-				result = rc.loaded;
-			} else if( rc.isLeaf || $($t).jqGrid("getNodeChildren",rc).length > 0){
-				result = true;
-			} else {
-				result = false;
-			}
-		});
-		return result;
-	},
-	expandNode : function(rc) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			if(!rc.expanded) {
-				if( $(this).jqGrid("isNodeLoaded",rc) ) {
-					rc.expanded = true;
-					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
-				} else {
-					rc.expanded = true;
-					$("div.treeclick",rc).removeClass(this.p.treeIcons.plus+" tree-plus").addClass(this.p.treeIcons.minus+" tree-minus");
-					this.p.treeANode = rc.rowIndex;
-					this.p.datatype = this.p.treedatatype;
-					if(this.p.treeGridModel == 'nested') {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,n_left:rc.lft,n_right:rc.rgt,n_level:rc.level}});
-					} else {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:rc.id,parentid:rc.parent_id,n_level:rc.level}});
-					}
-					$(this).trigger("reloadGrid");
-					if(this.p.treeGridModel == 'nested') {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:'',n_left:'',n_right:'',n_level:''}});
-					} else {
-						$(this).jqGrid("setGridParam",{postData:{nodeid:'',parentid:'',n_level:''}}); 
-					}
-				}
-			}
-		});
-	},
-	collapseNode : function(rc) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			if(rc.expanded) {
-				rc.expanded = false;
-				$("div.treeclick",rc).removeClass(this.p.treeIcons.minus+" tree-minus").addClass(this.p.treeIcons.plus+" tree-plus");
-			}
-		});
-	},
-	SortTree : function( newDir) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			var i, len,
-			rec, records = [], $t = this,
-			roots = $(this).jqGrid("getRootNodes");
-			// Sorting roots
-			roots.sort(function(a, b) {
-				if (a.sortKey < b.sortKey) {return -newDir;}
-				if (a.sortKey > b.sortKey) {return newDir;}
-				return 0;
-			});
-			if(roots[0]){
-				$("td",roots[0]).each( function( k ) {
-					$(this).css("width",$t.grid.headers[k].width+"px");
-				});
-				$t.grid.cols = roots[0].cells;
-			}
-			// Sorting children
-			for (i = 0, len = roots.length; i < len; i++) {
-				rec = roots[i];
-				records.push(rec);
-				$(this).jqGrid("collectChildrenSortTree",records, rec, newDir);
-			}
-			$.each(records, function(index, row) {
-				$('tbody',$t.grid.bDiv).append(row);
-				row.sortKey = null;
-			});
-		});
-	},
-	collectChildrenSortTree : function(records, rec, newDir) {
-		return this.each(function(){
-			if(!this.grid || !this.p.treeGrid) { return; }
-			var i, len,
-			child, 
-			children = $(this).jqGrid("getNodeChildren",rec);
-			children.sort(function(a, b) {
-				if (a.sortKey < b.sortKey) {return -newDir;}
-				if (a.sortKey > b.sortKey) {return newDir;}
-				return 0;
-			});
-			for (i = 0, len = children.length; i < len; i++) {
-				child = children[i];
-				records.push(child);
-				$(this).jqGrid("collectChildrenSortTree",records, child,newDir); 
-			}
-		});
-	},
-	// experimental 
-	setTreeRow : function(rowid, data) {
-		var nm, success=false;
-		this.each(function(){
-			var t = this;
-			if(!t.grid || !t.p.treeGrid) { return; }
-			success = $(t).jqGrid("setRowData",rowid,data);
-		});
-		return success;
-	},
-	delTreeNode : function (rowid) {
-		return this.each(function () {
-			var $t = this;
-			if(!$t.grid || !$t.p.treeGrid) { return; }
-			var rc = $($t).jqGrid("getInd",rowid,true);
-			if (rc) {
-				var dr = $($t).jqGrid("getNodeChildren",rc);
-				if(dr.length>0){
-					for (var i=0;i<dr.length;i++){
-						$($t).jqGrid("delRowData",dr[i].id);
-					}
-				}
-				$($t).jqGrid("delRowData",rc.id);
-			}
-		});
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.treegrid.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js	(nonexistent)
@@ -1,330 +0,0 @@
-/*
-	The below work is licensed under Creative Commons GNU LGPL License.
-
-	Original work:
-
-	License:     http://creativecommons.org/licenses/LGPL/2.1/
-	Author:      Stefan Goessner/2006
-	Web:         http://goessner.net/ 
-
-	Modifications made:
-
-	Version:     0.9-p5
-	Description: Restructured code, JSLint validated (no strict whitespaces),
-	             added handling of empty arrays, empty strings, and int/floats values.
-	Author:      Michael Schøler/2008-01-29
-	Web:         http://michael.hinnerup.net/blog/2008/01/26/converting-json-to-xml-and-xml-to-json/
-	
-	Description: json2xml added support to convert functions as CDATA
-	             so it will be easy to write characters that cause some problems when convert
-	Author:      Tony Tomov
-*/
-
-/*global alert */
-var xmlJsonClass = {
-	// Param "xml": Element or document DOM node.
-	// Param "tab": Tab or indent string for pretty output formatting omit or use empty string "" to supress.
-	// Returns:     JSON string
-	xml2json: function(xml, tab) {
-		if (xml.nodeType === 9) {
-			// document node
-			xml = xml.documentElement;
-		}
-		var nws = this.removeWhite(xml);
-		var obj = this.toObj(nws);
-		var json = this.toJson(obj, xml.nodeName, "\t");
-		return "{\n" + tab + (tab ? json.replace(/\t/g, tab) : json.replace(/\t|\n/g, "")) + "\n}";
-	},
-
-	// Param "o":   JavaScript object
-	// Param "tab": tab or indent string for pretty output formatting omit or use empty string "" to supress.
-	// Returns:     XML string
-	json2xml: function(o, tab) {
-		var toXml = function(v, name, ind) {
-			var xml = "";
-			var i, n;
-			if (v instanceof Array) {
-				if (v.length === 0) {
-					xml += ind + "<"+name+">__EMPTY_ARRAY_</"+name+">\n";
-				}
-				else {
-					for (i = 0, n = v.length; i < n; i += 1) {
-						var sXml = ind + toXml(v[i], name, ind+"\t") + "\n";
-						xml += sXml;
-					}
-				}
-			}
-			else if (typeof(v) === "object") {
-				var hasChild = false;
-				xml += ind + "<" + name;
-				var m;
-				for (m in v) if (v.hasOwnProperty(m)) {
-					if (m.charAt(0) === "@") {
-						xml += " " + m.substr(1) + "=\"" + v[m].toString() + "\"";
-					}
-					else {
-						hasChild = true;
-					}
-				}
-				xml += hasChild ? ">" : "/>";
-				if (hasChild) {
-					for (m in v) if (v.hasOwnProperty(m)) {
-						if (m === "#text") {
-							xml += v[m];
-						}
-						else if (m === "#cdata") {
-							xml += "<![CDATA[" + v[m] + "]]>";
-						}
-						else if (m.charAt(0) !== "@") {
-							xml += toXml(v[m], m, ind+"\t");
-						}
-					}
-					xml += (xml.charAt(xml.length - 1) === "\n" ? ind : "") + "</" + name + ">";
-				}
-			}
-			else if (typeof(v) === "function") {
-				xml += ind + "<" + name + ">" + "<![CDATA[" + v + "]]>" + "</" + name + ">";
-			}
-			else {
-				if (v.toString() === "\"\"" || v.toString().length === 0) {
-					xml += ind + "<" + name + ">__EMPTY_STRING_</" + name + ">";
-				} 
-				else {
-					xml += ind + "<" + name + ">" + v.toString() + "</" + name + ">";
-				}
-			}
-			return xml;
-		};
-		var xml = "";
-		var m;
-		for (m in o) if (o.hasOwnProperty(m)) {
-			xml += toXml(o[m], m, "");
-		}
-		return tab ? xml.replace(/\t/g, tab) : xml.replace(/\t|\n/g, "");
-	},
-	// Internal methods
-	toObj: function(xml) {
-		var o = {};
-		var FuncTest = /function/i;
-		if (xml.nodeType === 1) {
-			// element node ..
-			if (xml.attributes.length) {
-				// element with attributes ..
-				var i;
-				for (i = 0; i < xml.attributes.length; i += 1) {
-					o["@" + xml.attributes[i].nodeName] = (xml.attributes[i].nodeValue || "").toString();
-				}
-			}
-			if (xml.firstChild) {
-				// element has child nodes ..
-				var textChild = 0, cdataChild = 0, hasElementChild = false;
-				var n;
-				for (n = xml.firstChild; n; n = n.nextSibling) {
-					if (n.nodeType === 1) {
-						hasElementChild = true;
-					}
-					else if (n.nodeType === 3 && n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
-						// non-whitespace text
-						textChild += 1;
-					}
-					else if (n.nodeType === 4) {
-						// cdata section node
-						cdataChild += 1;
-					}
-				}
-				if (hasElementChild) {
-					if (textChild < 2 && cdataChild < 2) {
-						// structured element with evtl. a single text or/and cdata node ..
-						this.removeWhite(xml);
-						for (n = xml.firstChild; n; n = n.nextSibling) {
-							if (n.nodeType === 3) {
-								// text node
-								o["#text"] = this.escape(n.nodeValue);
-							}
-							else if (n.nodeType === 4) {
-								// cdata node
-								if (FuncTest.test(n.nodeValue)) {
-									o[n.nodeName] = [o[n.nodeName], n.nodeValue];
-								} else {
-									o["#cdata"] = this.escape(n.nodeValue);
-								}
-							}
-							else if (o[n.nodeName]) {
-								// multiple occurence of element ..
-								if (o[n.nodeName] instanceof Array) {
-									o[n.nodeName][o[n.nodeName].length] = this.toObj(n);
-								}
-								else {
-									o[n.nodeName] = [o[n.nodeName], this.toObj(n)];
-								}
-							}
-							else {
-								// first occurence of element ..
-								o[n.nodeName] = this.toObj(n);
-							}
-						}
-					}
-					else {
-						// mixed content
-						if (!xml.attributes.length) {
-							o = this.escape(this.innerXml(xml));
-						}
-						else {
-							o["#text"] = this.escape(this.innerXml(xml));
-						}
-					}
-				}
-				else if (textChild) {
-					// pure text
-					if (!xml.attributes.length) {
-						o = this.escape(this.innerXml(xml));
-						if (o === "__EMPTY_ARRAY_") {
-							o = "[]";
-						} else if (o === "__EMPTY_STRING_") {
-							o = "";
-						}
-					}
-					else {
-						o["#text"] = this.escape(this.innerXml(xml));
-					}
-				}
-				else if (cdataChild) {
-					// cdata
-					if (cdataChild > 1) {
-						o = this.escape(this.innerXml(xml));
-					}
-					else {
-						for (n = xml.firstChild; n; n = n.nextSibling) {
-							if(FuncTest.test(xml.firstChild.nodeValue)) {
-								o = xml.firstChild.nodeValue;
-								break;
-							} else {
-								o["#cdata"] = this.escape(n.nodeValue);
-							}
-						}
-					}
-				}
-			}
-			if (!xml.attributes.length && !xml.firstChild) {
-				o = null;
-			}
-		}
-		else if (xml.nodeType === 9) {
-			// document.node
-			o = this.toObj(xml.documentElement);
-		}
-		else {
-			alert("unhandled node type: " + xml.nodeType);
-		}
-		return o;
-	},
-	toJson: function(o, name, ind) {
-		var json = name ? ("\"" + name + "\"") : "";
-		if (o === "[]") {
-			json += (name ? ":[]" : "[]");
-		}
-		else if (o instanceof Array) {
-			var n, i, ar=[];
-			for (i = 0, n = o.length; i < n; i += 1) {
-				ar[i] = this.toJson(o[i], "", ind + "\t");
-			}
-			json += (name ? ":[" : "[") + (ar.length > 1 ? ("\n" + ind + "\t" + ar.join(",\n" + ind + "\t") + "\n" + ind) : ar.join("")) + "]";
-		}
-		else if (o === null) {
-			json += (name && ":") + "null";
-		}
-		else if (typeof(o) === "object") {
-			var arr = [];
-			var m;
-			for (m in o) if (o.hasOwnProperty(m)) {
-				arr[arr.length] = this.toJson(o[m], m, ind + "\t");
-			}
-			json += (name ? ":{" : "{") + (arr.length > 1 ? ("\n" + ind + "\t" + arr.join(",\n" + ind + "\t") + "\n" + ind) : arr.join("")) + "}";
-		}
-		else if (typeof(o) === "string") {
-			var objRegExp  = /(^-?\d+\.?\d*$)/;
-			var FuncTest = /function/i;
-			var os = o.toString();
-			if (objRegExp.test(os) || FuncTest.test(os) || os==="false" || os==="true") {
-				// int or float
-				json += (name && ":") + os;
-			} 
-			else {
-				json += (name && ":") + "\"" + o + "\"";
-			}
-		}
-		else {
-			json += (name && ":") + o.toString();
-		}
-		return json;
-	},
-	innerXml: function(node) {
-		var s = "";
-		if ("innerHTML" in node) {
-			s = node.innerHTML;
-		}
-		else {
-			var asXml = function(n) {
-				var s = "", i;
-				if (n.nodeType === 1) {
-					s += "<" + n.nodeName;
-					for (i = 0; i < n.attributes.length; i += 1) {
-						s += " " + n.attributes[i].nodeName + "=\"" + (n.attributes[i].nodeValue || "").toString() + "\"";
-					}
-					if (n.firstChild) {
-						s += ">";
-						for (var c = n.firstChild; c; c = c.nextSibling) {
-							s += asXml(c);
-						}
-						s += "</" + n.nodeName + ">";
-					}
-					else {
-						s += "/>";
-					}
-				}
-				else if (n.nodeType === 3) {
-					s += n.nodeValue;
-				}
-				else if (n.nodeType === 4) {
-					s += "<![CDATA[" + n.nodeValue + "]]>";
-				}
-				return s;
-			};
-			for (var c = node.firstChild; c; c = c.nextSibling) {
-				s += asXml(c);
-			}
-		}
-		return s;
-	},
-	escape: function(txt) {
-		return txt.replace(/[\\]/g, "\\\\").replace(/[\"]/g, '\\"').replace(/[\n]/g, '\\n').replace(/[\r]/g, '\\r');
-	},
-	removeWhite: function(e) {
-		e.normalize();
-		var n;
-		for (n = e.firstChild; n; ) {
-			if (n.nodeType === 3) {
-				// text node
-				if (!n.nodeValue.match(/[^ \f\n\r\t\v]/)) {
-					// pure whitespace text node
-					var nxt = n.nextSibling;
-					e.removeChild(n);
-					n = nxt;
-				}
-				else {
-					n = n.nextSibling;
-				}
-			}
-			else if (n.nodeType === 1) {
-				// element node
-				this.removeWhite(n);
-				n = n.nextSibling;
-			}
-			else {
-				// any other node
-				n = n.nextSibling;
-			}
-		}
-		return e;
-	}
-};
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/JsonXml.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js	(nonexistent)
@@ -1,47 +0,0 @@
-// This file should be used if you want to debug
-function jqGridInclude()
-{
-    var pathtojsfiles = "js/"; // need to be ajusted
-    // set include to false if you do not want some modules to be included
-    var modules = [
-        { include: true, incfile:'i18n/grid.locale-en.js'}, // jqGrid translation
-        { include: true, incfile:'grid.base.js'}, // jqGrid base
-        { include: true, incfile:'grid.common.js'}, // jqGrid common for editing
-        { include: true, incfile:'grid.formedit.js'}, // jqGrid Form editing
-        { include: true, incfile:'grid.inlinedit.js'}, // jqGrid inline editing
-        { include: true, incfile:'grid.celledit.js'}, // jqGrid cell editing
-        { include: true, incfile:'grid.subgrid.js'}, //jqGrid subgrid
-        { include: true, incfile:'grid.treegrid.js'}, //jqGrid treegrid
-        { include: true, incfile:'grid.custom.js'}, //jqGrid custom 
-        { include: true, incfile:'grid.postext.js'}, //jqGrid postext
-        { include: true, incfile:'grid.tbltogrid.js'}, //jqGrid table to grid 
-        { include: true, incfile:'grid.setcolumns.js'}, //jqGrid setcolumns
-        { include: true, incfile:'grid.import.js'}, //jqGrid import
-        { include: true, incfile:'jquery.fmatter.js'}, //jqGrid formater
-        { include: true, incfile:'JsonXml.js'}, //xmljson utils
-        { include: true, incfile:'jquery.searchFilter.js'} // search Plugin
-    ];
-    var filename;
-    for(var i=0;i<modules.length; i++)
-    {
-        if(modules[i].include === true) {
-        	
-        	filename = pathtojsfiles+modules[i].incfile;
-       		if(jQuery.browser.safari) {
-       			jQuery.ajax({url:filename,dataType:'script', async:false, cache: true});
-       		} else {
-       			IncludeJavaScript(filename);
-       		}
-        }
-    }
-    function IncludeJavaScript(jsFile)
-    {
-        var oHead = document.getElementsByTagName('head')[0];
-        var oScript = document.createElement('script');
-        oScript.type = 'text/javascript';
-        oScript.charset = 'utf-8';
-        oScript.src = jsFile;
-        oHead.appendChild(oScript);        
-    };
-};
-jqGridInclude();
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.loader.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js	(nonexistent)
@@ -1,64 +0,0 @@
-;(function($){
-/**
- * jqGrid extension
- * Paul Tiseo ptiseo@wasteconsultants.com
- * 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-	getPostData : function(){
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.postData;
-	},
-	setPostData : function( newdata ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		// check if newdata is correct type
-		if ( typeof(newdata) === 'object' ) {
-			$t.p.postData = newdata;
-		}
-		else {
-			alert("Error: cannot add a non-object postData value. postData unchanged.");
-		}
-	},
-	appendPostData : function( newdata ) { 
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		// check if newdata is correct type
-		if ( typeof(newdata) === 'object' ) {
-			$.extend($t.p.postData, newdata);
-		}
-		else {
-			alert("Error: cannot append a non-object postData value. postData unchanged.");
-		}
-	},
-	setPostDataItem : function( key, val ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		$t.p.postData[key] = val;
-	},
-	getPostDataItem : function( key ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.postData[key];
-	},
-	removePostDataItem : function( key ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		delete $t.p.postData[key];
-	},
-	getUserData : function(){
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.userData;
-	},
-	getUserDataItem : function( key ) {
-		var $t = this[0];
-		if(!$t.grid) { return; }
-		return $t.p.userData[key];
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.postext.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js	(nonexistent)
@@ -1,1869 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for form editing Grid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/
-var rp_ge = null;
-$.jgrid.extend({
-	searchGrid : function (p) {
-		p = $.extend({
-			recreateFilter: false,
-			drag: true,
-			sField:'searchField',
-			sValue:'searchString',
-			sOper: 'searchOper',
-			sFilter: 'filters',
-            loadDefaults: true, // this options activates loading of default filters from grid's postData for Multipe Search only.
-			beforeShowSearch: null,
-			afterShowSearch : null,
-			onInitializeSearch: null,
-			closeAfterSearch : false,
-			closeAfterReset: false,
-			closeOnEscape : false,
-			multipleSearch : false,
-			cloneSearchRowOnAdd: true,
-			// translation
-			// if you want to change or remove the order change it in sopt
-			// ['bw','eq','ne','lt','le','gt','ge','ew','cn']
-			sopt: null,
-			// Note: stringResult is intentionally declared "undefined by default".
-			//  you are velcome to define stringResult expressly in the options you pass to searchGrid()
-			//  stringResult is a "safeguard" measure to insure we post sensible data when communicated as form-encoded
-			//  see http://github.com/tonytomov/jqGrid/issues/#issue/36
-			//
-			//  If this value is not expressly defined in the incoming options,
-			// lower in the code we will infer the value based on value of multipleSearch
-			stringResult: undefined,
-			onClose : null,
-			// useDataProxy allows ADD, EDIT and DEL code to bypass calling $.ajax
-			// directly when grid's 'dataProxy' property (grid.p.dataProxy) is a function.
-			// Used for "editGridRow" and "delGridRow" below and automatically flipped to TRUE
-			// when ajax setting's 'url' (grid's 'editurl') property is undefined.
-			// When 'useDataProxy' is true, instead of calling $.ajax.call(gridDOMobj, o, i) we call
-			// gridDOMobj.p.dataProxy.call(gridDOMobj, o, i)
-			//
-			// Behavior is extremely similar to when 'datatype' is a function, but arguments are slightly different.
-			// Normally the following is fed to datatype.call(a, b, c):
-			//   a = Pointer to grid's table DOM element, b = grid.p.postdata, c = "load_"+grid's ID
-			// In cases of "edit" and "del" the following is fed:
-			//   a = Pointer to grid's table DOM element (same),
-			//   b = extended Ajax Options including postdata in "data" property. (different object type)
-			//   c = "set_"+grid's ID in case of "edit" and "del_"+grid's ID in case of "del" (same type, different content)
-			// The major difference is that complete ajax options object, with attached "complete" and "error"
-			// callback functions is fed instead of only post data.
-			// This allows you to emulate a $.ajax call (including calling "complete"/"error"),
-			// while retrieving the data locally in the browser.
-			useDataProxy: false,
-			overlay : true
-		}, $.jgrid.search, p || {});
-		return this.each(function() {
-			var $t = this;
-			if(!$t.grid) {return;}
-            function applyDefaultFilters(gridDOMobj, filterSettings) {
-				/*
-                gridDOMobj = ointer to grid DOM object ( $(#list)[0] )
-                What we need from gridDOMobj:
-                gridDOMobj.SearchFilter is the pointer to the Search box, once it's created.
-                gridDOMobj.p.postData - dictionary of post settings. These can be overriden at grid creation to
-                contain default filter settings. We will parse these and will populate the search with defaults.
-                filterSettings - same settings object you (would) pass to $().jqGrid('searchGrid', filterSettings);
-                */
-
-                // Pulling default filter settings out of postData property of grid's properties.:
-                var defaultFilters = gridDOMobj.p.postData[filterSettings.sFilter];
-                // example of what we might get: {"groupOp":"and","rules":[{"field":"amount","op":"eq","data":"100"}]}
-				// suppose we have imported this with grid import, the this is a string.
-				if(typeof(defaultFilters) == "string") {
-					defaultFilters = $.jgrid.parse(defaultFilters);
-				}
-                if (defaultFilters) {
-                    if (defaultFilters.groupOp) {
-                        gridDOMobj.SearchFilter.setGroupOp(defaultFilters.groupOp);
-                    }
-                    if (defaultFilters.rules) {
-                        var f
-							, i = 0
-							, li = defaultFilters.rules.length
-							, success = false;
-                        for (; i < li; i++) {
-                            f = defaultFilters.rules[i];
-                            // we are not trying to counter all issues with filter declaration here. Just the basics to avoid lookup exceptions.
-                            if (f.field !== undefined && f.op !== undefined && f.data !== undefined) {
-                                success = gridDOMobj.SearchFilter.setFilter({
-                                    'sfref':gridDOMobj.SearchFilter.$.find(".sf:last"),
-                                    'filter':$.extend({},f)
-                                });
-								if (success) { gridDOMobj.SearchFilter.add(); }
-                            }
-                        }
-                    }
-				}
-            } // end of applyDefaultFilters
-			
-			if($.fn.searchFilter) {
-				var fid = "fbox_"+$t.p.id;
-				if(p.recreateFilter===true) {$("#"+fid).remove();}
-				if( $("#"+fid).html() != null ) {
-					if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
-					showFilter();
-					if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
-				} else {
-					var fields = [],
-					colNames = $("#"+$t.p.id).jqGrid("getGridParam","colNames"),
-					colModel = $("#"+$t.p.id).jqGrid("getGridParam","colModel"),
-					stempl = ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc'],
-					j,pos,k,oprtr=[];
-					if (p.sopt !==null) {
-						k=0;
-						for(j=0;j<p.sopt.length;j++) {
-							if( (pos= $.inArray(p.sopt[j],stempl)) != -1 ){
-								oprtr[k] = {op:p.sopt[j],text: p.odata[pos]};
-								k++;
-							}
-						}
-					} else {
-						for(j=0;j<stempl.length;j++) {
-							oprtr[j] = {op:stempl[j],text: p.odata[j]};
-						}
-					}
-					var searchable;
-				    $.each(colModel, function(i, v) {
-				        var searchable = (typeof v.search === 'undefined') ?  true: v.search ,
-				        hidden = (v.hidden === true),
-						soptions = $.extend({}, {text: colNames[i], itemval: v.index || v.name}, this.searchoptions),
-						ignoreHiding = (soptions.searchhidden === true);
-						if(typeof soptions.sopt !== 'undefined') { 
-							k=0;
-							soptions.ops =[];
-							if(soptions.sopt.length>0) {
-								for(j=0;j<soptions.sopt.length;j++) {
-									if( (pos= $.inArray(soptions.sopt[j],stempl)) != -1 ){
-										soptions.ops[k] = {op:soptions.sopt[j],text: p.odata[pos]};
-										k++;
-									}
-								}
-							}
-						}
-						if(typeof(this.stype) === 'undefined') { this.stype='text'; }
-						if(this.stype == 'select') {
-							if ( soptions.dataUrl !== undefined) {}
-							else {
-								var eov;
-								if(soptions.value) {
-									eov = soptions.value;
-								} else if(this.editoptions) {
-									eov = this.editoptions.value;
-								}
-								if(eov) {
-									soptions.dataValues =[];
-									if(typeof(eov) === 'string') {
-										var so = eov.split(";"),sv;
-										for(j=0;j<so.length;j++) {
-											sv = so[j].split(":");
-											soptions.dataValues[j] ={value:sv[0],text:sv[1]};
-										}
-									} else if (typeof(eov) === 'object') {
-										j=0;
-										for (var key in eov) {
-											if(eov.hasOwnProperty(key)) {
-												soptions.dataValues[j] ={value:key,text:eov[key]};
-												j++;
-											}
-										}
-									}
-								}
-							}
-						}
-				        if ((ignoreHiding && searchable) || (searchable && !hidden)) {
-							fields.push(soptions);
-						}
-					});
-					if(fields.length>0){
-						$("<div id='"+fid+"' role='dialog' tabindex='-1'></div>").insertBefore("#gview_"+$t.p.id);
-						// Before we create searchFilter we need to decide if we want to get back a string or a JS object.
-						//  see http://github.com/tonytomov/jqGrid/issues/#issue/36 for background on the issue.
-						// If p.stringResult is defined, it was explisitly passed to us by user. Honor the choice, whatever it is.
-						if (p.stringResult===undefined) {
-							// to provide backward compatibility, inferring stringResult value from multipleSearch
-							p.stringResult = p.multipleSearch;
-						}
-						// we preserve the return value here to retain access to .add() and other good methods of search form.
-						$t.SearchFilter = $("#"+fid).searchFilter(fields, { groupOps: p.groupOps, operators: oprtr, onClose:hideFilter, resetText: p.Reset, searchText: p.Find, windowTitle: p.caption,  rulesText:p.rulesText, matchText:p.matchText, onSearch: searchFilters, onReset: resetFilters,stringResult:p.stringResult, ajaxSelectOptions: $.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions ||{}), clone: p.cloneSearchRowOnAdd });
-						$(".ui-widget-overlay","#"+fid).remove();
-						if($t.p.direction=="rtl") { $(".ui-closer","#"+fid).css("float","left"); }
-						if (p.drag===true) {
-							$("#"+fid+" table thead tr:first td:first").css('cursor','move');
-							if(jQuery.fn.jqDrag) {
-								$("#"+fid).jqDrag($("#"+fid+" table thead tr:first td:first"));
-							} else {
-								try {
-									$("#"+fid).draggable({handle: $("#"+fid+" table thead tr:first td:first")});
-								} catch (e) {}
-							}
-						}
-						if(p.multipleSearch === false) {
-							$(".ui-del, .ui-add, .ui-del, .ui-add-last, .matchText, .rulesText", "#"+fid).hide();
-							$("select[name='groupOp']","#"+fid).hide();
-						}
-                        if (p.multipleSearch === true && p.loadDefaults === true) {
-                            applyDefaultFilters($t, p);
-                        }
-						if ( $.isFunction(p.onInitializeSearch) ) { p.onInitializeSearch( $("#"+fid) ); }
-						if ( $.isFunction(p.beforeShowSearch) ) { p.beforeShowSearch($("#"+fid)); }
-						showFilter();
-						if( $.isFunction(p.afterShowSearch) ) { p.afterShowSearch($("#"+fid)); }
-						if(p.closeOnEscape===true){
-							$("#"+fid).keydown( function( e ) {
-								if( e.which == 27 ) {
-									hideFilter($("#"+fid));
-								}
-							});
-						}
-					}
-				}
-			}
-			function searchFilters(filters) {
-				var hasFilters = (filters !== undefined),
-				grid = $("#"+$t.p.id), sdata={};
-				if(p.multipleSearch===false) {
-					sdata[p.sField] = filters.rules[0].field;
-					sdata[p.sValue] = filters.rules[0].data;
-					sdata[p.sOper] = filters.rules[0].op;
-				} else {
-					sdata[p.sFilter] = filters;
-				}
-				grid[0].p.search = hasFilters;
-				$.extend(grid[0].p.postData,sdata);
-				grid.trigger("reloadGrid",[{page:1}]);
-				if(p.closeAfterSearch) { hideFilter($("#"+fid)); }
-			}
-			function resetFilters(filters) {
-				var hasFilters = (filters !== undefined),
-				grid = $("#"+$t.p.id), sdata=[];
-				grid[0].p.search = hasFilters;
-				if(p.multipleSearch===false) {
-					sdata[p.sField] = sdata[p.sValue] = sdata[p.sOper] = "";
-				} else {
-					sdata[p.sFilter] = "";
-				}
-				$.extend(grid[0].p.postData,sdata);
-				grid.trigger("reloadGrid",[{page:1}]);
-				if(p.closeAfterReset) { hideFilter($("#"+fid)); }
-			}
-			function hideFilter(selector) {
-				if(p.onClose){
-					var fclm = p.onClose(selector);
-					if(typeof fclm == 'boolean' && !fclm) { return; }
-				}
-				selector.hide();
-				if(p.overlay === true) {
-					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).hide();
-				}
-			}
-			function showFilter(){
-				var fl = $(".ui-searchFilter").length;
-				if(fl > 1) {
-					var zI = $("#"+fid).css("zIndex");
-					$("#"+fid).css({zIndex:parseInt(zI,10)+fl});
-				}
-				$("#"+fid).show();
-				if(p.overlay === true) {
-					$(".jqgrid-overlay:first","#gbox_"+$t.p.id).show();
-				}
-				try{$(':input:visible',"#"+fid)[0].focus();}catch(_){}
-			}
-		});
-	},
-	editGridRow : function(rowid, p){
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 300,
-			height: 'auto',
-			dataheight: 'auto',
-			modal: false,
-			drag: true,
-			resize: true,
-			url: null,
-			mtype : "POST",
-			clearAfterAdd :true,
-			closeAfterEdit : false,
-			reloadAfterSubmit : true,
-			onInitializeForm: null,
-			beforeInitData: null,
-			beforeShowForm: null,
-			afterShowForm: null,
-			beforeSubmit: null,
-			afterSubmit: null,
-			onclickSubmit: null,
-			afterComplete: null,
-			onclickPgButtons : null,
-			afterclickPgButtons: null,
-			editData : {},
-			recreateForm : false,
-			jqModal : true,
-			closeOnEscape : false,
-			addedrow : "first",
-			topinfo : '',
-			bottominfo: '',
-			saveicon : [],
-			closeicon : [],
-			savekey: [false,13],
-			navkeys: [false,38,40],
-			checkOnSubmit : false,
-			checkOnUpdate : false,
-			_savedData : {},
-			processing : false,
-			onClose : null,
-			ajaxEditOptions : {},
-			serializeEditData : null,
-			viewPagerButtons : true
-		}, $.jgrid.edit, p || {});
-		rp_ge = p;
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid || !rowid) { return; }
-			var gID = $t.p.id,
-			frmgr = "FrmGrid_"+gID,frmtb = "TblGrid_"+gID,
-			IDs = {themodal:'editmod'+gID,modalhead:'edithd'+gID,modalcontent:'editcnt'+gID, scrollelm : frmgr},
-			onBeforeShow = $.isFunction(rp_ge.beforeShowForm) ? rp_ge.beforeShowForm : false,
-			onAfterShow = $.isFunction(rp_ge.afterShowForm) ? rp_ge.afterShowForm : false,
-			onBeforeInit = $.isFunction(rp_ge.beforeInitData) ? rp_ge.beforeInitData : false,
-			onInitializeForm = $.isFunction(rp_ge.onInitializeForm) ? rp_ge.onInitializeForm : false,
-			copydata = null,
-			maxCols = 1, maxRows=0,	gurl, postdata, ret, extpost, newData, diff;
-			if (rowid=="new") {
-				rowid = "_empty";
-				p.caption=p.addCaption;
-			} else {
-				p.caption=p.editCaption;
-			}
-			if(p.recreateForm===true && $("#"+IDs.themodal).html() != null) {
-				$("#"+IDs.themodal).remove();
-			}
-			var closeovrl = true;
-			if(p.checkOnUpdate && p.jqModal && !p.modal) {
-				closeovrl = false;
-			}
-			if ( $("#"+IDs.themodal).html() != null ) {
-				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
-				$("#FormError","#"+frmtb).hide();
-				if(rp_ge.topinfo) {
-					$(".topinfo","#"+frmtb+"_2").html(rp_ge.topinfo);
-					$(".tinfo","#"+frmtb+"_2").show();
-				} else {
-					$(".tinfo","#"+frmtb+"_2").hide();
-				}
-				if(rp_ge.bottominfo) {
-					$(".bottominfo","#"+frmtb+"_2").html(rp_ge.bottominfo);
-					$(".binfo","#"+frmtb+"_2").show();
-				} else {
-					$(".binfo","#"+frmtb+"_2").hide();
-				}
-				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
-				// filldata
-				fillData(rowid,$t,frmgr);
-				///
-				if(rowid=="_empty" || !rp_ge.viewPagerButtons) {
-					$("#pData, #nData","#"+frmtb+"_2").hide();
-				} else { 
-					$("#pData, #nData","#"+frmtb+"_2").show();
-				}
-				if(rp_ge.processing===true) {
-					rp_ge.processing=false;
-					$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
-				}
-				if($("#"+frmgr).data("disabled")===true) {
-					$(".confirm","#"+IDs.themodal).hide();
-					$("#"+frmgr).data("disabled",false);
-				}
-				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
-				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, closeoverlay: closeovrl, modal:p.modal});
-				if(!closeovrl) {
-					$(".jqmOverlay").click(function(){
-						if(!checkUpdates()) { return false; }
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
-			} else {
-				$($t.p.colModel).each( function(i) {
-					var fmto = this.formoptions;
-					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
-					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
-				});
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' onSubmit='return false;' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>").data("disabled",false),
-				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
-				$(frm).append(tbl);
-				flr = $("<tr id='FormError' style='display:none'><td class='ui-state-error' colspan='"+(maxCols*2)+"'></td></tr>");
-				flr[0].rp = 0;
-				$(tbl).append(flr);
-				//topinfo
-				flr = $("<tr style='display:none' class='tinfo'><td class='topinfo' colspan='"+(maxCols*2)+"'>"+rp_ge.topinfo+"</td></tr>");
-				flr[0].rp = 0;
-				$(tbl).append(flr);
-				// set the id.
-				// use carefull only to change here colproperties.
-				if(onBeforeInit) { onBeforeInit($("#"+frmgr)); }
-				// create data
-				var rtlb = $t.p.direction == "rtl" ? true :false,
-				bp = rtlb ? "nData" : "pData",
-				bn = rtlb ? "pData" : "nData",
-				valref = createData(rowid,$t,tbl,maxCols),
-				// buttons at footer
-				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
-				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
-				bS  ="<a href='javascript:void(0)' id='sData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
-				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
-				var bt = "<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bS+bC+"</td></tr>";
-				bt += "<tr style='display:none' class='binfo'><td class='bottominfo' colspan='2'>"+rp_ge.bottominfo+"</td></tr>";
-				bt += "</tbody></table>";
-				if(maxRows >  0) {
-					var sd=[];
-					$.each($(tbl)[0].rows,function(i,r){
-						sd[i] = r;
-					});
-					sd.sort(function(a,b){
-						if(a.rp > b.rp) {return 1;}
-						if(a.rp < b.rp) {return -1;}
-						return 0;
-					});
-					$.each(sd, function(index, row) {
-						$('tbody',tbl).append(row);
-					});
-				}
-				p.gbox = "#gbox_"+gID;
-				var cle = false;
-				if(p.closeOnEscape===true){
-					p.closeOnEscape = false;
-					cle = true;
-				}
-				var tms = $("<span></span>").append(frm).append(bt);
-				createModal(IDs,tms,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				if(rtlb) {
-					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
-					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
-				}
-				if(rp_ge.topinfo) { $(".tinfo","#"+frmtb+"_2").show(); }
-				if(rp_ge.bottominfo) { $(".binfo","#"+frmtb+"_2").show(); } 
-				tms = null; bt=null;
-				$("#"+IDs.themodal).keydown( function( e ) {
-					var wkey = e.target;
-					if ($("#"+frmgr).data("disabled")===true ) { return false; }//??
-					if(rp_ge.savekey[0] === true && e.which == rp_ge.savekey[1]) { // save
-						if(wkey.tagName != "TEXTAREA") {
-							$("#sData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-					}
-					if(e.which === 27) {
-						if(!checkUpdates()) { return false; }
-						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: rp_ge.onClose}); }
-						return false;
-					}
-					if(rp_ge.navkeys[0]===true) {
-						if($("#id_g","#"+frmtb).val() == "_empty") { return true; }
-						if(e.which == rp_ge.navkeys[1]){ //up
-							$("#pData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-						if(e.which == rp_ge.navkeys[2]){ //down
-							$("#nData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-					}
-				});
-				if(p.checkOnUpdate) {
-					$("a.ui-jqdialog-titlebar-close span","#"+IDs.themodal).removeClass("jqmClose");
-					$("a.ui-jqdialog-titlebar-close","#"+IDs.themodal).unbind("click")
-					.click(function(){
-						if(!checkUpdates()) { return false; }
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				p.saveicon = $.extend([true,"left","ui-icon-disk"],p.saveicon);
-				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
-				// beforeinitdata after creation of the form
-				if(p.saveicon[0]===true) {
-					$("#sData","#"+frmtb+"_2").addClass(p.saveicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.saveicon[2]+"'></span>");
-				}
-				if(p.closeicon[0]===true) {
-					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
-				}
-				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
-					bS  ="<a href='javascript:void(0)' id='sNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bYes+"</a>";
-					bN  ="<a href='javascript:void(0)' id='nNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bNo+"</a>";
-					bC  ="<a href='javascript:void(0)' id='cNew' class='fm-button ui-state-default ui-corner-all' style='z-index:1002'>"+p.bExit+"</a>";
-					var ii, zI = p.zIndex  || 999; zI ++;
-					if ($.browser.msie && $.browser.version ==6) {
-						ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
-					} else { ii="";}
-					$("<div class='ui-widget-overlay jqgrid-overlay confirm' style='z-index:"+zI+";display:none;'>&#160;"+ii+"</div><div class='confirm ui-widget-content ui-jqconfirm' style='z-index:"+(zI+1)+"'>"+p.saveData+"<br/><br/>"+bS+bN+bC+"</div>").insertAfter("#"+frmgr);
-					$("#sNew","#"+IDs.themodal).click(function(){
-						postIt();
-						$("#"+frmgr).data("disabled",false);
-						$(".confirm","#"+IDs.themodal).hide();
-						return false;
-					});
-					$("#nNew","#"+IDs.themodal).click(function(){
-						$(".confirm","#"+IDs.themodal).hide();
-						$("#"+frmgr).data("disabled",false);
-						setTimeout(function(){$(":input","#"+frmgr)[0].focus();},0);
-						return false;
-					});
-					$("#cNew","#"+IDs.themodal).click(function(){
-						$(".confirm","#"+IDs.themodal).hide();
-						$("#"+frmgr).data("disabled",false);
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				// here initform - only once
-				if(onInitializeForm) { onInitializeForm($("#"+frmgr)); }
-				if(rowid=="_empty" || !rp_ge.viewPagerButtons) { $("#pData,#nData","#"+frmtb+"_2").hide(); } else { $("#pData,#nData","#"+frmtb+"_2").show(); }
-				if(onBeforeShow) { onBeforeShow($("#"+frmgr)); }
-				$("#"+IDs.themodal).data("onClose",rp_ge.onClose);
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,closeoverlay:closeovrl,modal:p.modal});
-				if(!closeovrl) {
-					$(".jqmOverlay").click(function(){
-						if(!checkUpdates()) { return false; }
-						hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
-						return false;
-					});
-				}
-				if(onAfterShow) { onAfterShow($("#"+frmgr)); }
-				$(".fm-button","#"+IDs.themodal).hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);
-				$("#sData", "#"+frmtb+"_2").click(function(e){
-					postdata = {}; extpost={};
-					$("#FormError","#"+frmtb).hide();
-					// all depend on ret array
-					//ret[0] - succes
-					//ret[1] - msg if not succes
-					//ret[2] - the id  that will be set if reload after submit false
-					getFormData();
-					if(postdata[$t.p.id+"_id"] == "_empty")	{ postIt(); }
-					else if(p.checkOnSubmit===true ) {
-						newData = $.extend({},postdata,extpost);
-						diff = compareData(newData,rp_ge._savedData);
-						if(diff) {
-							$("#"+frmgr).data("disabled",true);
-							$(".confirm","#"+IDs.themodal).show();
-						} else {
-							postIt();
-						}
-					} else {
-						postIt();
-					}
-					return false;
-				});
-				$("#cData", "#"+frmtb+"_2").click(function(e){
-					if(!checkUpdates()) { return false; }
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-					return false;
-				});
-				$("#nData", "#"+frmtb+"_2").click(function(e){
-					if(!checkUpdates()) { return false; }
-					$("#FormError","#"+frmtb).hide();
-					var npos = getCurrPos();
-					npos[0] = parseInt(npos[0],10);
-					if(npos[0] != -1 && npos[1][npos[0]+1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
-						}
-						fillData(npos[1][npos[0]+1],$t,frmgr);
-						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
-						}
-						updateNav(npos[0]+1,npos[1].length-1);
-					}
-					return false;
-				});
-				$("#pData", "#"+frmtb+"_2").click(function(e){
-					if(!checkUpdates()) { return false; }
-					$("#FormError","#"+frmtb).hide();
-					var ppos = getCurrPos();
-					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
-						}
-						fillData(ppos[1][ppos[0]-1],$t,frmgr);
-						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
-						}
-						updateNav(ppos[0]-1,ppos[1].length-1);
-					}
-					return false;
-				});
-			}
-			var posInit =getCurrPos();
-			updateNav(posInit[0],posInit[1].length-1);
-			function updateNav(cr,totr,rid){
-				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-			}
-			function getCurrPos() {
-				var rowsInGrid = $($t).jqGrid("getDataIDs"),
-				selrow = $("#id_g","#"+frmtb).val(),
-				pos = $.inArray(selrow,rowsInGrid);
-				return [pos,rowsInGrid];
-			}
-			function checkUpdates () {
-				var stat = true;
-				$("#FormError","#"+frmtb).hide();
-				if(rp_ge.checkOnUpdate) {
-					postdata = {}; extpost={};
-					getFormData();
-					newData = $.extend({},postdata,extpost);
-					diff = compareData(newData,rp_ge._savedData);
-					if(diff) {
-						$("#"+frmgr).data("disabled",true);
-						$(".confirm","#"+IDs.themodal).show();
-						stat = false;
-					}
-				}
-				return stat;
-			}
-			function getFormData(){
-				$(".FormElement", "#"+frmtb).each(function(i) {
-					var celm = $(".customelement", this);
-					if (celm.length) {
-						var  elem = celm[0], nm = elem.name;
-						$.each($t.p.colModel, function(i,n){
-							if(this.name == nm && this.editoptions && $.isFunction(this.editoptions.custom_value)) {
-								try {
-									postdata[nm] = this.editoptions.custom_value($("#"+nm,"#"+frmtb),'get');
-									if (postdata[nm] === undefined) { throw "e1"; }
-								} catch (e) {
-									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose);}
-									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-								}
-								return true;
-							}
-						});
-					} else {
-					switch ($(this).get(0).type) {
-						case "checkbox":
-							if($(this).attr("checked")) {
-								postdata[this.name]= $(this).val();
-							}else {
-								var ofv = $(this).attr("offval");
-								postdata[this.name]= ofv;
-							}
-						break;
-						case "select-one":
-							postdata[this.name]= $("option:selected",this).val();
-							extpost[this.name]= $("option:selected",this).text();
-						break;
-						case "select-multiple":
-							postdata[this.name]= $(this).val();
-							if(postdata[this.name]) { postdata[this.name] = postdata[this.name].join(","); }
-							else { postdata[this.name] =""; }
-							var selectedText = [];
-							$("option:selected",this).each(
-								function(i,selected){
-									selectedText[i] = $(selected).text();
-								}
-							);
-							extpost[this.name]= selectedText.join(",");
-						break;								
-						case "password":
-						case "text":
-						case "textarea":
-						case "button":
-							postdata[this.name] = $(this).val();
-							
-						break;
-					}
-					if($t.p.autoencode) { postdata[this.name] = $.jgrid.htmlEncode(postdata[this.name]); }
-					}
-				});
-				return true;
-			}
-			function createData(rowid,obj,tb,maxcols){
-				var nm, hc,trdata, cnt=0,tmp, dc,elc, retpos=[], ind=false,
-				tdtmpl = "<td class='CaptionTD ui-widget-content'>&#160;</td><td class='DataTD ui-widget-content' style='white-space:pre'>&#160;</td>", tmpl=""; //*2
-				for (var i =1;i<=maxcols;i++) {
-					tmpl += tdtmpl;
-				}
-				if(rowid != '_empty') {
-					ind = $(obj).jqGrid("getInd",rowid);
-				}
-				$(obj.p.colModel).each( function(i) {
-					nm = this.name;
-					// hidden fields are included in the form
-					if(this.editrules && this.editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = this.hidden === true ? true : false;
-					}
-					dc = hc ? "style='display:none'" : "";
-					if ( nm !== 'cb' && nm !== 'subgrid' && this.editable===true && nm !== 'rn') {
-						if(ind === false) {
-							tmp = "";
-						} else {
-							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
-							} else {
-								try {
-									tmp =  $.unformat($("td:eq("+i+")",obj.rows[ind]),{rowId:rowid, colModel:this},i);
-								} catch (_) {
-									tmp = $("td:eq("+i+")",obj.rows[ind]).html();
-								}
-							}
-						}
-						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
-						frmopt = $.extend({}, {elmprefix:'',elmsuffix:'',rowabove:false,rowcontent:''}, this.formoptions || {}),
-						rp = parseInt(frmopt.rowpos,10) || cnt+1,
-						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
-						if(rowid == "_empty" && opt.defaultValue ) {
-							tmp = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue; 
-						}
-						if(!this.edittype) { this.edittype = "text"; }
-						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-						elc = createEl(this.edittype,opt,tmp,false,$.extend({},$.jgrid.ajaxOptions,obj.p.ajaxSelectOptions || {}));
-						if(tmp == "" && this.edittype == "checkbox") {tmp = $(elc).attr("offval");}
-						if(tmp == "" && this.edittype == "select") {tmp = $("option:eq(0)",elc).text();}
-						if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
-						$(elc).addClass("FormElement");
-						trdata = $(tb).find("tr[rowpos="+rp+"]");
-						if(frmopt.rowabove) {
-							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
-							$(tb).append(newdata);
-							newdata[0].rp = rp;
-						}
-						if ( trdata.length===0 ) {
-							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","tr_"+nm);
-							$(trdata).append(tmpl);
-							$(tb).append(trdata);
-							trdata[0].rp = rp;
-						}
-						$("td:eq("+(cp-2)+")",trdata[0]).html( typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label);
-						$("td:eq("+(cp-1)+")",trdata[0]).append(frmopt.elmprefix).append(elc).append(frmopt.elmsuffix);
-						retpos[cnt] = i;
-						cnt++;
-					}
-				});
-				if( cnt > 0) {
-					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='"+obj.p.id+"_id' value='"+rowid+"'/></td></tr>");
-					idrow[0].rp = cnt+999;
-					$(tb).append(idrow);
-					if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) { rp_ge._savedData[obj.p.id+"_id"] = rowid; }
-				}
-				return retpos;
-			}
-			function fillData(rowid,obj,fmid){
-				var nm,cnt=0,tmp, fld,opt,vl,vlc;
-				if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {rp_ge._savedData = {};rp_ge._savedData[obj.p.id+"_id"]=rowid;}
-				var cm = obj.p.colModel;
-				if(rowid == '_empty') {
-					$(cm).each(function(i){
-						nm = this.name;
-						opt = $.extend({}, this.editoptions || {} );
-						fld = $("#"+$.jgrid.jqID(nm),"#"+fmid);
-						if(fld[0] != null) {
-							vl = "";
-							if(opt.defaultValue ) {
-								vl = $.isFunction(opt.defaultValue) ? opt.defaultValue() : opt.defaultValue;
-								if(fld[0].type=='checkbox') {
-									vlc = vl.toLowerCase();
-									if(vlc.search(/(false|0|no|off|undefined)/i)<0 && vlc!=="") {
-										fld[0].checked = true;
-										fld[0].defaultChecked = true;
-										fld[0].value = vl;
-									} else {
-										fld.attr({checked:"",defaultChecked:""});
-									}
-								} else {fld.val(vl); }
-							} else {
-								if( fld[0].type=='checkbox' ) {
-									fld[0].checked = false;
-									fld[0].defaultChecked = false;
-									vl = $(fld).attr("offval");
-								} else if (fld[0].type.substr(0,6)=='select') {
-									fld[0].selectedIndex = 0; 
-								} else {
-									fld.val(vl);
-								}
-							}
-							if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = vl; }
-						}
-					});
-					$("#id_g","#"+fmid).val(rowid);
-					return;
-				}
-				var tre = $(obj).jqGrid("getInd",rowid,true);
-				if(!tre) { return; }
-				$('td',tre).each( function(i) {
-					nm = cm[i].name;
-					// hidden fields are included in the form
-					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && cm[i].editable===true) {
-						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-							tmp = $(this).text();
-						} else {
-							try {
-								tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
-							} catch (_) {
-								tmp = $(this).html();
-							}
-						}
-						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-						if(rp_ge.checkOnSubmit===true || rp_ge.checkOnUpdate) { rp_ge._savedData[nm] = tmp; }
-						nm = $.jgrid.jqID(nm);
-						switch (cm[i].edittype) {
-							case "password":
-							case "text":
-							case "button" :
-							case "image":
-								$("#"+nm,"#"+fmid).val(tmp);
-								break;
-							case "textarea":
-								if(tmp == "&nbsp;" || tmp == "&#160;" || (tmp.length==1 && tmp.charCodeAt(0)==160) ) {tmp='';}
-								$("#"+nm,"#"+fmid).val(tmp);
-								break;
-							case "select":
-								var opv = tmp.split(",");
-								opv = $.map(opv,function(n){return $.trim(n);});
-								$("#"+nm+" option","#"+fmid).each(function(j){
-									if (!cm[i].editoptions.multiple && (opv[0] == $.trim($(this).text()) || opv[0] == $.trim($(this).val())) ){
-										this.selected= true;
-									} else if (cm[i].editoptions.multiple){
-										if(  $.inArray($.trim($(this).text()), opv ) > -1 || $.inArray($.trim($(this).val()), opv ) > -1  ){
-											this.selected = true;
-										}else{
-											this.selected = false;
-										}
-									} else {
-										this.selected = false;
-									}
-								});
-								break;
-							case "checkbox":
-								tmp = tmp+"";
-								if(cm[i].editoptions && cm[i].editoptions.value) {
-									var cb = cm[i].editoptions.value.split(":");
-									if(cb[0] == tmp) {
-										$("#"+nm,"#"+fmid).attr("checked",true);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
-									} else {
-										$("#"+nm,"#"+fmid).attr("checked",false);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
-									}
-								} else {
-									tmp = tmp.toLowerCase();
-									if(tmp.search(/(false|0|no|off|undefined)/i)<0 && tmp!=="") {
-										$("#"+nm,"#"+fmid).attr("checked",true);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",true); //ie
-									} else {
-										$("#"+nm,"#"+fmid).attr("checked",false);
-										$("#"+nm,"#"+fmid).attr("defaultChecked",""); //ie
-									}
-								}
-								break;
-							case 'custom' :
-								try {
-									if(cm[i].editoptions && $.isFunction(cm[i].editoptions.custom_value)) {
-										var dummy = cm[i].editoptions.custom_value($("#"+nm,"#"+fmid),'set',tmp);
-									} else { throw "e1"; }
-								} catch (e) {
-									if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose);}
-									else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-								}
-								break;
-						}
-						cnt++;
-					}
-				});
-				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
-			}
-			function postIt() {
-				var copydata, ret=[true,"",""], onCS = {}, opers = $t.p.prmNames, idname, oper;
-				if($.isFunction(rp_ge.beforeCheckValues)) {
-					var retvals = rp_ge.beforeCheckValues(postdata,$("#"+frmgr),postdata[$t.p.id+"_id"] == "_empty" ? opers.addoper : opers.editoper);
-					if(retvals && typeof(retvals) === 'object') { postdata = retvals; }
-				}
-				for( var key in postdata ){
-					if(postdata.hasOwnProperty(key)) {
-						ret = checkValues(postdata[key],key,$t);
-						if(ret[0] === false) { break; }
-					}
-				}
-				if(ret[0]) {
-					if( $.isFunction( rp_ge.onclickSubmit)) { onCS = rp_ge.onclickSubmit(rp_ge,postdata) || {}; }
-					if( $.isFunction(rp_ge.beforeSubmit))  { ret = rp_ge.beforeSubmit(postdata,$("#"+frmgr)); }
-				}
-
-				if(ret[0] && !rp_ge.processing) {
-					rp_ge.processing = true;
-					$("#sData", "#"+frmtb+"_2").addClass('ui-state-active');
-					oper = opers.oper;
-					idname = opers.id;
-					// we add to pos data array the action - the name is oper
-					postdata[oper] = ($.trim(postdata[$t.p.id+"_id"]) == "_empty") ? opers.addoper : opers.editoper;
-					if(postdata[oper] != opers.addoper) {
-						postdata[idname] = postdata[$t.p.id+"_id"];
-					} else {
-						// check to see if we have allredy this field in the form and if yes lieve it
-						if( postdata[idname] === undefined ) { postdata[idname] = postdata[$t.p.id+"_id"]; }
-					}
-					delete postdata[$t.p.id+"_id"];
-					postdata = $.extend(postdata,rp_ge.editData,onCS);
-
-					var ajaxOptions = $.extend({
-						url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
-						type: rp_ge.mtype,
-						data: $.isFunction(rp_ge.serializeEditData) ? rp_ge.serializeEditData(postdata) :  postdata,
-						complete:function(data,Status){
-							if(Status != "success") {
-							    ret[0] = false;
-							    if ($.isFunction(rp_ge.errorTextFormat)) {
-							        ret[1] = rp_ge.errorTextFormat(data);
-							    } else {
-							        ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
-								}
-							} else {
-								// data is posted successful
-								// execute aftersubmit with the returned data from server
-								if( $.isFunction(rp_ge.afterSubmit) ) {
-									ret = rp_ge.afterSubmit(data,postdata);
-								}
-							}
-							if(ret[0] === false) {
-								$("#FormError>td","#"+frmtb).html(ret[1]);
-								$("#FormError","#"+frmtb).show();
-							} else {
-								// remove some values if formattaer select or checkbox
-								$.each($t.p.colModel, function(i,n){
-									if(extpost[this.name] && this.formatter && this.formatter=='select') {
-										try {delete extpost[this.name];} catch (e) {}
-									}
-								});
-								postdata = $.extend(postdata,extpost);
-								if($t.p.autoencode) {
-									$.each(postdata,function(n,v){
-										postdata[n] = $.jgrid.htmlDecode(v);
-									});
-								}
-								// the action is add
-								if(postdata[oper] == opers.addoper ) {
-									//id processing
-									// user not set the id ret[2]
-									if(!ret[2]) { ret[2] = parseInt($t.p.records,10)+1; }
-									postdata[idname] = ret[2];
-									if(rp_ge.closeAfterAdd) {
-										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
-										else {
-											$($t).jqGrid("addRowData",ret[2],postdata,p.addedrow);
-											$($t).jqGrid("setSelection",ret[2]);
-										}
-										hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose});
-									} else if (rp_ge.clearAfterAdd) {
-										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
-										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
-										fillData("_empty",$t,frmgr);
-									} else {
-										if(rp_ge.reloadAfterSubmit) { $($t).trigger("reloadGrid"); }
-										else { $($t).jqGrid("addRowData",ret[2],postdata,p.addedrow); }
-									}
-								} else {
-									// the action is update
-									if(rp_ge.reloadAfterSubmit) {
-										$($t).trigger("reloadGrid");
-										if( !rp_ge.closeAfterEdit ) { setTimeout(function(){$($t).jqGrid("setSelection",postdata[idname]);},1000); }
-									} else {
-										if($t.p.treeGrid === true) {
-											$($t).jqGrid("setTreeRow",postdata[idname],postdata);
-										} else {
-											$($t).jqGrid("setRowData",postdata[idname],postdata);
-										}
-									}
-									if(rp_ge.closeAfterEdit) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal,onClose: rp_ge.onClose}); }
-								}
-								if($.isFunction(rp_ge.afterComplete)) {
-									copydata = data;
-									setTimeout(function(){rp_ge.afterComplete(copydata,postdata,$("#"+frmgr));copydata=null;},500);
-								}
-							}
-							rp_ge.processing=false;
-							if(rp_ge.checkOnSubmit || rp_ge.checkOnUpdate) {
-								$("#"+frmgr).data("disabled",false);
-								if(rp_ge._savedData[$t.p.id+"_id"] !="_empty"){
-									for(var key in rp_ge._savedData) {
-										if(postdata[key]) {
-											rp_ge._savedData[key] = postdata[key];
-										}
-									}
-								}
-							}
-							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
-							try{$(':input:visible',"#"+frmgr)[0].focus();} catch (e){}
-						},
-						error:function(xhr,st,err){
-							$("#FormError>td","#"+frmtb).html(st+ " : "+err);
-							$("#FormError","#"+frmtb).show();
-							rp_ge.processing=false;
-							$("#"+frmgr).data("disabled",false);
-							$("#sData", "#"+frmtb+"_2").removeClass('ui-state-active');
-						}
-					}, $.jgrid.ajaxOptions, rp_ge.ajaxEditOptions )
-					
-					if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
-						if ($.isFunction($t.p.dataProxy)) {
-							rp_ge['useDataProxy'] = true;
-						} else {
-							ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
-						}
-					}
-					if (ret[0]) { 
-						if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "set_"+$t.p.id) }
-						else { $.ajax(ajaxOptions) }
-					}
-				}
-				if(ret[0] === false) {
-					$("#FormError>td","#"+frmtb).html(ret[1]);
-					$("#FormError","#"+frmtb).show();
-					// return; 
-				}
-			}
-			function compareData(nObj, oObj ) {
-				var ret = false,key;
-				for (key in nObj) {
-					if(nObj[key] != oObj[key]) {
-						ret = true;
-						break;
-					}
-				}
-				return ret;
-			}
-		});
-	},
-	viewGridRow : function(rowid, p){
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 0,
-			height: 'auto',
-			dataheight: 'auto',
-			modal: false,
-			drag: true,
-			resize: true,
-			jqModal: true,
-			closeOnEscape : false,
-			labelswidth: '30%',
-			closeicon: [],
-			navkeys: [false,38,40],
-			onClose: null,
-			beforeShowForm : null,
-			viewPagerButtons : true
-		}, $.jgrid.view, p || {});
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid || !rowid) { return; }
-			if(!p.imgpath) { p.imgpath= $t.p.imgpath; }
-			// I hate to rewrite code, but ...
-			var gID = $t.p.id,
-			frmgr = "ViewGrid_"+gID , frmtb = "ViewTbl_"+gID,
-			IDs = {themodal:'viewmod'+gID,modalhead:'viewhd'+gID,modalcontent:'viewcnt'+gID, scrollelm : frmgr},
-			maxCols = 1, maxRows=0;
-			if ( $("#"+IDs.themodal).html() != null ) {
-				$(".ui-jqdialog-title","#"+IDs.modalhead).html(p.caption);
-				$("#FormError","#"+frmtb).hide();
-				fillData(rowid,$t);
-				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, jqM: false, modal:p.modal});
-				focusaref();
-			} else {
-				$($t.p.colModel).each( function(i) {
-					var fmto = this.formoptions;
-					maxCols = Math.max(maxCols, fmto ? fmto.colpos || 0 : 0 );
-					maxRows = Math.max(maxRows, fmto ? fmto.rowpos || 0 : 0 );
-				});
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var flr, frm = $("<form name='FormPost' id='"+frmgr+"' class='FormGrid' style='width:100%;overflow:auto;position:relative;height:"+dh+";'></form>"),
-				tbl =$("<table id='"+frmtb+"' class='EditTable' cellspacing='1' cellpading='2' border='0' style='table-layout:fixed'><tbody></tbody></table>");
-				// set the id.
-				$(frm).append(tbl);
-				var valref = createData(rowid, $t, tbl, maxCols),
-				rtlb = $t.p.direction == "rtl" ? true :false,
-				bp = rtlb ? "nData" : "pData",
-				bn = rtlb ? "pData" : "nData",
-
-				// buttons at footer
-				bP = "<a href='javascript:void(0)' id='"+bp+"' class='fm-button ui-state-default ui-corner-left'><span class='ui-icon ui-icon-triangle-1-w'></span></div>",
-				bN = "<a href='javascript:void(0)' id='"+bn+"' class='fm-button ui-state-default ui-corner-right'><span class='ui-icon ui-icon-triangle-1-e'></span></div>",
-				bC  ="<a href='javascript:void(0)' id='cData' class='fm-button ui-state-default ui-corner-all'>"+p.bClose+"</a>";
-				if(maxRows >  0) {
-					var sd=[];
-					$.each($(tbl)[0].rows,function(i,r){
-						sd[i] = r;
-					});
-					sd.sort(function(a,b){
-						if(a.rp > b.rp) {return 1;}
-						if(a.rp < b.rp) {return -1;}
-						return 0;
-					});
-					$.each(sd, function(index, row) {
-						$('tbody',tbl).append(row);
-					});
-				}
-				p.gbox = "#gbox_"+gID;
-				var cle = false;
-				if(p.closeOnEscape===true){
-					p.closeOnEscape = false;
-					cle = true;
-				}				
-				var bt = $("<span></span>").append(frm).append("<table border='0' class='EditTable' id='"+frmtb+"_2'><tbody><tr id='Act_Buttons'><td class='navButton ui-widget-content' width='"+p.labelswidth+"'>"+(rtlb ? bN+bP : bP+bN)+"</td><td class='EditButton ui-widget-content'>"+bC+"</td></tr></tbody></table>");
-				createModal(IDs,bt,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				if(rtlb) {
-					$("#pData, #nData","#"+frmtb+"_2").css("float","right");
-					$(".EditButton","#"+frmtb+"_2").css("text-align","left");
-				}
-				if(!p.viewPagerButtons) { $("#pData, #nData","#"+frmtb+"_2").hide(); }
-				bt = null;
-				$("#"+IDs.themodal).keydown( function( e ) {
-					if(e.which === 27) {
-						if(cle)	{ hideModal(this,{gb:p.gbox,jqm:p.jqModal, onClose: p.onClose}); }
-						return false;
-					}
-					if(p.navkeys[0]===true) {
-						if(e.which === p.navkeys[1]){ //up
-							$("#pData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-						if(e.which === p.navkeys[2]){ //down
-							$("#nData", "#"+frmtb+"_2").trigger("click");
-							return false;
-						}
-					}
-				});
-				p.closeicon = $.extend([true,"left","ui-icon-close"],p.closeicon);
-				if(p.closeicon[0]===true) {
-					$("#cData","#"+frmtb+"_2").addClass(p.closeicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.closeicon[2]+"'></span>");
-				}
-				if($.isFunction(p.beforeShowForm)) { p.beforeShowForm($("#"+frmgr)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal, modal:p.modal});
-				$(".fm-button:not(.ui-state-disabled)","#"+frmtb+"_2").hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);
-				focusaref();
-				$("#cData", "#"+frmtb+"_2").click(function(e){
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: p.onClose});
-					return false;
-				});
-				$("#nData", "#"+frmtb+"_2").click(function(e){
-					$("#FormError","#"+frmtb).hide();
-					var npos = getCurrPos();
-					npos[0] = parseInt(npos[0],10);
-					if(npos[0] != -1 && npos[1][npos[0]+1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]]);
-						}
-						fillData(npos[1][npos[0]+1],$t);
-						$($t).jqGrid("setSelection",npos[1][npos[0]+1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('next',$("#"+frmgr),npos[1][npos[0]+1]);
-						}
-						updateNav(npos[0]+1,npos[1].length-1);
-					}
-					focusaref();
-					return false;
-				});
-				$("#pData", "#"+frmtb+"_2").click(function(e){
-					$("#FormError","#"+frmtb).hide();
-					var ppos = getCurrPos();
-					if(ppos[0] != -1 && ppos[1][ppos[0]-1]) {
-						if($.isFunction(p.onclickPgButtons)) {
-							p.onclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]]);
-						}
-						fillData(ppos[1][ppos[0]-1],$t);
-						$($t).jqGrid("setSelection",ppos[1][ppos[0]-1]);
-						if($.isFunction(p.afterclickPgButtons)) {
-							p.afterclickPgButtons('prev',$("#"+frmgr),ppos[1][ppos[0]-1]);
-						}
-						updateNav(ppos[0]-1,ppos[1].length-1);
-					}
-					focusaref();
-					return false;
-				});
-			}
-			function focusaref(){ //Sfari 3 issues
-				if(p.closeOnEscape===true || p.navkeys[0]===true) {
-					setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
-				}
-			}
-			var posInit =getCurrPos();
-			updateNav(posInit[0],posInit[1].length-1);
-			function updateNav(cr,totr,rid){
-				if (cr===0) { $("#pData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#pData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-				if (cr==totr) { $("#nData","#"+frmtb+"_2").addClass('ui-state-disabled'); } else { $("#nData","#"+frmtb+"_2").removeClass('ui-state-disabled'); }
-			}
-			function getCurrPos() {
-				var rowsInGrid = $($t).jqGrid("getDataIDs"),
-				selrow = $("#id_g","#"+frmtb).val(),
-				pos = $.inArray(selrow,rowsInGrid);
-				return [pos,rowsInGrid];
-			}
-			function createData(rowid,obj,tb,maxcols){
-				var nm, hc,trdata, tdl, tde, cnt=0,tmp, dc, retpos=[], ind=false,
-				tdtmpl = "<td class='CaptionTD form-view-label ui-widget-content' width='"+p.labelswidth+"'>&#160;</td><td class='DataTD form-view-data ui-helper-reset ui-widget-content'>&#160;</td>", tmpl="",
-				tdtmpl2 = "<td class='CaptionTD form-view-label ui-widget-content'>&#160;</td><td class='DataTD form-view-data ui-widget-content'>&#160;</td>",
-				fmtnum = ['integer','number','currency'],max1 =0, max2=0 ,maxw,setme, viewfld;
-				for (var i =1;i<=maxcols;i++) {
-					tmpl += i == 1 ? tdtmpl : tdtmpl2;
-				}
-				// find max number align rigth with property formatter
-				$(obj.p.colModel).each( function(i) {
-					if(this.editrules && this.editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = this.hidden === true ? true : false;
-					}
-					if(!hc && this.align==='right') {
-						if(this.formatter && $.inArray(this.formatter,fmtnum) !== -1 ) {
-							max1 = Math.max(max1,parseInt(this.width,10));
-						} else {
-							max2 = Math.max(max2,parseInt(this.width,10));
-						}
-					}
-				});
-				maxw  = max1 !==0 ? max1 : max2 !==0 ? max2 : 0;
-				ind = $(obj).jqGrid("getInd",rowid);
-				$(obj.p.colModel).each( function(i) {
-					nm = this.name;
-					setme = false;
-					// hidden fields are included in the form
-					if(this.editrules && this.editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = this.hidden === true ? true : false;
-					}
-					dc = hc ? "style='display:none'" : "";
-					viewfld = (typeof this.viewable != 'boolean') ? true : this.viewable;
-					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn' && viewfld) {
-						if(ind === false) {
-							tmp = "";
-						} else {
-							if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-								tmp = $("td:eq("+i+")",obj.rows[ind]).text();
-							} else {
-								tmp = $("td:eq("+i+")",obj.rows[ind]).html();
-							}
-						}
-						setme = this.align === 'right' && maxw !==0 ? true : false;
-						var opt = $.extend({}, this.editoptions || {} ,{id:nm,name:nm}),
-						frmopt = $.extend({},{rowabove:false,rowcontent:''}, this.formoptions || {}),
-						rp = parseInt(frmopt.rowpos,10) || cnt+1,
-						cp = parseInt((parseInt(frmopt.colpos,10) || 1)*2,10);
-						if(frmopt.rowabove) {
-							var newdata = $("<tr><td class='contentinfo' colspan='"+(maxcols*2)+"'>"+frmopt.rowcontent+"</td></tr>");
-							$(tb).append(newdata);
-							newdata[0].rp = rp;
-						}
-						trdata = $(tb).find("tr[rowpos="+rp+"]");
-						if ( trdata.length===0 ) {
-							trdata = $("<tr "+dc+" rowpos='"+rp+"'></tr>").addClass("FormData").attr("id","trv_"+nm);
-							$(trdata).append(tmpl);
-							$(tb).append(trdata);
-							trdata[0].rp = rp;
-						}
-						$("td:eq("+(cp-2)+")",trdata[0]).html('<b>'+ (typeof frmopt.label === 'undefined' ? obj.p.colNames[i]: frmopt.label)+'</b>');
-						$("td:eq("+(cp-1)+")",trdata[0]).append("<span>"+tmp+"</span>").attr("id","v_"+nm);
-						if(setme){
-							$("td:eq("+(cp-1)+") span",trdata[0]).css({'text-align':'right',width:maxw+"px"});
-						}
-						retpos[cnt] = i;
-						cnt++;
-					}
-				});
-				if( cnt > 0) {
-					var idrow = $("<tr class='FormData' style='display:none'><td class='CaptionTD'></td><td colspan='"+ (maxcols*2-1)+"' class='DataTD'><input class='FormElement' id='id_g' type='text' name='id' value='"+rowid+"'/></td></tr>");
-					idrow[0].rp = cnt+99;
-					$(tb).append(idrow);
-				}
-				return retpos;
-			}
-			function fillData(rowid,obj){
-				var nm, hc,cnt=0,tmp, opt,trv;
-				trv = $(obj).jqGrid("getInd",rowid,true);
-				if(!trv) { return; }
-				$('td',trv).each( function(i) {
-					nm = obj.p.colModel[i].name;
-					// hidden fields are included in the form
-					if(obj.p.colModel[i].editrules && obj.p.colModel[i].editrules.edithidden === true) {
-						hc = false;
-					} else {
-						hc = obj.p.colModel[i].hidden === true ? true : false;
-					}
-					if ( nm !== 'cb' && nm !== 'subgrid' && nm !== 'rn') {
-						if(nm == obj.p.ExpandColumn && obj.p.treeGrid === true) {
-							tmp = $(this).text();
-						} else {
-							tmp = $(this).html();
-						}
-						opt = $.extend({},obj.p.colModel[i].editoptions || {});
-						nm = $.jgrid.jqID("v_"+nm);
-						$("#"+nm+" span","#"+frmtb).html(tmp);
-						if (hc) { $("#"+nm,"#"+frmtb).parents("tr:first").hide(); }
-						cnt++;
-					}
-				});
-				if(cnt>0) { $("#id_g","#"+frmtb).val(rowid); }
-			}
-		});
-	},
-	delGridRow : function(rowids,p) {
-		p = $.extend({
-			top : 0,
-			left: 0,
-			width: 240,
-			height: 'auto',
-			dataheight : 'auto',
-			modal: false,
-			drag: true,
-			resize: true,
-			url : '',
-			mtype : "POST",
-			reloadAfterSubmit: true,
-			beforeShowForm: null,
-			afterShowForm: null,
-			beforeSubmit: null,
-			onclickSubmit: null,
-			afterSubmit: null,
-			jqModal : true,
-			closeOnEscape : false,
-			delData: {},
-			delicon : [],
-			cancelicon : [],
-			onClose : null,
-			ajaxDelOptions : {},
-			processing : false,
-			serializeDelData : null,
-			useDataProxy : false
-		}, $.jgrid.del, p ||{});
-		rp_ge = p;
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid ) { return; }
-			if(!rowids) { return; }
-			var onBeforeShow = typeof p.beforeShowForm === 'function' ? true: false,
-			onAfterShow = typeof p.afterShowForm === 'function' ? true: false,
-			gID = $t.p.id, onCS = {},
-			dtbl = "DelTbl_"+gID,postd, idname, opers, oper,
-			IDs = {themodal:'delmod'+gID,modalhead:'delhd'+gID,modalcontent:'delcnt'+gID, scrollelm: dtbl};
-			if (jQuery.isArray(rowids)) { rowids = rowids.join(); }
-			if ( $("#"+IDs.themodal).html() != null ) {
-				$("#DelData>td","#"+dtbl).text(rowids);
-				$("#DelError","#"+dtbl).hide();
-				if( rp_ge.processing === true) {
-					rp_ge.processing=false;
-					$("#dData", "#"+dtbl).removeClass('ui-state-active');
-				}
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,jqM: false, modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			} else {
-				var dh = isNaN(p.dataheight) ? p.dataheight : p.dataheight+"px";
-				var tbl = "<div id='"+dtbl+"' class='formdata' style='width:100%;overflow:auto;position:relative;height:"+dh+";'>";
-				tbl += "<table class='DelTable'><tbody>";
-				// error data 
-				tbl += "<tr id='DelError' style='display:none'><td class='ui-state-error'></td></tr>";
-				tbl += "<tr id='DelData' style='display:none'><td >"+rowids+"</td></tr>";
-				tbl += "<tr><td class=\"delmsg\" style=\"white-space:pre;\">"+p.msg+"</td></tr><tr><td >&#160;</td></tr>";
-				// buttons at footer
-				tbl += "</tbody></table></div>";
-				var bS  = "<a href='javascript:void(0)' id='dData' class='fm-button ui-state-default ui-corner-all'>"+p.bSubmit+"</a>",
-				bC  = "<a href='javascript:void(0)' id='eData' class='fm-button ui-state-default ui-corner-all'>"+p.bCancel+"</a>";
-				tbl += "<table cellspacing='0' cellpadding='0' border='0' class='EditTable' id='"+dtbl+"_2'><tbody><tr><td class='DataTD ui-widget-content'></td></tr><tr style='display:block;height:3px;'><td></td></tr><tr><td class='DelButton EditButton'>"+bS+"&#160;"+bC+"</td></tr></tbody></table>";
-				p.gbox = "#gbox_"+gID;
-				createModal(IDs,tbl,p,"#gview_"+$t.p.id,$("#gview_"+$t.p.id)[0]);
-				$(".fm-button","#"+dtbl+"_2").hover(
-				   function(){$(this).addClass('ui-state-hover');}, 
-				   function(){$(this).removeClass('ui-state-hover');}
-				);
-				p.delicon = $.extend([true,"left","ui-icon-scissors"],p.delicon);
-				p.cancelicon = $.extend([true,"left","ui-icon-cancel"],p.cancelicon);
-				if(p.delicon[0]===true) {
-					$("#dData","#"+dtbl+"_2").addClass(p.delicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.delicon[2]+"'></span>");
-				}
-				if(p.cancelicon[0]===true) {
-					$("#eData","#"+dtbl+"_2").addClass(p.cancelicon[1] == "right" ? 'fm-button-icon-right' : 'fm-button-icon-left')
-					.append("<span class='ui-icon "+p.cancelicon[2]+"'></span>");
-				}				
-				$("#dData","#"+dtbl+"_2").click(function(e){
-					var ret=[true,""]; onCS = {};
-					var postdata = $("#DelData>td","#"+dtbl).text(); //the pair is name=val1,val2,...
-					if( typeof p.onclickSubmit === 'function' ) { onCS = p.onclickSubmit(rp_ge, postdata) || {}; }
-					if( typeof p.beforeSubmit === 'function' ) { ret = p.beforeSubmit(postdata); }
-					if(ret[0] && !rp_ge.processing) {
-						rp_ge.processing = true;
-						$(this).addClass('ui-state-active');
-						opers = $t.p.prmNames;
-						postd = $.extend({},rp_ge.delData, onCS);
-						oper = opers.oper;
-						postd[oper] = opers.deloper;
-						idname = opers.id;
-						postd[idname] = postdata;
-
-						var ajaxOptions = $.extend({
-							url: rp_ge.url ? rp_ge.url : $($t).jqGrid('getGridParam','editurl'),
-							type: p.mtype,
-							data: $.isFunction(p.serializeDelData) ? p.serializeDelData(postd) : postd,
-							complete:function(data,Status){
-								if(Status != "success") {
-									ret[0] = false;
-									if ($.isFunction(rp_ge.errorTextFormat)) {
-										ret[1] = rp_ge.errorTextFormat(data);
-									} else {
-										ret[1] = Status + " Status: '" + data.statusText + "'. Error code: " + data.status;
-									}
-								} else {
-									// data is posted successful
-									// execute aftersubmit with the returned data from server
-									if( typeof rp_ge.afterSubmit === 'function' ) {
-										ret = rp_ge.afterSubmit(data,postd);
-									}
-								}
-								if(ret[0] === false) {
-									$("#DelError>td","#"+dtbl).html(ret[1]);
-									$("#DelError","#"+dtbl).show();
-								} else {
-									if(rp_ge.reloadAfterSubmit) {
-										$($t).trigger("reloadGrid");
-									} else {
-										var toarr = [];
-										toarr = postdata.split(",");
-										if($t.p.treeGrid===true){
-												try {$($t).jqGrid("delTreeNode",toarr[0]);} catch(e){}
-										} else {
-											for(var i=0;i<toarr.length;i++) {
-												$($t).jqGrid("delRowData",toarr[i]);
-											}
-										}
-										$t.p.selrow = null;
-										$t.p.selarrrow = [];
-									}
-									if($.isFunction(rp_ge.afterComplete)) {
-										setTimeout(function(){rp_ge.afterComplete(data,postdata);},500);
-									}
-								}
-								rp_ge.processing=false;
-								$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
-								if(ret[0]) { hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose}); }
-							},
-							error:function(xhr,st,err){
-								$("#DelError>td","#"+dtbl).html(st+ " : "+err);
-								$("#DelError","#"+dtbl).show();
-								rp_ge.processing=false;
-									$("#dData", "#"+dtbl+"_2").removeClass('ui-state-active');
-							}
-						}, $.jgrid.ajaxOptions, p.ajaxDelOptions);
-
-
-						if (!ajaxOptions['url'] && !rp_ge['useDataProxy']) {
-							if ($.isFunction($t.p.dataProxy)) {
-								rp_ge['useDataProxy'] = true;
-							} else {
-								ret[0]=false; ret[1] += " "+$.jgrid.errors.nourl;
-							}
-						}
-						if (ret[0]) {
-							if (rp_ge['useDataProxy']) { $t.p.dataProxy.call($t, ajaxOptions, "del_"+$t.p.id) }
-							else { $.ajax(ajaxOptions) }
-						}
-					}
-
-					if(ret[0] === false) {
-						$("#DelError>td","#"+dtbl).html(ret[1]);
-						$("#DelError","#"+dtbl).show();
-					}
-					return false;
-				});
-				$("#eData", "#"+dtbl+"_2").click(function(e){
-					hideModal("#"+IDs.themodal,{gb:"#gbox_"+gID,jqm:p.jqModal, onClose: rp_ge.onClose});
-					return false;
-				});
-				if(onBeforeShow) { p.beforeShowForm($("#"+dtbl)); }
-				viewModal("#"+IDs.themodal,{gbox:"#gbox_"+gID,jqm:p.jqModal,modal:p.modal});
-				if(onAfterShow) { p.afterShowForm($("#"+dtbl)); }
-			}
-			if(p.closeOnEscape===true) {
-				setTimeout(function(){$(".ui-jqdialog-titlebar-close","#"+IDs.modalhead).focus();},0);
-			}
-		});
-	},
-	navGrid : function (elem, o, pEdit,pAdd,pDel,pSearch, pView) {
-		o = $.extend({
-			edit: true,
-			editicon: "ui-icon-pencil",
-			add: true,
-			addicon:"ui-icon-plus",
-			del: true,
-			delicon:"ui-icon-trash",
-			search: true,
-			searchicon:"ui-icon-search",
-			refresh: true,
-			refreshicon:"ui-icon-refresh",
-			refreshstate: 'firstpage',
-			view: false,
-			viewicon : "ui-icon-document",
-			position : "left",
-			closeOnEscape : true,
-			beforeRefresh : null,
-			afterRefresh : null,
-			cloneToTop : false
-		}, $.jgrid.nav, o ||{});
-		return this.each(function() {       
-			var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'},
-			$t = this, vwidth, vheight, twd, tdw;
-			if(!$t.grid || typeof elem != 'string') { return; }
-			if ($("#"+alertIDs.themodal).html() === null) {
-				if (typeof window.innerWidth != 'undefined') {
-					vwidth = window.innerWidth;
-					vheight = window.innerHeight;
-				} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth !== 0) {
-					vwidth = document.documentElement.clientWidth;
-					vheight = document.documentElement.clientHeight;
-				} else {
-					vwidth=1024;
-					vheight=768;
-				}
-				createModal(alertIDs,"<div>"+o.alerttext+"</div><span tabindex='0'><span tabindex='-1' id='jqg_alrt'></span></span>",{gbox:"#gbox_"+$t.p.id,jqModal:true,drag:true,resize:true,caption:o.alertcap,top:vheight/2-25,left:vwidth/2-100,width:200,height:'auto',closeOnEscape:o.closeOnEscape},"","",true);
-			}
-			var clone = 1;
-			if(o.cloneToTop && $t.p.toppager) { clone = 2; }
-			for(var i = 0; i<clone; i++) {
-				var tbd,
-				navtbl = $("<table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table navtable' style='float:left;table-layout:auto;'><tbody><tr></tr></tbody></table>"),
-				sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
-				pgid, elemids;
-				if(i===0) {
-					pgid = elem;
-					elemids = $t.p.id;
-					if(pgid == $t.p.toppager) {
-						elemids += "_top";
-						clone = 1;
-					}
-				} else {
-					pgid = $t.p.toppager;
-					elemids = $t.p.id+"_top";
-				}
-				if($t.p.direction == "rtl") { $(navtbl).attr("dir","rtl").css("float","right"); }
-				if (o.add) {
-					pAdd = pAdd || {};
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.addicon+"'></span>"+o.addtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.addtitle || "",id : pAdd.id || "add_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							if (typeof o.addfunc == 'function') {
-								o.addfunc();
-							} else {
-								$($t).jqGrid("editGridRow","new",pAdd);
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.edit) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pEdit = pEdit || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.editicon+"'></span>"+o.edittext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.edittitle || "",id: pEdit.id || "edit_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							var sr = $t.p.selrow;
-							if (sr) {
-								if(typeof o.editfunc == 'function') {
-									o.editfunc(sr);
-								} else {
-									$($t).jqGrid("editGridRow",sr,pEdit);
-								}
-							} else {
-								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
-								$("#jqg_alrt").focus();
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.view) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pView = pView || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.viewicon+"'></span>"+o.viewtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.viewtitle || "",id: pView.id || "view_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							var sr = $t.p.selrow;
-							if (sr) {
-								$($t).jqGrid("viewGridRow",sr,pView);
-							} else {
-								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true});
-								$("#jqg_alrt").focus();
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.del) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pDel = pDel || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.delicon+"'></span>"+o.deltext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.deltitle || "",id: pDel.id || "del_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							var dr;
-							if($t.p.multiselect) {
-								dr = $t.p.selarrrow;
-								if(dr.length===0) { dr = null; }
-							} else {
-								dr = $t.p.selrow;
-							}
-							if(dr){
-								if("function" == typeof o.delfunc){
-									o.delfunc(dr);
-								}else{
-									$($t).jqGrid("delGridRow",dr,pDel);
-								}
-							} else  {
-								viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+$t.p.id,jqm:true}); $("#jqg_alrt").focus();
-							}
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if(o.add || o.edit || o.del || o.view) { $("tr",navtbl).append(sep); }
-				if (o.search) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					pSearch = pSearch || {};
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.searchicon+"'></span>"+o.searchtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.searchtitle  || "",id:pSearch.id || "search_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							$($t).jqGrid("searchGrid",pSearch);
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				if (o.refresh) {
-					tbd = $("<td class='ui-pg-button ui-corner-all'></td>");
-					$(tbd).append("<div class='ui-pg-div'><span class='ui-icon "+o.refreshicon+"'></span>"+o.refreshtext+"</div>");
-					$("tr",navtbl).append(tbd);
-					$(tbd,navtbl)
-					.attr({"title":o.refreshtitle  || "",id: "refresh_"+elemids})
-					.click(function(){
-						if (!$(this).hasClass('ui-state-disabled')) {
-							if($.isFunction(o.beforeRefresh)) { o.beforeRefresh(); }
-							$t.p.search = false;
-							try {
-								var gID = $t.p.id;
-								$("#fbox_"+gID).searchFilter().reset();
-							    if($.isFunction($t.clearToolbar)) { $t.clearToolbar(false); }
-							} catch (e) {}
-							switch (o.refreshstate) {
-								case 'firstpage':
-								    $($t).trigger("reloadGrid", [{page:1}]);
-									break;
-								case 'current':
-								    $($t).trigger("reloadGrid", [{current:true}]);
-									break;
-							}
-							if($.isFunction(o.afterRefresh)) { o.afterRefresh(); }
-						}
-						return false;
-					}).hover(
-						function () {
-							if (!$(this).hasClass('ui-state-disabled')) {
-								$(this).addClass("ui-state-hover");
-							}
-						},
-						function () {$(this).removeClass("ui-state-hover");}
-					);
-					tbd = null;
-				}
-				tdw = $(".ui-jqgrid").css("font-size") || "11px";
-				$('body').append("<div id='testpg2' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
-				twd = $(navtbl).clone().appendTo("#testpg2").width();
-				$("#testpg2").remove();
-				$(pgid+"_"+o.position,pgid).append(navtbl);
-				if($t.p._nvtd) {
-					if(twd > $t.p._nvtd[0] ) {
-						$(pgid+"_"+o.position,pgid).width(twd);
-						$t.p._nvtd[0] = twd;
-					}
-					$t.p._nvtd[1] = twd;
-				}
-				tdw =null; twd=null; navtbl =null;
-			}
-		});
-	},
-	navButtonAdd : function (elem, p) {
-		p = $.extend({
-			caption : "newButton",
-			title: '',
-			buttonicon : 'ui-icon-newwin',
-			onClickButton: null,
-			position : "last",
-			cursor : 'pointer'
-		}, p ||{});
-		return this.each(function() {
-			if( !this.grid)  { return; }
-			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
-			var findnav = $(".navtable",elem)[0], $t = this;
-			if (findnav) {
-				var tbd = $("<td></td>");
-				if(p.buttonicon.toString().toUpperCase() == "NONE") {
-                    $(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'>"+p.caption+"</div>");
-				} else	{
-					$(tbd).addClass('ui-pg-button ui-corner-all').append("<div class='ui-pg-div'><span class='ui-icon "+p.buttonicon+"'></span>"+p.caption+"</div>");
-				}
-				if(p.id) {$(tbd).attr("id",p.id);}
-				if(p.position=='first'){
-					if(findnav.rows[0].cells.length ===0 ) {
-						$("tr",findnav).append(tbd);
-					} else {
-						$("tr td:eq(0)",findnav).before(tbd);
-					}
-				} else {
-					$("tr",findnav).append(tbd);
-				}
-				$(tbd,findnav)
-				.attr("title",p.title  || "")
-				.click(function(e){
-					if (!$(this).hasClass('ui-state-disabled')) {
-						if ($.isFunction(p.onClickButton) ) { p.onClickButton.call($t,e); }
-					}
-					return false;
-				})
-				.hover(
-					function () {
-						if (!$(this).hasClass('ui-state-disabled')) {
-							$(this).addClass('ui-state-hover');
-						}
-					},
-					function () {$(this).removeClass("ui-state-hover");}
-				);
-			}
-		});
-	},
-	navSeparatorAdd:function (elem,p) {
-		p = $.extend({
-			sepclass : "ui-separator",
-			sepcontent: ''
-		}, p ||{});		
-		return this.each(function() {
-			if( !this.grid)  { return; }
-			if( elem.indexOf("#") !== 0) { elem = "#"+elem; }
-			var findnav = $(".navtable",elem)[0];
-			if(findnav) {
-				var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='"+p.sepclass+"'></span>"+p.sepcontent+"</td>";
-				$("tr",findnav).append(sep);
-			}
-		});
-	},
-	GridToForm : function( rowid, formid ) {
-		return this.each(function(){
-			var $t = this;
-			if (!$t.grid) { return; } 
-			var rowdata = $($t).jqGrid("getRowData",rowid);
-			if (rowdata) {
-				for(var i in rowdata) {
-					if ( $("[name="+i+"]",formid).is("input:radio") || $("[name="+i+"]",formid).is("input:checkbox"))  {
-						$("[name="+i+"]",formid).each( function() {
-							if( $(this).val() == rowdata[i] ) {
-								$(this).attr("checked","checked");
-							} else {
-								$(this).attr("checked","");
-							}
-						});
-					} else {
-					// this is very slow on big table and form.
-						$("[name="+i+"]",formid).val(rowdata[i]);
-					}
-				}
-			}
-		});
-	},
-	FormToGrid : function(rowid, formid, mode, position){
-		return this.each(function() {
-			var $t = this;
-			if(!$t.grid) { return; }
-			if(!mode) { mode = 'set'; }
-			if(!position) { position = 'first'; }
-			var fields = $(formid).serializeArray();
-			var griddata = {};
-			$.each(fields, function(i, field){
-				griddata[field.name] = field.value;
-			});
-			if(mode=='add') { $($t).jqGrid("addRowData",rowid,griddata, position); }
-			else if(mode=='set') { $($t).jqGrid("setRowData",rowid,griddata); }
-		});
-	}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.formedit.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js	(nonexistent)
@@ -1,2360 +0,0 @@
-;(function ($) {
-/*
- * jqGrid  3.6.5 - jQuery Grid
- * Copyright (c) 2008, Tony Tomov, tony@trirand.com
- * Dual licensed under the MIT and GPL licenses
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
- * Date: 2010-05-05 
- */
-$.jgrid = $.jgrid || {};
-$.extend($.jgrid,{
-	htmlDecode : function(value){
-		if(value=='&nbsp;' || value=='&#160;' || (value.length==1 && value.charCodeAt(0)==160)) { return "";}
-		return !value ? value : String(value).replace(/&amp;/g, "&").replace(/&gt;/g, ">").replace(/&lt;/g, "<").replace(/&quot;/g, '"');
-	},
-	htmlEncode : function (value){
-		return !value ? value : String(value).replace(/&/g, "&amp;").replace(/>/g, "&gt;").replace(/</g, "&lt;").replace(/\"/g, "&quot;");
-	},
-	format : function(format){ //jqgformat
-		var args = $.makeArray(arguments).slice(1);
-		if(format===undefined) { format = ""; }
-		return format.replace(/\{(\d+)\}/g, function(m, i){
-			return args[i];
-		});
-	},
-	getCellIndex : function (cell) {
-		cell = $(cell);
-		cell = (!cell.is('td') && !cell.is('th') ? cell.closest("td,th") : cell)[0];
-		if ($.browser.msie) { return $.inArray(cell, cell.parentNode.cells); }
-		return cell.cellIndex;
-	},
-	stripHtml : function(v) {
-		v = v+"";
-		var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
-		if (v) {
-			v = v.replace(regexp,"");
-			return (v && v !== '&nbsp;' && v !== '&#160;') ? v.replace(/\"/g,"'") : "";
-		} else {
-			return v;
-		}
-	},
-	stringToDoc : function (xmlString) {
-		var xmlDoc;
-		if(typeof xmlString !== 'string') { return xmlString; }
-		try	{
-			var parser = new DOMParser();
-			xmlDoc = parser.parseFromString(xmlString,"text/xml");
-		}
-		catch(e) {
-			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
-			xmlDoc.async=false;
-			xmlDoc.loadXML(xmlString);
-		}
-		return (xmlDoc && xmlDoc.documentElement && xmlDoc.documentElement.tagName != 'parsererror') ? xmlDoc : null;
-	},
-	parse : function(jsonString) {
-		var js = jsonString;
-		if (js.substr(0,9) == "while(1);") { js = js.substr(9); }
-		if (js.substr(0,2) == "/*") { js = js.substr(2,js.length-4); }
-		if(!js) { js = "{}"; }
-		return ($.jgrid.useJSON===true && typeof (JSON) === 'object' && typeof (JSON.parse) === 'function') ?
-		    JSON.parse(js) :
-		    eval('(' + js + ')');
-	},
-	jqID : function(sid){
-		sid = sid + "";
-		return sid.replace(/([\.\:\[\]])/g,"\\$1");
-	},
-	ajaxOptions: {},
-	extend : function(methods) {
-		$.extend($.fn.jqGrid,methods);
-		if (!this.no_legacy_api) {
-			$.fn.extend(methods);
-		}
-	}
-});
-
-$.fn.jqGrid = function( pin ) {
-	if (typeof pin == 'string') {
-		var fn = $.fn.jqGrid[pin];
-		if (!fn) {
-			throw ("jqGrid - No such method: " + pin);
-		}
-		var args = $.makeArray(arguments).slice(1);
-		return fn.apply(this,args);
-	}
-	return this.each( function() {
-		if(this.grid) {return;}
-
-		var p = $.extend(true,{
-			url: "",
-			height: 150,
-			page: 1,
-			rowNum: 20,
-			records: 0,
-			pager: "",
-			pgbuttons: true,
-			pginput: true,
-			colModel: [],
-			rowList: [],
-			colNames: [],
-			sortorder: "asc",
-			sortname: "",
-			datatype: "xml",
-			mtype: "GET",
-			altRows: false,
-			selarrrow: [],
-			savedRow: [],
-			shrinkToFit: true,
-			xmlReader: {},
-			jsonReader: {},
-			subGrid: false,
-			subGridModel :[],
-			reccount: 0,
-			lastpage: 0,
-			lastsort: 0,
-			selrow: null,
-			beforeSelectRow: null,
-			onSelectRow: null,
-			onSortCol: null,
-			ondblClickRow: null,
-			onRightClickRow: null,
-			onPaging: null,
-			onSelectAll: null,
-			loadComplete: null,
-			gridComplete: null,
-			loadError: null,
-			loadBeforeSend: null,
-			afterInsertRow: null,
-			beforeRequest: null,
-			onHeaderClick: null,
-			viewrecords: false,
-			loadonce: false,
-			multiselect: false,
-			multikey: false,
-			editurl: null,
-			search: false,
-			caption: "",
-			hidegrid: true,
-			hiddengrid: false,
-			postData: {},
-			userData: {},
-			treeGrid : false,
-			treeGridModel : 'nested',
-			treeReader : {},
-			treeANode : -1,
-			ExpandColumn: null,
-			tree_root_level : 0,
-			prmNames: {page:"page",rows:"rows", sort: "sidx",order: "sord", search:"_search", nd:"nd", id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del", subgridid:"id", npage: null},
-			forceFit : false,
-			gridstate : "visible",
-			cellEdit: false,
-			cellsubmit: "remote",
-			nv:0,
-			loadui: "enable",
-			toolbar: [false,""],
-			scroll: false,
-			multiboxonly : false,
-			deselectAfterSort : true,
-			scrollrows : false,
-			autowidth: false,
-			scrollOffset :18,
-			cellLayout: 5,
-			subGridWidth: 20,
-			multiselectWidth: 20,
-			gridview: false,
-			rownumWidth: 25,
-			rownumbers : false,
-			pagerpos: 'center',
-			recordpos: 'right',
-			footerrow : false,
-			userDataOnFooter : false,
-			hoverrows : true,
-			altclass : 'ui-priority-secondary',
-			viewsortcols : [false,'vertical',true],
-			resizeclass : '',
-			autoencode : false,
-			remapColumns : [],
-			ajaxGridOptions :{},
-			direction : "ltr",
-			toppager: false,
-			headertitles: false,
-			scrollTimeout: 200
-		}, $.jgrid.defaults, pin || {});
-		var grid={
-			headers:[],
-			cols:[],
-			footers: [],
-			dragStart: function(i,x,y) {
-				this.resizing = { idx: i, startX: x.clientX, sOL : y[0]};
-				this.hDiv.style.cursor = "col-resize";
-				this.curGbox = $("#rs_m"+p.id,"#gbox_"+p.id);
-				this.curGbox.css({display:"block",left:y[0],top:y[1],height:y[2]});
-				if($.isFunction(p.resizeStart)) { p.resizeStart.call(this,x,i); }
-				document.onselectstart=function(){return false;};
-			},
-			dragMove: function(x) {
-				if(this.resizing) {
-					var diff = x.clientX-this.resizing.startX,
-					h = this.headers[this.resizing.idx],
-					newWidth = p.direction === "ltr" ? h.width + diff : h.width - diff, hn, nWn;
-					if(newWidth > 33) {
-						this.curGbox.css({left:this.resizing.sOL+diff});
-						if(p.forceFit===true ){
-							hn = this.headers[this.resizing.idx+p.nv];
-							nWn = p.direction === "ltr" ? hn.width - diff : hn.width + diff;
-							if(nWn >33) {
-								h.newWidth = newWidth;
-								hn.newWidth = nWn;
-							}
-						} else {
-							this.newWidth = p.direction === "ltr" ? p.tblwidth+diff : p.tblwidth-diff;
-							h.newWidth = newWidth;
-						}
-					}
-				}
-			},
-			dragEnd: function() {
-				this.hDiv.style.cursor = "default";
-				if(this.resizing) {
-					var idx = this.resizing.idx,
-					nw = this.headers[idx].newWidth || this.headers[idx].width;
-					nw = parseInt(nw,10);
-					this.resizing = false;
-					$("#rs_m"+p.id).css("display","none");
-					p.colModel[idx].width = nw;
-					this.headers[idx].width = nw;
-					this.headers[idx].el.style.width = nw + "px";
-					if(this.cols.length>0) {this.cols[idx].style.width = nw+"px";}
-					if(this.footers.length>0) {this.footers[idx].style.width = nw+"px";}
-					if(p.forceFit===true){
-						nw = this.headers[idx+p.nv].newWidth || this.headers[idx+p.nv].width;
-						this.headers[idx+p.nv].width = nw;
-						this.headers[idx+p.nv].el.style.width = nw + "px";
-						if(this.cols.length>0) { this.cols[idx+p.nv].style.width = nw+"px"; }
-						if(this.footers.length>0) {this.footers[idx+p.nv].style.width = nw+"px";}
-						p.colModel[idx+p.nv].width = nw;
-					} else {
-						p.tblwidth = this.newWidth || p.tblwidth;
-						$('table:first',this.bDiv).css("width",p.tblwidth+"px");
-						$('table:first',this.hDiv).css("width",p.tblwidth+"px");
-						this.hDiv.scrollLeft = this.bDiv.scrollLeft;
-						if(p.footerrow) {
-							$('table:first',this.sDiv).css("width",p.tblwidth+"px");
-							this.sDiv.scrollLeft = this.bDiv.scrollLeft;
-						}
-					}
-					if($.isFunction(p.resizeStop)) { p.resizeStop.call(this,nw,idx); }
-				}
-				this.curGbox = null;
-				document.onselectstart=function(){return true;};
-			},
-			populateVisible: function() {
-				if (grid.timer) { clearTimeout(grid.timer); }
-				grid.timer = null;
-
-				var dh = $(grid.bDiv).height();
-				if (!dh) { return; }
-				var table = $("table:first", grid.bDiv);
-				var rows = $("> tbody > tr:visible:first", table);
-				var rh = rows.outerHeight() || grid.prevRowHeight;
-				if (!rh) { return; }
-				grid.prevRowHeight = rh;
-				var rn = p.rowNum;
-				var scrollTop = grid.scrollTop = grid.bDiv.scrollTop;
-				var ttop = Math.round(table.position().top) - scrollTop;
-				var tbot = ttop + table.height();
-				var div = rh * rn;
-				var page, npage, empty;
-				// tbot < dh &&
-			    if (ttop <= 0 &&  
-                    (p.lastpage===undefined||parseInt((tbot + scrollTop + div - 1) / div,10) <= p.lastpage))
-                {
-					npage = parseInt((dh - tbot + div - 1) / div,10);
-					if (tbot >= 0 || npage < 2 || p.scroll === true) {
-						page = Math.round((tbot + scrollTop) / div) + 1;
-						ttop = -1;
-					} else {
-						ttop = 1;
-					}
-				}
-				if (ttop > 0) {
-					page = parseInt(scrollTop / div,10) + 1;
-					npage = parseInt((scrollTop + dh) / div,10) + 2 - page;
-					empty = true;
-				}
-				if (npage) {
-					if (p.lastpage && page > p.lastpage) {
-						return;
-					}
-					if (grid.hDiv.loading) {
-						grid.timer = setTimeout(grid.populateVisible, p.scrollTimeout);
-					} else {
-						p.page = page;
-						if (empty) {
-							grid.selectionPreserver(table[0]);
-							grid.emptyRows(grid.bDiv,false);
-						}
-						grid.populate(npage);
-					}
-				}
-			},
-			scrollGrid: function() {
-				if(p.scroll) {
-					var scrollTop = grid.bDiv.scrollTop;
-					if (scrollTop != grid.scrollTop) {
-						grid.scrollTop = scrollTop;
-						if (grid.timer) { clearTimeout(grid.timer); }
-						grid.timer = setTimeout(grid.populateVisible, 200);
-					}
-				}
-				grid.hDiv.scrollLeft = grid.bDiv.scrollLeft;
-				if(p.footerrow) {
-					grid.sDiv.scrollLeft = grid.bDiv.scrollLeft;
-				}
-			},
-			selectionPreserver : function(ts) {
-				var p = ts.p;
-				var sr = p.selrow, sra = p.selarrrow ? $.makeArray(p.selarrrow) : null;
-				var left = ts.grid.bDiv.scrollLeft;
-				var complete = p.gridComplete;
-				p.gridComplete = function() {
-					p.selrow = null;
-					p.selarrrow = [];
-					if(p.multiselect && sra && sra.length>0) {
-						for(var i=0;i<sra.length;i++){
-							if (sra[i] != sr) {
-								$(ts).jqGrid("setSelection",sra[i],false);
-							}
-						}
-					}
-					if (sr) {
-						$(ts).jqGrid("setSelection",sr,false);
-					}
-					ts.grid.bDiv.scrollLeft = left;
-					p.gridComplete = complete;
-					if (p.gridComplete) {
-						complete();
-					}
-				};
-			}
-		};
-		this.p = p ;
-		var i, dir,ts;
-		if(this.p.colNames.length === 0) {
-			for (i=0;i<this.p.colModel.length;i++){
-				this.p.colNames[i] = this.p.colModel[i].label || this.p.colModel[i].name;
-			}
-		}
-		if( this.p.colNames.length !== this.p.colModel.length ) {
-			alert($.jgrid.errors.model);
-			return;
-		}
-		var gv = $("<div class='ui-jqgrid-view'></div>"), ii,
-		isMSIE = $.browser.msie ? true:false,
-		isSafari = $.browser.safari ? true : false;
-		ts = this;
-		ts.p.direction = $.trim(ts.p.direction.toLowerCase());
-		if($.inArray(ts.p.direction,["ltr","rtl"]) == -1) { ts.p.direction = "ltr"; }
-		dir = ts.p.direction;
-
-		$(gv).insertBefore(this);
-		$(this).appendTo(gv).removeClass("scroll");
-		var eg = $("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");
-		$(eg).insertBefore(gv).attr({"id" : "gbox_"+this.id,"dir":dir});
-		$(gv).appendTo(eg).attr("id","gview_"+this.id);
-		if (isMSIE && $.browser.version <= 6) {
-			ii = '<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>';
-		} else { ii="";}
-		$("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(ii).insertBefore(gv);
-		$("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(gv);
-		$(this).attr({cellSpacing:"0",cellPadding:"0",border:"0","role":"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});
-		var sortkeys = ["shiftKey","altKey","ctrlKey"],
-		intNum = function(val,defval) {
-			val = parseInt(val,10);
-			if (isNaN(val)) { return defval ? defval : 0;}
-			else {return val;}
-		},
-		formatCol = function (pos, rowInd, tv){
-			var cm = ts.p.colModel[pos],
-			ral = cm.align, result="style=\"", clas = cm.classes, nm = cm.name;
-			if(ral) { result += "text-align:"+ral+";"; }
-			if(cm.hidden===true) { result += "display:none;"; }
-			if(rowInd===0) {
-				result += "width: "+grid.headers[pos].width+"px;";
-			}
-			result += "\"" + (clas !== undefined ? (" class=\""+clas+"\"") :"") + ((cm.title && tv) ? (" title=\""+$.jgrid.stripHtml(tv)+"\"") :"");
-			result += " aria-describedby=\""+ts.p.id+"_"+nm+"\"";
-			return result;
-		},
-		cellVal =  function (val) {
-			return val === undefined || val === null || val === "" ? "&#160;" : (ts.p.autoencode ? $.jgrid.htmlEncode(val) : val+"");
-		},
-		formatter = function (rowId, cellval , colpos, rwdat, _act){
-			var cm = ts.p.colModel[colpos],v;
-			if(typeof cm.formatter !== 'undefined') {
-				var opts= {rowId: rowId, colModel:cm, gid:ts.p.id };
-				if($.isFunction( cm.formatter ) ) {
-					v = cm.formatter.call(ts,cellval,opts,rwdat,_act);
-				} else if($.fmatter){
-					v = $.fn.fmatter(cm.formatter, cellval,opts, rwdat, _act);
-				} else {
-					v = cellVal(cellval);
-				}
-			} else {
-				v = cellVal(cellval);
-			}
-			return v;
-		},
-		addCell = function(rowId,cell,pos,irow, srvr) {
-			var v,prp;
-			v = formatter(rowId,cell,pos,srvr,'add');
-			prp = formatCol( pos,irow, v);
-			return "<td role=\"gridcell\" "+prp+">"+v+"</td>";
-		},
-		addMulti = function(rowid,pos,irow){
-			var	v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\" name=\"jqg_"+rowid+"\"/>",
-			prp = formatCol(pos,irow,'');
-			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_cb\" "+prp+">"+v+"</td>";
-		},
-		addRowNum = function (pos,irow,pG,rN) {
-			var v =  (parseInt(pG,10)-1)*parseInt(rN,10)+1+irow,
-			prp = formatCol(pos,irow,'');
-			return "<td role=\"gridcell\" aria-describedby=\""+ts.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">"+v+"</td>";
-		},
-		reader = function (datatype) {
-			var field, f=[], j=0, i;
-			for(i =0; i<ts.p.colModel.length; i++){
-				field = ts.p.colModel[i];
-				if (field.name !== 'cb' && field.name !=='subgrid' && field.name !=='rn') {
-					f[j] = (datatype=="xml") ? field.xmlmap || field.name : field.jsonmap || field.name;
-					j++;
-				}
-			}
-			return f;
-		},
-		orderedCols = function (offset) {
-			var order = ts.p.remapColumns;
-			if (!order || !order.length) {
-				order = $.map(ts.p.colModel, function(v,i) { return i; });
-			}
-			if (offset) {
-				order = $.map(order, function(v) { return v<offset?null:v-offset; });
-			}
-			return order;
-		},
-		emptyRows = function (parent, scroll) {
-			if(ts.p.deepempty) { $("tbody:first tr", parent).remove(); }
-			else { $("tbody:first", parent).empty(); }
-			if (scroll && ts.p.scroll) {
-				$(">div:first", parent).css({height:"auto"}).children("div:first").css({height:0,display:"none"});
-				parent.scrollTop = 0;
-			}
-		},
-		getAccessor = function(obj, expr) {
-			var ret,p,prm, i;
-			if( typeof expr === 'function') { return expr(obj); }
-			ret = obj[expr];
-			if(ret===undefined) {
-			    if ( typeof expr === 'string' ) {
-					prm = expr.split('.');
-				}
-				try {
-					i = prm.length; 
-					if( i ) {
-						ret = obj;
-					    while (ret && i--) {
-							p = prm.shift();
-							ret = ret[p];
-						}
-					}
-				} catch (e) {}
-			}
-			return ret;
-		},
-		addXmlData = function (xml,t, rcnt, more, adjust) {
-			var startReq = new Date();
-			ts.p.reccount = 0;
-			if($.isXMLDoc(xml)) {
-				if(ts.p.treeANode===-1 && !ts.p.scroll) {
-					emptyRows(t,false);
-					rcnt=0;
-				} else { rcnt = rcnt > 0 ? rcnt :0; }
-			} else { return; }
-			var i,fpos,ir=0,v,row,gi=0,si=0,ni=0,idn, getId,f=[],F,rd ={}, rl= ts.rows.length, xmlr,rid, rowData=[],ari=0, cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1;
-			if(!ts.p.xmlReader.repeatitems) {f = reader("xml");}
-			if( ts.p.keyIndex===false) {
-				idn = ts.p.xmlReader.id;
-			} else {
-				idn = ts.p.keyIndex;
-			}
-			if(f.length>0 && !isNaN(idn)) {
-				if (ts.p.remapColumns && ts.p.remapColumns.length) {
-					idn = $.inArray(idn, ts.p.remapColumns);
-				}
-				idn=f[idn];
-			}
-			if( (idn+"").indexOf("[") === -1 ) {
-				if (f.length) {
-					getId = function( trow, k) {return $(idn,trow).text() || k;};
-				} else {
-					getId = function( trow, k) {return $(ts.p.xmlReader.cell,trow).eq(idn).text() || k;};
-				}
-			}
-			else {
-				getId = function( trow, k) {return trow.getAttribute(idn.replace(/[\[\]]/g,"")) || k;};
-			}
-			ts.p.userData = {};
-			$(ts.p.xmlReader.page,xml).each(function() {ts.p.page = this.textContent  || this.text || 0; });
-			$(ts.p.xmlReader.total,xml).each(function() {ts.p.lastpage = this.textContent  || this.text; if(ts.p.lastpage===undefined) { ts.p.lastpage=1; } }  );
-			$(ts.p.xmlReader.records,xml).each(function() {ts.p.records = this.textContent  || this.text  || 0; }  );
-			$(ts.p.xmlReader.userdata,xml).each(function() {ts.p.userData[this.getAttribute("name")]=this.textContent || this.text;});
-			var gxml = $(ts.p.xmlReader.root+" "+ts.p.xmlReader.row,xml),gl = gxml.length, j=0;
-			if(gxml && gl){
-			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1,altr;
-			if (adjust) { rn *= adjust+1; }
-			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
-			while (j<gl) {
-				xmlr = gxml[j];
-				rid = getId(xmlr,br+j);
-				altr = rcnt === 0 ? 0 : rcnt+1;
-				cn1 = (altr+j)%2 == 1 ? cn : '';
-				rowData[ari++] = "<tr id=\""+rid+"\" role=\"row\" class =\"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
-				if(ts.p.rownumbers===true) {
-					rowData[ari++] = addRowNum(0,j,ts.p.page,ts.p.rowNum);
-					ni=1;
-				}
-				if(ts.p.multiselect===true) {
-					rowData[ari++] = addMulti(rid,ni,j);
-					gi=1;
-				}
-				if (ts.p.subGrid===true) {
-					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,j+rcnt);
-					si= 1;
-				}
-				if(ts.p.xmlReader.repeatitems){
-					if (!F) { F=orderedCols(gi+si+ni); }
-					var cells = $(ts.p.xmlReader.cell,xmlr);
-					$.each(F, function (k) {
-						var cell = cells[this];
-						if (!cell) { return false; }
-						v = cell.textContent || cell.text;
-						rd[ts.p.colModel[k+gi+si+ni].name] = v;
-						rowData[ari++] = addCell(rid,v,k+gi+si+ni,j+rcnt,xmlr);
-					});
-				} else {
-					for(i = 0; i < f.length;i++) {
-						v = $(f[i],xmlr).text();
-						rd[ts.p.colModel[i+gi+si+ni].name] = v;
-						rowData[ari++] = addCell(rid, v, i+gi+si+ni, j+rcnt, xmlr);
-					}
-				}
-				rowData[ari++] = "</tr>";
-				if(ts.p.gridview === false ) {
-					if( ts.p.treeGrid === true) {
-						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
-						row = $(rowData.join(''))[0]; // speed overhead
-						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
-						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[j+fpos+rcnt]).after(row); }
-					} else {
-						$("tbody:first",t).append(rowData.join(''));
-					}
-					if (ts.p.subGrid===true) {
-						try {$(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
-					}
-					if(afterInsRow) {ts.p.afterInsertRow.call(ts,rid,rd,xmlr);}
-					rowData=[];ari=0;
-				}
-				rd={};
-				ir++;
-				j++;
-				if(ir==rn) {break;}
-			}
-			}
-			if(ts.p.gridview === true) {
-				$("tbody:first",t).append(rowData.join(''));
-			}
-			ts.p.totaltime = new Date() - startReq;
-			if(ir>0) { ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=gl;} }
-			rowData =null;
-			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
-			ts.p.reccount=ir;
-			ts.p.treeANode = -1;
-			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
-			if (!more) { updatepager(false,true); }
-		},
-		addJSONData = function(data,t, rcnt, more, adjust) {
-			var startReq = new Date();
-			ts.p.reccount = 0;
-			if(data) {
-				if(ts.p.treeANode === -1 && !ts.p.scroll) {
-					emptyRows(t,false);
-					rcnt=0;
-				} else { rcnt = rcnt > 0 ? rcnt :0; }
-			} else { return; }
-			var ir=0,v,i,j,row,f=[],F,cur,gi=0,si=0,ni=0,len,drows,idn,rd={}, fpos,rl = ts.rows.length,idr,rowData=[],ari=0,cn=(ts.p.altRows === true) ? " "+ts.p.altclass:"",cn1,lp;
-			ts.p.page = getAccessor(data,ts.p.jsonReader.page) || 0;
-			lp = getAccessor(data,ts.p.jsonReader.total);
-			ts.p.lastpage= lp === undefined ? 1 : lp;
-			ts.p.records= getAccessor(data,ts.p.jsonReader.records) || 0;
-			ts.p.userData = getAccessor(data,ts.p.jsonReader.userdata) || {};
-			if(!ts.p.jsonReader.repeatitems) {
-				F = f = reader("json");
-			}
-			if( ts.p.keyIndex===false ) {
-				idn = ts.p.jsonReader.id;
-			} else {
-				idn = ts.p.keyIndex;
-			}
-			if(f.length>0 && !isNaN(idn)) {
-				if (ts.p.remapColumns && ts.p.remapColumns.length) {
-					idn = $.inArray(idn, ts.p.remapColumns);
-				}
-				idn=f[idn];
-			}
-			drows = getAccessor(data,ts.p.jsonReader.root);
-			if (drows) {
-			len = drows.length; i=0;
-			var rn = parseInt(ts.p.rowNum,10),br=ts.p.scroll?(parseInt(ts.p.page,10)-1)*rn+1:1, altr;
-			if (adjust) { rn *= adjust+1; }
-			var afterInsRow = $.isFunction(ts.p.afterInsertRow);
-			while (i<len) {
-				cur = drows[i];
-				idr = getAccessor(cur,idn);
-				if(idr === undefined) {
-					idr = br+i;
-					if(f.length===0){
-						if(ts.p.jsonReader.cell){
-							var ccur = cur[ts.p.jsonReader.cell];
-							idr = ccur[idn] || idr;
-							ccur=null;
-						}
-					}
-				}
-				altr = rcnt === 0 ? 0 : rcnt+1;
-				cn1 = (altr+i)%2 == 1 ? cn : '';
-				rowData[ari++] = "<tr id=\""+ idr +"\" role=\"row\" class= \"ui-widget-content jqgrow ui-row-"+ts.p.direction+""+cn1+"\">";
-				if(ts.p.rownumbers===true) {
-					rowData[ari++] = addRowNum(0,i,ts.p.page,ts.p.rowNum);
-					ni=1;
-				}
-				if(ts.p.multiselect){
-					rowData[ari++] = addMulti(idr,ni,i);
-					gi = 1;
-				}
-				if (ts.p.subGrid) {
-					rowData[ari++]= $(ts).jqGrid("addSubGridCell",gi+ni,i+rcnt);
-					si= 1;
-				}
-				if (ts.p.jsonReader.repeatitems) {
-					if(ts.p.jsonReader.cell) {cur = getAccessor(cur,ts.p.jsonReader.cell);}
-					if (!F) { F=orderedCols(gi+si+ni); }
-				}
-				for (j=0;j<F.length;j++) {
-					v = getAccessor(cur,F[j]);
-					rowData[ari++] = addCell(idr,v,j+gi+si+ni,i+rcnt,cur);
-					rd[ts.p.colModel[j+gi+si+ni].name] = v;
-				}
-				rowData[ari++] = "</tr>";
-				if(ts.p.gridview === false ) {
-					if( ts.p.treeGrid === true) {
-						fpos = ts.p.treeANode >= -1 ? ts.p.treeANode: 0;
-						row = $(rowData.join(''))[0];
-						try {$(ts).jqGrid("setTreeNode",rd,row);} catch (e) {}
-						if(rl ===  0) { $("tbody:first",t).append(row); } else { $(ts.rows[i+fpos+rcnt]).after(row); }
-					} else {
-						$("tbody:first",t).append(rowData.join(''));
-					}
-					if(ts.p.subGrid === true ) {
-						try { $(ts).jqGrid("addSubGrid",ts.rows[ts.rows.length-1],gi+ni);} catch (_){}
-					}
-					if(afterInsRow) {ts.p.afterInsertRow.call(ts,idr,rd,cur);}
-					rowData=[];ari=0;
-				}
-				rd={};
-				ir++;
-				i++;
-				if(ir==rn) { break; }
-			}
-			if(ts.p.gridview === true ) {
-				$("tbody:first",t).append(rowData.join(''));
-			}
-			ts.p.totaltime = new Date() - startReq;
-			if(ir>0) {ts.grid.cols = ts.rows[0].cells; if(ts.p.records===0) { ts.p.records=len; } }
-			}
-			if(!ts.p.treeGrid && !ts.p.scroll) {ts.grid.bDiv.scrollTop = 0;}
-			ts.p.reccount=ir;
-			ts.p.treeANode = -1;
-			if(ts.p.userDataOnFooter) { $(ts).jqGrid("footerData","set",ts.p.userData,true); }
-			if (!more) { updatepager(false,true); }
-		},
-		updatepager = function(rn, dnd) {
-			var cp, last, base, from,to,tot,fmt, pgboxes = "";
-			base = parseInt(ts.p.page,10)-1;
-			if(base < 0) { base = 0; }
-			base = base*parseInt(ts.p.rowNum,10);
-			to = base + ts.p.reccount;
-			if (ts.p.scroll) {
-				var rows = $("tbody:first > tr", ts.grid.bDiv);
-				base = to - rows.length;
-				var rh = rows.outerHeight();
-				if (rh) {
-					var top = base * rh;
-					var height = parseInt(ts.p.records,10) * rh;
-				    $(">div:first",ts.grid.bDiv).css({height : height}).children("div:first").css({height:top,display:top?"":"none"});
-				}
-			}
-			pgboxes = ts.p.pager ? ts.p.pager : "";
-			pgboxes += ts.p.toppager ?  (pgboxes ? "," + ts.p.toppager : ts.p.toppager) : "";
-			if(pgboxes) {
-				fmt = $.jgrid.formatter.integer || {};
-				if (ts.p.loadonce) {
-					cp = last = 1;
-					ts.p.lastpage = ts.page =1;
-					$(".selbox",pgboxes).attr("disabled",true);
-				} else {
-					cp = intNum(ts.p.page);
-					last = intNum(ts.p.lastpage);
-					$(".selbox",pgboxes).attr("disabled",false);
-				}
-				if(ts.p.pginput===true) {
-					$('.ui-pg-input',pgboxes).val(ts.p.page);
-					$('#sp_1',pgboxes).html($.fmatter ? $.fmatter.util.NumberFormat(ts.p.lastpage,fmt):ts.p.lastpage);
-					
-				}
-				if (ts.p.viewrecords){
-					if(ts.p.reccount === 0) {
-						$(".ui-paging-info",pgboxes).html(ts.p.emptyrecords);
-					} else {
-						from = base+1;
-						tot=ts.p.records;
-						if($.fmatter) {
-							from = $.fmatter.util.NumberFormat(from,fmt);
-							to = $.fmatter.util.NumberFormat(to,fmt);
-							tot = $.fmatter.util.NumberFormat(tot,fmt);
-						}
-						$(".ui-paging-info",pgboxes).html($.jgrid.format(ts.p.recordtext,from,to,tot));
-					}
-				}
-				if(ts.p.pgbuttons===true) {
-					if(cp<=0) {cp = last = 0;}
-					if(cp==1 || cp === 0) {
-						$("#first, #prev",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
-						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
-					} else {
-						$("#first, #prev",ts.p.pager).removeClass('ui-state-disabled');
-						if(ts.p.toppager) { $("#first_t, #prev_t",ts.p.toppager).removeClass('ui-state-disabled'); }
-					}
-					if(cp==last || cp === 0) {
-						$("#next, #last",ts.p.pager).addClass('ui-state-disabled').removeClass('ui-state-hover');
-						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).addClass('ui-state-disabled').removeClass('ui-state-hover'); }
-					} else {
-						$("#next, #last",ts.p.pager).removeClass('ui-state-disabled');
-						if(ts.p.toppager) { $("#next_t, #last_t",ts.p.toppager).removeClass('ui-state-disabled'); }
-					}
-				}
-			}
-			if(rn===true && ts.p.rownumbers === true) {
-				$("td.jqgrid-rownum",ts.rows).each(function(i){
-					$(this).html(base+1+i);
-				});
-			}
-			if(dnd && ts.p.jqgdnd) { $(ts).jqGrid('gridDnD','updateDnD');}
-			if($.isFunction(ts.p.gridComplete)) {ts.p.gridComplete.call(ts);}
-		},
-		populate = function (npage) {
-			if(!ts.grid.hDiv.loading) {
-				var pvis = ts.p.scroll && npage === false;
-				var prm = {}, dt, dstr, pN=ts.p.prmNames;
-				if(ts.p.page <=0) { ts.p.page = 1; }
-				if(pN.search !== null) {prm[pN.search] = ts.p.search;} if(pN.nd !== null) {prm[pN.nd] = new Date().getTime();}
-				if(pN.rows !== null) {prm[pN.rows]= ts.p.rowNum;} if(pN.page !== null) {prm[pN.page]= ts.p.page;}
-				if(pN.sort !== null) {prm[pN.sort]= ts.p.sortname;} if(pN.order !== null) {prm[pN.order]= ts.p.sortorder;}
-				var lc = ts.p.loadComplete;
-				var lcf = $.isFunction(lc);
-				if (!lcf) { lc = null; }
-				var adjust = 0;
-				npage = npage || 1;
-				if (npage > 1) {
-					if(pN.npage !== null) {
-						prm[pN.npage] = npage;
-						adjust = npage - 1;
-						npage = 1;
-					} else {
-						lc = function(req) {
-							if (lcf) {
-								ts.p.loadComplete.call(ts,req);
-							}
-							ts.grid.hDiv.loading = false;
-							ts.p.page++;
-							populate(npage-1);
-						};
-					}
-				} else if (pN.npage !== null) {
-					delete ts.p.postData[pN.npage];
-				}
-				$.extend(ts.p.postData,prm);
-				var rcnt = !ts.p.scroll ? 0 : ts.rows.length-1; 
-				if ($.isFunction(ts.p.datatype)) { ts.p.datatype.call(ts,ts.p.postData,"load_"+ts.p.id); return;}
-				else if($.isFunction(ts.p.beforeRequest)) {ts.p.beforeRequest.call(ts);}
-				dt = ts.p.datatype.toLowerCase();
-				switch(dt)
-				{
-				case "json":
-				case "jsonp":
-				case "xml":
-				case "script":
-					$.ajax($.extend({
-						url:ts.p.url,
-						type:ts.p.mtype,
-						dataType: dt ,
-						data: $.isFunction(ts.p.serializeGridData)? ts.p.serializeGridData.call(ts,ts.p.postData) : ts.p.postData,
-						success:function(req,st) {
-							if(dt === "xml") { addXmlData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
-							else { addJSONData(req,ts.grid.bDiv,rcnt,npage>1,adjust); }
-							if(lc) { lc.call(ts,req); }
-							if (pvis) { ts.grid.populateVisible(); }
-							if( ts.p.loadonce || ts.p.treeGrid) {ts.p.datatype = "local";}
-							req=null;
-							endReq();
-						},
-						error:function(xhr,st,err){
-							if($.isFunction(ts.p.loadError)) { ts.p.loadError.call(ts,xhr,st,err); }
-							endReq();
-							xhr=null;
-						},
-						beforeSend: function(xhr){
-							beginReq();
-							if($.isFunction(ts.p.loadBeforeSend)) { ts.p.loadBeforeSend.call(ts,xhr); }
-						}
-					},$.jgrid.ajaxOptions, ts.p.ajaxGridOptions));
-				break;
-				case "xmlstring":
-					beginReq();
-					dstr = $.jgrid.stringToDoc(ts.p.datastr);
-					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
-					addXmlData(dstr,ts.grid.bDiv);
-					ts.p.datatype = "local";
-					ts.p.datastr = null;
-					endReq();
-				break;
-				case "jsonstring":
-					beginReq();
-					if(typeof ts.p.datastr == 'string') { dstr = $.jgrid.parse(ts.p.datastr); }
-					else { dstr = ts.p.datastr; }
-					if(lcf) {ts.p.loadComplete.call(ts,dstr);}
-					addJSONData(dstr,ts.grid.bDiv);
-					ts.p.datatype = "local";
-					ts.p.datastr = null;
-					endReq();
-				break;
-				case "local":
-				case "clientside":
-					beginReq();
-					ts.p.datatype = "local";
-					if(lcf) {ts.p.loadComplete.call(ts,"");}
-					sortArrayData();
-					updatepager(true,true);
-					endReq();
-				break;
-				}
-			}
-		},
-		beginReq = function() {
-			ts.grid.hDiv.loading = true;
-			if(ts.p.hiddengrid) { return;}
-			switch(ts.p.loadui) {
-				case "disable":
-					break;
-				case "enable":
-					$("#load_"+ts.p.id).show();
-					break;
-				case "block":
-					$("#lui_"+ts.p.id).show();
-					$("#load_"+ts.p.id).show();
-					break;
-			}
-		},
-		endReq = function() {
-			ts.grid.hDiv.loading = false;
-			switch(ts.p.loadui) {
-				case "disable":
-					break;
-				case "enable":
-					$("#load_"+ts.p.id).hide();
-					break;
-				case "block":
-					$("#lui_"+ts.p.id).hide();
-					$("#load_"+ts.p.id).hide();
-					break;
-			}
-		},
-		sortArrayData = function() {
-			var stripNum = /[\$,%]/g;
-			var rows=[], col=0, st, sv, findSortKey,newDir = (ts.p.sortorder == "asc") ? 1 :-1, reverse=false, cm;
-			$.each(ts.p.colModel,function(i,v){
-				if(this.index == ts.p.sortname || this.name == ts.p.sortname){
-					if(ts.p.lastsort == i) { reverse = true; }
-					col = i;
-					st = this.sorttype;
-					return false;
-				}
-			});
-			if (st == 'float' || st== 'number' || st== 'currency') {
-				findSortKey = function($cell) {
-					var key = parseFloat($cell.replace(stripNum, ''));
-					return isNaN(key) ? 0 : key;
-				};
-			} else if (st=='int' || st=='integer') {
-				findSortKey = function($cell) {
-					return intNum($cell.replace(stripNum, ''),0);
-				};
-			} else if(st == 'date' || st == 'datetime') {
-				findSortKey = function($cell) {
-					var fd = ts.p.colModel[col].datefmt || "Y-m-d";
-					return parseDate(fd,$cell).getTime();
-				};
-			} else if($.isFunction(st)) {
-				findSortKey = st;
-			} else {
-				findSortKey = function($cell) {
-					return $.trim($cell.toUpperCase());
-				};
-			}
-			cm = ts.p.colModel[col];
-			$.each(ts.rows, function(index, row) {
-				try { sv = $.unformat($(row).children('td').eq(col),{rowId:row.id, colModel:cm},col,true);}
-				catch (_) { sv = $(row).children('td').eq(col).text(); }
-				row.sortKey = findSortKey(sv);
-				rows[index] = this;
-			});
-			if(ts.p.treeGrid) {
-				$(ts).jqGrid("SortTree",newDir);
-			} else {
-				if(reverse) {
-					rows.reverse();
-				} else {
-					rows.sort(function(a, b) {
-						if (a.sortKey < b.sortKey) {return -newDir;}
-						if (a.sortKey > b.sortKey) {return newDir;}
-						return 0;
-					});
-				}
-				if(rows[0]){
-					$("td",rows[0]).each( function( k ) {
-						$(this).css("width",grid.headers[k].width+"px");
-					});
-					ts.grid.cols = rows[0].cells;
-				}
-				var cn = "";
-				if(ts.p.altRows) { cn = ts.p.altclass; }
-				$.each(rows, function(i, row) {
-					if(cn) {
-						if(i%2 ==1) {$(row).addClass(cn);}
-						else {$(row).removeClass(cn);}
-					}
-					$('tbody',ts.grid.bDiv).append(row);
-					row.sortKey = null;
-				});
-			}
-			ts.grid.bDiv.scrollTop = 0;
-		},
-		parseDate = function(format, date) {
-			var tsp = {m : 1, d : 1, y : 1970, h : 0, i : 0, s : 0},k,hl,dM;
-			date = $.trim(date);
-			if(date){
-				date = date.split(/[\\\/:_;.\t\T\s-]/);
-				format = format.split(/[\\\/:_;.\t\T\s-]/);
-				var dfmt  = $.jgrid.formatter.date.monthNames;
-				var afmt  = $.jgrid.formatter.date.AmPm;
-				var h12to24 = function(ampm, h){
-					if (ampm === 0){ if (h == 12) { h = 0;} }
-					          else { if (h != 12) { h += 12; } }
-					return h;
-				}; 
-				for(k=0,hl=format.length;k<hl;k++){
-					if(format[k] == 'M') {
-						dM = $.inArray(date[k],dfmt);
-						if(dM !== -1 && dM < 12){date[k] = dM+1;}
-					}
-					if(format[k] == 'F') {
-						dM = $.inArray(date[k],dfmt);
-						if(dM !== -1 && dM > 11){date[k] = dM+1-12;}
-					}
-					if(format[k] == 'a') {
-						dM = $.inArray(date[k],afmt);
-						if(dM !== -1 && dM < 2 && date[k] == afmt[dM]){
-							date[k] = dM;
-							tsp.h = h12to24(date[k], tsp.h);
-						}
-					}
-					if(format[k] == 'A') {
-						dM = $.inArray(date[k],afmt);
-						if(dM !== -1 && dM > 1 && date[k] == afmt[dM]){
-							date[k] = dM-2;
-							tsp.h = h12to24(date[k], tsp.h);
-						}
-					}
-					tsp[format[k].toLowerCase()] = parseInt(date[k],10);
-				}
-				tsp.m = parseInt(tsp.m,10)-1;
-				var ty = tsp.y;
-				if (ty >= 70 && ty <= 99) {tsp.y = 1900+tsp.y;}
-				else if (ty >=0 && ty <=69) {tsp.y= 2000+tsp.y;}
-			}
-			return new Date(tsp.y, tsp.m, tsp.d, tsp.h, tsp.i, tsp.s,0);
-		},
-		setPager = function (pgid, tp){
-			var sep = "<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>",
-			pginp = "",
-			pgl="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",
-			str="", pgcnt, lft, cent, rgt, twd, tdw, i,
-			clearVals = function(onpaging){
-				var ret;
-				if ($.isFunction(ts.p.onPaging) ) { ret = ts.p.onPaging.call(ts,onpaging); }
-				ts.p.selrow = null;
-				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
-				ts.p.savedRow = [];
-				if(ret=='stop') {return false;}
-				return true;
-			};
-			//pgid= $(ts.p.pager).attr("id") || 'pager',
-			pgid = pgid.substr(1);
-			pgcnt = "pg_"+pgid;
-			lft = pgid+"_left"; cent = pgid+"_center"; rgt = pgid+"_right";
-			$("#"+pgid)
-			.append("<div id='"+pgcnt+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+lft+"' align='left'></td><td id='"+cent+"' align='center' style='white-space:pre;'></td><td id='"+rgt+"' align='right'></td></tr></tbody></table></div>")
-			.attr("dir","ltr"); //explicit setting
-			if(ts.p.rowList.length >0){
-				str = "<td dir='"+dir+"'>";
-				str +="<select class='ui-pg-selbox' role='listbox'>";
-				for(i=0;i<ts.p.rowList.length;i++){
-					str +="<option role='option' value='"+ts.p.rowList[i]+"'"+((ts.p.rowNum == ts.p.rowList[i])?' selected':'')+">"+ts.p.rowList[i]+"</option>";
-				}
-				str +="</select></td>";
-			}
-			if(dir=="rtl") { pgl += str; }
-			if(ts.p.pginput===true) { pginp= "<td dir='"+dir+"'>"+$.jgrid.format(ts.p.pgtext || "","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>","<span id='sp_1'></span>")+"</td>";}
-			if(ts.p.pgbuttons===true) {
-				var po=["first"+tp,"prev"+tp, "next"+tp,"last"+tp]; if(dir=="rtl") { po.reverse(); }
-				pgl += "<td id='"+po[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";
-				pgl += "<td id='"+po[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";
-				pgl += pginp !="" ? sep+pginp+sep:"";
-				pgl += "<td id='"+po[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";
-				pgl += "<td id='"+po[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>";
-			} else if (pginp !="") { pgl += pginp; }
-			if(dir=="ltr") { pgl += str; }
-			pgl += "</tr></tbody></table>";
-			if(ts.p.viewrecords===true) {$("td#"+pgid+"_"+ts.p.recordpos,"#"+pgcnt).append("<div dir='"+dir+"' style='text-align:"+ts.p.recordpos+"' class='ui-paging-info'></div>");}
-			$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).append(pgl);
-			tdw = $(".ui-jqgrid").css("font-size") || "11px";
-			$('body').append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+tdw+";visibility:hidden;' ></div>");
-			twd = $(pgl).clone().appendTo("#testpg").width();
-			$("#testpg").remove();
-			if(twd > 0) {
-				if(pginp !="") { twd += 50; } //should be param
-				$("td#"+pgid+"_"+ts.p.pagerpos,"#"+pgcnt).width(twd);
-			}
-			ts.p._nvtd = [];
-			ts.p._nvtd[0] = twd ? Math.floor((ts.p.width - twd)/2) : Math.floor(ts.p.width/3);
-			ts.p._nvtd[1] = 0;
-			pgl=null;
-			$('.ui-pg-selbox',"#"+pgcnt).bind('change',function() { 
-				ts.p.page = Math.round(ts.p.rowNum*(ts.p.page-1)/this.value-0.5)+1;
-				ts.p.rowNum = this.value;
-				if(tp) { $('.ui-pg-selbox',ts.p.pager).val(this.value); }
-				else if(ts.p.toppager) { $('.ui-pg-selbox',ts.p.toppager).val(this.value); }
-				if(!clearVals('records')) { return false; }
-				populate();
-				return false;
-			});
-			if(ts.p.pgbuttons===true) {
-			$(".ui-pg-button","#"+pgcnt).hover(function(e){
-				if($(this).hasClass('ui-state-disabled')) {
-					this.style.cursor='default';
-				} else {
-					$(this).addClass('ui-state-hover');
-					this.style.cursor='pointer';
-				}
-			},function(e) {
-				if($(this).hasClass('ui-state-disabled')) {
-				} else {
-					$(this).removeClass('ui-state-hover');
-					this.style.cursor= "default";
-				}
-			});
-			$("#first"+tp+", #prev"+tp+", #next"+tp+", #last"+tp,"#"+pgid).click( function(e) {
-				var cp = intNum(ts.p.page,1),
-				last = intNum(ts.p.lastpage,1), selclick = false,
-				fp=true, pp=true, np=true,lp=true;
-				if(last ===0 || last===1) {fp=false;pp=false;np=false;lp=false; }
-				else if( last>1 && cp >=1) {
-					if( cp === 1) { fp=false; pp=false; } 
-					else if( cp>1 && cp <last){ }
-					else if( cp===last){ np=false;lp=false; }
-				} else if( last>1 && cp===0 ) { np=false;lp=false; cp=last-1;}
-				if( this.id === 'first'+tp && fp ) { ts.p.page=1; selclick=true;} 
-				if( this.id === 'prev'+tp && pp) { ts.p.page=(cp-1); selclick=true;} 
-				if( this.id === 'next'+tp && np) { ts.p.page=(cp+1); selclick=true;} 
-				if( this.id === 'last'+tp && lp) { ts.p.page=last; selclick=true;}
-				if(selclick) {
-					if(!clearVals(this.id)) { return false; }
-					populate();
-				}
-				return false;
-			});
-			}
-			if(ts.p.pginput===true) {
-			$('input.ui-pg-input',"#"+pgcnt).keypress( function(e) {
-				var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
-				if(key == 13) {
-					ts.p.page = ($(this).val()>0) ? $(this).val():ts.p.page;
-					if(!clearVals('user')) { return false; }
-					populate();
-					return false;
-				}
-				return this;
-			});
-			}
-		},
-		sortData = function (index, idxcol,reload,sor){
-			if(!ts.p.colModel[idxcol].sortable) { return; }
-			var so;
-			if(ts.p.savedRow.length > 0) {return;}
-			if(!reload) {
-				if( ts.p.lastsort == idxcol ) {
-					if( ts.p.sortorder == 'asc') {
-						ts.p.sortorder = 'desc';
-					} else if(ts.p.sortorder == 'desc') { ts.p.sortorder = 'asc';}
-				} else { ts.p.sortorder = ts.p.colModel[idxcol].firstsortorder || 'asc'; }
-				ts.p.page = 1;
-			}
-			if(sor) {
-				if(ts.p.lastsort == idxcol && ts.p.sortorder == sor && !reload) { return; }
-				else { ts.p.sortorder = sor; }
-			}
-			var thd= $("thead:first",ts.grid.hDiv).get(0);
-			$("tr th:eq("+ts.p.lastsort+") span.ui-grid-ico-sort",thd).addClass('ui-state-disabled');
-			$("tr th:eq("+ts.p.lastsort+")",thd).attr("aria-selected","false");
-			$("tr th:eq("+idxcol+") span.ui-icon-"+ts.p.sortorder,thd).removeClass('ui-state-disabled');
-			$("tr th:eq("+idxcol+")",thd).attr("aria-selected","true");
-			if(!ts.p.viewsortcols[0]) {
-				if(ts.p.lastsort != idxcol) {
-					$("tr th:eq("+ts.p.lastsort+") span.s-ico",thd).hide();
-					$("tr th:eq("+idxcol+") span.s-ico",thd).show();
-				}
-			}
-			index = index.substring(5);
-			ts.p.sortname = ts.p.colModel[idxcol].index || index;
-			so = ts.p.sortorder;
-			if($.isFunction(ts.p.onSortCol)) {if (ts.p.onSortCol.call(ts,index,idxcol,so)=='stop') {ts.p.lastsort = idxcol; return;}}
-			if(ts.p.datatype == "local") {
-				if(ts.p.deselectAfterSort) {$(ts).jqGrid("resetSelection");}
-			} else {
-				ts.p.selrow = null;
-				if(ts.p.multiselect){$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
-				ts.p.selarrrow =[];
-				ts.p.savedRow =[];
-				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
-			}
-			if(ts.p.subGrid && ts.p.datatype=='local') {
-				$("td.sgexpanded","#"+ts.p.id).each(function(){
-					$(this).trigger("click");
-				});
-			}
-			populate();
-			ts.p.lastsort = idxcol;
-			if(ts.p.sortname != index && idxcol) {ts.p.lastsort = idxcol;}
-		},
-		setColWidth = function () {
-			var initwidth = 0, brd=ts.p.cellLayout, vc=0, lvc, scw=ts.p.scrollOffset,cw,hs=false,aw,tw=0,gw=0,
-			cl = 0, cr;
-			if (isSafari) { brd=0; }
-			$.each(ts.p.colModel, function(i) {
-				if(typeof this.hidden === 'undefined') {this.hidden=false;}
-				if(this.hidden===false){
-					initwidth += intNum(this.width,0);
-					if(this.fixed) {
-						tw += this.width;
-						gw += this.width+brd;
-					} else {
-						vc++;
-					}
-					cl++;
-				}
-			});
-			if(isNaN(ts.p.width)) {ts.p.width = grid.width = initwidth;}
-			else { grid.width = ts.p.width;}
-			ts.p.tblwidth = initwidth;
-			if(ts.p.shrinkToFit ===false && ts.p.forceFit === true) {ts.p.forceFit=false;}
-			if(ts.p.shrinkToFit===true && vc > 0) {
-				aw = grid.width-brd*vc-gw;
-				if(isNaN(ts.p.height)) {
-				} else {
-					aw -= scw;
-					hs = true;
-				}
-				initwidth =0;
-				$.each(ts.p.colModel, function(i) {
-					if(this.hidden === false && !this.fixed){
-						cw = Math.round(aw*this.width/(ts.p.tblwidth-tw));
-						this.width =cw;
-						initwidth += cw;
-						lvc = i;
-					}
-				});
-				cr =0;
-				if (hs) {
-					if(grid.width-gw-(initwidth+brd*vc) !== scw){
-						cr = grid.width-gw-(initwidth+brd*vc)-scw;
-					}
-				} else if(!hs && Math.abs(grid.width-gw-(initwidth+brd*vc)) !== 1) {
-					cr = grid.width-gw-(initwidth+brd*vc);
-				}
-				ts.p.colModel[lvc].width += cr;
-				ts.p.tblwidth = initwidth+cr+tw+cl*brd;
-				if(ts.p.tblwidth > ts.p.width) {
-					ts.p.colModel[lvc].width -= (ts.p.tblwidth - parseInt(ts.p.width,10));
-					ts.p.tblwidth = ts.p.width;
-				}
-			}
-		},
-		nextVisible= function(iCol) {
-			var ret = iCol, j=iCol, i;
-			for (i = iCol+1;i<ts.p.colModel.length;i++){
-				if(ts.p.colModel[i].hidden !== true ) {
-					j=i; break;
-				}
-			}
-			return j-ret;
-		},
-		getOffset = function (iCol) {
-			var i, ret = {}, brd1 = isSafari ? 0 : ts.p.cellLayout;
-			ret[0] =  ret[1] = ret[2] = 0;
-			for(i=0;i<=iCol;i++){
-				if(ts.p.colModel[i].hidden === false ) {
-					ret[0] += ts.p.colModel[i].width+brd1;
-				}
-			}
-			if(ts.p.direction=="rtl") { ret[0] = ts.p.width - ret[0]; }
-			ret[0] = ret[0] - ts.grid.bDiv.scrollLeft;
-			if($(ts.grid.cDiv).is(":visible")) {ret[1] += $(ts.grid.cDiv).height() +parseInt($(ts.grid.cDiv).css("padding-top"),10)+parseInt($(ts.grid.cDiv).css("padding-bottom"),10);}
-			if(ts.p.toolbar[0]===true && (ts.p.toolbar[1]=='top' || ts.p.toolbar[1]=='both')) {ret[1] += $(ts.grid.uDiv).height()+parseInt($(ts.grid.uDiv).css("border-top-width"),10)+parseInt($(ts.grid.uDiv).css("border-bottom-width"),10);}
-			if(ts.p.toppager) {ret[1] += $(ts.grid.topDiv).height()+parseInt($(ts.grid.topDiv).css("border-bottom-width"),10);}
-			ret[2] += $(ts.grid.bDiv).height() + $(ts.grid.hDiv).height();
-			return ret;
-		};
-		this.p.id = this.id;
-		if ($.inArray(ts.p.multikey,sortkeys) == -1 ) {ts.p.multikey = false;}
-		ts.p.keyIndex=false;
-		for (i=0; i<ts.p.colModel.length;i++) {
-			if (ts.p.colModel[i].key===true) {
-				ts.p.keyIndex = i;
-				break;
-			}
-		}
-		ts.p.sortorder = ts.p.sortorder.toLowerCase();
-		if(this.p.treeGrid === true) {
-			try { $(this).jqGrid("setTreeGrid");} catch (_) {}
-		}
-		if(this.p.subGrid) {
-			try { $(ts).jqGrid("setSubGrid");} catch (_){}
-		}
-		if(this.p.multiselect) {
-			this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");
-			this.p.colModel.unshift({name:'cb',width:isSafari ? ts.p.multiselectWidth+ts.p.cellLayout : ts.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
-		}
-		if(this.p.rownumbers) {
-			this.p.colNames.unshift("");
-			this.p.colModel.unshift({name:'rn',width:ts.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:'center',fixed:true});
-		}
-		ts.p.xmlReader = $.extend(true,{
-			root: "rows",
-			row: "row",
-			page: "rows>page",
-			total: "rows>total",
-			records : "rows>records",
-			repeatitems: true,
-			cell: "cell",
-			id: "[id]",
-			userdata: "userdata",
-			subgrid: {root:"rows", row: "row", repeatitems: true, cell:"cell"}
-		}, ts.p.xmlReader);
-		ts.p.jsonReader = $.extend(true,{
-			root: "rows",
-			page: "page",
-			total: "total",
-			records: "records",
-			repeatitems: true,
-			cell: "cell",
-			id: "id",
-			userdata: "userdata",
-			subgrid: {root:"rows", repeatitems: true, cell:"cell"}
-		},ts.p.jsonReader);
-		if(ts.p.scroll){
-			ts.p.pgbuttons = false; ts.p.pginput=false; ts.p.rowList=[];
-		}
-		var thead = "<thead><tr class='ui-jqgrid-labels' role='rowheader'>",
-		tdc, idn, w, res, sort,
-		td, ptr, tbody, imgs,iac="",idc="";
-		if(ts.p.shrinkToFit===true && ts.p.forceFit===true) {
-			for (i=ts.p.colModel.length-1;i>=0;i--){
-				if(!ts.p.colModel[i].hidden) {
-					ts.p.colModel[i].resizable=false;
-					break;
-				}
-			}
-		}
-		if(ts.p.viewsortcols[1] == 'horizontal') {iac=" ui-i-asc";idc=" ui-i-desc";}
-		tdc = isMSIE ?  "class='ui-th-div-ie'" :"";
-		imgs = "<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+iac+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+dir+"'></span>";
-		imgs += "<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+idc+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+dir+"'></span></span>";
-		for(i=0;i<this.p.colNames.length;i++){
-			var tooltip = ts.p.headertitles ? (" title=\""+$.jgrid.stripHtml(ts.p.colNames[i])+"\"") :"";
-			thead += "<th id='"+ts.p.id+"_"+ts.p.colModel[i].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+dir+"'"+ tooltip+">";
-			idn = ts.p.colModel[i].index || ts.p.colModel[i].name;
-			thead += "<div id='jqgh_"+ts.p.colModel[i].name+"' "+tdc+">"+ts.p.colNames[i];
-			if(!ts.p.colModel[i].width)  { ts.p.colModel[i].width = 150; }
-			else { ts.p.colModel[i].width = parseInt(ts.p.colModel[i].width,10); }
-			if(typeof(ts.p.colModel[i].title) !== "boolean") { ts.p.colModel[i].title = true; }
-			if (idn == ts.p.sortname) {
-				ts.p.lastsort = i;
-			} 
-			thead += imgs+"</div></th>";
-		}
-		thead += "</tr></thead>";
-		$(this).append(thead);
-		$("thead tr:first th",this).hover(function(){$(this).addClass('ui-state-hover');},function(){$(this).removeClass('ui-state-hover');});
-		if(this.p.multiselect) {
-			var emp=[], chk;
-			$('#cb_'+$.jgrid.jqID(ts.p.id),this).bind('click',function(){
-				if (this.checked) {
-					$("[id^=jqg_]",ts.rows).attr("checked",true);
-					$(ts.rows).each(function(i) {
-						if(!$(this).hasClass("subgrid")){
-						$(this).addClass("ui-state-highlight").attr("aria-selected","true");
-						ts.p.selarrrow[i]= ts.p.selrow = this.id; 
-						}
-					});
-					chk=true;
-					emp=[];
-				}
-				else {
-					$("[id^=jqg_]",ts.rows).attr("checked",false);
-					$(ts.rows).each(function(i) {
-						if(!$(this).hasClass("subgrid")){
-							$(this).removeClass("ui-state-highlight").attr("aria-selected","false");
-							emp[i] = this.id;
-						}
-					});
-					ts.p.selarrrow = []; ts.p.selrow = null;
-					chk=false;
-				}
-				if($.isFunction(ts.p.onSelectAll)) {ts.p.onSelectAll.call(ts, chk ? ts.p.selarrrow : emp,chk);}
-			});
-		}
-		
-		if(ts.p.autowidth===true) {
-			var pw = $(eg).innerWidth();
-			ts.p.width = pw > 0?  pw: 'nw';
-		}
-		setColWidth();
-		$(eg).css("width",grid.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+ts.p.id+"'>&#160;</div>");
-		$(gv).css("width",grid.width+"px");
-		thead = $("thead:first",ts).get(0);
-		var	tfoot = "<table role='grid' style='width:"+ts.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+dir+"'>";
-		var thr = $("tr:first",thead);
-		ts.p.disableClick=false;
-		$("th",thr).each(function ( j ) {
-			w = ts.p.colModel[j].width;
-			if(typeof ts.p.colModel[j].resizable === 'undefined') {ts.p.colModel[j].resizable = true;}
-			if(ts.p.colModel[j].resizable){
-				res = document.createElement("span");
-				$(res).html("&#160;").addClass('ui-jqgrid-resize ui-jqgrid-resize-'+dir);
-				if(!$.browser.opera) { $(res).css("cursor","col-resize"); }
-				$(this).addClass(ts.p.resizeclass);
-			} else {
-				res = "";
-			}
-			$(this).css("width",w+"px").prepend(res);
-			if( ts.p.colModel[j].hidden ) { $(this).css("display","none"); }
-			grid.headers[j] = { width: w, el: this };
-			sort = ts.p.colModel[j].sortable;
-			if( typeof sort !== 'boolean') {ts.p.colModel[j].sortable =  true; sort=true;}
-			var nm = ts.p.colModel[j].name;
-			if( !(nm == 'cb' || nm=='subgrid' || nm=='rn') ) {
-				if(ts.p.viewsortcols[2]){
-					$("div",this).addClass('ui-jqgrid-sortable');
-				}
-			}
-			if(sort) {
-				if(ts.p.viewsortcols[0]) {$("div span.s-ico",this).show(); if(j==ts.p.lastsort){ $("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}}
-				else if( j == ts.p.lastsort) {$("div span.s-ico",this).show();$("div span.ui-icon-"+ts.p.sortorder,this).removeClass("ui-state-disabled");}
-			}
-			tfoot += "<td role='gridcell' "+formatCol(j,0,'')+">&#160;</td>";
-		}).mousedown(function(e) {
-			if ($(e.target).closest("th>span.ui-jqgrid-resize").length != 1) { return; }
-			var ci = $.jgrid.getCellIndex(this);
-			if(ts.p.forceFit===true) {ts.p.nv= nextVisible(ci);}
-			grid.dragStart(ci, e, getOffset(ci));
-			return false;
-		}).click(function(e) {
-			if (ts.p.disableClick) {
-				ts.p.disableClick = false;
-				return false;
-			}
-			var s = "th>div.ui-jqgrid-sortable",r,d;
-			if (!ts.p.viewsortcols[2]) { s = "th>div>span>span.ui-grid-ico-sort"; }
-			var t = $(e.target).closest(s);
-			if (t.length != 1) { return; }
-			var ci = $.jgrid.getCellIndex(this);
-			if (!ts.p.viewsortcols[2]) { r=true;d=t.attr("sort"); }
-			sortData($('div',this)[0].id,ci,r,d);
-			return false;
-		});
-		if (ts.p.sortable && $.fn.sortable) {
-			try {
-				$(ts).jqGrid("sortableColumns", thr);
-			} catch (e){}
-		}
-		tfoot += "</tr></tbody></table>";
-		
-		tbody = document.createElement("tbody");
-		this.appendChild(tbody);
-		$(this).addClass('ui-jqgrid-btable');
-		var hTable = $("<table class='ui-jqgrid-htable' style='width:"+ts.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(thead),
-		hg = (ts.p.caption && ts.p.hiddengrid===true) ? true : false,
-		hb = $("<div class='ui-jqgrid-hbox" + (dir=="rtl" ? "-rtl" : "" )+"'></div>");
-		grid.hDiv = document.createElement("div");
-		$(grid.hDiv)
-			.css({ width: grid.width+"px"})
-			.addClass("ui-state-default ui-jqgrid-hdiv")
-			.append(hb);
-		$(hb).append(hTable);
-		if(hg) { $(grid.hDiv).hide(); }
-		if(ts.p.pager){
-			if(typeof ts.p.pager == "string") {if(ts.p.pager.substr(0,1) !="#") { ts.p.pager = "#"+ts.p.pager;} }
-			else { ts.p.pager = "#"+ $(ts.p.pager).attr("id");}
-			$(ts.p.pager).css({width: grid.width+"px"}).appendTo(eg).addClass('ui-state-default ui-jqgrid-pager ui-corner-bottom');
-			if(hg) {$(ts.p.pager).hide();}
-			setPager(ts.p.pager,'');
-		}
-		if( ts.p.cellEdit === false && ts.p.hoverrows === true) {
-		$(ts).bind('mouseover',function(e) {
-			ptr = $(e.target).closest("tr.jqgrow");
-			if($(ptr).attr("class") !== "subgrid") {
-				$(ptr).addClass("ui-state-hover");
-			}
-			return false;
-		}).bind('mouseout',function(e) {
-			ptr = $(e.target).closest("tr.jqgrow");
-			$(ptr).removeClass("ui-state-hover");
-			return false;
-		});
-		}
-		var ri,ci;
-		$(ts).before(grid.hDiv).click(function(e) {
-			td = e.target;
-			var scb = $(td).hasClass("cbox");
-			ptr = $(td,ts.rows).closest("tr.jqgrow");
-			if($(ptr).length === 0 ) {
-				return this;
-			}
-			var cSel = true;
-			if($.isFunction(ts.p.beforeSelectRow)) { cSel = ts.p.beforeSelectRow.call(ts,ptr[0].id, e); }
-			if (td.tagName == 'A' || ((td.tagName == 'INPUT' || td.tagName == 'TEXTAREA' || td.tagName == 'OPTION' || td.tagName == 'SELECT' ) && !scb) ) { return this; }
-			if(cSel === true) {
-				if(ts.p.cellEdit === true) {
-					if(ts.p.multiselect && scb){
-						$(ts).jqGrid("setSelection",ptr[0].id,true);
-					} else {
-						ri = ptr[0].rowIndex;
-						ci = $.jgrid.getCellIndex(td);
-						try {$(ts).jqGrid("editCell",ri,ci,true);} catch (_) {}
-					}
-				} else if ( !ts.p.multikey ) {
-					if(ts.p.multiselect && ts.p.multiboxonly) {
-						if(scb){$(ts).jqGrid("setSelection",ptr[0].id,true);}
-						else {
-							$(ts.p.selarrrow).each(function(i,n){
-								var ind = ts.rows.namedItem(n);
-								$(ind).removeClass("ui-state-highlight");
-								$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
-							});
-							ts.p.selarrrow = [];
-							$("#cb_"+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);
-							$(ts).jqGrid("setSelection",ptr[0].id,true);
-						}
-					} else {
-						$(ts).jqGrid("setSelection",ptr[0].id,true);
-					}
-				} else {
-					if(e[ts.p.multikey]) {
-						$(ts).jqGrid("setSelection",ptr[0].id,true);
-					} else if(ts.p.multiselect && scb) {
-						scb = $("[id^=jqg_]",ptr).attr("checked");
-						$("[id^=jqg_]",ptr).attr("checked",!scb);
-					}
-				}
-				if($.isFunction(ts.p.onCellSelect)) {
-					ri = ptr[0].id;
-					ci = $.jgrid.getCellIndex(td);
-					ts.p.onCellSelect.call(ts,ri,ci,$(td).html(),e);
-				}
-				e.stopPropagation();
-			} else {
-				return this;
-			}
-		}).bind('reloadGrid', function(e,opts) {
-			if(ts.p.treeGrid ===true) {	ts.p.datatype = ts.p.treedatatype;}
-			if (opts && opts.current) {
-				ts.grid.selectionPreserver(ts);
-			}
-			if(ts.p.datatype=="local"){ $(ts).jqGrid("resetSelection");}
-			else if(!ts.p.treeGrid) {
-				ts.p.selrow=null;
-				if(ts.p.multiselect) {ts.p.selarrrow =[];$('#cb_'+$.jgrid.jqID(ts.p.id),ts.grid.hDiv).attr("checked",false);}
-				ts.p.savedRow = [];
-				if(ts.p.scroll) {emptyRows(ts.grid.bDiv,true);}
-			}
-			if (opts && opts.page) {
-				var page = opts.page;
-				if (page > ts.p.lastpage) { page = ts.p.lastpage; }
-				if (page < 1) { page = 1; }
-				ts.p.page = page;
-				if (ts.grid.prevRowHeight) {
-					ts.grid.bDiv.scrollTop = (page - 1) * ts.grid.prevRowHeight * ts.p.rowNum;
-				} else {
-					ts.grid.bDiv.scrollTop = 0;
-				}
-			}
-			if (ts.grid.prevRowHeight && ts.p.scroll) {
-                delete ts.p.lastpage;
-				ts.grid.populateVisible();
-			} else {
-				ts.grid.populate();
-			}
-			return false;
-		});
-		if( $.isFunction(this.p.ondblClickRow) ) {
-			$(this).dblclick(function(e) {
-				td = e.target;
-				ptr = $(td,ts.rows).closest("tr.jqgrow");
-				if($(ptr).length === 0 ){return false;}
-				ri = ptr[0].rowIndex;
-				ci = $.jgrid.getCellIndex(td);
-				ts.p.ondblClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
-				return false;
-			});
-		}
-		if ($.isFunction(this.p.onRightClickRow)) {
-			$(this).bind('contextmenu', function(e) {
-				td = e.target;
-				ptr = $(td,ts.rows).closest("tr.jqgrow");
-				if($(ptr).length === 0 ){return false;}
-				if(!ts.p.multiselect) {	$(ts).jqGrid("setSelection",ptr[0].id,true);	}
-				ri = ptr[0].rowIndex;
-				ci = $.jgrid.getCellIndex(td);
-				ts.p.onRightClickRow.call(ts,$(ptr).attr("id"),ri,ci, e);
-				return false;
-			});
-		}
-		grid.bDiv = document.createElement("div");
-		$(grid.bDiv)
-			.append($('<div style="position:relative;'+(isMSIE && $.browser.version < 8 ? "height:0.01%;" : "")+'"></div>').append('<div></div>').append(this))
-			.addClass("ui-jqgrid-bdiv")
-			.css({ height: ts.p.height+(isNaN(ts.p.height)?"":"px"), width: (grid.width)+"px"})
-			.scroll(grid.scrollGrid);
-		$("table:first",grid.bDiv).css({width:ts.p.tblwidth+"px"});
-		if( isMSIE ) {
-			if( $("tbody",this).size() == 2 ) { $("tbody:first",this).remove();}
-			if( ts.p.multikey) {$(grid.bDiv).bind("selectstart",function(){return false;});}
-		} else {
-			if( ts.p.multikey) {$(grid.bDiv).bind("mousedown",function(){return false;});}
-		}
-		if(hg) {$(grid.bDiv).hide();}
-		grid.cDiv = document.createElement("div");
-		var arf = ts.p.hidegrid===true ? $("<a role='link' href='javascript:void(0)'/>").addClass('ui-jqgrid-titlebar-close HeaderButton').hover(
-			function(){ arf.addClass('ui-state-hover');},
-			function() {arf.removeClass('ui-state-hover');})
-		.append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css((dir=="rtl"?"left":"right"),"0px") : "";
-		$(grid.cDiv).append(arf).append("<span class='ui-jqgrid-title"+(dir=="rtl" ? "-rtl" :"" )+"'>"+ts.p.caption+"</span>")
-		.addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");
-		$(grid.cDiv).insertBefore(grid.hDiv);
-		if( ts.p.toolbar[0] ) {
-			grid.uDiv = document.createElement("div");
-			if(ts.p.toolbar[1] == "top") {$(grid.uDiv).insertBefore(grid.hDiv);}
-			else if (ts.p.toolbar[1]=="bottom" ) {$(grid.uDiv).insertAfter(grid.hDiv);}
-			if(ts.p.toolbar[1]=="both") {
-				grid.ubDiv = document.createElement("div");
-				$(grid.uDiv).insertBefore(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
-				$(grid.ubDiv).insertAfter(grid.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);
-				if(hg)  {$(grid.ubDiv).hide();}
-			} else {
-				$(grid.uDiv).width(grid.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);
-			}
-			if(hg) {$(grid.uDiv).hide();}
-		}
-		if(ts.p.toppager) {
-			ts.p.toppager = ts.p.id+"_toppager";
-			grid.topDiv = $("<div id='"+ts.p.toppager+"'></div>")[0];
-			ts.p.toppager = "#"+ts.p.toppager;
-			$(grid.topDiv).insertBefore(grid.hDiv).addClass('ui-state-default ui-jqgrid-toppager').width(grid.width);
-			setPager(ts.p.toppager,'_t');
-		}
-		if(ts.p.footerrow) {
-			grid.sDiv = $("<div class='ui-jqgrid-sdiv'></div>")[0];
-			hb = $("<div class='ui-jqgrid-hbox"+(dir=="rtl"?"-rtl":"")+"'></div>");
-			$(grid.sDiv).append(hb).insertAfter(grid.hDiv).width(grid.width);
-			$(hb).append(tfoot);
-			grid.footers = $(".ui-jqgrid-ftable",grid.sDiv)[0].rows[0].cells;
-			if(ts.p.rownumbers) { grid.footers[0].className = 'ui-state-default jqgrid-rownum'; }
-			if(hg) {$(grid.sDiv).hide();}
-		}
-		if(ts.p.caption) {
-			var tdt = ts.p.datatype;
-			if(ts.p.hidegrid===true) {
-				$(".ui-jqgrid-titlebar-close",grid.cDiv).click( function(e){
-					var onHdCl = $.isFunction(ts.p.onHeaderClick);
-					if(ts.p.gridstate == 'visible') {
-						$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+ts.p.id).slideUp("fast");
-						if(ts.p.pager) {$(ts.p.pager).slideUp("fast");}
-						if(ts.p.toppager) {$(ts.p.toppager).slideUp("fast");}
-						if(ts.p.toolbar[0]===true) {
-							if( ts.p.toolbar[1]=='both') {
-								$(grid.ubDiv).slideUp("fast");
-							}
-							$(grid.uDiv).slideUp("fast");
-						}
-						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideUp("fast"); }
-						$("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
-						ts.p.gridstate = 'hidden';
-						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).hide(); }
-						if(onHdCl) {if(!hg) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}}
-					} else if(ts.p.gridstate == 'hidden'){
-						$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+ts.p.id).slideDown("fast");
-						if(ts.p.pager) {$(ts.p.pager).slideDown("fast");}
-						if(ts.p.toppager) {$(ts.p.toppager).slideDown("fast");}
-						if(ts.p.toolbar[0]===true) {
-							if( ts.p.toolbar[1]=='both') {
-								$(grid.ubDiv).slideDown("fast");
-							}
-							$(grid.uDiv).slideDown("fast");
-						}
-						if(ts.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+ts.p.id).slideDown("fast"); }
-						$("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
-						if(hg) {ts.p.datatype = tdt;populate();hg=false;}
-						ts.p.gridstate = 'visible';
-						if($("#gbox_"+ts.p.id).hasClass("ui-resizable")) { $(".ui-resizable-handle","#gbox_"+ts.p.id).show(); }
-						if(onHdCl) {ts.p.onHeaderClick.call(ts,ts.p.gridstate,e);}
-					}
-					return false;
-				});
-				if(hg) {ts.p.datatype="local"; $(".ui-jqgrid-titlebar-close",grid.cDiv).trigger("click");}
-			}
-		} else {$(grid.cDiv).hide();}
-		$(grid.hDiv).after(grid.bDiv)
-		.mousemove(function (e) {
-			if(grid.resizing){grid.dragMove(e);return false;}
-		});
-		$(".ui-jqgrid-labels",grid.hDiv).bind("selectstart", function () { return false; });
-		$(document).mouseup(function (e) {
-			if(grid.resizing) {	grid.dragEnd(); return false;}
-			return true;
-		});
-		this.updateColumns = function () {
-			var r = this.rows[0], self =this;
-			if(r) {
-				$("td",r).each( function( k ) {
-					$(this).css("width",self.grid.headers[k].width+"px");
-				});
-				this.grid.cols = r.cells;
-			}
-			return this;
-		};
-		ts.formatCol = formatCol;
-		ts.sortData = sortData;
-		ts.updatepager = updatepager;
-		ts.formatter = function ( rowId, cellval , colpos, rwdat, act){return formatter(rowId, cellval , colpos, rwdat, act);};
-		$.extend(grid,{populate : populate, emptyRows: emptyRows});
-		this.grid = grid;
-		ts.addXmlData = function(d) {addXmlData(d,ts.grid.bDiv);};
-		ts.addJSONData = function(d) {addJSONData(d,ts.grid.bDiv);};
-		populate();ts.p.hiddengrid=false;
-		$(window).unload(function () {
-			ts = null;
-		});
-	});
-};
-$.jgrid.extend({
-	getGridParam : function(pName) {
-		var $t = this[0];
-		if (!$t.grid) {return;}
-		if (!pName) { return $t.p; }
-		else {return typeof($t.p[pName]) != "undefined" ? $t.p[pName] : null;}
-	},
-	setGridParam : function (newParams){
-		return this.each(function(){
-			if (this.grid && typeof(newParams) === 'object') {$.extend(true,this.p,newParams);}
-		});
-	},
-	getDataIDs : function () {
-		var ids=[], i=0, len;
-		this.each(function(){
-			len = this.rows.length;
-			if(len && len>0){
-				while(i<len) {
-					ids[i] = this.rows[i].id;
-					i++;
-				}
-			}
-		});
-		return ids;
-	},
-	setSelection : function(selection,onsr) {
-		return this.each(function(){
-			var $t = this, stat,pt, ner, ia, tpsr;
-			if(selection === undefined) { return; }
-			onsr = onsr === false ? false : true;
-			pt=$t.rows.namedItem(selection+"");
-			if(!pt) { return; }
-			function scrGrid(iR){
-				var ch = $($t.grid.bDiv)[0].clientHeight,
-				st = $($t.grid.bDiv)[0].scrollTop,
-				rpos = $t.rows[iR].offsetTop,
-				rh = $t.rows[iR].clientHeight;
-				if(rpos+rh >= ch+st) { $($t.grid.bDiv)[0].scrollTop = rpos-(ch+st)+rh+st; }
-				else if(rpos < ch+st) {
-					if(rpos < st) {
-						$($t.grid.bDiv)[0].scrollTop = rpos;
-					}
-				}
-			}
-			if($t.p.scrollrows===true) {
-				ner = $t.rows.namedItem(selection).rowIndex;
-				if(ner >=0 ){
-					scrGrid(ner);
-				}
-			}
-			if(!$t.p.multiselect) {
-				if(pt.className !== "ui-subgrid") {
-				if( $t.p.selrow ) { $($t.rows.namedItem($t.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected","false"); }
-				$t.p.selrow = pt.id;
-				$(pt).addClass("ui-state-highlight").attr("aria-selected","true");
-				if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, true); }
-				}
-			} else {
-				$t.p.selrow = pt.id;
-				ia = $.inArray($t.p.selrow,$t.p.selarrrow);
-				if (  ia === -1 ){ 
-					if(pt.className !== "ui-subgrid") { $(pt).addClass("ui-state-highlight").attr("aria-selected","true");}
-					stat = true;
-					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
-					$t.p.selarrrow.push($t.p.selrow);
-					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
-				} else {
-					if(pt.className !== "ui-subgrid") { $(pt).removeClass("ui-state-highlight").attr("aria-selected","false");}
-					stat = false;
-					$("#jqg_"+$.jgrid.jqID($t.p.selrow),$t.rows[pt.rowIndex]).attr("checked",stat);
-					$t.p.selarrrow.splice(ia,1);
-					if( $t.p.onSelectRow && onsr) { $t.p.onSelectRow.call($t,$t.p.selrow, stat); }
-					tpsr = $t.p.selarrrow[0];
-					$t.p.selrow = (tpsr === undefined) ? null : tpsr;
-				}
-			}
-		});
-	},
-	resetSelection : function(){
-		return this.each(function(){
-			var t = this, ind;
-			if(!t.p.multiselect) {
-				if(t.p.selrow) {
-					$("tr#"+$.jgrid.jqID(t.p.selrow),t.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");
-					t.p.selrow = null;
-				}
-			} else {
-				$(t.p.selarrrow).each(function(i,n){
-					ind = t.rows.namedItem(n);
-					$(ind).removeClass("ui-state-highlight").attr("aria-selected","false");
-					$("#jqg_"+$.jgrid.jqID(n),ind).attr("checked",false);
-				});
-				$("#cb_"+$.jgrid.jqID(t.p.id),t.grid.hDiv).attr("checked",false);
-				t.p.selarrrow = [];
-			}
-			t.p.savedRow = [];
-		});
-	},
-	getRowData : function( rowid ) {
-		var res = {}, resall, getall=false, len, j=0;
-		this.each(function(){
-			var $t = this,nm,ind;
-			if(typeof(rowid) == 'undefined') {
-				getall = true;
-				resall = [];
-				len = $t.rows.length;
-			} else {
-				ind = $t.rows.namedItem(rowid);
-				if(!ind) { return res; }
-				len = 1;
-			}
-			while(j<len){
-				if(getall) { ind = $t.rows[j]; }
-				$('td',ind).each( function(i) {
-					nm = $t.p.colModel[i].name; 
-					if ( nm !== 'cb' && nm !== 'subgrid') {
-						if($t.p.treeGrid===true && nm == $t.p.ExpandColumn) {
-							res[nm] = $.jgrid.htmlDecode($("span:first",this).html());
-						} else {
-							try {
-								res[nm] = $.unformat(this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);
-							} catch (e){
-								res[nm] = $.jgrid.htmlDecode($(this).html());
-							}
-						}
-					}
-				});
-				j++;
-				if(getall) { resall.push(res); res={}; }
-			}
-		});
-		return resall ? resall: res;
-	},
-	delRowData : function(rowid) {
-		var success = false, rowInd, ia, ri;
-		this.each(function() {
-			var $t = this;
-			rowInd = $t.rows.namedItem(rowid);
-			if(!rowInd) {return false;}
-			else {
-				ri = rowInd.rowIndex;
-				$(rowInd).remove();
-				$t.p.records--;
-				$t.p.reccount--;
-				$t.updatepager(true,false);
-				success=true;
-				if($t.p.multiselect) {
-					ia = $.inArray(rowid,$t.p.selarrrow);
-					if(ia != -1) { $t.p.selarrrow.splice(ia,1);}
-				}  
-				if(rowid == $t.p.selrow) {$t.p.selrow=null;}
-			}
-			if( ri === 0 && success ) {
-				$t.updateColumns();
-			}
-			if( $t.p.altRows === true && success ) {
-				var cn = $t.p.altclass;
-				$($t.rows).each(function(i){
-					if(i % 2 ==1) { $(this).addClass(cn); }
-					else { $(this).removeClass(cn); }
-				});
-			}
-		});
-		return success;
-	},
-	setRowData : function(rowid, data, cssp) {
-		var nm, success=false, title;
-		this.each(function(){
-			var t = this, vl, ind, cp = typeof cssp;
-			if(!t.grid) {return false;}
-			ind = t.rows.namedItem(rowid);
-			if(!ind) { return false; }
-			if( data ) {
-				$(this.p.colModel).each(function(i){
-					nm = this.name;
-					if( data[nm] !== undefined) {
-						vl = t.formatter( rowid, data[nm], i, data, 'edit');
-						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
-						if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
-							$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
-						} else {
-							$("td:eq("+i+")",ind).html(vl).attr(title); 
-						}
-						success = true;
-					}
-				});
-			}
-			if(cp === 'string') {$(ind).addClass(cssp);} else if(cp === 'object') {$(ind).css(cssp);}
-		});
-		return success;
-	},
-	addRowData : function(rowid,rdata,pos,src) {
-		if(!pos) {pos = "last";}
-		var success = false, nm, row, gi, si, ni,sind, i, v, prp="", aradd, cnm, cn, data;
-		if(rdata) {
-			if($.isArray(rdata)) {
-				aradd=true;
-				pos = "last";
-				cnm = rowid;
-			} else {
-				rdata = [rdata];
-				aradd = false;
-			}
-			this.each(function() {
-				var t = this, datalen = rdata.length;
-				ni = t.p.rownumbers===true ? 1 :0;
-				gi = t.p.multiselect ===true ? 1 :0;
-				si = t.p.subGrid===true ? 1 :0;
-				if(!aradd) {
-					if(typeof(rowid) != 'undefined') { rowid = rowid+"";}
-					else {
-						rowid = (t.p.records+1)+"";
-						if(t.p.keyIndex !== false) {
-							cnm = t.p.colModel[t.p.keyIndex+gi+si+ni].name;
-							if(typeof rdata[0][cnm] != "undefined") { rowid = rdata[0][cnm]; }
-						}
-					}
-				}
-				cn = t.p.altclass;
-				var k = 0, cna ="",
-				air = $.isFunction(t.p.afterInsertRow) ? true : false;
-				while(k < datalen) {
-					data = rdata[k];
-					row="";
-					if(aradd) {
-						try {rowid = data[cnm];}
-						catch (e) {rowid = t.p.records+1;}
-						cna = t.p.altRows === true ?  (t.rows.length-1)%2 === 0 ? cn : "" : "";
-					}
-					if(ni){
-						prp = t.formatCol(ni,1,'');
-						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_rn\" class=\"ui-state-default jqgrid-rownum\" "+prp+">0</td>";
-					}
-					if(gi) {
-						v = "<input role=\"checkbox\" type=\"checkbox\""+" id=\"jqg_"+rowid+"\" class=\"cbox\"/>";
-						prp = t.formatCol(ni,1,'');
-						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_cb\" "+prp+">"+v+"</td>";
-					}
-					if(si) {
-						row += $(t).jqGrid("addSubGridCell",gi+ni,1);
-					}
-					for(i = gi+si+ni; i < this.p.colModel.length;i++){
-						nm = this.p.colModel[i].name;
-						v = t.formatter( rowid, data[nm], i, data, 'add');
-						prp = t.formatCol(i,1,v);
-						row += "<td role=\"gridcell\" aria-describedby=\""+t.p.id+"_"+nm+"\" "+prp+">"+v+"</td>";
-					}
-					row = "<tr id=\""+rowid+"\" role=\"row\" class=\"ui-widget-content jqgrow ui-row-"+t.p.direction+" "+cna+"\">" + row+"</tr>";
-					if(t.p.subGrid===true) {
-						row = $(row)[0]; 
-						$(t).jqGrid("addSubGrid",row,gi+ni);
-					}
-					if(t.rows.length === 0){
-						$("table:first",t.grid.bDiv).append(row);
-					} else {
-					switch (pos) {
-						case 'last':
-							$(t.rows[t.rows.length-1]).after(row);
-							break;
-						case 'first':
-							$(t.rows[0]).before(row);
-							break;
-						case 'after':
-							sind = t.rows.namedItem(src);
-							if (sind) {
-								if($(t.rows[sind.rowIndex+1]).hasClass("ui-subgrid")) { $(t.rows[sind.rowIndex+1]).after(row); }
-								else { $(sind).after(row); }
-							}
-							break;
-						case 'before':
-							sind = t.rows.namedItem(src);
-							if(sind) {$(sind).before(row);sind=sind.rowIndex;}
-							break;
-					}
-					}
-					t.p.records++;
-					t.p.reccount++;
-					if(!t.grid.cols || !t.grid.cols.length) { t.grid.cols = t.rows[0].cells; }
-					if(pos==='first' || (pos==='before' && sind <= 1) ||  t.rows.length === 1 ){
-						t.updateColumns();
-					}
-					if(air) { t.p.afterInsertRow.call(t,rowid,data,data); }
-					k++;
-				}
-				if( t.p.altRows === true && !aradd) {
-					if (pos == "last") {
-						if ((t.rows.length-1)%2 == 1)  {$(t.rows[t.rows.length-1]).addClass(cn);}
-					} else {
-						$(t.rows).each(function(i){
-							if(i % 2 ==1) { $(this).addClass(cn); }
-							else { $(this).removeClass(cn); }
-						});
-					}
-				}
-				t.updatepager(true,true);
-				success = true;
-			});
-		}
-		return success;
-	},
-	footerData : function(action,data, format) {
-		var nm, success=false, res={}, title;
-		function isEmpty(obj) {
-			for(var i in obj) {
-				if (obj.hasOwnProperty(i)) { return false; }
-			}
-			return true;
-		}
-		if(typeof(action) == "undefined") { action = "get"; }
-		if(typeof(format) != "boolean") { format  = true; }
-		action = action.toLowerCase();
-		this.each(function(){
-			var t = this, vl;
-			if(!t.grid || !t.p.footerrow) {return false;}
-			if(action == "set") { if(isEmpty(data)) { return false; } }
-			success=true;
-			$(this.p.colModel).each(function(i){
-				nm = this.name;
-				if(action == "set") {
-					if( data[nm] !== undefined) {
-						vl = format ? t.formatter( "", data[nm], i, data, 'edit') : data[nm];
-						title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
-						$("tr.footrow td:eq("+i+")",t.grid.sDiv).html(vl).attr(title); 
-						success = true;
-					}
-				} else if(action == "get") {
-					res[nm] = $("tr.footrow td:eq("+i+")",t.grid.sDiv).html();
-				}
-			});
-		});
-		return action == "get" ? res : success;
-	},
-	ShowHideCol : function(colname,show) {
-		return this.each(function() {
-			var $t = this, fndh=false;
-			if (!$t.grid ) {return;}
-			if( typeof colname === 'string') {colname=[colname];}
-			show = show !="none" ? "" : "none";
-			var sw = show == "" ? true :false;
-			$(this.p.colModel).each(function(i) {
-				if ($.inArray(this.name,colname) !== -1 && this.hidden === sw) {
-					$("tr",$t.grid.hDiv).each(function(){
-						$("th:eq("+i+")",this).css("display",show);
-					});
-					$($t.rows).each(function(j){
-						$("td:eq("+i+")",$t.rows[j]).css("display",show);
-					});
-					if($t.p.footerrow) { $("td:eq("+i+")",$t.grid.sDiv).css("display", show); }
-					if(show == "none") { $t.p.tblwidth -= this.width;} else {$t.p.tblwidth += this.width;}
-					this.hidden = !sw;
-					fndh=true;
-				}
-			});
-			if(fndh===true) {
-				$("table:first",$t.grid.hDiv).width($t.p.tblwidth);
-				$("table:first",$t.grid.bDiv).width($t.p.tblwidth);
-				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
-				if($t.p.footerrow) {
-					$("table:first",$t.grid.sDiv).width($t.p.tblwidth);
-					$t.grid.sDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
-				}
-			}
-		});
-	},
-	hideCol : function (colname) {
-		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"none");});
-	},
-	showCol : function(colname) {
-		return this.each(function(){$(this).jqGrid("ShowHideCol",colname,"");});
-	},
-	remapColumns : function(permutation, updateCells, keepHeader)
-	{
-		function resortArray(a) {
-			var ac;
-			if (a.length) {
-				ac = $.makeArray(a);
-			} else {
-				ac = $.extend({}, a);
-			}
-			$.each(permutation, function(i) {
-				a[i] = ac[this];
-			});
-		}
-		var ts = this.get(0);
-		function resortRows(parent, clobj) {
-			$(">tr"+(clobj||""), parent).each(function() {
-				var row = this;
-				var elems = $.makeArray(row.cells);
-				$.each(permutation, function() {
-					var e = elems[this];
-					if (e) {
-						row.appendChild(e);
-					}
-				});
-			});
-		}
-		resortArray(ts.p.colModel);
-		resortArray(ts.p.colNames);
-		resortArray(ts.grid.headers);
-		resortRows($("thead:first", ts.grid.hDiv), keepHeader && ":not(.ui-jqgrid-labels)");
-		if (updateCells) {
-			resortRows($("tbody:first", ts.grid.bDiv), ".jqgrow");
-		}
-		if (ts.p.footerrow) {
-			resortRows($("tbody:first", ts.grid.sDiv));
-		}
-		if (ts.p.remapColumns) {
-			if (!ts.p.remapColumns.length){
-				ts.p.remapColumns = $.makeArray(permutation);
-			} else {
-				resortArray(ts.p.remapColumns);
-			}
-		}
-		ts.p.lastsort = $.inArray(ts.p.lastsort, permutation);
-		if(ts.p.treeGrid) { ts.p.expColInd = $.inArray(ts.p.expColInd, permutation); }
-	},
-	setGridWidth : function(nwidth, shrink) {
-		return this.each(function(){
-			var $t = this, cw,
-			initwidth = 0, brd=$t.p.cellLayout, lvc, vc=0, hs=false, scw=$t.p.scrollOffset, aw, gw=0, tw=0,
-			cl = 0,cr;
-			if (!$t.grid ) {return;}
-			if(typeof shrink != 'boolean') {
-				shrink=$t.p.shrinkToFit;
-			}
-			if(isNaN(nwidth)) {return;}
-			else { nwidth = parseInt(nwidth,10); $t.grid.width = $t.p.width = nwidth;}
-			$("#gbox_"+$t.p.id).css("width",nwidth+"px");
-			$("#gview_"+$t.p.id).css("width",nwidth+"px");
-			$($t.grid.bDiv).css("width",nwidth+"px");
-			$($t.grid.hDiv).css("width",nwidth+"px");
-			if($t.p.pager ) {$($t.p.pager).css("width",nwidth+"px");}
-			if($t.p.toppager ) {$($t.p.toppager).css("width",nwidth+"px");}
-			if($t.p.toolbar[0] === true){
-				$($t.grid.uDiv).css("width",nwidth+"px");
-				if($t.p.toolbar[1]=="both") {$($t.grid.ubDiv).css("width",nwidth+"px");}
-			}
-			if($t.p.footerrow) { $($t.grid.sDiv).css("width",nwidth+"px"); }
-			if(shrink ===false && $t.p.forceFit === true) {$t.p.forceFit=false;}			
-			if(shrink===true) {
-				if ($.browser.safari) { brd=0;}
-				$.each($t.p.colModel, function(i) {
-					if(this.hidden===false){
-						initwidth += parseInt(this.width,10);
-						if(this.fixed) {
-							tw += this.width;
-							gw += this.width+brd;
-						} else {
-							vc++;
-						}
-						cl++;
-					}
-				});
-				if(vc  === 0) { return; }
-				$t.p.tblwidth = initwidth;
-				aw = nwidth-brd*vc-gw;
-				if(!isNaN($t.p.height)) {
-					if($($t.grid.bDiv)[0].clientHeight < $($t.grid.bDiv)[0].scrollHeight){
-						hs = true;
-						aw -= scw;
-					}
-				}
-				initwidth =0;
-				var cle = $t.grid.cols.length >0;
-				$.each($t.p.colModel, function(i) {
-					if(this.hidden === false && !this.fixed){
-						cw = Math.round(aw*this.width/($t.p.tblwidth-tw));
-						if (cw < 0) { return; }
-						this.width =cw;
-						initwidth += cw;
-						$t.grid.headers[i].width=cw;
-						$t.grid.headers[i].el.style.width=cw+"px";
-						if($t.p.footerrow) { $t.grid.footers[i].style.width = cw+"px"; }
-						if(cle) { $t.grid.cols[i].style.width = cw+"px"; }
-						lvc = i;
-					}
-				});
-				cr =0;
-				if (hs) {
-					if(nwidth-gw-(initwidth+brd*vc) !== scw){
-						cr = nwidth-gw-(initwidth+brd*vc)-scw;
-					}
-				} else if( Math.abs(nwidth-gw-(initwidth+brd*vc)) !== 1) {
-					cr = nwidth-gw-(initwidth+brd*vc);
-				}
-				$t.p.colModel[lvc].width += cr;
-				$t.p.tblwidth = initwidth+cr+tw+brd*cl;
-				if($t.p.tblwidth > nwidth) {
-					var delta = $t.p.tblwidth - parseInt(nwidth,10);
-					$t.p.tblwidth = nwidth;
-					cw = $t.p.colModel[lvc].width = $t.p.colModel[lvc].width-delta;
-				} else {
-					cw= $t.p.colModel[lvc].width;
-				}
-				$t.grid.headers[lvc].width = cw;
-				$t.grid.headers[lvc].el.style.width=cw+"px";
-				if(cle) { $t.grid.cols[lvc].style.width = cw+"px"; }
-				$('table:first',$t.grid.bDiv).css("width",$t.p.tblwidth+"px");
-				$('table:first',$t.grid.hDiv).css("width",$t.p.tblwidth+"px");
-				$t.grid.hDiv.scrollLeft = $t.grid.bDiv.scrollLeft;
-				if($t.p.footerrow) {
-					$t.grid.footers[lvc].style.width = cw+"px";
-					$('table:first',$t.grid.sDiv).css("width",$t.p.tblwidth+"px");
-				}
-			}
-		});
-	},
-	setGridHeight : function (nh) {
-		return this.each(function (){
-			var $t = this;
-			if(!$t.grid) {return;}
-			$($t.grid.bDiv).css({height: nh+(isNaN(nh)?"":"px")});
-			$t.p.height = nh;
-			if ($t.p.scroll) { $t.grid.populateVisible(); }
-		});
-	},
-	setCaption : function (newcap){
-		return this.each(function(){
-			this.p.caption=newcap;
-			$("span.ui-jqgrid-title",this.grid.cDiv).html(newcap);
-			$(this.grid.cDiv).show();
-		});
-	},
-	setLabel : function(colname, nData, prop, attrp ){
-		return this.each(function(){
-			var $t = this, pos=-1;
-			if(!$t.grid) {return;}
-			if(isNaN(colname)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name == colname) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(colname,10);}
-			if(pos>=0) {
-				var thecol = $("tr.ui-jqgrid-labels th:eq("+pos+")",$t.grid.hDiv);
-				if (nData){
-					var ico = $(".s-ico",thecol);
-					$("[id^=jqgh_]",thecol).empty().html(nData).append(ico);
-					$t.p.colNames[pos] = nData;
-				}
-				if (prop) {
-					if(typeof prop === 'string') {$(thecol).addClass(prop);} else {$(thecol).css(prop);}
-				}
-				if(typeof attrp === 'object') {$(thecol).attr(attrp);}
-			}
-		});
-	},
-	setCell : function(rowid,colname,nData,cssp,attrp, forceupd) {
-		return this.each(function(){
-			var $t = this, pos =-1,v, title;
-			if(!$t.grid) {return;}
-			if(isNaN(colname)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name == colname) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(colname,10);}
-			if(pos>=0) {
-				var ind = $t.rows.namedItem(rowid);
-				if (ind){
-					var tcell = $("td:eq("+pos+")",ind);
-					if(nData !== "" || forceupd === true) {
-						v = $t.formatter(rowid, nData, pos,ind,'edit');
-						title = $t.p.colModel[pos].title ? {"title":$.jgrid.stripHtml(v)} : {};
-						if($t.p.treeGrid && $(".tree-wrap",$(tcell)).length>0) {
-							$("span",$(tcell)).html(v).attr(title);
-						} else {
-							$(tcell).html(v).attr(title);
-						}
-					}
-					if(typeof cssp === 'string'){
-						$(tcell).addClass(cssp);
-					} else if(cssp) {
-						$(tcell).css(cssp);
-					}
-					if(typeof attrp === 'object') {$(tcell).attr(attrp);}
-				}
-			}
-		});
-	},
-	getCell : function(rowid,col) {
-		var ret = false;
-		this.each(function(){
-			var $t=this, pos=-1;
-			if(!$t.grid) {return;}
-			if(isNaN(col)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name === col) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(col,10);}
-			if(pos>=0) {
-				var ind = $t.rows.namedItem(rowid);
-				if(ind) {
-					try {
-						ret = $.unformat($("td:eq("+pos+")",ind),{rowId:ind.id, colModel:$t.p.colModel[pos]},pos);
-					} catch (e){
-						ret = $.jgrid.htmlDecode($("td:eq("+pos+")",ind).html());
-					}
-				}
-			}
-		});
-		return ret;
-	},
-	getCol : function (col, obj, mathopr) {
-		var ret = [], val, sum=0;
-		obj = typeof (obj) != 'boolean' ? false : obj;
-		if(typeof mathopr == 'undefined') { mathopr = false; }
-		this.each(function(){
-			var $t=this, pos=-1;
-			if(!$t.grid) {return;}
-			if(isNaN(col)) {
-				$($t.p.colModel).each(function(i){
-					if (this.name === col) {
-						pos = i;return false;
-					}
-				});
-			} else {pos = parseInt(col,10);}
-			if(pos>=0) {
-				var ln = $t.rows.length, i =0;
-				if (ln && ln>0){
-					while(i<ln){
-						try {
-							val = $.unformat($($t.rows[i].cells[pos]),{rowId:$t.rows[i].id, colModel:$t.p.colModel[pos]},pos);
-						} catch (e) {
-							val = $.jgrid.htmlDecode($t.rows[i].cells[pos].innerHTML);
-						}
-						if(mathopr) { sum += parseFloat(val); }
-						else if(obj) { ret.push({id:$t.rows[i].id,value:val}); }
-						else { ret[i]=val; }
-						i++;
-					}
-					if(mathopr) {
-						switch(mathopr.toLowerCase()){
-							case 'sum': ret =sum; break;
-							case 'avg': ret = sum/ln; break;
-							case 'count': ret = ln; break;
-						}
-					}
-				}
-			}
-		});
-		return ret;
-	},
-	clearGridData : function(clearfooter) {
-		return this.each(function(){
-			var $t = this;
-			if(!$t.grid) {return;}
-			if(typeof clearfooter != 'boolean') { clearfooter = false; }
-			$("tbody:first tr", $t.grid.bDiv).remove();
-			if($t.p.footerrow && clearfooter) { $(".ui-jqgrid-ftable td",$t.grid.sDiv).html("&#160;"); }
-			$t.p.selrow = null; $t.p.selarrrow= []; $t.p.savedRow = [];
-			$t.p.records = 0;$t.p.page='0';$t.p.lastpage='0';$t.p.reccount=0;
-			$t.updatepager(true,false);
-		});
-	},
-	getInd : function(rowid,rc){
-		var ret =false,rw;
-		this.each(function(){
-			rw = this.rows.namedItem(rowid);
-			if(rw) {
-				ret = rc===true ? rw: rw.rowIndex;
-			}
-		});
-		return ret;
-	}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.base.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js	(nonexistent)
@@ -1,816 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for custom methods
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-	getColProp : function(colname){
-		var ret ={}, $t = this[0];
-		if ( !$t.grid ) { return; }
-		var cM = $t.p.colModel;
-		for ( var i =0;i<cM.length;i++ ) {
-			if ( cM[i].name == colname ) {
-				ret = cM[i];
-				break;
-			}
-		}
-		return ret;
-	},
-	setColProp : function(colname, obj){
-		//do not set width will not work
-		return this.each(function(){
-			if ( this.grid ) {
-				if ( obj ) {
-					var cM = this.p.colModel;
-					for ( var i =0;i<cM.length;i++ ) {
-						if ( cM[i].name == colname ) {
-							$.extend(this.p.colModel[i],obj);
-							break;
-						}
-					}
-				}
-			}
-		});
-	},
-	sortGrid : function(colname,reload, sor){
-		return this.each(function(){
-			var $t=this,idx=-1;
-			if ( !$t.grid ) { return;}
-			if ( !colname ) { colname = $t.p.sortname; }
-			for ( var i=0;i<$t.p.colModel.length;i++ ) {
-				if ( $t.p.colModel[i].index == colname || $t.p.colModel[i].name==colname ) {
-					idx = i;
-					break;
-				}
-			}
-			if ( idx!=-1 ){
-				var sort = $t.p.colModel[idx].sortable;
-				if ( typeof sort !== 'boolean' ) { sort =  true; }
-				if ( typeof reload !=='boolean' ) { reload = false; }
-				if ( sort ) { $t.sortData("jqgh_"+colname, idx, reload, sor); }
-			}
-		});
-	},
-	GridDestroy : function () {
-		return this.each(function(){
-			if ( this.grid ) { 
-				if ( this.p.pager ) { // if not part of grid
-					$(this.p.pager).remove();
-				}
-				var gid = this.id;
-				try {
-					$("#gbox_"+gid).remove();
-				} catch (_) {}
-			}
-		});
-	},
-	GridUnload : function(){
-		return this.each(function(){
-			if ( !this.grid ) {return;}
-			var defgrid = {id: $(this).attr('id'),cl: $(this).attr('class')};
-			if (this.p.pager) {
-				$(this.p.pager).empty().removeClass("ui-state-default ui-jqgrid-pager corner-bottom");
-			}
-			var newtable = document.createElement('table');
-			$(newtable).attr({id:defgrid.id});
-			newtable.className = defgrid.cl;
-			var gid = this.id;
-			$(newtable).removeClass("ui-jqgrid-btable");
-			if( $(this.p.pager).parents("#gbox_"+gid).length === 1 ) {
-				$(newtable).insertBefore("#gbox_"+gid).show();
-				$(this.p.pager).insertBefore("#gbox_"+gid);
-			} else {
-				$(newtable).insertBefore("#gbox_"+gid).show();
-			}
-			$("#gbox_"+gid).remove();
-		});
-	},
-    setGridState : function(state) {
-		return this.each(function(){
-			if ( !this.grid ) {return;}
-            var $t = this;
-            if(state == 'hidden'){
-				$(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+$t.p.id).slideUp("fast");
-				if($t.p.pager) {$($t.p.pager).slideUp("fast");}
-				if($t.p.toppager) {$($t.p.toppager).slideUp("fast");}
-				if($t.p.toolbar[0]===true) {
-					if( $t.p.toolbar[1]=='both') {
-						$($t.grid.ubDiv).slideUp("fast");
-					}
-					$($t.grid.uDiv).slideUp("fast");
-				}
-				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideUp("fast"); }
-				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");
-				$t.p.gridstate = 'hidden';
-            } else if(state=='visible') {
-				$(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+$t.p.id).slideDown("fast");
-				if($t.p.pager) {$($t.p.pager).slideDown("fast");}
-				if($t.p.toppager) {$($t.p.toppager).slideDown("fast");}
-				if($t.p.toolbar[0]===true) {
-					if( $t.p.toolbar[1]=='both') {
-						$($t.grid.ubDiv).slideDown("fast");
-					}
-					$($t.grid.uDiv).slideDown("fast");
-				}
-				if($t.p.footerrow) { $(".ui-jqgrid-sdiv","#gbox_"+$t.p.id).slideDown("fast"); }
-				$(".ui-jqgrid-titlebar-close span",$t.grid.cDiv).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
-				$t.p.gridstate = 'visible';
-            }
-            
-        });
-    },
-	updateGridRows : function (data, rowidname, jsonreader) {
-		var nm, success=false, title;
-		this.each(function(){
-			var t = this, vl, ind, srow, sid;
-			if(!t.grid) {return false;}
-			if(!rowidname) { rowidname = "id"; }
-			if( data  && data.length >0 ) {
-				$(data).each(function(j){
-					srow = this;
-					ind = t.rows.namedItem(srow[rowidname]);
-					if(ind) {
-						sid = srow[rowidname];
-						if(jsonreader === true){
-							if(t.p.jsonReader.repeatitems === true) {
-								if(t.p.jsonReader.cell) {srow = srow[t.p.jsonReader.cell];}
-								for (var k=0;k<srow.length;k++) {
-									vl = t.formatter( sid, srow[k], k, srow, 'edit');
-									title = t.p.colModel[k].title ? {"title":$.jgrid.stripHtml(vl)} : {};
-									if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
-										$("td:eq("+k+") > span:first",ind).html(vl).attr(title);
-									} else {
-										$("td:eq("+k+")",ind).html(vl).attr(title); 
-									}
-								}
-								success = true;
-								return true;
-							}
-						} 
-						$(t.p.colModel).each(function(i){
-							nm = jsonreader===true ? this.jsonmap || this.name :this.name;
-							if( srow[nm] !== undefined) {
-								vl = t.formatter( sid, srow[nm], i, srow, 'edit');
-								title = this.title ? {"title":$.jgrid.stripHtml(vl)} : {};
-								if(t.p.treeGrid===true && nm == t.p.ExpandColumn) {
-									$("td:eq("+i+") > span:first",ind).html(vl).attr(title);
-								} else {
-									$("td:eq("+i+")",ind).html(vl).attr(title); 
-								}
-								success = true;
-							}
-						});
-					}
-				});
-			}
-		});
-		return success;
-	},
-	filterGrid : function(gridid,p){
-		p = $.extend({
-			gridModel : false,
-			gridNames : false,
-			gridToolbar : false,
-			filterModel: [], // label/name/stype/defval/surl/sopt
-			formtype : "horizontal", // horizontal/vertical
-			autosearch: true, // if set to false a serch button should be enabled.
-			formclass: "filterform",
-			tableclass: "filtertable",
-			buttonclass: "filterbutton",
-			searchButton: "Search",
-			clearButton: "Clear",
-			enableSearch : false,
-			enableClear: false,
-			beforeSearch: null,
-			afterSearch: null,
-			beforeClear: null,
-			afterClear: null,
-			url : '',
-			marksearched: true
-		},p  || {});
-		return this.each(function(){
-			var self = this;
-			this.p = p;
-			if(this.p.filterModel.length === 0 && this.p.gridModel===false) { alert("No filter is set"); return;}
-			if( !gridid) {alert("No target grid is set!"); return;}
-			this.p.gridid = gridid.indexOf("#") != -1 ? gridid : "#"+gridid;
-			var gcolMod = $(this.p.gridid).jqGrid("getGridParam",'colModel');
-			if(gcolMod) {
-				if( this.p.gridModel === true) {
-					var thegrid = $(this.p.gridid)[0];
-					var sh;
-					// we should use the options search, edittype, editoptions
-					// additionally surl and defval can be added in grid colModel
-					$.each(gcolMod, function (i,n) {
-						var tmpFil = [];
-						this.search = this.search === false ? false : true;
-						if(this.editrules && this.editrules.searchhidden === true) {
-							sh = true;
-						} else {
-							if(this.hidden === true ) {
-								sh = false;
-							} else {
-								sh = true;
-							}
-						}
-						if( this.search === true && sh === true) {
-							if(self.p.gridNames===true) {
-								tmpFil.label = thegrid.p.colNames[i];
-							} else {
-								tmpFil.label = '';
-							}
-							tmpFil.name = this.name;
-							tmpFil.index = this.index || this.name;
-							// we support only text and selects, so all other to text
-							tmpFil.stype = this.edittype || 'text';
-							if(tmpFil.stype != 'select' ) {
-								tmpFil.stype = 'text';
-							}
-							tmpFil.defval = this.defval || '';
-							tmpFil.surl = this.surl || '';
-							tmpFil.sopt = this.editoptions || {};
-							tmpFil.width = this.width;
-							self.p.filterModel.push(tmpFil);
-						}
-					});
-				} else {
-					$.each(self.p.filterModel,function(i,n) {
-						for(var j=0;j<gcolMod.length;j++) {
-							if(this.name == gcolMod[j].name) {
-								this.index = gcolMod[j].index || this.name;
-								break;
-							}
-						}
-						if(!this.index) {
-							this.index = this.name;
-						}
-					});
-				}
-			} else {
-				alert("Could not get grid colModel"); return;
-			}
-			var triggerSearch = function() {
-				var sdata={}, j=0, v;
-				var gr = $(self.p.gridid)[0], nm;
-                gr.p.searchdata = {};
-				if($.isFunction(self.p.beforeSearch)){self.p.beforeSearch();}
-				$.each(self.p.filterModel,function(i,n){
-                    nm = this.index;
-					switch (this.stype) {
-						case 'select' :
-							v = $("select[name="+nm+"]",self).val();
-							if(v) {
-								sdata[nm] = v;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch (e) {}
-							}
-							break;
-						default:
-							v = $("input[name="+nm+"]",self).val();
-							if(v) {
-								sdata[nm] = v;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch(e) {}
-							}
-					}
-				});
-				var sd =  j>0 ? true : false;
-                $.extend(gr.p.postData,sdata);
-				var saveurl;
-				if(self.p.url) {
-					saveurl = $(gr).jqGrid("getGridParam",'url');
-					$(gr).jqGrid("setGridParam",{url:self.p.url});
-				}
-			    $(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
-				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(self.p.afterSearch)){self.p.afterSearch();}
-			};
-			var clearSearch = function(){
-				var sdata={}, v, j=0;
-				var gr = $(self.p.gridid)[0], nm;
-				if($.isFunction(self.p.beforeClear)){self.p.beforeClear();}
-				$.each(self.p.filterModel,function(i,n){
-                    nm = this.index;
-					v = (this.defval) ? this.defval : "";
-					if(!this.stype){this.stype='text';}
-					switch (this.stype) {
-						case 'select' :
-							var v1;
-							$("select[name="+nm+"] option",self).each(function (i){
-                                if(i===0) { this.selected = true; }
-								if ($(this).text() == v) {
-									this.selected = true;
-									v1 = $(this).val();
-									return false;
-								}
-							});
-							if(v1) {
-								// post the key and not the text
-								sdata[nm] = v1;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch (e) {}
-							}
-							break;
-						case 'text':
-							$("input[name="+nm+"]",self).val(v);
-							if(v) {
-								sdata[nm] = v;
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).addClass("dirty-cell");
-								}
-								j++;
-							} else {
-								if(self.p.marksearched){
-									$("#jqgh_"+this.name,gr.grid.hDiv).removeClass("dirty-cell");
-								}
-                                try {
-                                    delete gr.p.postData[this.index];
-                                } catch (e) {}
-							}
-                            break;
-					}
-				});
-				var sd =  j>0 ? true : false;
-                $.extend(gr.p.postData,sdata);
-				var saveurl;
-				if(self.p.url) {
-					saveurl = $(gr).jqGrid("getGridParam",'url');
-					$(gr).jqGrid("setGridParam",{url:self.p.url});
-				}
-				$(gr).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
-				if(saveurl) {$(gr).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(self.p.afterClear)){self.p.afterClear();}
-			};
-			var formFill = function(){
-				var tr = document.createElement("tr");
-				var tr1, sb, cb,tl,td;
-				if(self.p.formtype=='horizontal'){
-					$(tbl).append(tr);
-				}
-				$.each(self.p.filterModel,function(i,n){
-					tl = document.createElement("td");
-					$(tl).append("<label for='"+this.name+"'>"+this.label+"</label>");
-					td = document.createElement("td");
-					var $t=this;
-					if(!this.stype) { this.stype='text';}
-					switch (this.stype)
-					{
-					case "select":
-						if(this.surl) {
-							// data returned should have already constructed html select
-							$(td).load(this.surl,function(){
-								if($t.defval) { $("select",this).val($t.defval); }
-								$("select",this).attr({name:$t.index || $t.name, id: "sg_"+$t.name});
-								if($t.sopt) { $("select",this).attr($t.sopt); }
-								if(self.p.gridToolbar===true && $t.width) {
-									$("select",this).width($t.width);
-								}
-								if(self.p.autosearch===true){
-									$("select",this).change(function(e){
-										triggerSearch();
-										return false;
-									});
-								}
-							});
-						} else {
-							// sopt to construct the values
-							if($t.sopt.value) {
-								var oSv = $t.sopt.value;
-								var elem = document.createElement("select");
-								$(elem).attr({name:$t.index || $t.name, id: "sg_"+$t.name}).attr($t.sopt);
-								var so, sv, ov;
-								if(typeof oSv === "string") {
-									so = oSv.split(";");
-									for(var k=0; k<so.length;k++){
-										sv = so[k].split(":");
-										ov = document.createElement("option");
-										ov.value = sv[0]; ov.innerHTML = sv[1];
-										if (sv[1]==$t.defval) { ov.selected ="selected"; }
-										elem.appendChild(ov);
-									}
-								} else if(typeof oSv === "object" ) {
-									for ( var key in oSv) {
-										if(oSv.hasOwnProperty(key)) {
-											i++;
-											ov = document.createElement("option");
-											ov.value = key; ov.innerHTML = oSv[key];
-											if (oSv[key]==$t.defval) { ov.selected ="selected"; }
-											elem.appendChild(ov);
-										}
-									}
-								}
-								if(self.p.gridToolbar===true && $t.width) {
-									$(elem).width($t.width);
-								}
-								$(td).append(elem);
-								if(self.p.autosearch===true){
-									$(elem).change(function(e){
-										triggerSearch();
-										return false;
-									});
-								}
-							}
-						}
-						break;
-					case 'text':
-						var df = this.defval ? this.defval: "";
-						$(td).append("<input type='text' name='"+(this.index || this.name)+"' id='sg_"+this.name+"' value='"+df+"'/>");
-						if($t.sopt) { $("input",td).attr($t.sopt); }
-						if(self.p.gridToolbar===true && $t.width) {
-							if($.browser.msie) {
-								$("input",td).width($t.width-4);
-							} else {
-								$("input",td).width($t.width-2);
-							}
-						}
-						if(self.p.autosearch===true){
-							$("input",td).keypress(function(e){
-								var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
-								if(key == 13){
-									triggerSearch();
-									return false;
-								}
-								return this;
-							});
-						}
-						break;
-					}
-					if(self.p.formtype=='horizontal'){
-						if(self.p.gridToolbar===true && self.p.gridNames===false) {
-							$(tr).append(td);
-						} else {
-							$(tr).append(tl).append(td);
-						}
-						$(tr).append(td);
-					} else {
-						tr1 = document.createElement("tr");
-						$(tr1).append(tl).append(td);
-						$(tbl).append(tr1);
-					}
-				});
-				td = document.createElement("td");
-				if(self.p.enableSearch === true){
-					sb = "<input type='button' id='sButton' class='"+self.p.buttonclass+"' value='"+self.p.searchButton+"'/>";
-					$(td).append(sb);
-					$("input#sButton",td).click(function(){
-						triggerSearch();
-						return false;
-					});
-				}
-				if(self.p.enableClear === true) {
-					cb = "<input type='button' id='cButton' class='"+self.p.buttonclass+"' value='"+self.p.clearButton+"'/>";
-					$(td).append(cb);
-					$("input#cButton",td).click(function(){
-						clearSearch();
-						return false;
-					});
-				}
-				if(self.p.enableClear === true || self.p.enableSearch === true) {
-					if(self.p.formtype=='horizontal') {
-						$(tr).append(td);
-					} else {
-						tr1 = document.createElement("tr");
-						$(tr1).append("<td>&#160;</td>").append(td);
-						$(tbl).append(tr1);
-					}
-				}
-			};
-			var frm = $("<form name='SearchForm' style=display:inline;' class='"+this.p.formclass+"'></form>");
-			var tbl =$("<table class='"+this.p.tableclass+"' cellspacing='0' cellpading='0' border='0'><tbody></tbody></table>");
-			$(frm).append(tbl);
-			formFill();
-			$(this).append(frm);
-			this.triggerSearch = triggerSearch;
-			this.clearSearch = clearSearch;
-		});
-	},
-	filterToolbar : function(p){
-		p = $.extend({
-			autosearch: true,
-			searchOnEnter : true,
-			beforeSearch: null,
-			afterSearch: null,
-			beforeClear: null,
-			afterClear: null,
-			searchurl : '',
-			stringResult: false,
-			groupOp: 'AND'
-		},p  || {});
-		return this.each(function(){
-			var $t = this;
-			var triggerToolbar = function() {
-				var sdata={}, j=0, v, nm, sopt={};
-				$.each($t.p.colModel,function(i,n){
-                    nm = this.index || this.name;
-                    var so = (this.searchoptions && this.searchoptions.sopt) ? this.searchoptions.sopt[0] : "bw";
-					switch (this.stype) {
-						case 'select' :
-							v = $("select[name="+nm+"]",$t.grid.hDiv).val();
-							if(v) {
-								sdata[nm] = v;
-                                sopt[nm] = so;
-								j++;
-							} else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch (e) {}
-                            }
-							break;
-						case 'text':
-							v = $("input[name="+nm+"]",$t.grid.hDiv).val();
-							if(v) {
-								sdata[nm] = v;
-                                sopt[nm] = so;
-								j++;
-							} else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch (e) {}
-                            }
-                            break;
-					}
-				});
-				var sd =  j>0 ? true : false;
-                if(!p.stringResult) {
-                    $.extend($t.p.postData,sdata);
-                } else {
-                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
-                    var gi=0;
-                    $.each(sdata,function(i,n){
-                        if (gi > 0) {ruleGroup += ",";}
-                        ruleGroup += "{\"field\":\"" + i + "\",";
-                        ruleGroup += "\"op\":\"" + sopt[i] + "\",";
-                        ruleGroup += "\"data\":\"" + n + "\"}";
-                        gi++;
-                    });
-                    ruleGroup += "]}";
-                    $.extend($t.p.postData,{filters:ruleGroup});
-                }
-				var saveurl;
-				if($t.p.searchurl) {
-					saveurl = $t.p.url;
-					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
-				}
-				var bsr = false;
-				if($.isFunction(p.beforeSearch)){bsr = p.beforeSearch.call($t);}
-				if(!bsr) { $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]); }
-				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(p.afterSearch)){p.afterSearch();}
-			};
-			var clearToolbar = function(trigger){
-				var sdata={}, v, j=0, nm;
-                trigger = (typeof trigger != 'boolean') ? true : trigger;
-				$.each($t.p.colModel,function(i,n){
-					v = (this.searchoptions && this.searchoptions.defaultValue) ? this.searchoptions.defaultValue : "";
-                    nm = this.index || this.name;
-					switch (this.stype) {
-						case 'select' :
-							var v1;
-							$("select[name="+nm+"] option",$t.grid.hDiv).each(function (i){
-                                if(i===0) { this.selected = true; }
-								if ($(this).text() == v) {
-									this.selected = true;
-									v1 = $(this).val();
-									return false;
-								}
-							});
-                            if (v1) {
-                                // post the key and not the text
-                                sdata[nm] = v1;
-                                j++;
-                            } else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch(e) {}
-                            }
-							break;
-						case 'text':
-							$("input[name="+nm+"]",$t.grid.hDiv).val(v);
-							if(v) {
-								sdata[nm] = v;
-								j++;
-							} else {
-                                try {
-                                    delete $t.p.postData[nm];
-                                } catch (e){}
-                            }
-                            break;
-					}
-				});
-				var sd =  j>0 ? true : false;
-                if(!p.stringResult) {
-                    $.extend($t.p.postData,sdata);
-                } else {
-                    var ruleGroup = "{\"groupOp\":\"" + p.groupOp + "\",\"rules\":[";
-                    var gi=0;
-                    $.each(sdata,function(i,n){
-                        if (gi > 0) {ruleGroup += ",";}
-                        ruleGroup += "{\"field\":\"" + i + "\",";
-                        ruleGroup += "\"op\":\"" + "eq" + "\",";
-                        ruleGroup += "\"data\":\"" + n + "\"}";
-                        gi++;
-                    });
-                    ruleGroup += "]}";
-                    $.extend($t.p.postData,{filters:ruleGroup});
-                }
-				var saveurl;
-				if($t.p.searchurl) {
-					saveurl = $t.p.url;
-					$($t).jqGrid("setGridParam",{url:$t.p.searchurl});
-				}
-				var bcv = false;
-				if($.isFunction(p.beforeClear)){bcv = p.beforeClear.call($t);}
-				if(!bcv) {
-                    if(trigger) {
-                        $($t).jqGrid("setGridParam",{search:sd}).trigger("reloadGrid",[{page:1}]);
-                    }
-                }
-				if(saveurl) {$($t).jqGrid("setGridParam",{url:saveurl});}
-				if($.isFunction(p.afterClear)){p.afterClear();}
-			};
-			var toggleToolbar = function(){
-                var trow = $("tr.ui-search-toolbar",$t.grid.hDiv);
-                if(trow.css("display")=='none') { trow.show(); }
-                else { trow.hide(); }
-			};
-			// create the row
-			function bindEvents(selector, events) {
-				var jElem = $(selector);
-				if (jElem[0]) {
-				    jQuery.each(events, function() {
-				        if (this.data !== undefined) {
-				            jElem.bind(this.type, this.data, this.fn);
-				        } else {
-				            jElem.bind(this.type, this.fn);
-				        }
-				    });
-				}
-			}
-			var tr = $("<tr class='ui-search-toolbar' role='rowheader'></tr>");
-            var timeoutHnd;
-			$.each($t.p.colModel,function(i,n){
-				var cm=this, thd , th, soptions,surl,self;
-				th = $("<th role='columnheader' class='ui-state-default ui-th-column ui-th-"+$t.p.direction+"'></th>");
-				thd = $("<div style='width:100%;position:relative;height:100%;padding-right:0.3em;'></div>");
-				if(this.hidden===true) { $(th).css("display","none");}
-				this.search = this.search === false ? false : true;
-				if(typeof this.stype == 'undefined' ) {this.stype='text';}
-				soptions = $.extend({},this.searchoptions || {});
-				if(this.search){
-					switch (this.stype)
-					{
-					case "select":
-						surl = this.surl || soptions.dataUrl;
-						if(surl) {
-							// data returned should have already constructed html select
-							// primitive jQuery load
-							self = thd;
-							$.ajax($.extend({
-								url: surl,
-								dataType: "html",
-								complete: function(res,status) {
-									if(soptions.buildSelect !== undefined) {
-										var d = soptions.buildSelect(res);
-										if (d) { $(self).append(d); }
-									} else {
-										$(self).append(res.responseText);
-									}
-									if(soptions.defaultValue) { $("select",self).val(soptions.defaultValue); }
-									$("select",self).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
-									if(soptions.attr) {$("select",self).attr(soptions.attr);}
-									$("select",self).css({width: "100%"});
-									// preserve autoserch
-									if(soptions.dataInit !== undefined) { soptions.dataInit($("select",self)[0]); }
-									if(soptions.dataEvents !== undefined) { bindEvents($("select",self)[0],soptions.dataEvents); }
-									if(p.autosearch===true){
-										$("select",self).change(function(e){
-											triggerToolbar();
-											return false;
-										});
-									}
-									res=null;
-								}
-							}, $.jgrid.ajaxOptions, $t.p.ajaxSelectOptions || {} ));
-						} else {
-							var oSv;
-							if(cm.searchoptions && cm.searchoptions.value) {
-								oSv = cm.searchoptions.value;
-							} else if(cm.editoptions && cm.editoptions.value) {
-								oSv = cm.editoptions.value;
-							}
-							if (oSv) {	
-								var elem = document.createElement("select");
-								elem.style.width = "100%";
-								$(elem).attr({name:cm.index || cm.name, id: "gs_"+cm.name});
-								var so, sv, ov;
-								if(typeof oSv === "string") {
-									so = oSv.split(";");
-									for(var k=0; k<so.length;k++){
-										sv = so[k].split(":");
-										ov = document.createElement("option");
-										ov.value = sv[0]; ov.innerHTML = sv[1];
-										elem.appendChild(ov);
-									}
-								} else if(typeof oSv === "object" ) {
-									for ( var key in oSv) {
-										if(oSv.hasOwnProperty(key)) {
-											ov = document.createElement("option");
-											ov.value = key; ov.innerHTML = oSv[key];
-											elem.appendChild(ov);
-										}
-									}
-								}
-								if(soptions.defaultValue) { $(elem).val(soptions.defaultValue); }
-								if(soptions.attr) {$(elem).attr(soptions.attr);}
-								if(soptions.dataInit !== undefined) { soptions.dataInit(elem); }
-								if(soptions.dataEvents !== undefined) { bindEvents(elem, soptions.dataEvents); }
-								$(thd).append(elem);
-								if(p.autosearch===true){
-									$(elem).change(function(e){
-										triggerToolbar();
-										return false;
-									});
-								}
-							}
-						}
-						break;
-					case 'text':
-						var df = soptions.defaultValue ? soptions.defaultValue: "";
-						$(thd).append("<input type='text' style='width:95%;padding:0px;' name='"+(cm.index || cm.name)+"' id='gs_"+cm.name+"' value='"+df+"'/>");
-						if(soptions.attr) {$("input",thd).attr(soptions.attr);}
-						if(soptions.dataInit !== undefined) { soptions.dataInit($("input",thd)[0]); }
-						if(soptions.dataEvents !== undefined) { bindEvents($("input",thd)[0], soptions.dataEvents); }
-						if(p.autosearch===true){
-                            if(p.searchOnEnter) {
-                                $("input",thd).keypress(function(e){
-                                    var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
-                                    if(key == 13){
-                                        triggerToolbar();
-                                        return false;
-                                    }
-                                    return this;
-                                });
-                            } else {
-                                $("input",thd).keydown(function(e){
-                                    var key = e.which;
-									switch (key) {
-										case 9 :
-										case 16:
-										case 37:
-										case 38:
-										case 39:
-										case 40:
-										case 27:
-											break;
-										default :
-	                                        if(timeoutHnd) { clearTimeout(timeoutHnd); }
-	                                        timeoutHnd = setTimeout(function(){triggerToolbar();},500);
-									}
-                                });
-                            }
-						}
-						break;
-					}
-				}
-				$(th).append(thd);
-				$(tr).append(th);
-			});
-			$("table thead",$t.grid.hDiv).append(tr);
-			this.triggerToolbar = triggerToolbar;
-			this.clearToolbar = clearToolbar;
-			this.toggleToolbar = toggleToolbar;
-		});
-	}
-});
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.custom.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js	(nonexistent)
@@ -1,199 +0,0 @@
-;(function($){
-/*
- * jqGrid extension for constructing Grid Data from external file
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-    $.jgrid.extend({
-        jqGridImport : function(o) {
-            o = $.extend({
-                imptype : "xml", // xml, json, xmlstring, jsonstring
-                impstring: "",
-                impurl: "",
-                mtype: "GET",
-                impData : {},
-                xmlGrid :{
-                    config : "roots>grid",
-                    data: "roots>rows"
-                },
-                jsonGrid :{
-                    config : "grid",
-                    data: "data"
-                },
-                ajaxOptions :{}
-            }, o || {});
-            return this.each(function(){
-                var $t = this;
-                var XmlConvert = function (xml,o) {
-                    var cnfg = $(o.xmlGrid.config,xml)[0];
-                    var xmldata = $(o.xmlGrid.data,xml)[0], jstr, jstr1;
-                    if(xmlJsonClass.xml2json && $.jgrid.parse) {
-                        jstr = xmlJsonClass.xml2json(cnfg," ");
-                        jstr = $.jgrid.parse(jstr);
-                        for(var key in jstr) {
-                            if(jstr.hasOwnProperty(key)) {
-                                jstr1=jstr[key];
-                            }
-                        }
-                        if(xmldata) {
-                        // save the datatype
-                            var svdatatype = jstr.grid.datatype;
-                            jstr.grid.datatype = 'xmlstring';
-                            jstr.grid.datastr = xml;
-                            $($t).jqGrid( jstr1 ).jqGrid("setGridParam",{datatype:svdatatype});
-                        } else {
-                            $($t).jqGrid( jstr1 );
-                        }
-                        jstr = null;jstr1=null;
-                    } else {
-                        alert("xml2json or parse are not present");
-                    }
-                };
-                var JsonConvert = function (jsonstr,o){
-                    if (jsonstr && typeof jsonstr == 'string') {
-                        var json = $.jgrid.parse(jsonstr);
-                        var gprm = json[o.jsonGrid.config];
-                        var jdata = json[o.jsonGrid.data];
-                        if(jdata) {
-                            var svdatatype = gprm.datatype;
-                            gprm.datatype = 'jsonstring';
-                            gprm.datastr = jdata;
-                            $($t).jqGrid( gprm ).jqGrid("setGridParam",{datatype:svdatatype});
-                        } else {
-                            $($t).jqGrid( gprm );
-                        }
-                    }
-                };
-                switch (o.imptype){
-                    case 'xml':
-                        $.ajax($.extend({
-                            url:o.impurl,
-                            type:o.mtype,
-                            data: o.impData,
-                            dataType:"xml",
-                            complete: function(xml,stat) {
-                                if(stat == 'success') {
-                                    XmlConvert(xml.responseXML,o);
-                                    if($.isFunction(o.importComplete)) {
-                                        o.importComplete(xml);
-                                    }
-                                }
-                                xml=null;
-                            }
-                        }, o.ajaxOptions));
-                        break;
-                    case 'xmlstring' :
-                        // we need to make just the conversion and use the same code as xml
-                        if(o.impstring && typeof o.impstring == 'string') {
-                            var xmld = $.jgrid.stringToDoc(o.impstring);
-                            if(xmld) {
-                                XmlConvert(xmld,o);
-                                if($.isFunction(o.importComplete)) {
-                                    o.importComplete(xmld);
-                                }
-                                o.impstring = null;
-                            }
-                            xmld = null;
-                        }
-                        break;
-                    case 'json':
-                        $.ajax($.extend({
-                            url:o.impurl,
-                            type:o.mtype,
-                            data: o.impData,
-                            dataType:"json",
-                            complete: function(json,stat) {
-                                if(stat == 'success') {
-                                    JsonConvert(json.responseText,o );
-                                    if($.isFunction(o.importComplete)) {
-                                        o.importComplete(json);
-                                    }
-                                }
-                                json=null;
-                            }
-                        }, o.ajaxOptions ));
-                        break;
-                    case 'jsonstring' :
-                        if(o.impstring && typeof o.impstring == 'string') {
-                            JsonConvert(o.impstring,o );
-                            if($.isFunction(o.importComplete)) {
-                                o.importComplete(o.impstring);
-                            }
-                            o.impstring = null;
-                        }
-                        break;
-                }
-            });
-        },
-        jqGridExport : function(o) {
-            o = $.extend({
-                exptype : "xmlstring",
-                root: "grid",
-                ident: "\t"
-            }, o || {});
-            var ret = null;
-            this.each(function () {
-                if(!this.grid) { return;}
-                var gprm = $.extend({},$(this).jqGrid("getGridParam"));
-                // we need to check for:
-                // 1.multiselect, 2.subgrid  3. treegrid and remove the unneded columns from colNames
-                if(gprm.rownumbers) {
-                    gprm.colNames.splice(0,1);
-                    gprm.colModel.splice(0,1);
-                }
-                if(gprm.multiselect) {
-                    gprm.colNames.splice(0,1);
-                    gprm.colModel.splice(0,1);
-                }
-                if(gprm.subGrid) {
-                    gprm.colNames.splice(0,1);
-                    gprm.colModel.splice(0,1);
-                }
-                gprm.knv = null;
-                if(gprm.treeGrid) {
-                    for (var key in gprm.treeReader) {
-                        if(gprm.treeReader.hasOwnProperty(key)) {
-                            gprm.colNames.splice(gprm.colNames.length-1);
-                            gprm.colModel.splice(gprm.colModel.length-1);
-                        }
-                    }
-                }
-                switch (o.exptype) {
-                    case 'xmlstring' :
-                        ret = "<"+o.root+">"+xmlJsonClass.json2xml(gprm,o.ident)+"</"+o.root+">";
-                        break;
-                    case 'jsonstring' :
-                        ret = "{"+ xmlJsonClass.toJson(gprm,o.root,o.ident)+"}";
-                        if(gprm.postData.filters !== undefined) {
-                            ret=ret.replace(/filters":"/,'filters":');
-                            ret=ret.replace(/}]}"/,'}]}');
-                        }
-                        break;
-                }
-            });
-            return ret;
-        },
-        excelExport : function(o) {
-            o = $.extend({
-                exptype : "remote",
-                url : null,
-                oper: "oper",
-                tag: "excel",
-                exportOptions : {}
-            }, o || {});
-            return this.each(function(){
-                $t = this;
-                if(!this.grid) { return;}
-                if(o.exptype == "remote") {
-                    var pdata = $.extend({},this.p.postData);
-                    pdata[o.oper] = o.tag;
-                    var params = jQuery.param(pdata);
-                    window.location = o.url+"?"+params;
-                }
-            });
-        }
-    });
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.import.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js	(nonexistent)
@@ -1,503 +0,0 @@
-;(function($){
-/*
-**
- * jqGrid addons using jQuery UI 
- * Author: Mark Williams
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
- * depends on jQuery UI 
-**/
-if ($.browser.msie && $.browser.version==8) {
-	$.expr[":"].hidden = function(elem) {
-		return elem.offsetWidth === 0 || elem.offsetHeight === 0 ||
-			elem.style.display == "none";
-	};
-}
-// requiere load multiselect before grid
-$.jgrid._multiselect = false;
-if($.ui) {
-	if ($.ui.multiselect ) {
-		if($.ui.multiselect.prototype._setSelected) {
-			var setSelected = $.ui.multiselect.prototype._setSelected;
-		    $.ui.multiselect.prototype._setSelected = function(item,selected) {
-		        var ret = setSelected.call(this,item,selected);
-		        if (selected && this.selectedList) {
-		            var elt = this.element;
-				    this.selectedList.find('li').each(function() {
-					    if ($(this).data('optionLink')) {
-						    $(this).data('optionLink').remove().appendTo(elt);
-					    }
-				    });
-		        }
-		        return ret;
-			};
-		}
-		if($.ui.multiselect.prototype.destroy) {
-			$.ui.multiselect.prototype.destroy = function() {
-				this.element.show();
-				this.container.remove();
-				if ($.Widget === undefined) {
-					$.widget.prototype.destroy.apply(this, arguments);
-				} else {
-					$.Widget.prototype.destroy.apply(this, arguments);
-	            }
-			};
-		}
-		$.jgrid._multiselect = true;
-	}
-}
-        
-$.jgrid.extend({
-	sortableColumns : function (tblrow)
-	{
-		return this.each(function (){
-			var ts = this;
-			function start() {ts.p.disableClick = true;}
-			var sortable_opts = {
-				"tolerance" : "pointer",
-				"axis" : "x",
-				"scrollSensitivity": "1",
-				"items": '>th:not(:has(#jqgh_cb,#jqgh_rn,#jqgh_subgrid),:hidden)',
-				"placeholder": {
-					element: function(item) {
-						var el = $(document.createElement(item[0].nodeName))
-						.addClass(item[0].className+" ui-sortable-placeholder ui-state-highlight")
-						.removeClass("ui-sortable-helper")[0];
-						return el;
-					},
-					update: function(self, p) {
-						p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10));
-						p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10));
-					}
-				},
-				"update": function(event, ui) {
-					var p = $(ui.item).parent();
-					var th = $(">th", p);
-					var colModel = ts.p.colModel;
-					var cmMap = {};
-					$.each(colModel, function(i) { cmMap[this.name]=i; });
-					var permutation = [];
-					th.each(function(i) {
-						var id = $(">div", this).get(0).id.replace(/^jqgh_/, "");
-							if (id in cmMap) {
-								permutation.push(cmMap[id]);
-							}
-					});
-	
-					$(ts).jqGrid("remapColumns",permutation, true, true);
-					if ($.isFunction(ts.p.sortable.update)) {
-						ts.p.sortable.update(permutation);
-					}
-					setTimeout(function(){ts.p.disableClick=false;}, 50);
-				}
-			};
-			if (ts.p.sortable.options) {
-				$.extend(sortable_opts, ts.p.sortable.options);
-			} else if ($.isFunction(ts.p.sortable)) {
-				ts.p.sortable = { "update" : ts.p.sortable };
-			}
-			if (sortable_opts.start) {
-				var s = sortable_opts.start;
-				sortable_opts.start = function(e,ui) {
-					start();
-					s.call(this,e,ui);
-				};
-			} else {
-				sortable_opts.start = start;
-			}
-			if (ts.p.sortable.exclude) {
-				sortable_opts.items += ":not("+ts.p.sortable.exclude+")";
-			}
-			tblrow.sortable(sortable_opts).data("sortable").floating = true;
-		});
-	},
-    columnChooser : function(opts) {
-        var self = this;
-		if($("#colchooser_"+self[0].p.id).length ) { return; }
-        var selector = $('<div id="colchooser_'+self[0].p.id+'" style="position:relative;overflow:hidden"><div><select multiple="multiple"></select></div></div>');
-        var select = $('select', selector);
-
-        opts = $.extend({
-            "width" : 420,
-            "height" : 240,
-            "classname" : null,
-            "done" : function(perm) { if (perm) { self.jqGrid("remapColumns", perm, true); } },
-            /* msel is either the name of a ui widget class that
-               extends a multiselect, or a function that supports
-               creating a multiselect object (with no argument,
-               or when passed an object), and destroying it (when
-               passed the string "destroy"). */
-            "msel" : "multiselect",
-            /* "msel_opts" : {}, */
-
-            /* dlog is either the name of a ui widget class that 
-               behaves in a dialog-like way, or a function, that
-               supports creating a dialog (when passed dlog_opts)
-               or destroying a dialog (when passed the string
-               "destroy")
-               */
-            "dlog" : "dialog",
-
-            /* dlog_opts is either an option object to be passed 
-               to "dlog", or (more likely) a function that creates
-               the options object.
-               The default produces a suitable options object for
-               ui.dialog */
-            "dlog_opts" : function(opts) {
-                var buttons = {};
-                buttons[opts.bSubmit] = function() {
-                    opts.apply_perm();
-                    opts.cleanup(false);
-                };
-                buttons[opts.bCancel] = function() {
-                    opts.cleanup(true);
-                };
-                return {
-                    "buttons": buttons,
-                    "close": function() {
-                        opts.cleanup(true);
-                    },
-					"modal" : false,
-                    "resizable": false,
-                    "width": opts.width+20
-                };
-            },
-            /* Function to get the permutation array, and pass it to the
-               "done" function */
-            "apply_perm" : function() {
-                $('option',select).each(function(i) {
-                    if (this.selected) {
-                        self.jqGrid("showCol", colModel[this.value].name);
-                    } else {
-                        self.jqGrid("hideCol", colModel[this.value].name);
-                    }
-                });
-                
-                var perm = [];
-				//fixedCols.slice(0);
-                $('option[selected]',select).each(function() { perm.push(parseInt(this.value,10)); });
-                $.each(perm, function() { delete colMap[colModel[parseInt(this,10)].name]; });
-                $.each(colMap, function() {
-					var ti = parseInt(this,10);
-					perm = insert(perm,ti,ti);
-				});
-                if (opts.done) {
-                    opts.done.call(self, perm);
-                }
-            },
-            /* Function to cleanup the dialog, and select. Also calls the
-               done function with no permutation (to indicate that the
-               columnChooser was aborted */
-            "cleanup" : function(calldone) {
-                call(opts.dlog, selector, 'destroy');
-                call(opts.msel, select, 'destroy');
-                selector.remove();
-                if (calldone && opts.done) {
-                    opts.done.call(self);
-                }
-            },
-			"msel_opts" : {}
-        }, $.jgrid.col, opts || {});
-		if($.ui) {
-			if ($.ui.multiselect ) {
-				if(opts.msel == "multiselect") {
-					if(!$.jgrid._multiselect) {
-						// should be in language file
-						alert("Multiselect plugin loaded after jqGrid. Please load the plugin before the jqGrid!");
-						return;
-					}
-					opts.msel_opts = $.extend($.ui.multiselect.defaults,opts.msel_opts);
-				}
-			}
-		}
-        if (opts.caption) {
-            selector.attr("title", opts.caption);
-        }
-        if (opts.classname) {
-            selector.addClass(opts.classname);
-            select.addClass(opts.classname);
-        }
-        if (opts.width) {
-            $(">div",selector).css({"width": opts.width,"margin":"0 auto"});
-            select.css("width", opts.width);
-        }
-        if (opts.height) {
-            $(">div",selector).css("height", opts.height);
-            select.css("height", opts.height - 10);
-        }
-        var colModel = self.jqGrid("getGridParam", "colModel");
-        var colNames = self.jqGrid("getGridParam", "colNames");
-        var colMap = {}, fixedCols = [];
-
-        select.empty();
-        $.each(colModel, function(i) {
-            colMap[this.name] = i;
-            if (this.hidedlg) {
-                if (!this.hidden) {
-                    fixedCols.push(i);
-                }
-                return;
-            }
-
-            select.append("<option value='"+i+"' "+
-                          (this.hidden?"":"selected='selected'")+">"+colNames[i]+"</option>");
-        });
-		function insert(perm,i,v) {
-			if(i>=0){
-				var a = perm.slice();
-				var b = a.splice(i,Math.max(perm.length-i,i));
-				if(i>perm.length) { i = perm.length; }
-				a[i] = v;
-				return a.concat(b);
-			}
-		}
-        function call(fn, obj) {
-            if (!fn) { return; }
-            if (typeof fn == 'string') {
-                if ($.fn[fn]) {
-                    $.fn[fn].apply(obj, $.makeArray(arguments).slice(2));
-                }
-            } else if ($.isFunction(fn)) {
-                fn.apply(obj, $.makeArray(arguments).slice(2));
-            }
-        }
-
-        var dopts = $.isFunction(opts.dlog_opts) ? opts.dlog_opts.call(self, opts) : opts.dlog_opts;
-        call(opts.dlog, selector, dopts);
-        var mopts = $.isFunction(opts.msel_opts) ? opts.msel_opts.call(self, opts) : opts.msel_opts;
-        call(opts.msel, select, mopts);
-    },
-	sortableRows : function (opts) {
-		// Can accept all sortable options and events
-		return this.each(function(){
-			var $t = this;
-			if(!$t.grid) { return; }
-			// Currently we disable a treeGrid sortable
-			if($t.p.treeGrid) { return; }
-			if($.fn.sortable) {
-				opts = $.extend({
-					"cursor":"move",
-					"axis" : "y",
-					"items": ".jqgrow"
-					},
-				opts || {});
-				if(opts.start && $.isFunction(opts.start)) {
-					opts._start_ = opts.start;
-					delete opts.start;
-				} else {opts._start_=false;}
-				if(opts.update && $.isFunction(opts.update)) {
-					opts._update_ = opts.update;
-					delete opts.update;
-				} else {opts._update_ = false;}
-				opts.start = function(ev,ui) {
-					$(ui.item).css("border-width","0px");
-					$("td",ui.item).each(function(i){
-						this.style.width = $t.grid.cols[i].style.width;
-					});
-					if($t.p.subGrid) {
-						var subgid = $(ui.item).attr("id");
-						try {
-							$($t).jqGrid('collapseSubGridRow',subgid);
-						} catch (e) {}
-					}
-					if(opts._start_) {
-						opts._start_.apply(this,[ev,ui]);
-					}
-				};
-				opts.update = function (ev,ui) {
-					$(ui.item).css("border-width","");
-					$t.updateColumns();
-					if($t.p.rownumbers === true) {
-						$("td.jqgrid-rownum",$t.rows).each(function(i){
-							$(this).html(i+1);
-						});
-					}
-					if(opts._update_) {
-						opts._update_.apply(this,[ev,ui]);
-					}
-				};
-				$("tbody:first",$t).sortable(opts);
-				$("tbody:first",$t).disableSelection();
-			}
-		});
-	},
-	gridDnD : function(opts) {
-		return this.each(function(){
-		var $t = this;
-		if(!$t.grid) { return; }
-		// Currently we disable a treeGrid drag and drop
-		if($t.p.treeGrid) { return; }
-		if(!$.fn.draggable || !$.fn.droppable) { return; }
-		function updateDnD ()
-		{
-			var datadnd = $.data($t,"dnd");
-		    $("tr.jqgrow:not(.ui-draggable)",$t).draggable($.isFunction(datadnd.drag) ? datadnd.drag.call($($t),datadnd) : datadnd.drag);
-		}
-		var appender = "<table id='jqgrid_dnd' class='ui-jqgrid-dnd'></table>";
-		if($("#jqgrid_dnd").html() === null) {
-			$('body').append(appender);
-		}
-
-		if(typeof opts == 'string' && opts == 'updateDnD' && $t.p.jqgdnd===true) {
-			updateDnD();
-			return;
-		}
-		opts = $.extend({
-			"drag" : function (opts) {
-				return $.extend({
-					start : function (ev, ui) {
-						// if we are in subgrid mode try to collapse the node
-						if($t.p.subGrid) {
-							var subgid = $(ui.helper).attr("id");
-							try {
-								$($t).jqGrid('collapseSubGridRow',subgid);
-							} catch (e) {}
-						}
-						// hack
-						// drag and drop does not insert tr in table, when the table has no rows
-						// we try to insert new empty row on the target(s)
-						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
-							if($($.data($t,"dnd").connectWith[i]).jqGrid('getGridParam','reccount') == "0" ){
-								$($.data($t,"dnd").connectWith[i]).jqGrid('addRowData','jqg_empty_row',{});
-							}
-						}
-						ui.helper.addClass("ui-state-highlight");
-						$("td",ui.helper).each(function(i) {
-							this.style.width = $t.grid.headers[i].width+"px";
-						});
-						if(opts.onstart && $.isFunction(opts.onstart) ) { opts.onstart.call($($t),ev,ui); }
-					},
-					stop :function(ev,ui) {
-						if(ui.helper.dropped) {
-							var ids = $(ui.helper).attr("id");
-							$($t).jqGrid('delRowData',ids );
-						}
-						// if we have a empty row inserted from start event try to delete it
-						for (var i=0;i<$.data($t,"dnd").connectWith.length;i++){
-							$($.data($t,"dnd").connectWith[i]).jqGrid('delRowData','jqg_empty_row');
-						}
-						if(opts.onstop && $.isFunction(opts.onstop) ) { opts.onstop.call($($t),ev,ui); }
-					}
-				},opts.drag_opts || {});
-			},
-			"drop" : function (opts) {
-				return $.extend({
-					accept: function(d) {
-						var tid = $(d).closest("table.ui-jqgrid-btable");
-						if($.data(tid[0],"dnd") !== undefined) {
-						    var cn = $.data(tid[0],"dnd").connectWith;
-						    return $.inArray('#'+this.id,cn) != -1 ? true : false;
-						}
-						return d;
-					},
-					drop: function(ev, ui) {
-						var accept = $(ui.draggable).attr("id");
-						var getdata = $('#'+$t.id).jqGrid('getRowData',accept);
-						if(!opts.dropbyname) {
-							var j =0, tmpdata = {}, dropname;
-							var dropmodel = $("#"+this.id).jqGrid('getGridParam','colModel');
-							try {
-								for (var key in getdata) {
-									if(getdata.hasOwnProperty(key) && dropmodel[j]) {
-										dropname = dropmodel[j].name;
-										tmpdata[dropname] = getdata[key];
-									}
-									j++;
-								}
-								getdata = tmpdata;
-							} catch (e) {}
-						}
-						ui.helper.dropped = true;
-						if(opts.beforedrop && $.isFunction(opts.beforedrop) ) {
-							//parameters to this callback - event, element, data to be inserted, sender, reciever
-							// should return object which will be inserted into the reciever
-							var datatoinsert = opts.beforedrop.call(this,ev,ui,getdata,$('#'+$t.id),$(this));
-							if (typeof datatoinsert != "undefined" && datatoinsert !== null && typeof datatoinsert == "object") { getdata = datatoinsert; }
-						}
-						if(ui.helper.dropped) {
-							var grid;
-							if(opts.autoid) {
-								if($.isFunction(opts.autoid)) {
-									grid = opts.autoid.call(this,getdata);
-								} else {
-									grid = Math.ceil(Math.random()*1000);
-									grid = opts.autoidprefix+grid;
-								}
-							}
-							// NULL is interpreted as undefined while null as object
-							$("#"+this.id).jqGrid('addRowData',grid,getdata,opts.droppos);
-						}
-						if(opts.ondrop && $.isFunction(opts.ondrop) ) { opts.ondrop.call(this,ev,ui, getdata); }
-					}}, opts.drop_opts || {});
-			},
-			"onstart" : null,
-			"onstop" : null,
-			"beforedrop": null,
-			"ondrop" : null,
-			"drop_opts" : {
-				"activeClass": "ui-state-active",
-				"hoverClass": "ui-state-hover"
-			},
-			"drag_opts" : {
-				"revert": "invalid",
-				"helper": "clone",
-				"cursor": "move",
-				"appendTo" : "#jqgrid_dnd",
-				"zIndex": 5000
-			},
-			"dropbyname" : false,
-			"droppos" : "first",
-			"autoid" : true,
-			"autoidprefix" : "dnd_"
-		}, opts || {});
-		
-		if(!opts.connectWith) { return; }
-		opts.connectWith = opts.connectWith.split(",");
-		opts.connectWith = $.map(opts.connectWith,function(n){return $.trim(n);});
-		$.data($t,"dnd",opts);
-		
-		if($t.p.reccount != "0" && !$t.p.jqgdnd) {
-			updateDnD();
-		}
-		$t.p.jqgdnd = true;
-		for (var i=0;i<opts.connectWith.length;i++){
-			var cn =opts.connectWith[i];
-			$(cn).droppable($.isFunction(opts.drop) ? opts.drop.call($($t),opts) : opts.drop);
-		}
-		});
-	},
-	gridResize : function(opts) {
-		return this.each(function(){
-			var $t = this;
-			if(!$t.grid || !$.fn.resizable) { return; }
-			opts = $.extend({}, opts || {});
-			if(opts.alsoResize ) {
-				opts._alsoResize_ = opts.alsoResize;
-				delete opts.alsoResize;
-			} else {
-				opts._alsoResize_ = false;
-			}
-			if(opts.stop && $.isFunction(opts.stop)) {
-				opts._stop_ = opts.stop;
-				delete opts.stop;
-			} else {
-				opts._stop_ = false;
-			}
-			opts.stop = function (ev, ui) {
-				$($t).jqGrid('setGridParam',{height:$("#gview_"+$t.p.id+" .ui-jqgrid-bdiv").height()});
-				$($t).jqGrid('setGridWidth',ui.size.width,opts.shrinkToFit);
-				if(opts._stop_) { opts._stop_.call($t,ev,ui); }
-			};
-			if(opts._alsoResize_) {
-				var optstest = "{\'#gview_"+$t.p.id+" .ui-jqgrid-bdiv\':true,'" +opts._alsoResize_+"':true}";
-				opts.alsoResize = eval('('+optstest+')'); // the only way that I found to do this
-			} else {
-				opts.alsoResize = $(".ui-jqgrid-bdiv","#gview_"+$t.p.id);
-			}
-			delete opts._alsoResize_;
-			$("#gbox_"+$t.p.id).resizable(opts);
-		});
-	}
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.jqueryui.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js	(nonexistent)
@@ -1,249 +0,0 @@
-;(function($){
-/**
- * jqGrid extension for manipulating Grid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-$.jgrid.extend({
-//Editing
-	editRow : function(rowid,keys,oneditfunc,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
-		return this.each(function(){
-			var $t = this, nm, tmp, editable, cnt=0, focus=null, svr={}, ind,cm;
-			if (!$t.grid ) { return; }
-			ind = $($t).jqGrid("getInd",rowid,true);
-			if( ind === false ) {return;}
-			editable = $(ind).attr("editable") || "0";
-			if (editable == "0" && !$(ind).hasClass("not-editable-row")) {
-				cm = $t.p.colModel;
-				$('td',ind).each( function(i) {
-					nm = cm[i].name;
-					var treeg = $t.p.treeGrid===true && nm == $t.p.ExpandColumn;
-					if(treeg) { tmp = $("span:first",this).html();}
-					else {
-						try {
-							tmp =  $.unformat(this,{rowId:rowid, colModel:cm[i]},i);
-						} catch (_) {
-							tmp = $(this).html();
-						}
-					}
-					if ( nm != 'cb' && nm != 'subgrid' && nm != 'rn') {
-						if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-						svr[nm]=tmp;
-						if(cm[i].editable===true) {
-							if(focus===null) { focus = i; }
-							if (treeg) { $("span:first",this).html(""); }
-							else { $(this).html(""); }
-							var opt = $.extend({},cm[i].editoptions || {},{id:rowid+"_"+nm,name:nm});
-							if(!cm[i].edittype) { cm[i].edittype = "text"; }
-							var elc = createEl(cm[i].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
-							$(elc).addClass("editable");
-							if(treeg) { $("span:first",this).append(elc); }
-							else { $(this).append(elc); }
-							//Again IE
-							if(cm[i].edittype == "select" && cm[i].editoptions.multiple===true && $.browser.msie) {
-								$(elc).width($(elc).width());
-							}
-							cnt++;
-						}
-					}
-				});
-				if(cnt > 0) {
-					svr.id = rowid; $t.p.savedRow.push(svr);
-					$(ind).attr("editable","1");
-					$("td:eq("+focus+") input",ind).focus();
-					if(keys===true) {
-						$(ind).bind("keydown",function(e) {
-							if (e.keyCode === 27) {$($t).jqGrid("restoreRow",rowid, afterrestorefunc);}
-							if (e.keyCode === 13) {
-								var ta = e.target;
-								if(ta.tagName == 'TEXTAREA') { return true; }
-								$($t).jqGrid("saveRow",rowid,succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc );
-								return false;
-							}
-							e.stopPropagation();
-						});
-					}
-					if( $.isFunction(oneditfunc)) { oneditfunc(rowid); }
-				}
-			}
-		});
-	},
-	saveRow : function(rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc) {
-		return this.each(function(){
-		var $t = this, nm, tmp={}, tmp2={}, editable, fr, cv, ind;
-		if (!$t.grid ) { return; }
-		ind = $($t).jqGrid("getInd",rowid,true);
-		if(ind === false) {return;}
-		editable = $(ind).attr("editable");
-		url = url ? url : $t.p.editurl;
-		if (editable==="1") {
-			var cm;
-			$("td",ind).each(function(i) {
-				cm = $t.p.colModel[i];
-				nm = cm.name;
-				if ( nm != 'cb' && nm != 'subgrid' && cm.editable===true && nm != 'rn') {
-					switch (cm.edittype) {
-						case "checkbox":
-							var cbv = ["Yes","No"];
-							if(cm.editoptions ) {
-								cbv = cm.editoptions.value.split(":");
-							}
-							tmp[nm]=  $("input",this).attr("checked") ? cbv[0] : cbv[1]; 
-							break;
-						case 'text':
-						case 'password':
-						case 'textarea':
-						case "button" :
-							tmp[nm]=$("input, textarea",this).val();
-							break;
-						case 'select':
-							if(!cm.editoptions.multiple) {
-								tmp[nm] = $("select>option:selected",this).val();
-								tmp2[nm] = $("select>option:selected", this).text();
-							} else {
-								var sel = $("select",this), selectedText = [];
-								tmp[nm] = $(sel).val();
-								if(tmp[nm]) { tmp[nm]= tmp[nm].join(","); } else { tmp[nm] =""; }
-								$("select > option:selected",this).each(
-									function(i,selected){
-										selectedText[i] = $(selected).text();
-									}
-								);
-								tmp2[nm] = selectedText.join(",");
-							}
-							if(cm.formatter && cm.formatter == 'select') { tmp2={}; }
-							break;
-						case 'custom' :
-							try {
-								if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
-									tmp[nm] = cm.editoptions.custom_value($(".customelement",this),'get');
-									if (tmp[nm] === undefined) { throw "e2"; }
-								} else { throw "e1"; }
-							} catch (e) {
-								if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
-								if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
-								else { info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-							}
-							break;
-					}
-					cv = checkValues(tmp[nm],i,$t);
-					if(cv[0] === false) {
-						cv[1] = tmp[nm] + " " + cv[1];
-						return false;
-					}
-					if($t.p.autoencode) { tmp[nm] = $.jgrid.htmlEncode(tmp[nm]); }
-				}
-			});
-			if (cv[0] === false){
-				try {
-					var positions = findPos($("#"+rowid)[0]);
-					info_dialog($.jgrid.errors.errcap,cv[1],$.jgrid.edit.bClose,{left:positions[0],top:positions[1]});
-				} catch (e) {
-					alert(cv[1]);
-				}
-				return;
-			}
-			if(tmp) {
-				var idname, opers, oper;
-				opers = $t.p.prmNames;
-				oper = opers.oper;
-				idname = opers.id;
-				tmp[oper] = opers.editoper;
-				tmp[idname] = rowid;
-				if(typeof($t.p.inlineData) == 'undefined') { $t.p.inlineData ={}; }
-				if(typeof(extraparam) == 'undefined') { extraparam ={}; }
-				tmp = $.extend({},tmp,$t.p.inlineData,extraparam);
-			}
-			if (url == 'clientArray') {
-				tmp = $.extend({},tmp, tmp2);
-				if($t.p.autoencode) {
-					$.each(tmp,function(n,v){
-						tmp[n] = $.jgrid.htmlDecode(v);
-					});
-				}
-				var resp = $($t).jqGrid("setRowData",rowid,tmp);
-				$(ind).attr("editable","0");
-				for( var k=0;k<$t.p.savedRow.length;k++) {
-					if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
-				}
-				if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
-				if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,resp); }
-			} else {
-				$("#lui_"+$t.p.id).show();
-				$.ajax($.extend({
-					url:url,
-					data: $.isFunction($t.p.serializeRowData) ? $t.p.serializeRowData(tmp) : tmp,
-					type: "POST",
-					complete: function(res,stat){
-						$("#lui_"+$t.p.id).hide();
-						if (stat === "success"){
-							var ret;
-							if( $.isFunction(succesfunc)) { ret = succesfunc(res);}
-							else { ret = true; }
-							if (ret===true) {
-								if($t.p.autoencode) {
-									$.each(tmp,function(n,v){
-										tmp[n] = $.jgrid.htmlDecode(v);
-									});
-								}
-								tmp = $.extend({},tmp, tmp2);
-								$($t).jqGrid("setRowData",rowid,tmp);
-								$(ind).attr("editable","0");
-								for( var k=0;k<$t.p.savedRow.length;k++) {
-									if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
-								}
-								if(fr >= 0) { $t.p.savedRow.splice(fr,1); }
-								if( $.isFunction(aftersavefunc) ) { aftersavefunc(rowid,res); }
-							} else { $($t).jqGrid("restoreRow",rowid, afterrestorefunc); }
-						}
-					},
-					error:function(res,stat){
-						$("#lui_"+$t.p.id).hide();
-						if($.isFunction(errorfunc) ) {
-							errorfunc(rowid, res, stat);
-						} else {
-							alert("Error Row: "+rowid+" Result: " +res.status+":"+res.statusText+" Status: "+stat);
-						}
-					}
-				}, $.jgrid.ajaxOptions, $t.p.ajaxRowOptions || {}));
-			}
-			$(ind).unbind("keydown");
-		}
-		});
-	},
-	restoreRow : function(rowid, afterrestorefunc) {
-		return this.each(function(){
-			var $t= this, fr, ind, ares={};
-			if (!$t.grid ) { return; }
-			ind = $($t).jqGrid("getInd",rowid,true);
-			if(ind === false) {return;}
-			for( var k=0;k<$t.p.savedRow.length;k++) {
-				if( $t.p.savedRow[k].id == rowid) {fr = k; break;}
-			}
-			if(fr >= 0) {
-				if($.isFunction($.fn.datepicker)) {
-					try {
-						$("input.hasDatepicker","#"+ind.id).datepicker('hide');
-					} catch (e) {}
-				}
-				$.each($t.p.colModel, function(i,n){
-					if(this.editable === true && this.name in $t.p.savedRow[fr]) {
-						ares[this.name] = $t.p.savedRow[fr][this.name];
-					}
-				});
-				$($t).jqGrid("setRowData",rowid,ares);
-				$(ind).attr("editable","0").unbind("keydown");
-				$t.p.savedRow.splice(fr,1);
-			}
-			if ($.isFunction(afterrestorefunc))
-			{
-				afterrestorefunc(rowid);
-			}
-		});
-	}
-//end inline edit
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.inlinedit.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid German Translation
- * Version 1.0.0 (developed for jQuery Grid 3.3.1)
- * Olaf Klöppel opensource@blue-hit.de
- * http://blue-hit.de/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Zeige {0} - {1} von {2}",
-	    emptyrecords: "Keine Datensätze vorhanden",
-		loadtext: "Lädt...",
-		pgtext : "Seite {0} von {1}"
-	},
-	search : {
-		caption: "Suche...",
-		Find: "Finden",
-		Reset: "Zurücksetzen",
-	    odata : ['gleich', 'ungleich', 'kleiner', 'kleiner gleich','größer','größer gleich', 'beginnt mit','beginnt nicht mit','ist in','ist nicht in','endet mit','endet nicht mit','enthält','enthält nicht'],
-	    groupOps: [	{ op: "AND", text: "alle" },	{ op: "OR",  text: "mindestens eins" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-		addCaption: "Datensatz hinzufügen",
-		editCaption: "Datensatz bearbeiten",
-		bSubmit: "Speichern",
-		bCancel: "Abbrechen",
-		bClose: "Schließen",
-		saveData: "Daten wurden geändert! Änderungen speichern?",
-		bYes : "ja",
-		bNo : "nein",
-		bExit : "abbrechen",
-		msg: {
-		    required:"Feld ist erforderlich",
-		    number: "Bitte geben Sie eine Zahl ein",
-		    minValue:"Wert muss größer oder gleich sein, als ",
-		    maxValue:"Wert muss kleiner oder gleich sein, als ",
-		    email: "ist keine valide E-Mail Adresse",
-		    integer: "Bitte geben Sie eine Ganzzahl ein",
-			date: "Bitte geben Sie ein gültiges Datum ein",
-			url: "ist keine gültige URL. Prefix muss eingegeben werden ('http://' oder 'https://')",
-			nodefined : " ist nicht definiert!",
-			novalue : " Rückgabewert ist erforderlich!",
-			customarray : "Benutzerdefinierte Funktion sollte ein Array zurückgeben!",
-			customfcheck : "Benutzerdefinierte Funktion sollte im Falle der benutzerdefinierten Überprüfung vorhanden sein!"
-		}
-	},
-	view : {
-	    caption: "Datensatz anschauen",
-	    bClose: "Schließen"
-	},
-	del : {
-		caption: "Löschen",
-		msg: "Ausgewählte Datensätze löschen?",
-		bSubmit: "Löschen",
-		bCancel: "Abbrechen"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Ausgewählten Zeile editieren",
-		addtext:" ",
-	    addtitle: "Neuen Zeile einfügen",
-	    deltext: " ",
-	    deltitle: "Ausgewählte Zeile löschen",
-	    searchtext: " ",
-	    searchtitle: "Datensatz finden",
-	    refreshtext: "",
-	    refreshtitle: "Tabelle neu laden",
-	    alertcap: "Warnung",
-	    alerttext: "Bitte Zeile auswählen",
-		viewtext: "",
-		viewtitle: "Ausgewählte Zeile anzeigen"
-	},
-	col : {
-		caption: "Spalten anzeigen/verbergen",
-		bSubmit: "Speichern",
-		bCancel: "Abbrechen"	
-	},
-	errors : {
-		errcap : "Fehler",
-		nourl : "Keine URL angegeben",
-		norecords: "Keine Datensätze zum verarbeiten",
-		model : "colNames und colModel sind unterschiedlich lang!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:" €", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"So", "Mo", "Di", "Mi", "Do", "Fr", "Sa",
-				"Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez",
-				"Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"d.m.Y H:i:s",
-		        ISO8601Short:"d.m.Y",
-		        ShortDate: "j.n.Y",
-		        LongDate: "l, d. F Y",
-		        FullDateTime: "l, d. F Y G:i:s",
-		        MonthDay: "d. F",
-		        ShortTime: "G:i",
-		        LongTime: "G:i:s",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-de.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Swedish Translation
- * Harald Normann harald.normann@wts.se, harald.normann@gmail.com
- * http://www.worldteamsoftware.com 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Visar {0} - {1} av {2}",
-		emptyrecords: "Det finns inga poster att visa",
-		loadtext: "Laddar...",
-		pgtext : "Sida {0} av {1}"
-	},
-	search : {
-		caption: "Sök Poster - Ange sökvillkor",
-		Find: "Sök",
-		Reset: "Nollställ Villkor",
-		odata : ['lika', 'ej lika', 'mindre', 'mindre eller lika','större','större eller lika', 'börjar med','börjar inte med','tillhör','tillhör inte','slutar med','slutar inte med','innehåller','innehåller inte'],
-		groupOps: [	{ op: "AND", text: "alla" },	{ op: "OR",  text: "eller" }	],
-		matchText: " träff",
-		rulesText: " regler"
-	},
-	edit : {
-		addCaption: "Ny Post",
-		editCaption: "Redigera Post",
-		bSubmit: "Spara",
-		bCancel: "Avbryt",
-		bClose: "Stäng",
-		saveData: "Data har ändrats! Spara förändringar?",
-		bYes : "Ja",
-		bNo : "Nej",
-		bExit : "Avbryt",
-		msg: {
-	        required:"Fältet är obligatoriskt",
-	        number:"Välj korrekt nummer",
-	        minValue:"värdet måste vara större än eller lika med",
-	        maxValue:"värdet måste vara mindre än eller lika med",
-	        email: "är inte korrekt e-post adress",
-	        integer: "Var god ange korrekt heltal",
-	        date: "Var god ange korrekt datum",
-	        url: "är inte en korrekt URL. Prefix måste anges ('http://' or 'https://')",
-	        nodefined : " är inte definierad!",
-	        novalue : " returvärde måste anges!",
-	        customarray : "Custom funktion måste returnera en vektor!",
-			customfcheck : "Custom funktion måste finnas om Custom kontroll sker!"
-		}
-	},
-	view : {
-		caption: "Visa Post",
-		bClose: "Stäng"
-	},
-	del : {
-		caption: "Radera",
-		msg: "Radera markerad(e) post(er)?",
-		bSubmit: "Radera",
-		bCancel: "Avbryt"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "Redigera markerad rad",
-		addtext:"",
-		addtitle: "Skapa ny post",
-		deltext: "",
-		deltitle: "Radera markerad rad",
-		searchtext: "",
-		searchtitle: "Sök poster",
-		refreshtext: "",
-		refreshtitle: "Uppdatera data",
-		alertcap: "Varning",
-		alerttext: "Ingen rad är markerad",
-		viewtext: "",
-		viewtitle: "Visa markerad rad"
-	},
-	col : {
-		caption: "Välj Kolumner",
-		bSubmit: "OK",
-		bCancel: "Avbryt"
-	},
-	errors : {
-		errcap : "Fel",
-		nourl : "URL saknas",
-		norecords: "Det finns inga poster att bearbeta",
-		model : "Antal colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"Kr", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör",
-				"Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
-				"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
-			],
-			AmPm : ["fm","em","FM","EM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'Y-m-d',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate:  "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sv.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js	(nonexistent)
@@ -1,132 +0,0 @@
-;(function($){
-/**
- * jqGrid Bulgarian Translation 
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1} от {2}",
-		emptyrecords: "Няма запис(и)",
-		loadtext: "Зареждам...",
-		pgtext : "Стр. {0} от {1}"
-	},
-	search : {
-		caption: "Търсене...",
-		Find: "Намери",
-		Reset: "Изчисти",
-		odata : ['равно', 'различно', 'по-малко', 'по-малко или=','по-голямо','по-голямо или =', 'започва с','не започва с','се намира в','не се намира в','завършва с','не завършава с','съдържа', 'не съдържа' ],
-	    groupOps: [	{ op: "AND", text: "&nbsp;И " },	{ op: "OR",  text: "ИЛИ" }	],
-		matchText: " включи",
-		rulesText: " клауза"
-	},
-	edit : {
-		addCaption: "Нов Запис",
-		editCaption: "Редакция Запис",
-		bSubmit: "Запиши",
-		bCancel: "Изход",
-		bClose: "Затвори",
-		saveData: "Данните са променени! Да съхраня ли промените?",
-		bYes : "Да",
-		bNo : "Не",
-		bExit : "Отказ",
-		msg: {
-			required:"Полето е задължително",
-			number:"Въведете валидно число!",
-			minValue:"стойността трябва да е по-голяма или равна от",
-			maxValue:"стойността трябва да е по-малка или равна от",
-			email: "не е валиден ел. адрес",
-			integer: "Въведете валидно цяло число",
-			date: "Въведете валидна дата",
-			url: "e невалиден URL. Изискава се префикс('http://' или 'https://')",
-			nodefined : " е недефинирана!",
-			novalue : " изисква връщане на стойност!",
-			customarray : "Потреб. Функция трябва да върне масив!",
-			customfcheck : "Потребителска функция е задължителна при този тип елемент!"
-		}
-	},
-	view : {
-		caption: "Преглед запис",
-		bClose: "Затвори"
-	},
-	del : {
-		caption: "Изтриване",
-		msg: "Да изтрия ли избраният запис?",
-		bSubmit: "Изтрий",
-		bCancel: "Отказ"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Редакция избран запис",
-		addtext:" ",
-		addtitle: "Добавяне нов запис",
-		deltext: " ",
-		deltitle: "Изтриване избран запис",
-		searchtext: " ",
-		searchtitle: "Търсене запис(и)",
-		refreshtext: "",
-		refreshtitle: "Обнови таблица",
-		alertcap: "Предупреждение",
-		alerttext: "Моля, изберете запис",
-		viewtext: "",
-		viewtitle: "Преглед избран запис"
-	},
-	col : {
-		caption: "Избери колони",
-		bSubmit: "Ок",
-		bCancel: "Изход"	
-	},
-	errors : {
-		errcap : "Грешка",
-		nourl : "Няма посочен url адрес",
-		norecords: "Няма запис за обработка",
-		model : "Модела не съответства на имената!"	
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" лв.", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Нед", "Пон", "Вт", "Ср", "Чет", "Пет", "Съб",
-				"Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"
-			],
-			monthNames: [
-				"Яну", "Фев", "Мар", "Апр", "Май", "Юни", "Юли", "Авг", "Сеп", "Окт", "Нов", "Дек",
-				"Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {
-				if(j==7 || j==8 || j== 27 || j== 28) {
-					return 'ми';
-				}
-				return ['ви', 'ри', 'ти'][Math.min((j - 1) % 10, 2)];
-			},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js	(nonexistent)
@@ -1,155 +0,0 @@
-;(function($){
-/**
- * jqGrid Japanese Translation
- * OKADA Yoshitada okada.dev@sth.jp
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{2} \u4EF6\u4E2D {0} - {1} \u3092\u8868\u793A ",
-	    emptyrecords: "\u8868\u793A\u3059\u308B\u30EC\u30B3\u30FC\u30C9\u304C\u3042\u308A\u307E\u305B\u3093",
-		loadtext: "\u8aad\u307f\u8fbc\u307f\u4e2d...",
-		pgtext : "{1} \u30DA\u30FC\u30B8\u4E2D {0} \u30DA\u30FC\u30B8\u76EE "
-	},
-	search : {
-	    caption: "\u691c\u7d22...",
-	    Find: "\u691c\u7d22",
-	    Reset: "\u30ea\u30bb\u30c3\u30c8",
-	    odata: ["\u6B21\u306B\u7B49\u3057\u3044", "\u6B21\u306B\u7B49\u3057\u304F\u306A\u3044",
-            "\u6B21\u3088\u308A\u5C0F\u3055\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5C0F\u3055\u3044",
-            "\u6B21\u3088\u308A\u5927\u304D\u3044", "\u6B21\u306B\u7B49\u3057\u3044\u304B\u5927\u304D\u3044",
-            "\u6B21\u3067\u59CB\u307E\u308B", "\u6B21\u3067\u59CB\u307E\u3089\u306A\u3044",
-            "\u6B21\u306B\u542B\u307E\u308C\u308B", "\u6B21\u306B\u542B\u307E\u308C\u306A\u3044",
-            "\u6B21\u3067\u7D42\u308F\u308B", "\u6B21\u3067\u7D42\u308F\u3089\u306A\u3044",
-            "\u6B21\u3092\u542B\u3080", "\u6B21\u3092\u542B\u307E\u306A\u3044"],
-	    groupOps: [{
-                op: "AND",
-                text: "\u3059\u3079\u3066\u306E"
-            },
-            {
-                op: "OR",
-                text: "\u3044\u305A\u308C\u304B\u306E"
-            }],
-      matchText: " \u6B21\u306E",
-      rulesText: " \u6761\u4EF6\u3092\u6E80\u305F\u3059"
-	},
-	edit : {
-	    addCaption: "\u30ec\u30b3\u30fc\u30c9\u8ffd\u52a0",
-	    editCaption: "\u30ec\u30b3\u30fc\u30c9\u7de8\u96c6",
-	    bSubmit: "\u9001\u4fe1",
-	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb",
-  		bClose: "\u9589\u3058\u308b",
-      saveData: "\u30C7\u30FC\u30BF\u304C\u5909\u66F4\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F",
-      bYes: "\u306F\u3044",
-      bNo: "\u3044\u3044\u3048",
-      bExit: "\u30AD\u30E3\u30F3\u30BB\u30EB",
-	    msg: {
-	        required:"\u3053\u306e\u9805\u76ee\u306f\u5fc5\u9808\u3067\u3059\u3002",
-	        number:"\u6b63\u3057\u3044\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-	        minValue:"\u6b21\u306e\u5024\u4ee5\u4e0a\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-	        maxValue:"\u6b21\u306e\u5024\u4ee5\u4e0b\u3067\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-	        email: "e-mail\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002",
-	        integer: "\u6b63\u3057\u3044\u6574\u6570\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-    			date: "\u6b63\u3057\u3044\u5024\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044\u3002",
-          url: "\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\20\u30D7\u30EC\u30D5\u30A3\u30C3\u30AF\u30B9\u304C\u5FC5\u8981\u3067\u3059\u3002 ('http://' \u307E\u305F\u306F 'https://')",
-          nodefined: " \u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093",
-          novalue: " \u623B\u308A\u5024\u304C\u5FC5\u8981\u3067\u3059",
-          customarray: "\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u306F\u914D\u5217\u3092\u8FD4\u3059\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",
-          customfcheck: "\u30AB\u30B9\u30BF\u30E0\u691C\u8A3C\u306B\u306F\u30AB\u30B9\u30BF\u30E0\u95A2\u6570\u304C\u5FC5\u8981\u3067\u3059"
-		}
-	},
-	view : {
-      caption: "\u30EC\u30B3\u30FC\u30C9\u3092\u8868\u793A",
-      bClose: "\u9589\u3058\u308B"
-	},
-	del : {
-	    caption: "\u524a\u9664",
-	    msg: "\u9078\u629e\u3057\u305f\u30ec\u30b3\u30fc\u30c9\u3092\u524a\u9664\u3057\u307e\u3059\u304b\uff1f",
-	    bSubmit: "\u524a\u9664",
-	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"
-	},
-	nav : {
-    	edittext: " ",
-	    edittitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u7de8\u96c6",
-      addtext:" ",
-	    addtitle: "\u884c\u3092\u65b0\u898f\u8ffd\u52a0",
-	    deltext: " ",
-	    deltitle: "\u9078\u629e\u3057\u305f\u884c\u3092\u524a\u9664",
-	    searchtext: " ",
-	    searchtitle: "\u30ec\u30b3\u30fc\u30c9\u691c\u7d22",
-	    refreshtext: "",
-	    refreshtitle: "\u30b0\u30ea\u30c3\u30c9\u3092\u30ea\u30ed\u30fc\u30c9",
-	    alertcap: "\u8b66\u544a",
-	    alerttext: "\u884c\u3092\u9078\u629e\u3057\u3066\u4e0b\u3055\u3044\u3002",
-      viewtext: "",
-      viewtitle: "\u9078\u629E\u3057\u305F\u884C\u3092\u8868\u793A"
-	},
-	col : {
-	    caption: "\u5217\u3092\u8868\u793a\uff0f\u96a0\u3059",
-	    bSubmit: "\u9001\u4fe1",
-	    bCancel: "\u30ad\u30e3\u30f3\u30bb\u30eb"	
-	},
-	errors : {
-		errcap : "\u30a8\u30e9\u30fc",
-		nourl : "URL\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
-		norecords: "\u51e6\u7406\u5bfe\u8c61\u306e\u30ec\u30b3\u30fc\u30c9\u304c\u3042\u308a\u307e\u305b\u3093\u3002",
-	    model : "colNames\u306e\u9577\u3055\u304ccolModel\u3068\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"
-	},
-	formatter : {
-            integer: {
-                thousandsSeparator: ",",
-                defaultValue: '0'
-            },
-            number: {
-                decimalSeparator: ".",
-                thousandsSeparator: ",",
-                decimalPlaces: 2,
-                defaultValue: '0.00'
-            },
-            currency: {
-                decimalSeparator: ".",
-                thousandsSeparator: ",",
-                decimalPlaces: 0,
-                prefix: "",
-                suffix: "",
-                defaultValue: '0'
-            },
-		date : {
-			dayNames:   [
-				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f",
-				"\u65e5", "\u6708", "\u706b", "\u6c34", "\u6728", "\u91d1", "\u571f"
-			],
-			monthNames: [
-				"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
-				"1\u6708", "2\u6708", "3\u6708", "4\u6708", "5\u6708", "6\u6708", "7\u6708", "8\u6708", "9\u6708", "10\u6708", "11\u6708", "12\u6708"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: "\u756a\u76ee",
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ja.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Hebrew Translation
- * Shuki Shukrun shukrun.shuki@gmail.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "מציג {0} - {1} מתוך {2}",
-		emptyrecords: "אין רשומות להציג",
-		loadtext: "טוען...",
-		pgtext : "דף {0} מתוך {1}"
-	},
-	search : {
-		caption: "מחפש...",
-		Find: "חפש",
-		Reset: "התחל",
-		odata : ['שווה', 'לא שווה', 'קטן', 'קטן או שווה','גדול','גדול או שווה', 'מתחיל ב','לא מתחיל ב','נמצא ב','לא נמצא ב','מסתיים ב','לא מסתיים ב','מכיל','לא מכיל'],
-		groupOps: [	{ op: "AND", text: "הכל" },	{ op: "OR",  text: "אחד מ" }	],
-		matchText: " תואם",
-		rulesText: " חוקים"
-	},
-	edit : {
-		addCaption: "הוסף רשומה",
-		editCaption: "ערוך רשומה",
-		bSubmit: "שלח",
-		bCancel: "בטל",
-		bClose: "סגור",
-		saveData: "נתונים השתנו! לשמור?",
-		bYes : "כן",
-		bNo : "לא",
-		bExit : "בטל",
-		msg: {
-			required:"שדה חובה",
-			number:"אנא, הכנס מספר תקין",
-			minValue:"ערך צריך להיות גדול או שווה ל ",
-			maxValue:"ערך צריך להיות קטן או שווה ל ",
-			email: "היא לא כתובת איימל תקינה",
-			integer: "אנא, הכנס מספר שלם",
-			date: "אנא, הכנס תאריך תקין",
-			url: "הכתובת אינה תקינה. דרושה תחילית ('http://' או 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-		caption: "הצג רשומה",
-		bClose: "סגור"
-	},
-	del : {
-		caption: "מחק",
-		msg: "האם למחוק את הרשומה/ות המסומנות?",
-		bSubmit: "מחק",
-		bCancel: "בטל"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "ערוך שורה מסומנת",
-		addtext:"",
-		addtitle: "הוסף שורה חדשה",
-		deltext: "",
-		deltitle: "מחק שורה מסומנת",
-		searchtext: "",
-		searchtitle: "חפש רשומות",
-		refreshtext: "",
-		refreshtitle: "טען גריד מחדש",
-		alertcap: "אזהרה",
-		alerttext: "אנא, בחר שורה",
-		viewtext: "",
-		viewtitle: "הצג שורה מסומנת"
-	},
-	col : {
-		caption: "הצג/הסתר עמודות",
-		bSubmit: "שלח",
-		bCancel: "בטל"
-	},
-	errors : {
-		errcap : "שגיאה",
-		nourl : "לא הוגדרה כתובת url",
-		norecords: "אין רשומות לעבד",
-		model : "אורך של colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"א", "ב", "ג", "ד", "ה", "ו", "ש",
-				"ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת"
-			],
-			monthNames: [
-				"ינו", "פבר", "מרץ", "אפר", "מאי", "יונ", "יול", "אוג", "ספט", "אוק", "נוב", "דצמ",
-				"ינואר", "פברואר", "מרץ", "אפריל", "מאי", "יוני", "יולי", "אוגוסט", "ספטמבר", "אוקטובר", "נובמבר", "דצמבר"
-			],
-			AmPm : ["לפני הצהרים","אחר הצהרים","לפני הצהרים","אחר הצהרים"],
-			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-he.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid (fi) Finnish Translation
- * Jukka Inkeri  awot.fi
- * http://awot.fi
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Haetaan...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Etsi...",
-	    Find: "Etsi",
-	    Reset: "Tyhj&auml;&auml;",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Uusi rivi",
-	    editCaption: "Muokkaa rivi",
-	    bSubmit: "OK",
-	    bCancel: "Peru",
-		bClose: "Sulje",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"pakollinen",
-	        number:"Anna kelvollinen nro",
-	        minValue:"arvo oltava >= ",
-	        maxValue:"arvo oltava  <= ",
-	        email: "virheellinen sposti ",
-	        integer: "Anna kelvollinen kokonaisluku",
-			date: "Anna kelvollinen pvm",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Poista",
-	    msg: "Poista valitut  rivi(t)?",
-	    bSubmit: "Poista",
-	    bCancel: "Peru"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Muokkaa valittu rivi",
-		addtext:" ",
-	    addtitle: "Uusi rivi",
-	    deltext: " ",
-	    deltitle: "Poista valittu rivi",
-	    searchtext: " ",
-	    searchtitle: "Etsi tietoja",
-	    refreshtext: "",
-	    refreshtitle: "Lataa uudelleen",
-	    alertcap: "Varoitus",
-	    alerttext: "Valitse rivi",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Nayta/Piilota sarakkeet",
-	    bSubmit: "OK",
-	    bCancel: "Peru"	
-	},
-	errors : {
-		errcap : "Virhe",
-		nourl : "url asettamatta",
-		norecords: "Ei muokattavia tietoja",
-	    model : "Pituus colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: "", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: "", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Su", "Ma", "Ti", "Ke", "To", "Pe", "La",
-				"Sunnuntai", "Maanantai", "Tiista", "Keskiviikko", "Torstai", "Perjantai", "Lauantai"
-			],
-			monthNames: [
-				"Tam", "Hel", "Maa", "Huh", "Tou", "Kes", "Hei", "Elo", "Syy", "Lok", "Mar", "Jou",
-				"Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kes&auml;kuu", "Hein&auml;kuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "d.m.Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-// FI
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fi.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Danish Translation
- * Kaare Rasmussen kjs@jasonic.dk
- * http://jasonic.dk/blog 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Loading...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Søg...",
-	    Find: "Find",
-	    Reset: "Nulstil",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Tilføj",
-	    editCaption: "Ret",
-	    bSubmit: "Send",
-	    bCancel: "Annuller",
-		bClose: "Luk",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Felt er nødvendigt",
-	        number:"Indtast venligst et validt tal",
-	        minValue:"værdi skal være større end eller lig med",
-	        maxValue:"værdi skal være mindre end eller lig med",
-	        email: "er ikke en valid email",
-	        integer: "Indtast venligst et validt heltalt",
-			date: "Indtast venligst en valid datoværdi",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Slet",
-	    msg: "Slet valgte række(r)?",
-	    bSubmit: "Slet",
-	    bCancel: "Annuller"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Rediger valgte række",
-		addtext:" ",
-	    addtitle: "Tilføj ny række",
-	    deltext: " ",
-	    deltitle: "Slet valgte række",
-	    searchtext: " ",
-	    searchtitle: "Find poster",
-	    refreshtext: "",
-	    refreshtitle: "Indlæs igen",
-	    alertcap: "Advarsel",
-	    alerttext: "Vælg venligst række",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Vis/skjul kolonner",
-	    bSubmit: "Send",
-	    bCancel: "Annuller"
-	},
-	errors : {
-		errcap : "Fejl",
-		nourl : "Ingel url valgt",
-		norecords: "Ingen poster at behandle",
-	    model : "colNames og colModel har ikke samme længde!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Søn", "Man", "Tirs", "Ons", "Tors", "Fre", "Lør",
-				"Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec",
-				"Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {return '.'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "j/n/Y",
-	            LongDate: "l d. F Y",
-	            FullDateTime: "l d F Y G:i:s",
-	            MonthDay: "d. F",
-	            ShortTime: "G:i",
-	            LongTime: "G:i:s",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-// DK
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-dk.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid Greek (el) Translation
- * Alex Cicovic
- * http://www.alexcicovic.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Φόρτωση...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Αναζήτηση...",
-	    Find: "Εύρεση",
-	    Reset: "Επαναφορά",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Εισαγωγή Εγγραφής",
-	    editCaption: "Επεξεργασία Εγγραφής",
-	    bSubmit: "Καταχώρηση",
-	    bCancel: "Άκυρο",
-		bClose: "Κλείσιμο",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Το πεδίο είναι απαραίτητο",
-	        number:"Το πεδίο δέχεται μόνο αριθμούς",
-	        minValue:"Η τιμή πρέπει να είναι μεγαλύτερη ή ίση του ",
-	        maxValue:"Η τιμή πρέπει να είναι μικρότερη ή ίση του ",
-	        email: "Η διεύθυνση e-mail δεν είναι έγκυρη",
-	        integer: "Το πεδίο δέχεται μόνο ακέραιους αριθμούς",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Διαγραφή",
-	    msg: "Διαγραφή των επιλεγμένων εγγραφών;",
-	    bSubmit: "Ναι",
-	    bCancel: "Άκυρο"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Επεξεργασία επιλεγμένης εγγραφής",
-		addtext:" ",
-	    addtitle: "Εισαγωγή νέας εγγραφής",
-	    deltext: " ",
-	    deltitle: "Διαγραφή επιλεγμένης εγγραφής",
-	    searchtext: " ",
-	    searchtitle: "Εύρεση Εγγραφών",
-	    refreshtext: "",
-	    refreshtitle: "Ανανέωση Πίνακα",
-	    alertcap: "Προσοχή",
-	    alerttext: "Δεν έχετε επιλέξει εγγραφή",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Εμφάνιση / Απόκρυψη Στηλών",
-	    bSubmit: "ΟΚ",
-	    bCancel: "Άκυρο"
-	},
-	errors : {
-		errcap : "Σφάλμα",
-		nourl : "Δεν έχει δοθεί διεύθυνση χειρισμού για τη συγκεκριμένη ενέργεια",
-		norecords: "Δεν υπάρχουν εγγραφές προς επεξεργασία",
-		model : "Άνισος αριθμός πεδίων colNames/colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ",
-				"Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"
-			],
-			monthNames: [
-				"Ιαν", "Φεβ", "Μαρ", "Απρ", "Μαι", "Ιουν", "Ιουλ", "Αυγ", "Σεπ", "Οκτ", "Νοε", "Δεκ",
-				"Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
-			],
-			AmPm : ["πμ","μμ","ΠΜ","ΜΜ"],
-			S: function (j) {return j == 1 || j > 1 ? ['η'][Math.min((j - 1) % 10, 3)] : ''},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-el.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js	(nonexistent)
@@ -1,132 +0,0 @@
-;(function($){
-/**
- * jqGrid Chinese Translation for v3.6
- * waiting 2010.01.18
- * http://waiting.javaeye.com/
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- * 
- * update 2010.05.04
- *		add double u3000 SPACE for search:odata to fix SEARCH box display err when narrow width from only use of eq/ne/cn/in/lt/gt operator under IE6/7
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1}\u3000共 {2} 条",	// 共字前是全角空格
-		emptyrecords: "无数据显示",
-		loadtext: "读取中...",
-		pgtext : " {0} 共 {1} 页"
-	},
-	search : {
-		caption: "搜索...",
-		Find: "查找",
-		Reset: "重置",
-		odata : ['等于\u3000\u3000', '不等\u3000\u3000', '小于\u3000\u3000', '小于等于','大于\u3000\u3000','大于等于', 
-			'开始于','不开始于','属于\u3000\u3000','不属于','结束于','不结束于','包含\u3000\u3000','不包含'],
-		groupOps: [	{ op: "AND", text: "所有" },	{ op: "OR",  text: "任一" }	],
-		matchText: " 匹配",
-		rulesText: " 规则"
-	},
-	edit : {
-		addCaption: "添加记录",
-		editCaption: "编辑记录",
-		bSubmit: "提交",
-		bCancel: "取消",
-		bClose: "关闭",
-		saveData: "数据已改变，是否保存？",
-		bYes : "是",
-		bNo : "否",
-		bExit : "取消",
-		msg: {
-			required:"此字段必需",
-			number:"请输入有效数字",
-			minValue:"输值必须大于等于 ",
-			maxValue:"输值必须小于等于 ",
-			email: "这不是有效的e-mail地址",
-			integer: "请输入有效整数",
-			date: "请输入有效时间",
-			url: "无效网址。前缀必须为 ('http://' 或 'https://')",
-			nodefined : " 未定义！",
-			novalue : " 需要返回值！",
-			customarray : "自定义函数需要返回数组！",
-			customfcheck : "Custom function should be present in case of custom checking!"
-			
-		}
-	},
-	view : {
-		caption: "查看记录",
-		bClose: "关闭"
-	},
-	del : {
-		caption: "删除",
-		msg: "删除所选记录？",
-		bSubmit: "删除",
-		bCancel: "取消"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "编辑所选记录",
-		addtext:"",
-		addtitle: "添加新记录",
-		deltext: "",
-		deltitle: "删除所选记录",
-		searchtext: "",
-		searchtitle: "查找",
-		refreshtext: "",
-		refreshtitle: "刷新表格",
-		alertcap: "注意",
-		alerttext: "请选择记录",
-		viewtext: "",
-		viewtitle: "查看所选记录"
-	},
-	col : {
-		caption: "选择列",
-		bSubmit: "确定",
-		bCancel: "取消"
-	},
-	errors : {
-		errcap : "错误",
-		nourl : "没有设置url",
-		norecords: "没有要处理的记录",
-		model : "colNames 和 colModel 长度不等！"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
-		         "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'm-d-Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "Y/j/n",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cn.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js	(nonexistent)
@@ -1,132 +0,0 @@
-;(function($){
-/**
- * jqGrid Bulgarian Translation 
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0} - {1} �� {2}",
-		emptyrecords: "���� �����(�)",
-		loadtext: "��������...",
-		pgtext : "���. {0} �� {1}"
-	},
-	search : {
-		caption: "�������...",
-		Find: "������",
-		Reset: "�������",
-		odata : ['�����', '��������', '��-�����', '��-����� ���=','��-������','��-������ ��� =', '������� �','�� ������� �','�� ������ �','�� �� ������ �','�������� �','�� ��������� �','�������', '�� �������' ],
-	    groupOps: [	{ op: "AND", text: " � " },	{ op: "OR",  text: "���" }	],
-		matchText: " ������",
-		rulesText: " ������"
-	},
-	edit : {
-		addCaption: "��� �����",
-		editCaption: "�������� �����",
-		bSubmit: "������",
-		bCancel: "�����",
-		bClose: "�������",
-		saveData: "������� �� ���������! �� ������� �� ���������?",
-		bYes : "��",
-		bNo : "��",
-		bExit : "�����",
-		msg: {
-		    required:"������ � ������������",
-		    number:"�������� ������� �����!",
-		    minValue:"���������� ������ �� � ��-������ ��� ����� ��",
-		    maxValue:"���������� ������ �� � ��-����� ��� ����� ��",
-		    email: "�� � ������� ��. �����",
-		    integer: "�������� ������� ���� �����",
-			date: "�������� ������� ����",
-			url: "e ��������� URL. �������� �� �������('http://' ��� 'https://')",
-			nodefined : " � ������������!",
-			novalue : " ������� ������� �� ��������!",
-			customarray : "������. ������� ������ �� ����� �����!",
-			customfcheck : "������������� ������� � ������������ ��� ���� ��� �������!"
-		}
-	},
-	view : {
-	    caption: "������� �����",
-	    bClose: "�������"
-	},
-	del : {
-		caption: "���������",
-		msg: "�� ������ �� ��������� �����?",
-		bSubmit: "������",
-		bCancel: "�����"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "�������� ������ �����",
-		addtext:" ",
-		addtitle: "�������� ��� �����",
-		deltext: " ",
-		deltitle: "��������� ������ �����",
-		searchtext: " ",
-		searchtitle: "������� �����(�)",
-		refreshtext: "",
-		refreshtitle: "������ �������",
-		alertcap: "��������������",
-		alerttext: "����, �������� �����",
-		viewtext: "",
-		viewtitle: "������� ������ �����"
-	},
-	col : {
-		caption: "����� ������",
-		bSubmit: "��",
-		bCancel: "�����"	
-	},
-	errors : {
-		errcap : "������",
-		nourl : "���� ������� url �����",
-		norecords: "���� ����� �� ���������",
-		model : "������ �� ����������� �� �������!"	
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:" ��.", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"���", "���", "��", "��", "���", "���", "���",
-				"������", "����������", "�������", "�����", "���������", "�����", "������"
-			],
-			monthNames: [
-				"���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���", "���",
-				"������", "��������", "����", "�����", "���", "���", "���", "������", "���������", "��������", "�������", "��������"
-			],
-			AmPm : ["","","",""],
-			S: function (j) {
-				if(j==7 || j==8 || j== 27 || j== 28) {
-					return '��';
-				}
-				return ['��', '��', '��'][Math.min((j - 1) % 10, 2)];
-			},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-bg1251.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid English Translation
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-		emptyrecords: "No records to view",
-		loadtext: "Loading...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-		caption: "Search...",
-		Find: "Find",
-		Reset: "Reset",
-		odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-		groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-		addCaption: "Add Record",
-		editCaption: "Edit Record",
-		bSubmit: "Submit",
-		bCancel: "Cancel",
-		bClose: "Close",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-		msg: {
-			required:"Field is required",
-			number:"Please, enter valid number",
-			minValue:"value must be greater than or equal to ",
-			maxValue:"value must be less than or equal to",
-			email: "is not a valid e-mail",
-			integer: "Please, enter valid integer value",
-			date: "Please, enter valid date value",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-			
-		}
-	},
-	view : {
-		caption: "View Record",
-		bClose: "Close"
-	},
-	del : {
-		caption: "Delete",
-		msg: "Delete selected record(s)?",
-		bSubmit: "Delete",
-		bCancel: "Cancel"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "Edit selected row",
-		addtext:"",
-		addtitle: "Add new row",
-		deltext: "",
-		deltitle: "Delete selected row",
-		searchtext: "",
-		searchtitle: "Find records",
-		refreshtext: "",
-		refreshtitle: "Reload Grid",
-		alertcap: "Warning",
-		alerttext: "Please, select row",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-		caption: "Select columns",
-		bSubmit: "Ok",
-		bCancel: "Cancel"
-	},
-	errors : {
-		errcap : "Error",
-		nourl : "No url is set",
-		norecords: "No records to process",
-		model : "Length of colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
-				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-en.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Czech Translation
- * Pavel Jirak pavel.jirak@jipas.cz
- * doplnil Thomas Wagner xwagne01@stud.fit.vutbr.cz
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Zobrazeno {0} - {1} z {2} záznamů",
-	    emptyrecords: "Nenalezeny žádné záznamy",
-		loadtext: "Načítám...",
-		pgtext : "Strana {0} z {1}"
-	},
-	search : {
-		caption: "Vyhledávám...",
-		Find: "Hledat",
-		Reset: "Reset",
-	    odata : ['rovno', 'nerovono', 'menší', 'menší nebo rovno','větší', 'větší nebo rovno', 'začíná s', 'nezačíná s', 'je v', 'není v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
-	    groupOps: [	{ op: "AND", text: "všech" },	{ op: "OR",  text: "některého z" }	],
-		matchText: " hledat podle",
-		rulesText: " pravidel"
-	},
-	edit : {
-		addCaption: "Přidat záznam",
-		editCaption: "Editace záznamu",
-		bSubmit: "Uložit",
-		bCancel: "Storno",
-		bClose: "Zavřít",
-		saveData: "Data byla změněna! Uložit změny?",
-		bYes : "Ano",
-		bNo : "Ne",
-		bExit : "Zrušit",
-		msg: {
-		    required:"Pole je vyžadováno",
-		    number:"Prosím, vložte validní číslo",
-		    minValue:"hodnota musí být větší než nebo rovná ",
-		    maxValue:"hodnota musí být menší než nebo rovná ",
-		    email: "není validní e-mail",
-		    integer: "Prosím, vložte celé číslo",
-			date: "Prosím, vložte validní datum",
-			url: "není platnou URL. Vyžadován prefix ('http://' or 'https://')",
-			nodefined : " není definován!",
-			novalue : " je vyžadována návratová hodnota!",
-			customarray : "Custom function mělá vrátit pole!",
-			customfcheck : "Custom function by měla být přítomna v případě custom checking!"
-		}
-	},
-	view : {
-	    caption: "Zobrazit záznam",
-	    bClose: "Zavřít"
-	},
-	del : {
-		caption: "Smazat",
-		msg: "Smazat vybraný(é) záznam(y)?",
-		bSubmit: "Smazat",
-		bCancel: "Storno"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Editovat vybraný řádek",
-		addtext:" ",
-		addtitle: "Přidat nový řádek",
-		deltext: " ",
-		deltitle: "Smazat vybraný záznam ",
-		searchtext: " ",
-		searchtitle: "Najít záznamy",
-		refreshtext: "",
-		refreshtitle: "Obnovit tabulku",
-		alertcap: "Varování",
-		alerttext: "Prosím, vyberte řádek",
-		viewtext: "",
-		viewtitle: "Zobrazit vybraný řádek"
-	},
-	col : {
-		caption: "Zobrazit/Skrýt sloupce",
-		bSubmit: "Uložit",
-		bCancel: "Storno"	
-	},
-	errors : {
-		errcap : "Chyba",
-		nourl : "Není nastavena url",
-		norecords: "Žádné záznamy ke zpracování",
-		model : "Délka colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Ne", "Po", "Út", "St", "Čt", "Pá", "So",
-				"Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"
-			],
-			monthNames: [
-				"Led", "Úno", "Bře", "Dub", "Kvě", "Čer", "Čvc", "Srp", "Zář", "Říj", "Lis", "Pro",
-				"Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
-			],
-			AmPm : ["do","od","DO","OD"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cs.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Ukrainian Translation v1.0 02.07.2009
- * Sergey Dyagovchenko
- * http://d.sumy.ua
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Перегляд {0} - {1} з {2}",
-	  emptyrecords: "Немає записів для перегляду",
-		loadtext: "Завантаження...",
-		pgtext : "Стор. {0} з {1}"
-	},
-	search : {
-    caption: "Пошук...",
-    Find: "Знайти",
-    Reset: "Скидання",
-    odata : ['рівно', 'не рівно', 'менше', 'менше або рівне','більше','більше або рівне', 'починається з','не починається з','знаходиться в','не знаходиться в','закінчується на','не закінчується на','містить','не містить'],
-    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "будь-який" }	],
-    matchText: " збігається",
-    rulesText: " правила"
-	},
-	edit : {
-    addCaption: "Додати запис",
-    editCaption: "Змінити запис",
-    bSubmit: "Зберегти",
-    bCancel: "Відміна",
-		bClose: "Закрити",
-		saveData: "До данних були внесені зміни! Зберегти зміни?",
-		bYes : "Так",
-		bNo : "Ні",
-		bExit : "Відміна",
-	    msg: {
-        required:"Поле є обов'язковим",
-        number:"Будь ласка, введіть правильне число",
-        minValue:"значення повинне бути більше або дорівнює",
-        maxValue:"значення повинно бути менше або дорівнює",
-        email: "некоректна адреса електронної пошти",
-        integer: "Будь ласка, введення дійсне ціле значення",
-        date: "Будь ласка, введення дійсне значення дати",
-        url: "не дійсний URL. Необхідна приставка ('http://' or 'https://')",
-		nodefined : " is not defined!",
-		novalue : " return value is required!",
-		customarray : "Custom function should return array!",
-		customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Переглянути запис",
-	    bClose: "Закрити"
-	},
-	del : {
-	    caption: "Видалити",
-	    msg: "Видалити обраний запис(и)?",
-	    bSubmit: "Видалити",
-	    bCancel: "Відміна"
-	},
-	nav : {
-  		edittext: " ",
-	    edittitle: "Змінити вибраний запис",
-  		addtext:" ",
-	    addtitle: "Додати новий запис",
-	    deltext: " ",
-	    deltitle: "Видалити вибраний запис",
-	    searchtext: " ",
-	    searchtitle: "Знайти записи",
-	    refreshtext: "",
-	    refreshtitle: "Оновити таблицю",
-	    alertcap: "Попередження",
-	    alerttext: "Будь ласка, виберіть запис",
-  		viewtext: "",
-  		viewtitle: "Переглянути обраний запис"
-	},
-	col : {
-	    caption: "Показати/Приховати стовпці",
-	    bSubmit: "Зберегти",
-	    bCancel: "Відміна"
-	},
-	errors : {
-		errcap : "Помилка",
-		nourl : "URL не задан",
-		norecords: "Немає записів для обробки",
-    model : "Число полів не відповідає числу стовпців таблиці!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
-				"Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"
-			],
-			monthNames: [
-				"Січ", "Лют", "Бер", "Кві", "Тра", "Чер", "Лип", "Сер", "Вер", "Жов", "Лис", "Гру",
-				"Січень", "Лютий", "Березень", "Квітень", "Травень", "Червень", "Липень", "Серпень", "Вересень", "Жовтень", "Листопад", "Грудень"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd.m.Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n.j.Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y G:i:s",
-	            MonthDay: "F d",
-	            ShortTime: "G:i",
-	            LongTime: "G:i:s",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	  target: '',
-	  checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ua.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid French Translation
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Enregistrements {0} - {1} sur {2}",
-		emptyrecords: "Aucun enregistrement à afficher",
-		loadtext: "Chargement...",
-		pgtext : "Page {0} sur {1}"
-	},
-	search : {
-		caption: "Recherche...",
-		Find: "Chercher",
-		Reset: "Annuler",
-		odata : ['égal', 'différent', 'inférieur', 'inférieur ou égal','supérieur','supérieur ou égal', 'commence par','ne commence pas par','est dans',"n'est pas dans",'finit par','ne finit pas par','contient','ne contient pas'],
-		groupOps: [	{ op: "AND", text: "tous" },	{ op: "OR",  text: "aucun" }	],
-		matchText: " correspondance",
-		rulesText: " règles"
-	},
-	edit : {
-		addCaption: "Ajouter",
-		editCaption: "Editer",
-		bSubmit: "Valider",
-		bCancel: "Annuler",
-		bClose: "Fermer",
-		saveData: "Les données ont changé ! Enregistrer les modifications ?",
-		bYes: "Oui",
-		bNo: "Non",
-		bExit: "Annuler",
-		msg: {
-			required: "Champ obligatoire",
-			number: "Saisissez un nombre correct",
-			minValue: "La valeur doit être supérieure ou égale à 0",
-			maxValue: "La valeur doit être inférieure ou égale à 0",
-			email: "n'est pas un email correct",
-			integer: "Saisissez un entier correct",
-			url: "n'est pas une adresse correcte. Préfixe requis ('http://' or 'https://')",
-			nodefined : " n'est pas défini!",
-			novalue : " la valeur de retour est requise!",
-			customarray : "Une fonction personnalisée devrait retourner un tableau (array)!",
-			customfcheck : "Une fonction personnalisée devrait être présente dans le cas d'une vérification personnalisée!"
-		}
-	},
-	view : {
-		caption: "Voir les enregistrement",
-		bClose: "Fermer"
-	},
-	del : {
-		caption: "Supprimer",
-		msg: "Supprimer les enregistrements sélectionnés ?",
-		bSubmit: "Supprimer",
-		bCancel: "Annuler"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Editer la ligne sélectionnée",
-		addtext:" ",
-		addtitle: "Ajouter une ligne",
-		deltext: " ",
-		deltitle: "Supprimer la ligne sélectionnée",
-		searchtext: " ",
-		searchtitle: "Chercher un enregistrement",
-		refreshtext: "",
-		refreshtitle: "Recharger le tableau",
-		alertcap: "Avertissement",
-		alerttext: "Veuillez sélectionner une ligne",
-		viewtext: "",
-		viewtitle: "Afficher la ligne sélectionnée"
-	},
-	col : {
-		caption: "Afficher/Masquer les colonnes",
-		bSubmit: "Valider",
-		bCancel: "Annuler"
-	},
-	errors : {
-		errcap : "Erreur",
-		nourl : "Aucune adresse n'est paramétrée",
-		norecords: "Aucun enregistrement à traiter",
-		model : "Nombre de titres (colNames) <> Nombre de données (colModel)!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam",
-				"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
-			],
-			monthNames: [
-				"Jan", "Fév", "Mar", "Avr", "Mai", "Jui", "Jul", "Aou", "Sep", "Oct", "Nov", "Déc",
-				"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j == 1 ? 'er' : 'e';},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fr.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Catalan Translation
- * Traducció jqGrid en Catatà per Faserline, S.L.
- * http://www.faserline.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Mostrant {0} - {1} de {2}",
-	    emptyrecords: "Sense registres que mostrar",
-		loadtext: "Carregant...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-		caption: "Cerca...",
-		Find: "Cercar",
-		Reset: "Buidar",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "tot" },	{ op: "OR",  text: "qualsevol" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-		addCaption: "Afegir registre",
-		editCaption: "Modificar registre",
-		bSubmit: "Guardar",
-		bCancel: "Cancelar",
-		bClose: "Tancar",
-		saveData: "Les dades han canviat. Guardar canvis?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-		msg: {
-		    required:"Camp obligatori",
-		    number:"Introdueixi un nombre",
-		    minValue:"El valor ha de ser major o igual que ",
-		    maxValue:"El valor ha de ser menor o igual a ",
-		    email: "no és una direcció de correu vàlida",
-		    integer: "Introdueixi un valor enter",
-			date: "Introdueixi una data correcta ",
-			url: "no és una URL vàlida. Prefix requerit ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-		caption: "Veure registre",
-		bClose: "Tancar"
-	},
-	del : {
-		caption: "Eliminar",
-		msg: "¿Desitja eliminar els registres seleccionats?",
-		bSubmit: "Eliminar",
-		bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Modificar fila seleccionada",
-		addtext:" ",
-		addtitle: "Agregar nova fila",
-		deltext: " ",
-		deltitle: "Eliminar fila seleccionada",
-		searchtext: " ",
-		searchtitle: "Cercar informació",
-		refreshtext: "",
-		refreshtitle: "Refrescar taula",
-		alertcap: "Avís",
-		alerttext: "Seleccioni una fila",
-		viewtext: " ",
-		viewtitle: "Veure fila seleccionada"
-	},
-// setcolumns module
-	col : {
-		caption: "Mostrar/ocultar columnes",
-		bSubmit: "Enviar",
-		bCancel: "Cancelar"	
-	},
-	errors : {
-		errcap : "Error",
-		nourl : "No s'ha especificat una URL",
-		norecords: "No hi ha dades per processar",
-		model : "Les columnes de noms són diferents de les columnes del model"
-	},
-	formatter : {
-		integer : {thousandsSeparator: ".", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds",
-				"Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"
-			],
-			monthNames: [
-				"Gen", "Febr", "Març", "Abr", "Maig", "Juny", "Jul", "Ag", "Set", "Oct", "Nov", "Des",
-				"Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd-m-Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: 'show',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-cat.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js	(nonexistent)
@@ -1,149 +0,0 @@
-(function(a) {
-    a.jgrid =
-    {
-        defaults:
-        {
-            recordtext: "regels {0} - {1} van {2}",
-            emptyrecords: "Geen data gevonden.",
-            loadtext: "laden...",
-            pgtext: "pagina  {0}  van {1}"
-        },
-        search:
-        {
-            caption: "Zoeken...",
-            Find: "Zoek",
-            Reset: "Herstellen",
-            odata: ["gelijk aan", "niet gelijk aan", "kleiner dan", "kleiner dan of gelijk aan", "groter dan", "groter dan of gelijk aan", "begint met", "begint niet met", "is in", "is niet in", "eindigd met", "eindigd niet met", "bevat", "bevat niet"],
-            groupOps: [{ op: "AND", text: "alle" }, { op: "OR", text: "een van de"}],
-            matchText: " match",
-            rulesText: " regels"
-        },
-        edit:
-        {
-            addCaption: "Nieuw",
-            editCaption: "Bewerken",
-            bSubmit: "Opslaan",
-            bCancel: "Annuleren",
-            bClose: "Sluiten",
-            saveData: "Er is data aangepast! Wijzigingen opslaan?",
-            bYes: "Ja",
-            bNo: "Nee",
-            bExit: "Sluiten",
-            msg:
-            {
-                required: "Veld is verplicht",
-                number: "Voer a.u.b. geldig nummer in",
-                minValue: "Waarde moet groter of gelijk zijn aan ",
-                maxValue: "Waarde moet kleiner of gelijks zijn aan",
-                email: "is geen geldig e-mailadres",
-                integer: "Voer a.u.b. een geldig getal in",
-                date: "Voer a.u.b. een geldige waarde in",
-                url: "is geen geldige URL. Prefix is verplicht ('http://' or 'https://')",
-                nodefined : " is not defined!",
-                novalue : " return value is required!",
-                customarray : "Custom function should return array!",
-                customfcheck : "Custom function should be present in case of custom checking!"
-            }
-        },
-        view:
-        {
-            caption: "Tonen",
-            bClose: "Sluiten"
-        },
-        del:
-        {
-            caption: "Verwijderen",
-            msg: "Verwijder geselecteerde regel(s)?",
-            bSubmit: "Verwijderen",
-            bCancel: "Annuleren"
-        },
-        nav:
-        {
-            edittext: "",
-            edittitle: "Bewerken",
-            addtext: "",
-            addtitle: "Nieuw",
-            deltext: "",
-            deltitle: "Verwijderen",
-            searchtext: "",
-            searchtitle: "Zoeken",
-            refreshtext: "",
-            refreshtitle: "Vernieuwen",
-            alertcap: "Waarschuwing",
-            alerttext: "Selecteer a.u.b. een regel",
-            viewtext: "",
-            viewtitle: "Openen"
-        },
-        col:
-        {
-            caption: "Tonen/verbergen kolommen",
-            bSubmit: "OK",
-            bCancel: "Annuleren"
-        },
-        errors:
-        {
-            errcap: "Fout",
-            nourl: "Er is geen URL gedefinieerd",
-            norecords: "Geen data om te verwerken",
-            model: "Lengte van 'colNames' is niet gelijk aan 'colModel'!"
-        },
-        formatter:
-        {
-            integer:
-            {
-                thousandsSeparator: ".",
-                defaultValue: "0"
-            },
-            number:
-            {
-                decimalSeparator: ",",
-                thousandsSeparator: ".",
-                decimalPlaces: 2,
-                defaultValue: "0.00"
-            },
-            currency:
-            {
-                decimalSeparator: ",",
-                thousandsSeparator: ".",
-                decimalPlaces: 2,
-                prefix: "EUR ",
-                suffix: "",
-                defaultValue: "0.00"
-            },
-            date:
-            {
-                dayNames: ["Zo", "Ma", "Di", "Wo", "Do", "Vr", "Za", "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"],
-                monthNames: ["Jan", "Feb", "Maa", "Apr", "Mei", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"],
-                AmPm: ["am", "pm", "AM", "PM"],
-                S: function(b) {
-                    return b < 11 || b > 13 ? ["st", "nd", "rd", "th"][Math.min((b - 1) % 10, 3)] : "th"
-                },
-                srcformat: "Y-m-d",
-                newformat: "d/m/Y",
-                masks:
-                {
-                    ISO8601Long: "Y-m-d H:i:s",
-                    ISO8601Short: "Y-m-d",
-                    ShortDate: "n/j/Y",
-                    LongDate: "l, F d, Y",
-                    FullDateTime: "l d F Y G:i:s",
-                    MonthDay: "d F",
-                    ShortTime: "G:i",
-                    LongTime: "G:i:s",
-                    SortableDateTime: "Y-m-d\\TH:i:s",
-                    UniversalSortableDateTime: "Y-m-d H:i:sO",
-                    YearMonth: "F, Y"
-                },
-                reformatAfterEdit: false
-            },
-            baseLinkUrl: "",
-            showAction: "",
-            target: "",
-            checkbox:
-            {
-                disabled: true
-            },
-            idName: "id"
-        }
-    }
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-nl.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid Icelandic Translation
- * jtm@hi.is Univercity of Iceland
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "Hleður...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Leita...",
-	    Find: "Leita",
-	    Reset: "Endursetja",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Add Record",
-	    editCaption: "Edit Record",
-	    bSubmit: "Vista",
-	    bCancel: "Hætta við",
-		bClose: "Loka",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Reitur er nauðsynlegur",
-	        number:"Vinsamlega settu inn tölu",
-	        minValue:"gildi verður að vera meira en eða jafnt og ",
-	        maxValue:"gildi verður að vera minna en eða jafnt og ",
-	        email: "er ekki löglegt email",
-	        integer: "Vinsamlega settu inn tölu",
-			date: "Please, enter valid date value",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Eyða",
-	    msg: "Eyða völdum færslum ?",
-	    bSubmit: "Eyða",
-	    bCancel: "Hætta við"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Breyta færslu",
-		addtext:" ",
-	    addtitle: "Ný færsla",
-	    deltext: " ",
-	    deltitle: "Eyða færslu",
-	    searchtext: " ",
-	    searchtitle: "Leita",
-	    refreshtext: "",
-	    refreshtitle: "Endurhlaða",
-	    alertcap: "Viðvörun",
-	    alerttext: "Vinsamlega veldu færslu",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Sýna / fela dálka",
-	    bSubmit: "Vista",
-	    bCancel: "Hætta við"	
-	},
-	errors : {
-		errcap : "Villa",
-		nourl : "Vantar slóð",
-		norecords: "Engar færslur valdar",
-	    model : "Length of colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat",
-				"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-is.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Polish Translation
- * Łukasz Schab
- * http://FreeTree.pl
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Pokaż {0} - {1} z {2}",
-	    emptyrecords: "Brak rekordów do pokazania",
-		loadtext: "\u0142adowanie...",
-		pgtext : "Strona {0} z {1}"
-	},
-	search : {
-	    caption: "Wyszukiwanie...",
-	    Find: "Szukaj",
-	    Reset: "Czyść",
-	    odata : ['dok\u0142adnie', 'różne od', 'mniejsze od', 'mniejsze lub równe','większe od','większe lub równe', 'zaczyna się od','nie zaczyna się od','zawiera','nie zawiera','kończy się na','nie kończy się na','zawiera','nie zawiera'],
-	    groupOps: [	{ op: "ORAZ", text: "wszystkie" },	{ op: "LUB",  text: "każdy" }	],
-		matchText: " pasuje",
-		rulesText: " regu\u0142y"
-	},
-	edit : {
-	    addCaption: "Dodaj rekord",
-	    editCaption: "Edytuj rekord",
-	    bSubmit: "Zapisz",
-	    bCancel: "Anuluj",
-		bClose: "Zamknij",
-		saveData: "Dane zosta\u0142y zmienione! Zapisać zmiany?",
-		bYes : "Tak",
-		bNo : "Nie",
-		bExit : "Anuluj",
-	    msg: {
-	        required:"Pole jest wymagane",
-	        number:"Proszę wpisać poprawną liczbę",
-	        minValue:"wartość musi być większa lub równa",
-	        maxValue:"wartość musi być mniejsza od",
-	        email: "nie jest adresem e-mail",
-	        integer: "Proszę wpisać poprawną liczbę",
-			date: "Proszę podaj poprawną datę",
-			url: "jest niew\u0142aściwym adresem URL. Pamiętaj o prefiksie ('http://' lub 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Pokaż rekord",
-	    bClose: "Zamknij"
-	},
-	del : {
-	    caption: "Usuwanie",
-	    msg: "Czy usunąć wybrany rekord(y)?",
-	    bSubmit: "Usuń",
-	    bCancel: "Anuluj"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Edytuj wybrany wiersz",
-		addtext:" ",
-	    addtitle: "Dodaj nowy wiersz",
-	    deltext: " ",
-	    deltitle: "Usuń wybrany wiersz",
-	    searchtext: " ",
-	    searchtitle: "Wyszukaj rekord",
-	    refreshtext: "",
-	    refreshtitle: "Prze\u0142aduj",
-	    alertcap: "Uwaga",
-	    alerttext: "Proszę wybrać wiersz",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Pokaż/Ukryj kolumny",
-	    bSubmit: "Zatwierdź",
-	    bCancel: "Anuluj"	
-	},
-	errors : {
-		errcap : "B\u0142ąd",
-		nourl : "Brak adresu url",
-		norecords: "Brak danych",
-	    model : "D\u0142ugość colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Nie", "Pon", "Wt", "Śr", "Cz", "Pi", "So",
-				"Niedziela", "Poniedzia\u0142ek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota"
-			],
-			monthNames: [
-				"Sty", "Lu", "Mar", "Kwie", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru",
-				"Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"
-				],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['', '', '', ''][Math.min((j - 1) % 10, 3)] : ''},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-			    ISO8601Long:"Y-m-d H:i:s",
-			    ISO8601Short:"Y-m-d",
-			    ShortDate: "n/j/Y",
-			    LongDate: "l, F d, Y",
-			    FullDateTime: "l, F d, Y g:i:s A",
-			    MonthDay: "F d",
-			    ShortTime: "g:i A",
-			    LongTime: "g:i:s A",
-			    SortableDateTime: "Y-m-d\\TH:i:s",
-			    UniversalSortableDateTime: "Y-m-d H:i:sO",
-			    YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},	
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pl.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js	(nonexistent)
@@ -1 +0,0 @@
-(function(a){a.jgrid={};a.jgrid.defaults={recordtext:"Rad {0} - {1}, totalt {2}",loadtext:"Laster...",pgtext:"Side {0} av {1}"};a.jgrid.search={caption:"S�k...",Find:"Finn",Reset:"Nullstill",odata:["lik","forskjellig fra","mindre enn","mindre eller lik","st�rre enn"," st�rre eller lik","starter med","slutter med","inneholder"]};a.jgrid.edit={addCaption:"Ny rad",editCaption:"Rediger",bSubmit:"Send",bCancel:"Avbryt",bClose:"Lukk",processData:"Laster...",msg:{required:"Felt er obligatorisk",number:"Legg inn et gyldig tall",minValue:"verdi m� v�re st�rre enn eller lik",maxValue:"verdi m� v�re mindre enn eller lik",email:"er ikke en gyldig e-post adresse",integer:"Legg inn et gyldig heltall",date:"Legg inn en gyldig dato",url:"er ikke en gyldig URL. Prefiks p�krevd ('http://' eller 'https://')",nodefined:" er ikke definert!",novalue:" returverdi er p�krevd!",customarray:"Tilpasset funksjon m� returnere en tabell!",customfcheck:"Tilpasset funksjon m� eksistere!"}};a.jgrid.view={caption:"�pne post",bClose:"Lukk"};a.jgrid.del={caption:"Slett",msg:"Slett valgte rad(er)?",bSubmit:"Slett",bCancel:"Avbryt",processData:"Behandler..."};a.jgrid.nav={edittext:" ",edittitle:"Rediger valgte rad(er)",addtext:" ",addtitle:"Legg til ny rad",deltext:" ",deltitle:"Slett valgte rad(er)",searchtext:" ",searchtitle:"S�k",refreshtext:"",refreshtitle:"Oppdater tabell",alertcap:"Advarsel",alerttext:"Velg rad",viewtext:" ",viewtitle:"�pne valgt rad"};a.jgrid.col={caption:"Vis/skjul kolonner",bSubmit:"Utf�r",bCancel:"Avbryt"};a.jgrid.errors={errcap:"Feil",nourl:"Ingen url er satt",norecords:"Ingen poster � behandle",model:"colNames og colModel har forskjellig lengde!"};a.jgrid.formatter={integer:{thousandsSeparator:" ",defaulValue:0},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaulValue:0},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaulValue:0},date:{dayNames:["s�.","ma.","ti.","on.","to.","fr.","l�.","S�ndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","L�rdag"],monthNames:["jan.","feb.","mars","april","mai","juni","juli","aug.","sep.","okt.","nov.","des.","januar","februar","mars","april","mai","juni","juli","august","september","oktober","november","desember"],AmPm:["","","",""],S:function(b){return"."},srcformat:"Y-m-d H:i:s",newformat:"Y-m-d H:i:s",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"j.n.Y",LongDate:"l j. F Y",FullDateTime:"l j. F Y kl. G.i.s",MonthDay:"j. F",ShortTime:"H:i",LongTime:"H:i:s",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"show",addParam:"",checkbox:{disabled:true}}})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-no.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js	(nonexistent)
@@ -1 +0,0 @@
-(function(a){a.jgrid={defaults:{recordtext:"Visualizzati {0} - {1} di {2}",emptyrecords:"Nessun record da visualizzare",loadtext:"Caricamento...",pgtext:"Pagina {0} di {1}"},search:{caption:"Ricerca...",Find:"Cerca",Reset:"Pulisci",odata:["uguale","diverso","minore","minore o uguale","maggiore","maggiore o uguale","inizia con","non inizia con","in","non in","termina con","non termina con","contiene","non contiene"],groupOps:[{op:"AND",text:"tutto"},{op:"OR",text:"almeno uno"}],matchText:" corrisponde",rulesText:" regole"},edit:{addCaption:"Aggiungi Record",editCaption:"Modifica Record",bSubmit:"Invia",bCancel:"Chiudi",bClose:"Chiudi",saveData:"Alcuni dati modificati! Salvare i cambiamenti?",bYes:"Si",bNo:"No",bExit:"Esci",msg:{required:"Campo richiesto",number:"Per favore, inserisci un valore valido",minValue:"il valore deve essere maggiore o uguale a ",maxValue:"il valore deve essere minore o uguale a",email:"e-mail non corretta",integer:"Per favore, inserisci un numero intero valido",date:"Per favore, inserisci una data valida",url:"URL non valido. Prefisso richiesto ('http://' or 'https://')",nodefined:" non � definito!",novalue:" valore di ritorno richiesto!",customarray:"La function custon deve tornare un array!",customfcheck:"La function custom deve esistere per il custom checking!"}},view:{caption:"Visualizzazione Record",bClose:"Chiudi"},del:{caption:"Cancella",msg:"Cancellare record selezionato/i?",bSubmit:"Cancella",bCancel:"Annulla"},nav:{edittext:" ",edittitle:"Modifica record selezionato",addtext:" ",addtitle:"Aggiungi nuovo record",deltext:" ",deltitle:"Cancella record selezionato",searchtext:" ",searchtitle:"Ricerca record",refreshtext:"",refreshtitle:"Aggiorna griglia",alertcap:"Attenzione",alerttext:"Per favore, seleziona un record",viewtext:"",viewtitle:"Visualizza riga selezionata"},col:{caption:"Mostra/Nascondi Colonne",bSubmit:"Invia",bCancel:"Annulla"},errors:{errcap:"Errore",nourl:"Url non settata",norecords:"Nessun record da elaborare",model:"Lunghezza di colNames &lt;&gt; colModel!"},formatter:{integer:{thousandsSeparator:" ",defaultValue:"0"},number:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,defaultValue:"0,00"},currency:{decimalSeparator:",",thousandsSeparator:" ",decimalPlaces:2,prefix:"",suffix:"",defaultValue:"0,00"},date:{dayNames:["Dom","Lun","Mar","Mer","Gio","Ven","Sab","Domenica","Luned�","Marted�","Mercoled�","Gioved�","Venerd�","Sabato"],monthNames:["Gen","Feb","Mar","Apr","Mag","Gui","Lug","Ago","Set","Ott","Nov","Dic","Genneio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Movembre","Dicembre"],AmPm:["am","pm","AM","PM"],S:function(b){return b<11||b>13?["st","nd","rd","th"][Math.min((b-1)%10,3)]:"th"},srcformat:"Y-m-d",newformat:"d/m/Y",masks:{ISO8601Long:"Y-m-d H:i:s",ISO8601Short:"Y-m-d",ShortDate:"n/j/Y",LongDate:"l, F d, Y",FullDateTime:"l, F d, Y g:i:s A",MonthDay:"F d",ShortTime:"g:i A",LongTime:"g:i:s A",SortableDateTime:"Y-m-d\\TH:i:s",UniversalSortableDateTime:"Y-m-d H:i:sO",YearMonth:"F, Y"},reformatAfterEdit:false},baseLinkUrl:"",showAction:"",target:"",checkbox:{disabled:true},idName:"id"}}})(jQuery);
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-it.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Slovak Translation
- * Milan Cibulka
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Zobrazených {0} - {1} z {2} záznamov",
-	    emptyrecords: "Neboli nájdené žiadne záznamy",
-		loadtext: "Načítám...",
-		pgtext : "Strana {0} z {1}"
-	},
-	search : {
-		caption: "Vyhľadávam...",
-		Find: "Hľadať",
-		Reset: "Reset",
-	    odata : ['rovná sa', 'nerovná sa', 'menšie', 'menšie alebo rovnajúce sa','väčšie', 'väčšie alebo rovnajúce sa', 'začína s', 'nezačína s', 'je v', 'nie je v', 'končí s', 'nekončí s', 'obahuje', 'neobsahuje'],
-	    groupOps: [	{ op: "AND", text: "všetkých" },	{ op: "OR",  text: "niektorého z" }	],
-		matchText: " hľadať podla",
-		rulesText: " pravidiel"
-	},
-	edit : {
-		addCaption: "Pridať záznam",
-		editCaption: "Editácia záznamov",
-		bSubmit: "Uložiť",
-		bCancel: "Storno",
-		bClose: "Zavrieť",
-		saveData: "Údaje boli zmenené! Uložiť zmeny?",
-		bYes : "Ano",
-		bNo : "Nie",
-		bExit : "Zrušiť",
-		msg: {
-		    required:"Pole je požadované",
-		    number:"Prosím, vložte valídne číslo",
-		    minValue:"hodnota musí býť väčšia ako alebo rovná ",
-		    maxValue:"hodnota musí býť menšia ako alebo rovná ",
-		    email: "nie je valídny e-mail",
-		    integer: "Prosím, vložte celé číslo",
-			date: "Prosím, vložte valídny dátum",
-			url: "nie je platnou URL. Požadovaný prefix ('http://' alebo 'https://')",
-			nodefined : " nie je definovaný!",
-			novalue : " je vyžadovaná návratová hodnota!",
-			customarray : "Custom function mala vrátiť pole!",
-			customfcheck : "Custom function by mala byť prítomná v prípade custom checking!"
-		}
-	},
-	view : {
-	    caption: "Zobraziť záznam",
-	    bClose: "Zavrieť"
-	},
-	del : {
-		caption: "Zmazať",
-		msg: "Zmazať vybraný(é) záznam(y)?",
-		bSubmit: "Zmazať",
-		bCancel: "Storno"
-	},
-	nav : {
-		edittext: " ",
-		edittitle: "Editovať vybraný riadok",
-		addtext:" ",
-		addtitle: "Pridať nový riadek",
-		deltext: " ",
-		deltitle: "Zmazať vybraný záznam ",
-		searchtext: " ",
-		searchtitle: "Nájsť záznamy",
-		refreshtext: "",
-		refreshtitle: "Obnoviť tabuľku",
-		alertcap: "Varovanie",
-		alerttext: "Prosím, vyberte riadok",
-		viewtext: "",
-		viewtitle: "Zobraziť vybraný riadok"
-	},
-	col : {
-		caption: "Zobrazit/Skrýť stĺpce",
-		bSubmit: "Uložiť",
-		bCancel: "Storno"	
-	},
-	errors : {
-		errcap : "Chyba",
-		nourl : "Nie je nastavená url",
-		norecords: "Žiadne záznamy k spracovaniu",
-		model : "Dĺžka colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Ne", "Po", "Ut", "St", "Št", "Pi", "So",
-				"Nedela", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatek", "Sobota"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "Máj", "Jún", "Júl", "Aug", "Sep", "Okt", "Nov", "Dec",
-				"Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
-			],
-			AmPm : ["do","od","DO","OD"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-		        ISO8601Long:"Y-m-d H:i:s",
-		        ISO8601Short:"Y-m-d",
-		        ShortDate: "n/j/Y",
-		        LongDate: "l, F d, Y",
-		        FullDateTime: "l, F d, Y g:i:s A",
-		        MonthDay: "F d",
-		        ShortTime: "g:i A",
-		        LongTime: "g:i:s A",
-		        SortableDateTime: "Y-m-d\\TH:i:s",
-		        UniversalSortableDateTime: "Y-m-d H:i:sO",
-		        YearMonth: "F, Y"
-		    },
-		    reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sk.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js	(nonexistent)
@@ -1,139 +0,0 @@
-;(function($){
-/**
- * jqGrid Romanian Translation
- * Alexandru Emil Lupu contact@alecslupu.ro
- * http://www.alecslupu.ro/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Vizualizare {0} - {1} din {2}",
-		emptyrecords: "Nu există înregistrări de vizualizat",
-		loadtext: "Încărcare...",
-		pgtext : "Pagina {0} din {1}"
-	},
-	search : {
-		caption: "Caută...",
-		Find: "Caută",
-		Reset: "Resetare",
-		odata : ['egal', 'diferit', 'mai mic', 'mai mic sau egal','mai mare','mai mare sau egal', 'începe cu','nu începe cu','se găsește în','nu se găsește în','se termină cu','nu se termină cu','conține',''],
-		groupOps: [	{ op: "AND", text: "toate" },	{ op: "OR",  text: "oricare" }	],
-		matchText: " găsite",
-		rulesText: " reguli"
-	},
-	edit : {
-		addCaption: "Adăugare înregistrare",
-		editCaption: "Modificare înregistrare",
-		bSubmit: "Salvează",
-		bCancel: "Anulare",
-		bClose: "Închide",
-		saveData: "Informațiile au fost modificate! Salvați modificările?",
-		bYes : "Da",
-		bNo : "Nu",
-		bExit : "Anulare",
-		msg: {
-			required:"Câmpul este obligatoriu",
-			number:"Vă rugăm introduceți un număr valid",
-			minValue:"valoarea trebuie sa fie mai mare sau egală cu",
-			maxValue:"valoarea trebuie sa fie mai mică sau egală cu",
-			email: "nu este o adresă de e-mail validă",
-			integer: "Vă rugăm introduceți un număr valid",
-			date: "Vă rugăm să introduceți o dată validă",
-			url: "Nu este un URL valid. Prefixul  este necesar('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-		caption: "Vizualizare înregistrare",
-		bClose: "Închidere"
-	},
-	del : {
-		caption: "Ștegere",
-		msg: "Ștergeți înregistrarea (înregistrările) selectate?",
-		bSubmit: "Șterge",
-		bCancel: "Anulare"
-	},
-	nav : {
-		edittext: "",
-		edittitle: "Modifică rândul selectat",
-		addtext:"",
-		addtitle: "Adaugă rând nou",
-		deltext: "",
-		deltitle: "Șterge rândul selectat",
-		searchtext: "",
-		searchtitle: "Căutare înregistrări",
-		refreshtext: "",
-		refreshtitle: "Reîncarcare Grid",
-		alertcap: "Avertisment",
-		alerttext: "Vă rugăm să selectați un rând",
-		viewtext: "",
-		viewtitle: "Vizualizează rândul selectat"
-	},
-	col : {
-		caption: "Arată/Ascunde coloanele",
-		bSubmit: "Salvează",
-		bCancel: "Anulare"
-	},
-	errors : {
-		errcap : "Eroare",
-		nourl : "Niciun url nu este setat",
-		norecords: "Nu sunt înregistrări de procesat",
-		model : "Lungimea colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm",
-				"Duminică", "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă"
-			],
-			monthNames: [
-				"Ian", "Feb", "Mar", "Apr", "Mai", "Iun", "Iul", "Aug", "Sep", "Oct", "Noi", "Dec",
-				"Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			/*
-			 Here is a problem in romanian: 
-					M	/	F
-			 1st = primul / prima
-			 2nd = Al doilea / A doua
-			 3rd = Al treilea / A treia 
-			 4th = Al patrulea/ A patra
-			 5th = Al cincilea / A cincea 
-			 6th = Al șaselea / A șasea
-			 7th = Al șaptelea / A șaptea
-			 .... 
-			 */
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-				ISO8601Long:"Y-m-d H:i:s",
-				ISO8601Short:"Y-m-d",
-				ShortDate: "n/j/Y",
-				LongDate: "l, F d, Y",
-				FullDateTime: "l, F d, Y g:i:s A",
-				MonthDay: "F d",
-				ShortTime: "g:i A",
-				LongTime: "g:i:s A",
-				SortableDateTime: "Y-m-d\\TH:i:s",
-				UniversalSortableDateTime: "Y-m-d H:i:sO",
-				YearMonth: "F, Y"
-			},
-			reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-		target: '',
-		checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ro.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js	(nonexistent)
@@ -1,128 +0,0 @@
-;(function($){
-/**
- * jqGrid Spanish Translation
- * Traduccion jqGrid en Español por Yamil Bracho
- * Traduccion corregida y ampliada por Faserline, S.L. 
- * http://www.faserline.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Mostrando {0} - {1} de {2}",
-	    emptyrecords: "Sin registros que mostrar",
-		loadtext: "Cargando...",
-		pgtext : "Página {0} de {1}"
-	},
-	search : {
-	    caption: "Búsqueda...",
-	    Find: "Buscar",
-	    Reset: "Limpiar",
-	    odata : ['igual ', 'no igual a', 'menor que', 'menor o igual que','mayor que','mayor o igual a', 'empiece por','no empiece por','está en','no está en','termina por','no termina por','contiene','no contiene'],
-	    groupOps: [	{ op: "AND", text: "todo" },	{ op: "OR",  text: "cualquier" }	],
-		matchText: " match",
-		rulesText: " reglas"
-	},
-	edit : {
-	    addCaption: "Agregar registro",
-	    editCaption: "Modificar registro",
-	    bSubmit: "Guardar",
-	    bCancel: "Cancelar",
-		bClose: "Cerrar",
-		saveData: "Se han modificado los datos, ¿guardar cambios?",
-		bYes : "Si",
-		bNo : "No",
-		bExit : "Cancelar",
-	    msg: {
-	        required:"Campo obligatorio",
-	        number:"Introduzca un número",
-	        minValue:"El valor debe ser mayor o igual a ",
-	        maxValue:"El valor debe ser menor o igual a ",
-	        email: "no es una dirección de correo válida",
-	        integer: "Introduzca un valor entero",
-			date: "Introduza una fecha correcta ",
-			url: "no es una URL válida. Prefijo requerido ('http://' or 'https://')",
-			nodefined : " no está definido.",
-			novalue : " valor de retorno es requerido.",
-			customarray : "La función personalizada debe devolver un array.",
-			customfcheck : "La función personalizada debe estar presente en el caso de validación personalizada."
-		}
-	},
-	view : {
-	    caption: "Consultar registro",
-	    bClose: "Cerrar"
-	},
-	del : {
-	    caption: "Eliminar",
-	    msg: "¿Desea eliminar los registros seleccionados?",
-	    bSubmit: "Eliminar",
-	    bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Modificar fila seleccionada",
-		addtext:" ",
-	    addtitle: "Agregar nueva fila",
-	    deltext: " ",
-	    deltitle: "Eliminar fila seleccionada",
-	    searchtext: " ",
-	    searchtitle: "Buscar información",
-	    refreshtext: "",
-	    refreshtitle: "Recargar datos",
-	    alertcap: "Aviso",
-	    alerttext: "Seleccione una fila",
-		viewtext: "",
-		viewtitle: "Ver fila seleccionada"
-	},
-	col : {
-	    caption: "Mostrar/ocultar columnas",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar"	
-	},
-	errors : {
-		errcap : "Error",
-		nourl : "No se ha especificado una URL",
-		norecords: "No hay datos para procesar",
-	    model : "Las columnas de nombres son diferentes de las columnas de modelo"
-	},
-	formatter : {
-		integer : {thousandsSeparator: ".", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa",
-				"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"
-			],
-			monthNames: [
-				"Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic",
-				"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd-m-Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-sp.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js	(nonexistent)
@@ -1,125 +0,0 @@
-;(function($){
-/**
- * jqGrid Portuguese Translation
-* Tradu��o da jqGrid em Portugues por Frederico Carvalho, http://www.eyeviewdesign.pt
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "A carregar...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "Busca...",
-	    Find: "Procurar",
-	    Reset: "Limpar",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "Adicionar Registo",
-	    editCaption: "Modificar Registo",
-	    bSubmit: "Submeter",
-	    bCancel: "Cancelar",
-		bClose: "Fechar",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"Campo obrigat�rio",
-	        number:"Por favor, introduza um numero",
-	        minValue:"O valor deve ser maior ou igual que",
-	        maxValue:"O valor deve ser menor ou igual a",
-	        email: "N�o � um endere�o de email v�lido",
-	        integer: "Por favor, introduza um numero inteiro",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "Eliminar",
-	    msg: "Deseja eliminar o(s) registo(s) seleccionado(s)?",
-	    bSubmit: "Eliminar",
-	    bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Modificar registo seleccionado",
-		addtext:" ",
-	    addtitle: "Adicionar novo registo",
-	    deltext: " ",
-	    deltitle: "Eliminar registo seleccionado",
-	    searchtext: " ",
-	    searchtitle: "Procurar",
-	    refreshtext: "",
-	    refreshtitle: "Actualizar",
-	    alertcap: "Aviso",
-	    alerttext: "Por favor, seleccione um registo",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "Mostrar/Ocultar Colunas",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar"	
-	},
-	errors : {
-		errcap : "Erro",
-		nourl : "N�o especificou um url",
-		norecords: "N�o existem dados para processar",
-	    model : "Tamanho do colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab",
-				"Domingo", "Segunda-Feira", "Ter�a-Feira", "Quarta-Feira", "Quinta-Feira", "Sexta-Feira", "S�bado"
-			],
-			monthNames: [
-				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
-				"Janeiro", "Fevereiro", "Mar�o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['�', '�', '�', '�'][Math.min((j - 1) % 10, 3)] : '�'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Brazilian-Portuguese Translation
- * Sergio Righi sergio.righi@gmail.com
- * http://curve.com.br
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Ver {0} - {1} of {2}",
-	    emptyrecords: "Nenhum registro para visualizar",
-		loadtext: "Carregando...",
-		pgtext : "Página {0} de {1}"
-	},
-	search : {
-	    caption: "Procurar...",
-	    Find: "Procurar",
-	    Reset: "Resetar",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " iguala",
-		rulesText: " regras"
-	},
-	edit : {
-	    addCaption: "Incluir",
-	    editCaption: "Alterar",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar",
-		bClose: "Fechar",
-		saveData: "Os dados foram alterados! Salvar alterações?",
-		bYes : "Sim",
-		bNo : "Não",
-		bExit : "Cancelar",
-	    msg: {
-	        required:"Campo obrigatório",
-	        number:"Por favor, informe um número válido",
-	        minValue:"valor deve ser igual ou maior que ",
-	        maxValue:"valor deve ser menor ou igual a",
-	        email: "este e-mail não é válido",
-	        integer: "Por favor, informe um valor inteiro",
-			date: "Por favor, informe uma data válida",
-			url: "não é uma URL válida. Prefixo obrigatório ('http://' or 'https://')",
-			nodefined : " não está definido!",
-			novalue : " um valor de retorno é obrigatório!",
-			customarray : "Função customizada deve retornar um array!",
-			customfcheck : "Função customizada deve estar presente em caso de validação customizada!"
-		}
-	},
-	view : {
-	    caption: "Ver Registro",
-	    bClose: "Fechar"
-	},
-	del : {
-    caption: "Apagar",
-	    msg: "Apagar registros selecionado(s)?",
-	    bSubmit: "Apagar",
-	    bCancel: "Cancelar"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Alterar registro selecionado",
-		addtext:" ",
-	    addtitle: "Incluir novo registro",
-	    deltext: " ",
-	    deltitle: "Apagar registro selecionado",
-	    searchtext: " ",
-	    searchtitle: "Procurar registros",
-	    refreshtext: "",
-	    refreshtitle: "Recarrgando Tabela",
-	    alertcap: "Aviso",
-	    alerttext: "Por favor, selecione um registro",
-		viewtext: "",
-		viewtitle: "Ver linha selecionada"
-	},
-	col : {
-	    caption: "Mostrar/Esconder Colunas",
-	    bSubmit: "Enviar",
-	    bCancel: "Cancelar"
-	},
-	errors : {
-		errcap : "Erro",
-		nourl : "Nenhuma URL defenida",
-		norecords: "Sem registros para exibir",
-	    model : "Comprimento de colNames <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: ".", decimalPlaces: 2, prefix: "R$ ", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb",
-				"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"
-			],
-			monthNames: [
-				"Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez",
-				"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['º', 'º', 'º', 'º'][Math.min((j - 1) % 10, 3)] : 'º'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-pt-br.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js	(nonexistent)
@@ -1,126 +0,0 @@
-;(function($){
-/**
- * jqGrid Turkish Translation
- * Erhan Gündoğan (erhan@trposta.net)
- * http://blog.zakkum.com
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "{0}-{1} listeleniyor. Toplam:{2}",
-	    emptyrecords: "Kayıt bulunamadı",
-		loadtext: "Yükleniyor...",
-		pgtext : "{0}/{1}. Sayfa"
-	},
-	search : {
-	    caption: "Arama...",
-	    Find: "Bul",
-	    Reset: "Temizle",	    
-	    odata : ['eşit', 'eşit değil', 'daha az', 'daha az veya eşit', 'daha fazla', 'daha fazla veya eşit', 'ile başlayan', 'ile başlamayan', 'içinde', 'içinde değil', 'ile biten', 'ile bitmeyen', 'içeren', 'içermeyen'],
-	    groupOps: [	{ op: "VE", text: "tüm" },	{ op: "VEYA",  text: "herhangi" }	],
-		matchText: " uyan",
-		rulesText: " kurallar"
-	},
-	edit : {
-	    addCaption: "Kayıt Ekle",
-	    editCaption: "Kayıt Düzenle",
-	    bSubmit: "Gönder",
-	    bCancel: "İptal",
-		bClose: "Kapat",
-		saveData: "Veriler değişti! Kayıt edilsin mi?",
-		bYes : "Evet",
-		bNo : "Hayıt",
-		bExit : "İptal",
-	    msg: {
-	        required:"Alan gerekli",
-	        number:"Lütfen bir numara giriniz",
-	        minValue:"girilen değer daha büyük ya da buna eşit olmalıdır",
-	        maxValue:"girilen değer daha küçük ya da buna eşit olmalıdır",
-	        email: "geçerli bir e-posta adresi değildir",
-	        integer: "Lütfen bir tamsayı giriniz",
-			url: "Geçerli bir URL değil. ('http://' or 'https://') ön eki gerekli.",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Kayıt Görüntüle",
-	    bClose: "Kapat"
-	},
-	del : {
-	    caption: "Sil",
-	    msg: "Seçilen kayıtlar silinsin mi?",
-	    bSubmit: "Sil",
-	    bCancel: "İptal"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "Seçili satırı düzenle",
-		addtext:" ",
-	    addtitle: "Yeni satır ekle",
-	    deltext: " ",
-	    deltitle: "Seçili satırı sil",
-	    searchtext: " ",
-	    searchtitle: "Kayıtları bul",
-	    refreshtext: "",
-	    refreshtitle: "Tabloyu yenile",
-	    alertcap: "Uyarı",
-	    alerttext: "Lütfen bir satır seçiniz",
-		viewtext: "",
-		viewtitle: "Seçilen satırı görüntüle"
-	},
-	col : {
-	    caption: "Sütunları göster/gizle",
-	    bSubmit: "Gönder",
-	    bCancel: "İptal"	
-	},
-	errors : {
-		errcap : "Hata",
-		nourl : "Bir url yapılandırılmamış",
-		norecords: "İşlem yapılacak bir kayıt yok",
-	    model : "colNames uzunluğu <> colModel!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts",
-				"Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"
-			],
-			monthNames: [
-				"Oca", "Şub", "Mar", "Nis", "May", "Haz", "Tem", "Ağu", "Eyl", "Eki", "Kas", "Ara",
-				"Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-tr.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js	(nonexistent)
@@ -1,125 +0,0 @@
-﻿;(function($){
-/**
- * jqGrid Persian Translation
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "View {0} - {1} of {2}",
-	    emptyrecords: "No records to view",
-		loadtext: "بارگزاري...",
-		pgtext : "Page {0} of {1}"
-	},
-	search : {
-	    caption: "جستجو...",
-	    Find: "يافته ها",
-	    Reset: "نتايج",
-	    odata : ['equal', 'not equal', 'less', 'less or equal','greater','greater or equal', 'begins with','does not begin with','is in','is not in','ends with','does not end with','contains','does not contain'],
-	    groupOps: [	{ op: "AND", text: "all" },	{ op: "OR",  text: "any" }	],
-		matchText: " match",
-		rulesText: " rules"
-	},
-	edit : {
-	    addCaption: "اضافه کردن رکورد",
-	    editCaption: "ويرايش رکورد",
-	    bSubmit: "ثبت",
-	    bCancel: "انصراف",
-		bClose: "بستن",
-		saveData: "Data has been changed! Save changes?",
-		bYes : "Yes",
-		bNo : "No",
-		bExit : "Cancel",
-	    msg: {
-	        required:"فيلدها بايد ختما پر شوند",
-	        number:"لطفا عدد وعتبر وارد کنيد",
-	        minValue:"مقدار وارد شده بايد بزرگتر يا مساوي با",
-	        maxValue:"مقدار وارد شده بايد کوچکتر يا مساوي",
-	        email: "پست الکترونيک وارد شده معتبر نيست",
-	        integer: "لطفا يک عدد صحيح وارد کنيد",
-			date: "لطفا يک تاريخ معتبر وارد کنيد",
-			url: "is not a valid URL. Prefix required ('http://' or 'https://')",
-			nodefined : " is not defined!",
-			novalue : " return value is required!",
-			customarray : "Custom function should return array!",
-			customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "View Record",
-	    bClose: "Close"
-	},
-	del : {
-	    caption: "حذف",
-	    msg: "از حذف گزينه هاي انتخاب شده مطمئن هستيد؟",
-	    bSubmit: "حذف",
-	    bCancel: "ابطال"
-	},
-	nav : {
-		edittext: " ",
-	    edittitle: "ويرايش رديف هاي انتخاب شده",
-		addtext:" ",
-	    addtitle: "افزودن رديف جديد",
-	    deltext: " ",
-	    deltitle: "حذف ردبف هاي انتخاب شده",
-	    searchtext: " ",
-	    searchtitle: "جستجوي رديف",
-	    refreshtext: "",
-	    refreshtitle: "بازيابي مجدد صفحه",
-	    alertcap: "اخطار",
-	    alerttext: "لطفا يک رديف انتخاب کنيد",
-		viewtext: "",
-		viewtitle: "View selected row"
-	},
-	col : {
-	    caption: "نمايش/عدم نمايش ستون",
-	    bSubmit: "ثبت",
-	    bCancel: "انصراف"	
-	},
-	errors : {
-		errcap : "خطا",
-		nourl : "هيچ آدرسي تنظيم نشده است",
-		norecords: "هيچ رکوردي براي پردازش موجود نيست",
-	    model : "طول نام ستون ها محالف ستون هاي مدل مي باشد!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00'},
-		currency : {decimalSeparator:".", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0.00'},
-		date : {
-			dayNames:   [
-				"يک", "دو", "سه", "چهار", "پنج", "جمع", "شنب",
-				"يکشنبه", "دوشنبه", "سه شنبه", "چهارشنبه", "پنجشنبه", "جمعه", "شنبه"
-			],
-			monthNames: [
-				"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
-				"ژانويه", "فوريه", "مارس", "آوريل", "مه", "ژوئن", "ژوئيه", "اوت", "سپتامبر", "اکتبر", "نوامبر", "December"
-			],
-			AmPm : ["ب.ظ","ب.ظ","ق.ظ","ق.ظ"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd/m/Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n/j/Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y g:i:s A",
-	            MonthDay: "F d",
-	            ShortTime: "g:i A",
-	            LongTime: "g:i:s A",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: 'نمايش',
-	    target: '',
-	    checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-fa.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js	(nonexistent)
@@ -1,127 +0,0 @@
-;(function($){
-/**
- * jqGrid Russian Translation v1.0 02.07.2009 (based on translation by Alexey Kanaev v1.1 21.01.2009, http://softcore.com.ru)
- * Sergey Dyagovchenko
- * http://d.sumy.ua
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
-**/
-$.jgrid = {
-	defaults : {
-		recordtext: "Просмотр {0} - {1} из {2}",
-	  emptyrecords: "Нет записей для просмотра",
-		loadtext: "Загрузка...",
-		pgtext : "Стр. {0} из {1}"
-	},
-	search : {
-    caption: "Поиск...",
-    Find: "Найти",
-    Reset: "Сброс",
-    odata : ['равно', 'не равно', 'меньше', 'меньше или равно','больше','больше или равно', 'начинается с','не начинается с','находится в','не находится в','заканчивается на','не заканчивается на','содержит','не содержит'],
-    groupOps: [	{ op: "AND", text: "все" },	{ op: "OR",  text: "любой" }	],
-    matchText: " совпадает",
-    rulesText: " правила"
-	},
-	edit : {
-    addCaption: "Добавить запись",
-    editCaption: "Редактировать запись",
-    bSubmit: "Сохранить",
-    bCancel: "Отмена",
-		bClose: "Закрыть",
-		saveData: "Данные были измененны! Сохранить изменения?",
-		bYes : "Да",
-		bNo : "Нет",
-		bExit : "Отмена",
-	    msg: {
-        required:"Поле является обязательным",
-        number:"Пожалуйста, введите правильное число",
-        minValue:"значение должно быть больше либо равно",
-        maxValue:"значение должно быть меньше либо равно",
-        email: "некорректное значение e-mail",
-        integer: "Пожалуйста, введите целое число",
-        date: "Пожалуйста, введите правильную дату",
-        url: "неверная ссылка. Необходимо ввести префикс ('http://' or 'https://')",
-		nodefined : " is not defined!",
-		novalue : " return value is required!",
-		customarray : "Custom function should return array!",
-		customfcheck : "Custom function should be present in case of custom checking!"
-		}
-	},
-	view : {
-	    caption: "Просмотр записи",
-	    bClose: "Закрыть"
-	},
-	del : {
-	    caption: "Удалить",
-	    msg: "Удалить выбранную запись(и)?",
-	    bSubmit: "Удалить",
-	    bCancel: "Отмена"
-	},
-	nav : {
-  		edittext: " ",
-	    edittitle: "Редактировать выбранную запись",
-  		addtext:" ",
-	    addtitle: "Добавить новую запись",
-	    deltext: " ",
-	    deltitle: "Удалить выбранную запись",
-	    searchtext: " ",
-	    searchtitle: "Найти записи",
-	    refreshtext: "",
-	    refreshtitle: "Обновить таблицу",
-	    alertcap: "Внимание",
-	    alerttext: "Пожалуйста, выберите запись",
-  		viewtext: "",
-  		viewtitle: "Просмотреть выбранную запись"
-	},
-	col : {
-	    caption: "Показать/скрыть столбцы",
-	    bSubmit: "Сохранить",
-	    bCancel: "Отмена"	
-	},
-	errors : {
-		errcap : "Ошибка",
-		nourl : "URL не установлен",
-		norecords: "Нет записей для обработки",
-    model : "Число полей не соответствует числу столбцов таблицы!"
-	},
-	formatter : {
-		integer : {thousandsSeparator: " ", defaultValue: '0'},
-		number : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0,00'},
-		currency : {decimalSeparator:",", thousandsSeparator: " ", decimalPlaces: 2, prefix: "", suffix:"", defaultValue: '0,00'},
-		date : {
-			dayNames:   [
-				"Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб",
-				"Воскресение", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"
-			],
-			monthNames: [
-				"Янв", "Фев", "Мар", "Апр", "Май", "Июн", "Июл", "Авг", "Сен", "Окт", "Ноя", "Дек",
-				"Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
-			],
-			AmPm : ["am","pm","AM","PM"],
-			S: function (j) {return j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'},
-			srcformat: 'Y-m-d',
-			newformat: 'd.m.Y',
-			masks : {
-	            ISO8601Long:"Y-m-d H:i:s",
-	            ISO8601Short:"Y-m-d",
-	            ShortDate: "n.j.Y",
-	            LongDate: "l, F d, Y",
-	            FullDateTime: "l, F d, Y G:i:s",
-	            MonthDay: "F d",
-	            ShortTime: "G:i",
-	            LongTime: "G:i:s",
-	            SortableDateTime: "Y-m-d\\TH:i:s",
-	            UniversalSortableDateTime: "Y-m-d H:i:sO",
-	            YearMonth: "F, Y"
-	        },
-	        reformatAfterEdit : false
-		},
-		baseLinkUrl: '',
-		showAction: '',
-	  target: '',
-	  checkbox : {disabled:true},
-		idName : 'id'
-	}
-};
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/i18n/grid.locale-ru.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js	(nonexistent)
@@ -1,314 +0,0 @@
-/*
- * jQuery UI Multiselect
- *
- * Authors:
- *  Michael Aufreiter (quasipartikel.at)
- *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
- * 
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- * 
- * http://www.quasipartikel.at/multiselect/
- *
- * 
- * Depends:
- *	ui.core.js
- *	ui.sortable.js
- *
- * Optional:
- * localization (http://plugins.jquery.com/project/localisation)
- * scrollTo (http://plugins.jquery.com/project/ScrollTo)
- * 
- * Todo:
- *  Make batch actions faster
- *  Implement dynamic insertion through remote calls
- */
-
-
-(function($) {
-
-$.widget("ui.multiselect", {
-	_init: function() {
-		this.element.hide();
-		this.id = this.element.attr("id");
-		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
-		this.count = 0; // number of currently selected options
-		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
-		this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
-		this.selectedActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
-		this.availableActions = $('<div class="actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
-		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
-		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
-		
-		var that = this;
-
-		// set dimensions
-		this.container.width(this.element.width()+1);
-		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
-		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
-
-		// fix list height to match <option> depending on their individual header's heights
-		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
-		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
-		
-		if ( !this.options.animated ) {
-			this.options.show = 'show';
-			this.options.hide = 'hide';
-		}
-		
-		// init lists
-		this._populateLists(this.element.find('option'));
-		
-		// make selection sortable
-		if (this.options.sortable) {
-			$("ul.selected").sortable({
-				placeholder: 'ui-state-highlight',
-				axis: 'y',
-				update: function(event, ui) {
-					// apply the new sort order to the original selectbox
-					that.selectedList.find('li').each(function() {
-						if ($(this).data('optionLink'))
-							$(this).data('optionLink').remove().appendTo(that.element);
-					});
-				},
-				receive: function(event, ui) {
-					ui.item.data('optionLink').attr('selected', true);
-					// increment count
-					that.count += 1;
-					that._updateCount();
-					// workaround, because there's no way to reference 
-					// the new element, see http://dev.jqueryui.com/ticket/4303
-					that.selectedList.children('.ui-draggable').each(function() {
-						$(this).removeClass('ui-draggable');
-						$(this).data('optionLink', ui.item.data('optionLink'));
-						$(this).data('idx', ui.item.data('idx'));
-						that._applyItemState($(this), true);
-					});
-			
-					// workaround according to http://dev.jqueryui.com/ticket/4088
-					setTimeout(function() { ui.item.remove(); }, 1);
-				}
-			});
-		}
-		
-		// set up livesearch
-		if (this.options.searchable) {
-			this._registerSearchEvents(this.availableContainer.find('input.search'));
-		} else {
-			$('.search').hide();
-		}
-		
-		// batch actions
-		$(".remove-all").click(function() {
-			that._populateLists(that.element.find('option').removeAttr('selected'));
-			return false;
-		});
-		$(".add-all").click(function() {
-			that._populateLists(that.element.find('option').attr('selected', 'selected'));
-			return false;
-		});
-	},
-	destroy: function() {
-		this.element.show();
-		this.container.remove();
-
-		$.widget.prototype.destroy.apply(this, arguments);
-	},
-	_populateLists: function(options) {
-		this.selectedList.children('.ui-element').remove();
-		this.availableList.children('.ui-element').remove();
-		this.count = 0;
-
-		var that = this;
-		var items = $(options.map(function(i) {
-	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();
-
-			if (this.selected) that.count += 1;
-			that._applyItemState(item, this.selected);
-			item.data('idx', i);
-			return item[0];
-    }));
-		
-		// update count
-		this._updateCount();
-  },
-	_updateCount: function() {
-		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
-	},
-	_getOptionNode: function(option) {
-		option = $(option);
-		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
-		node.data('optionLink', option);
-		return node;
-	},
-	// clones an item with associated data
-	// didn't find a smarter away around this
-	_cloneWithData: function(clonee) {
-		var clone = clonee.clone();
-		clone.data('optionLink', clonee.data('optionLink'));
-		clone.data('idx', clonee.data('idx'));
-		return clone;
-	},
-	_setSelected: function(item, selected) {
-		item.data('optionLink').attr('selected', selected);
-
-		if (selected) {
-			var selectedItem = this._cloneWithData(item);
-			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
-			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
-			
-			this._applyItemState(selectedItem, true);
-			return selectedItem;
-		} else {
-			
-			// look for successor based on initial option index
-			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
-			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
-
-			// TODO: test needed for dynamic list populating
-			if ( direction ) {
-				while (i>=0 && i<items.length) {
-					direction > 0 ? i++ : i--;
-					if ( direction != comparator(item, $(items[i])) ) {
-						// going up, go back one item down, otherwise leave as is
-						succ = items[direction > 0 ? i : i+1];
-						break;
-					}
-				}
-			} else {
-				succ = items[i];
-			}
-			
-			var availableItem = this._cloneWithData(item);
-			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
-			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
-			availableItem.hide()[this.options.show](this.options.animated);
-			
-			this._applyItemState(availableItem, false);
-			return availableItem;
-		}
-	},
-	_applyItemState: function(item, selected) {
-		if (selected) {
-			if (this.options.sortable)
-				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
-			else
-				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
-			this._registerRemoveEvents(item.find('a.action'));
-			
-		} else {
-			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
-			this._registerAddEvents(item.find('a.action'));
-		}
-		
-		this._registerHoverEvents(item);
-	},
-	// taken from John Resig's liveUpdate script
-	_filter: function(list) {
-		var input = $(this);
-		var rows = list.children('li'),
-			cache = rows.map(function(){
-				
-				return $(this).text().toLowerCase();
-			});
-		
-		var term = $.trim(input.val().toLowerCase()), scores = [];
-		
-		if (!term) {
-			rows.show();
-		} else {
-			rows.hide();
-
-			cache.each(function(i) {
-				if (this.indexOf(term)>-1) { scores.push(i); }
-			});
-
-			$.each(scores, function() {
-				$(rows[this]).show();
-			});
-		}
-	},
-	_registerHoverEvents: function(elements) {
-		elements.removeClass('ui-state-hover');
-		elements.mouseover(function() {
-			$(this).addClass('ui-state-hover');
-		});
-		elements.mouseout(function() {
-			$(this).removeClass('ui-state-hover');
-		});
-	},
-	_registerAddEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			var item = that._setSelected($(this).parent(), true);
-			that.count += 1;
-			that._updateCount();
-			return false;
-		})
-		// make draggable
-		.each(function() {
-			$(this).parent().draggable({
-	      connectToSortable: 'ul.selected',
-				helper: function() {
-					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
-					selectedItem.width($(this).width());
-					return selectedItem;
-				},
-				appendTo: '.ui-multiselect',
-				containment: '.ui-multiselect',
-				revert: 'invalid'
-	    });
-		});
-	},
-	_registerRemoveEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			that._setSelected($(this).parent(), false);
-			that.count -= 1;
-			that._updateCount();
-			return false;
-		});
- 	},
-	_registerSearchEvents: function(input) {
-		var that = this;
-
-		input.focus(function() {
-			$(this).addClass('ui-state-active');
-		})
-		.blur(function() {
-			$(this).removeClass('ui-state-active');
-		})
-		.keypress(function(e) {
-			if (e.keyCode == 13)
-				return false;
-		})
-		.keyup(function() {
-			that._filter.apply(this, [that.availableList]);
-		});
-	}
-});
-		
-$.extend($.ui.multiselect, {
-	defaults: {
-		sortable: true,
-		searchable: true,
-		animated: 'fast',
-		show: 'slideDown',
-		hide: 'slideUp',
-		dividerLocation: 0.6,
-		nodeComparator: function(node1,node2) {
-			var text1 = node1.text(),
-			    text2 = node2.text();
-			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
-		}
-	},
-	locale: {
-		addAll:'Add all',
-		removeAll:'Remove all',
-		itemsCount:'items selected'
-	}
-});
-
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/ui.multiselect.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js	(nonexistent)
@@ -1,483 +0,0 @@
-;(function($){
-/*
-**
- * jqGrid extension for cellediting Grid Data
- * Tony Tomov tony@trirand.com
- * http://trirand.com/blog/ 
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl-2.0.html
-**/ 
-/**
- * all events and options here are aded anonynous and not in the base grid
- * since the array is to big. Here is the order of execution.
- * From this point we use jQuery isFunction
- * formatCell
- * beforeEditCell,
- * onSelectCell (used only for noneditable cels)
- * afterEditCell,
- * beforeSaveCell, (called before validation of values if any)
- * beforeSubmitCell (if cellsubmit remote (ajax))
- * afterSubmitCell(if cellsubmit remote (ajax)),
- * afterSaveCell,
- * errorCell,
- * serializeCellData - new
- * Options
- * cellsubmit (remote,clientArray) (added in grid options)
- * cellurl
- * ajaxCellOptions
-* */
-$.jgrid.extend({
-	editCell : function (iRow,iCol, ed){
-		return this.each(function (){
-			var $t = this, nm, tmp,cc;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			iCol = parseInt(iCol,10);
-			// select the row that can be used for other methods
-			$t.p.selrow = $t.rows[iRow].id;
-			if (!$t.p.knv) {$($t).jqGrid("GridNav");}
-			// check to see if we have already edited cell
-			if ($t.p.savedRow.length>0) {
-				// prevent second click on that field and enable selects
-				if (ed===true ) {
-					if(iRow == $t.p.iRow && iCol == $t.p.iCol){
-						return;
-					}
-				}
-				// save the cell
-				$($t).jqGrid("saveCell",$t.p.savedRow[0].id,$t.p.savedRow[0].ic);
-			} else {
-				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
-			}
-			nm = $t.p.colModel[iCol].name;
-			if (nm=='subgrid' || nm=='cb' || nm=='rn') {return;}
-			cc = $("td:eq("+iCol+")",$t.rows[iRow]);
-			if ($t.p.colModel[iCol].editable===true && ed===true && !cc.hasClass("not-editable-cell")) {
-				if(parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
-					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
-					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
-				}
-				$(cc).addClass("edit-cell ui-state-highlight");
-				$($t.rows[iRow]).addClass("selected-row ui-state-hover");
-				try {
-					tmp =  $.unformat(cc,{rowId: $t.rows[iRow].id, colModel:$t.p.colModel[iCol]},iCol);
-				} catch (_) {
-					tmp = $(cc).html();
-				}
-				if($t.p.autoencode) { tmp = $.jgrid.htmlDecode(tmp); }
-				if (!$t.p.colModel[iCol].edittype) {$t.p.colModel[iCol].edittype = "text";}
-				$t.p.savedRow.push({id:iRow,ic:iCol,name:nm,v:tmp});
-				if($.isFunction($t.p.formatCell)) {
-					var tmp2 = $t.p.formatCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-					if(tmp2 !== undefined ) {tmp = tmp2;}
-				}
-				var opt = $.extend({}, $t.p.colModel[iCol].editoptions || {} ,{id:iRow+"_"+nm,name:nm});
-				var elc = createEl($t.p.colModel[iCol].edittype,opt,tmp,true,$.extend({},$.jgrid.ajaxOptions,$t.p.ajaxSelectOptions || {}));
-				if ($.isFunction($t.p.beforeEditCell)) {
-					$t.p.beforeEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-				}
-				$(cc).html("").append(elc).attr("tabindex","0");
-				window.setTimeout(function () { $(elc).focus();},0);
-				$("input, select, textarea",cc).bind("keydown",function(e) { 
-					if (e.keyCode === 27) {
-						if($("input.hasDatepicker",cc).length >0) {
-							if( $(".ui-datepicker").is(":hidden") )  { $($t).jqGrid("restoreCell",iRow,iCol); }
-							else { $("input.hasDatepicker",cc).datepicker('hide'); }
-						} else {
-							$($t).jqGrid("restoreCell",iRow,iCol);
-						}
-					} //ESC
-					if (e.keyCode === 13) {$($t).jqGrid("saveCell",iRow,iCol);}//Enter
-					if (e.keyCode == 9)  {
-						if(!$t.grid.hDiv.loading ) {
-							if (e.shiftKey) {$($t).jqGrid("prevCell",iRow,iCol);} //Shift TAb
-							else {$($t).jqGrid("nextCell",iRow,iCol);} //Tab
-						} else {
-							return false;
-						}
-					}
-					e.stopPropagation();
-				});
-				if ($.isFunction($t.p.afterEditCell)) {
-					$t.p.afterEditCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-				}
-			} else {
-				if (parseInt($t.p.iCol,10)>=0  && parseInt($t.p.iRow,10)>=0) {
-					$("td:eq("+$t.p.iCol+")",$t.rows[$t.p.iRow]).removeClass("edit-cell ui-state-highlight");
-					$($t.rows[$t.p.iRow]).removeClass("selected-row ui-state-hover");
-				}
-				cc.addClass("edit-cell ui-state-highlight");
-				$($t.rows[iRow]).addClass("selected-row ui-state-hover"); 
-				if ($.isFunction($t.p.onSelectCell)) {
-					tmp = cc.html().replace(/\&#160\;/ig,'');
-					$t.p.onSelectCell($t.rows[iRow].id,nm,tmp,iRow,iCol);
-				}
-			}
-			$t.p.iCol = iCol; $t.p.iRow = iRow;
-		});
-	},
-	saveCell : function (iRow, iCol){
-		return this.each(function(){
-			var $t= this, fr;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;} 
-			if(fr !== null) {
-				var cc = $("td:eq("+iCol+")",$t.rows[iRow]),v,v2,
-				cm = $t.p.colModel[iCol], nm = cm.name, nmjq = $.jgrid.jqID(nm) ;
-				switch (cm.edittype) {
-					case "select":
-						if(!cm.editoptions.multiple) {
-							v = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).val();
-							v2 = $("#"+iRow+"_"+nmjq+">option:selected",$t.rows[iRow]).text();
-						} else {
-							var sel = $("#"+iRow+"_"+nmjq,$t.rows[iRow]), selectedText = [];
-							v = $(sel).val();
-							if(v) { v.join(",");} else { v=""; }
-							$("option:selected",sel).each(
-								function(i,selected){
-									selectedText[i] = $(selected).text();
-								}
-							);
-							v2 = selectedText.join(",");
-						}
-						if(cm.formatter) { v2 = v; }
-						break;
-					case "checkbox":
-						var cbv  = ["Yes","No"];
-						if(cm.editoptions){
-							cbv = cm.editoptions.value.split(":");
-						}
-						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).attr("checked") ? cbv[0] : cbv[1];
-						v2=v;
-						break;
-					case "password":
-					case "text":
-					case "textarea":
-					case "button" :
-						v = $("#"+iRow+"_"+nmjq,$t.rows[iRow]).val();
-						v2=v;
-						break;
-					case 'custom' :
-						try {
-							if(cm.editoptions && $.isFunction(cm.editoptions.custom_value)) {
-								v = cm.editoptions.custom_value($(".customelement",cc),'get');
-								if (v===undefined) { throw "e2";} else { v2=v; }
-							} else { throw "e1"; }
-						} catch (e) {
-							if (e=="e1") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.nodefined,jQuery.jgrid.edit.bClose); }
-							if (e=="e2") { info_dialog(jQuery.jgrid.errors.errcap,"function 'custom_value' "+$.jgrid.edit.msg.novalue,jQuery.jgrid.edit.bClose); }
-							else {info_dialog(jQuery.jgrid.errors.errcap,e.message,jQuery.jgrid.edit.bClose); }
-						}
-						break;
-				}
-				// The common approach is if nothing changed do not do anything
-				if (v2 != $t.p.savedRow[fr].v){
-					if ($.isFunction($t.p.beforeSaveCell)) {
-						var vv = $t.p.beforeSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-						if (vv) {v = vv;}
-					}
-					var cv = checkValues(v,iCol,$t);
-					if(cv[0] === true) {
-						var addpost = {};
-						if ($.isFunction($t.p.beforeSubmitCell)) {
-							addpost = $t.p.beforeSubmitCell($t.rows[iRow].id,nm, v, iRow,iCol);
-							if (!addpost) {addpost={};}
-						}
-						if( $("input.hasDatepicker",cc).length >0) { $("input.hasDatepicker",cc).datepicker('hide'); }
-						if ($t.p.cellsubmit == 'remote') {
-							if ($t.p.cellurl) {
-								var postdata = {};
-								if($t.p.autoencode) { v = $.jgrid.htmlEncode(v); }
-								postdata[nm] = v;
-								var idname,oper, opers;
-								opers = $t.p.prmNames;
-								idname = opers.id;
-								oper = opers.oper;
-								postdata[idname] = $t.rows[iRow].id;
-								postdata[oper] = opers.editoper;
-								postdata = $.extend(addpost,postdata);
-								$("#lui_"+$t.p.id).show();
-								$t.grid.hDiv.loading = true;
-								$.ajax( $.extend( {
-									url: $t.p.cellurl,
-									data :$.isFunction($t.p.serializeCellData) ? $t.p.serializeCellData(postdata) : postdata,
-									type: "POST",
-									complete: function (result, stat) {
-										$("#lui_"+$t.p.id).hide();
-										$t.grid.hDiv.loading = false;
-										if (stat == 'success') {
-											if ($.isFunction($t.p.afterSubmitCell)) {
-												var ret = $t.p.afterSubmitCell(result,postdata.id,nm,v,iRow,iCol);
-												if(ret[0] === true) {
-													$(cc).empty();
-													$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
-													$(cc).addClass("dirty-cell");
-													$($t.rows[iRow]).addClass("edited");
-													if ($.isFunction($t.p.afterSaveCell)) {
-														$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-													}
-													$t.p.savedRow.splice(0,1);
-												} else {
-													info_dialog($.jgrid.errors.errcap,ret[1],$.jgrid.edit.bClose);
-													$($t).jqGrid("restoreCell",iRow,iCol);
-												}
-											} else {
-												$(cc).empty();
-												$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, v2, false, false, true);
-												$(cc).addClass("dirty-cell");
-												$($t.rows[iRow]).addClass("edited");
-												if ($.isFunction($t.p.afterSaveCell)) {
-													$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-												}
-												$t.p.savedRow.splice(0,1);
-											}
-										}
-									},
-									error:function(res,stat) {
-										$("#lui_"+$t.p.id).hide();
-										$t.grid.hDiv.loading = false;
-										if ($.isFunction($t.p.errorCell)) {
-											$t.p.errorCell(res,stat);
-											$($t).jqGrid("restoreCell",iRow,iCol);
-										} else {
-											info_dialog($.jgrid.errors.errcap,res.status+" : "+res.statusText+"<br/>"+stat,$.jgrid.edit.bClose);
-											$($t).jqGrid("restoreCell",iRow,iCol);
-										}
-									}
-								}, $.jgrid.ajaxOptions, $t.p.ajaxCellOptions || {}));
-							} else {
-								try {
-									info_dialog($.jgrid.errors.errcap,$.jgrid.errors.nourl,$.jgrid.edit.bClose);
-									$($t).jqGrid("restoreCell",iRow,iCol);
-								} catch (e) {}
-							}
-						}
-						if ($t.p.cellsubmit == 'clientArray') {
-							$(cc).empty();
-							$($t).jqGrid("setCell",$t.rows[iRow].id,iCol, v2, false, false, true);
-							$(cc).addClass("dirty-cell");
-							$($t.rows[iRow]).addClass("edited");
-							if ($.isFunction($t.p.afterSaveCell)) {
-								$t.p.afterSaveCell($t.rows[iRow].id,nm, v, iRow,iCol);
-							}
-							$t.p.savedRow.splice(0,1);
-						}
-					} else {
-						try {
-							window.setTimeout(function(){info_dialog($.jgrid.errors.errcap,v+" "+cv[1],$.jgrid.edit.bClose);},100);
-							$($t).jqGrid("restoreCell",iRow,iCol);
-						} catch (e) {}
-					}
-				} else {
-					$($t).jqGrid("restoreCell",iRow,iCol);
-				}
-			}
-			if ($.browser.opera) {
-				$("#"+$t.p.knv).attr("tabindex","-1").focus();
-			} else {
-				window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
-			}
-		});
-	},
-	restoreCell : function(iRow, iCol) {
-		return this.each(function(){
-			var $t= this, fr;
-			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
-			if ( $t.p.savedRow.length >= 1) {fr = 0;} else {fr=null;}
-			if(fr !== null) {
-				var cc = $("td:eq("+iCol+")",$t.rows[iRow]);
-				// datepicker fix
-				if($.isFunction($.fn.datepicker)) {
-					try {
-						$("input.hasDatepicker",cc).datepicker('hide');
-					} catch (e) {}
-				}
-				$(cc).empty().attr("tabindex","-1");
-				$($t).jqGrid("setCell",$t.rows[iRow].id, iCol, $t.p.savedRow[fr].v, false, false, true);
-				$t.p.savedRow.splice(0,1);
-			}
-			window.setTimeout(function () { $("#"+$t.p.knv).attr("tabindex","-1").focus();},0);
-		});
-	},
-	nextCell : function (iRow,iCol) {
-		return this.each(function (){
-			var $t = this, nCol=false;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			// try to find next editable cell
-			for (var i=iCol+1; i<$t.p.colModel.length; i++) {
-				if ( $t.p.colModel[i].editable ===true) {
-					nCol = i; break;
-				}
-			}
-			if(nCol !== false) {
-				$($t).jqGrid("editCell",iRow,nCol,true);
-			} else {
-				if ($t.p.savedRow.length >0) {
-					$($t).jqGrid("saveCell",iRow,iCol);
-				}
-			}
-		});
-	},
-	prevCell : function (iRow,iCol) {
-		return this.each(function (){
-			var $t = this, nCol=false;
-			if (!$t.grid || $t.p.cellEdit !== true) {return;}
-			// try to find next editable cell
-			for (var i=iCol-1; i>=0; i--) {
-				if ( $t.p.colModel[i].editable ===true) {
-					nCol = i; break;
-				}
-			}
-			if(nCol !== false) {
-				$($t).jqGrid("editCell",iRow,nCol,true);
-			} else {
-				if ($t.p.savedRow.length >0) {
-					$($t).jqGrid("saveCell",iRow,iCol);
-				}
-			}
-		});
-	},
-	GridNav : function() {
-		return this.each(function () {
-			var  $t = this;
-			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
-			// trick to process keydown on non input elements
-			$t.p.knv = $t.p.id + "_kn";
-			var selection = $("<span style='width:0px;height:0px;background-color:black;' tabindex='0'><span tabindex='-1' style='width:0px;height:0px;background-color:grey' id='"+$t.p.knv+"'></span></span>"),
-			i, kdir;
-			$(selection).insertBefore($t.grid.cDiv);
-			$("#"+$t.p.knv)
-			.focus()
-			.keydown(function (e){
-				kdir = e.keyCode;
-				if($t.p.direction == "rtl") {
-					if(kdir==37) { kdir = 39;}
-					else if (kdir==39) { kdir = 37; }
-				}
-				switch (kdir) {
-					case 38:
-						if ($t.p.iRow-1 >=0 ) {
-							scrollGrid($t.p.iRow-1,$t.p.iCol,'vu');
-							$($t).jqGrid("editCell",$t.p.iRow-1,$t.p.iCol,false);
-						}
-					break;
-					case 40 :
-						if ($t.p.iRow+1 <=  $t.rows.length-1) {
-							scrollGrid($t.p.iRow+1,$t.p.iCol,'vd');
-							$($t).jqGrid("editCell",$t.p.iRow+1,$t.p.iCol,false);
-						}
-					break;
-					case 37 :
-						if ($t.p.iCol -1 >=  0) {
-							i = findNextVisible($t.p.iCol-1,'lft');
-							scrollGrid($t.p.iRow, i,'h');
-							$($t).jqGrid("editCell",$t.p.iRow, i,false);
-						}
-					break;
-					case 39 :
-						if ($t.p.iCol +1 <=  $t.p.colModel.length-1) {
-							i = findNextVisible($t.p.iCol+1,'rgt');
-							scrollGrid($t.p.iRow,i,'h');
-							$($t).jqGrid("editCell",$t.p.iRow,i,false);
-						}
-					break;
-					case 13:
-						if (parseInt($t.p.iCol,10)>=0 && parseInt($t.p.iRow,10)>=0) {
-							$($t).jqGrid("editCell",$t.p.iRow,$t.p.iCol,true);
-						}
-					break;
-				}
-				return false;
-			});
-			function scrollGrid(iR, iC, tp){
-				if (tp.substr(0,1)=='v') {
-					var ch = $($t.grid.bDiv)[0].clientHeight,
-					st = $($t.grid.bDiv)[0].scrollTop,
-					nROT = $t.rows[iR].offsetTop+$t.rows[iR].clientHeight,
-					pROT = $t.rows[iR].offsetTop;
-					if(tp == 'vd') {
-						if(nROT >= ch) {
-							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop + $t.rows[iR].clientHeight;
-						}
-					}
-					if(tp == 'vu'){					
-						if (pROT < st) {
-							$($t.grid.bDiv)[0].scrollTop = $($t.grid.bDiv)[0].scrollTop - $t.rows[iR].clientHeight;
-						}
-					}
-				}
-				if(tp=='h') {
-					var cw = $($t.grid.bDiv)[0].clientWidth,
-					sl = $($t.grid.bDiv)[0].scrollLeft,
-					nCOL = $t.rows[iR].cells[iC].offsetLeft+$t.rows[iR].cells[iC].clientWidth,
-					pCOL = $t.rows[iR].cells[iC].offsetLeft;
-					if(nCOL >= cw+parseInt(sl,10)) {
-						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft + $t.rows[iR].cells[iC].clientWidth;
-					} else if (pCOL < sl) {
-						$($t.grid.bDiv)[0].scrollLeft = $($t.grid.bDiv)[0].scrollLeft - $t.rows[iR].cells[iC].clientWidth;
-					}
-				}
-			}
-			function findNextVisible(iC,act){
-				var ind, i;
-				if(act == 'lft') {
-					ind = iC+1;
-					for (i=iC;i>=0;i--){
-						if ($t.p.colModel[i].hidden !== true) {
-							ind = i;
-							break;
-						}
-					}
-				}
-				if(act == 'rgt') {
-					ind = iC-1;
-					for (i=iC; i<$t.p.colModel.length;i++){
-						if ($t.p.colModel[i].hidden !== true) {
-							ind = i;
-							break;
-						}						
-					}
-				}
-				return ind;
-			}
-		});
-	},
-	getChangedCells : function (mthd) {
-		var ret=[];
-		if (!mthd) {mthd='all';}
-		this.each(function(){
-			var $t= this,nm;
-			if (!$t.grid || $t.p.cellEdit !== true ) {return;}
-			$($t.rows).each(function(j){
-				var res = {};
-				if ($(this).hasClass("edited")) {
-					$('td',this).each( function(i) {
-						nm = $t.p.colModel[i].name;
-						if ( nm !== 'cb' && nm !== 'subgrid') {
-							if (mthd=='dirty') {
-								if ($(this).hasClass('dirty-cell')) {
-									try {
-										res[nm] = $.unformat(this,{rowId:$t.rows[j].id, colModel:$t.p.colModel[i]},i);
-									} catch (e){
-										res[nm] = $.jgrid.htmlDecode($(this).html());
-									}
-								}
-							} else {
-								try {
-									res[nm] = $.unformat(this,{rowId:$t.rows[j].id,colModel:$t.p.colModel[i]},i);
-								} catch (e) {
-									res[nm] = $.jgrid.htmlDecode($(this).html());
-								}
-							}
-						}
-					});
-					res.id = this.id;
-					ret.push(res);
-				}
-			});
-		});
-		return ret;
-	}
-/// end  cell editing
-});
-})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/src/grid.celledit.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css	(nonexistent)
@@ -1,2 +0,0 @@
-.ui-jqgrid{position:relative;font-size:11px;}.ui-jqgrid .ui-jqgrid-view{position:relative;left:0;top:0;padding:.0em;}.ui-jqgrid .ui-jqgrid-titlebar{padding:.3em .2em .2em .3em;position:relative;border-left:0 none;border-right:0 none;border-top:0 none;}.ui-jqgrid .ui-jqgrid-title{float:left;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqgrid .ui-jqgrid-titlebar-close span{display:block;margin:1px;}.ui-jqgrid .ui-jqgrid-titlebar-close:hover{padding:0;}.ui-jqgrid .ui-jqgrid-hdiv{position:relative;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-hbox{float:left;padding-right:20px;}.ui-jqgrid .ui-jqgrid-htable{table-layout:fixed;margin:0;}.ui-jqgrid .ui-jqgrid-htable th{height:22px;padding:0 2px 0 2px;}.ui-jqgrid .ui-jqgrid-htable th div{overflow:hidden;position:relative;height:17px;}.ui-th-column,.ui-jqgrid .ui-jqgrid-htable th.ui-th-column{overflow:hidden;white-space:nowrap;text-align:center;border-top:0 none;border-bottom:0 none;}.ui-th-ltr,.ui-jqgrid .ui-jqgrid-htable th.ui-th-ltr{border-left:0 none;}.ui-th-rtl,.ui-jqgrid .ui-jqgrid-htable th.ui-th-rtl{border-right:0 none;}.ui-jqgrid .ui-th-div-ie{white-space:nowrap;zoom:1;height:17px;}.ui-jqgrid .ui-jqgrid-resize{height:20px!important;position:relative;cursor:e-resize;display:inline;overflow:hidden;}.ui-jqgrid .ui-grid-ico-sort{overflow:hidden;position:absolute;display:inline;cursor:pointer!important;}.ui-jqgrid .ui-icon-asc{margin-top:-3px;height:12px;}.ui-jqgrid .ui-icon-desc{margin-top:3px;height:12px;}.ui-jqgrid .ui-i-asc{margin-top:0;height:16px;}.ui-jqgrid .ui-i-desc{margin-top:0;margin-left:13px;height:16px;}.ui-jqgrid .ui-jqgrid-sortable{cursor:pointer;}.ui-jqgrid tr.ui-search-toolbar th{border-top-width:1px!important;border-top-color:inherit!important;border-top-style:ridge!important;}tr.ui-search-toolbar input{margin:1px 0 0 0;}tr.ui-search-toolbar select{margin:1px 0 0 0;}.ui-jqgrid .ui-jqgrid-bdiv{position:relative;margin:0;padding:0;overflow:auto;text-align:left;}.ui-jqgrid .ui-jqgrid-btable{table-layout:fixed;margin:0;}.ui-jqgrid tr.jqgrow td{font-weight:normal;overflow:hidden;white-space:pre;height:22px;padding:0 2px 0 2px;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid tr.ui-row-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.ui-row-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid td.jqgrid-rownum{padding:0 2px 0 2px;margin:0;border:0 none;}.ui-jqgrid .ui-jqgrid-resize-mark{width:2px;left:0;background-color:#777;cursor:e-resize;cursor:col-resize;position:absolute;top:0;height:100px;overflow:hidden;display:none;border:0 none;}.ui-jqgrid .ui-jqgrid-sdiv{position:relative;margin:0;padding:0;overflow:hidden;border-left:0 none!important;border-top:0 none!important;border-right:0 none!important;}.ui-jqgrid .ui-jqgrid-ftable{table-layout:fixed;margin-bottom:0;}.ui-jqgrid tr.footrow td{font-weight:bold;overflow:hidden;white-space:nowrap;height:21px;padding:0 2px 0 2px;border-top-width:1px;border-top-color:inherit;border-top-style:solid;}.ui-jqgrid tr.footrow-ltr td{text-align:left;border-right-width:1px;border-right-color:inherit;border-right-style:solid;}.ui-jqgrid tr.footrow-rtl td{text-align:right;border-left-width:1px;border-left-color:inherit;border-left-style:solid;}.ui-jqgrid .ui-jqgrid-pager{border-left:0 none!important;border-right:0 none!important;border-bottom:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-pager-control{position:relative;}.ui-jqgrid .ui-pg-table{position:relative;padding-bottom:2px;width:auto;margin:0;}.ui-jqgrid .ui-pg-table td{font-weight:normal;vertical-align:middle;padding:1px;}.ui-jqgrid .ui-pg-button{height:19px!important;}.ui-jqgrid .ui-pg-button span{display:block;margin:1px;float:left;}.ui-jqgrid .ui-pg-button:hover{padding:0;}.ui-jqgrid .ui-state-disabled:hover{padding:1px;}.ui-jqgrid .ui-pg-input{height:13px;font-size:.8em;margin:0;}.ui-jqgrid .ui-pg-selbox{font-size:.8em;line-height:18px;display:block;height:18px;margin:0;}.ui-jqgrid .ui-separator{height:18px;border-left:1px solid #ccc;border-right:1px solid #ccc;margin:1px;float:right;}.ui-jqgrid .ui-paging-info{font-weight:normal;height:19px;margin-top:3px;margin-right:4px;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div{padding:1px 0;float:left;list-style-image:none;list-style-position:outside;list-style-type:none;position:relative;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-button{cursor:pointer;}.ui-jqgrid .ui-jqgrid-pager .ui-pg-div span.ui-icon{float:left;margin:0 2px;}.ui-jqgrid td input,.ui-jqgrid td select .ui-jqgrid td textarea{margin:0;}.ui-jqgrid td textarea{width:auto;height:auto;}.ui-jqgrid .ui-jqgrid-toppager{border-left:0 none!important;border-right:0 none!important;border-top:0 none!important;margin:0!important;padding:0!important;position:relative;height:25px!important;white-space:nowrap;overflow:hidden;}.ui-jqgrid .ui-jqgrid-btable .ui-sgcollapsed span{display:block;}.ui-jqgrid .ui-subgrid{margin:0;padding:0;width:100%;}.ui-jqgrid .ui-subgrid table{table-layout:fixed;}.ui-jqgrid .ui-subgrid tr.ui-subtblcell td{height:18px;border-right-width:1px;border-right-color:inherit;border-right-style:solid;border-bottom-width:1px;border-bottom-color:inherit;border-bottom-style:solid;}.ui-jqgrid .ui-subgrid td.subgrid-data{border-top:0 none!important;}.ui-jqgrid .ui-subgrid td.subgrid-cell{border-width:0 0 1px 0;}.ui-jqgrid .ui-th-subgrid{height:20px;}.ui-jqgrid .loading{position:absolute;top:45%;left:45%;width:auto;z-index:101;padding:6px;margin:5px;text-align:center;font-weight:bold;display:none;border-width:2px!important;}.ui-jqgrid .jqgrid-overlay{display:none;z-index:100;}* html .jqgrid-overlay{width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}* .jqgrid-overlay iframe{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid .ui-userdata{border-left:0 none;border-right:0 none;height:21px;overflow:hidden;}.ui-jqdialog{display:none;width:300px;position:absolute;padding:.2em;font-size:11px;overflow:visible;}.ui-jqdialog .ui-jqdialog-titlebar{padding:.3em .2em;position:relative;}.ui-jqdialog .ui-jqdialog-title{margin:.1em 0 .2em;}.ui-jqdialog .ui-jqdialog-titlebar-close{position:absolute;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px;}.ui-jqdialog .ui-jqdialog-titlebar-close span{display:block;margin:1px;}.ui-jqdialog .ui-jqdialog-titlebar-close:hover,.ui-jqdialog .ui-jqdialog-titlebar-close:focus{padding:0;}.ui-jqdialog-content,.ui-jqdialog .ui-jqdialog-content{border:0;padding:.3em .2em;background:none;height:auto;}.ui-jqdialog .ui-jqconfirm{padding:.4em 1em;border-width:3px;position:absolute;bottom:10px;right:10px;overflow:visible;display:none;height:80px;width:220px;text-align:center;}.ui-jqdialog-content .FormGrid{margin:0;}.ui-jqdialog-content .EditTable{width:100%;margin-bottom:0;}.ui-jqdialog-content .DelTable{width:100%;margin-bottom:0;}.EditTable td input,.EditTable td select,.EditTable td textarea{margin:0;}.EditTable td textarea{width:auto;height:auto;}.ui-jqdialog-content td.EditButton{text-align:right;border-top:0 none;border-left:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content td.navButton{text-align:center;border-left:0 none;border-top:0 none;border-right:0 none;padding-bottom:5px;padding-top:5px;}.ui-jqdialog-content .CaptionTD{text-align:left;vertical-align:top;border-left:0 none;border-right:0 none;border-bottom:0 none;padding:1px;white-space:nowrap;}.ui-jqdialog-content .DataTD{padding:1px;border-left:0 none;border-right:0 none;border-bottom:0 none;vertical-align:top;}.ui-jqdialog-content .form-view-data{white-space:pre;}.fm-button{display:inline-block;margin:0 4px 0 0;padding:.4em .5em;text-decoration:none!important;cursor:pointer;position:relative;text-align:center;zoom:1;}.fm-button-icon-left{padding-left:1.9em;}.fm-button-icon-right{padding-right:1.9em;}.fm-button-icon-left .ui-icon{right:auto;left:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}.fm-button-icon-right .ui-icon{left:auto;right:.2em;margin-left:0;position:absolute;top:50%;margin-top:-8px;}#nData,#pData{float:left;margin:3px;padding:0;width:15px;}.ui-jqgrid .selected-row,div.ui-jqgrid .selected-row td{font-style:normal;border-left:0 none;}.ui-jqgrid .tree-wrap{float:left;position:relative;height:18px;white-space:nowrap;overflow:hidden;}.ui-jqgrid .tree-minus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-plus{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .tree-leaf{position:absolute;height:18px;width:18px;overflow:hidden;}.ui-jqgrid .treeclick{cursor:pointer;}.jqmOverlay{background-color:#000;}* iframe.jqm{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px');}.ui-jqgrid-dnd tr td{border-right-width:1px;border-right-color:inherit;border-right-style:solid;height:20px;}.ui-jqgrid .ui-jqgrid-title-rtl{float:right;margin:.1em 0 .2em;}.ui-jqgrid .ui-jqgrid-hbox-rtl{float:right;padding-left:20px;}.ui-jqgrid .ui-jqgrid-resize-ltr{float:right;margin:-2px -2px -2px 0;}.ui-jqgrid .ui-jqgrid-resize-rtl{float:left;margin:-2px 0 -1px -3px;}.ui-jqgrid .ui-sort-rtl{left:0;}.ui-jqgrid .tree-wrap-ltr{float:left;}.ui-jqgrid .tree-wrap-rtl{float:right;}.ui-jqgrid .ui-ellipsis{text-overflow:ellipsis;-moz-binding:url('ellipsis-xbl.xml#ellipsis');}
-.ui-searchFilter{display:none;position:absolute;z-index:770;overflow:visible;}.ui-searchFilter table{position:relative;margin:0;width:auto;}.ui-searchFilter table td{margin:0;padding:1px;}.ui-searchFilter table td input,.ui-searchFilter table td select{margin:.1em;}.ui-searchFilter .ui-state-default{cursor:pointer;}.ui-searchFilter .divider{height:1px;}.ui-searchFilter .divider div{background-color:black;height:1px;}
\ No newline at end of file

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ui.jqgrid.css
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml	(nonexistent)
@@ -1,13 +0,0 @@
-<?xml version="1.0"?>
-<bindings
-    xmlns="http://www.mozilla.org/xbl"
-    xmlns:xbl="http://www.mozilla.org/xbl"
-    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-    <binding id="ellipsis">
-        <content>
-            <xul:window><!-- xul:window tag required for FF2 -->
-                <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>
-            </xul:window>
-        </content>
-    </binding>
-</bindings>

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/css/ellipsis-xbl.xml
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js	(nonexistent)
@@ -1,117 +0,0 @@
-/* 
-* jqGrid  3.6.5 - jQuery Grid 
-* Copyright (c) 2008, Tony Tomov, tony@trirand.com 
-* Dual licensed under the MIT and GPL licenses 
-* http://www.opensource.org/licenses/mit-license.php 
-* http://www.gnu.org/licenses/gpl-2.0.html 
-* Date:2010-05-05 
-* Modules: grid.base.js; 
-*/
-(function(b){b.jgrid=b.jgrid||{};b.extend(b.jgrid,{htmlDecode:function(f){if(f=="&nbsp;"||f=="&#160;"||f.length==1&&f.charCodeAt(0)==160)return"";return!f?f:String(f).replace(/&amp;/g,"&").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"')},htmlEncode:function(f){return!f?f:String(f).replace(/&/g,"&amp;").replace(/>/g,"&gt;").replace(/</g,"&lt;").replace(/\"/g,"&quot;")},format:function(f){var k=b.makeArray(arguments).slice(1);if(f===undefined)f="";return f.replace(/\{(\d+)\}/g,function(i,
-h){return k[h]})},getCellIndex:function(f){f=b(f);f=(!f.is("td")&&!f.is("th")?f.closest("td,th"):f)[0];if(b.browser.msie)return b.inArray(f,f.parentNode.cells);return f.cellIndex},stripHtml:function(f){f+="";var k=/<("[^"]*"|'[^']*'|[^'">])*>/gi;if(f)return(f=f.replace(k,""))&&f!=="&nbsp;"&&f!=="&#160;"?f.replace(/\"/g,"'"):"";else return f},stringToDoc:function(f){var k;if(typeof f!=="string")return f;try{k=(new DOMParser).parseFromString(f,"text/xml")}catch(i){k=new ActiveXObject("Microsoft.XMLDOM");
-k.async=false;k.loadXML(f)}return k&&k.documentElement&&k.documentElement.tagName!="parsererror"?k:null},parse:function(f){f=f;if(f.substr(0,9)=="while(1);")f=f.substr(9);if(f.substr(0,2)=="/*")f=f.substr(2,f.length-4);f||(f="{}");return b.jgrid.useJSON===true&&typeof JSON==="object"&&typeof JSON.parse==="function"?JSON.parse(f):eval("("+f+")")},jqID:function(f){f+="";return f.replace(/([\.\:\[\]])/g,"\\$1")},ajaxOptions:{},extend:function(f){b.extend(b.fn.jqGrid,f);this.no_legacy_api||b.fn.extend(f)}});
-b.fn.jqGrid=function(f){if(typeof f=="string"){var k=b.fn.jqGrid[f];if(!k)throw"jqGrid - No such method: "+f;var i=b.makeArray(arguments).slice(1);return k.apply(this,i)}return this.each(function(){if(!this.grid){var h=b.extend(true,{url:"",height:150,page:1,rowNum:20,records:0,pager:"",pgbuttons:true,pginput:true,colModel:[],rowList:[],colNames:[],sortorder:"asc",sortname:"",datatype:"xml",mtype:"GET",altRows:false,selarrrow:[],savedRow:[],shrinkToFit:true,xmlReader:{},jsonReader:{},subGrid:false,
-subGridModel:[],reccount:0,lastpage:0,lastsort:0,selrow:null,beforeSelectRow:null,onSelectRow:null,onSortCol:null,ondblClickRow:null,onRightClickRow:null,onPaging:null,onSelectAll:null,loadComplete:null,gridComplete:null,loadError:null,loadBeforeSend:null,afterInsertRow:null,beforeRequest:null,onHeaderClick:null,viewrecords:false,loadonce:false,multiselect:false,multikey:false,editurl:null,search:false,caption:"",hidegrid:true,hiddengrid:false,postData:{},userData:{},treeGrid:false,treeGridModel:"nested",
-treeReader:{},treeANode:-1,ExpandColumn:null,tree_root_level:0,prmNames:{page:"page",rows:"rows",sort:"sidx",order:"sord",search:"_search",nd:"nd",id:"id",oper:"oper",editoper:"edit",addoper:"add",deloper:"del",subgridid:"id",npage:null},forceFit:false,gridstate:"visible",cellEdit:false,cellsubmit:"remote",nv:0,loadui:"enable",toolbar:[false,""],scroll:false,multiboxonly:false,deselectAfterSort:true,scrollrows:false,autowidth:false,scrollOffset:18,cellLayout:5,subGridWidth:20,multiselectWidth:20,
-gridview:false,rownumWidth:25,rownumbers:false,pagerpos:"center",recordpos:"right",footerrow:false,userDataOnFooter:false,hoverrows:true,altclass:"ui-priority-secondary",viewsortcols:[false,"vertical",true],resizeclass:"",autoencode:false,remapColumns:[],ajaxGridOptions:{},direction:"ltr",toppager:false,headertitles:false,scrollTimeout:200},b.jgrid.defaults,f||{}),g={headers:[],cols:[],footers:[],dragStart:function(c,d,e){this.resizing={idx:c,startX:d.clientX,sOL:e[0]};this.hDiv.style.cursor="col-resize";
-this.curGbox=b("#rs_m"+h.id,"#gbox_"+h.id);this.curGbox.css({display:"block",left:e[0],top:e[1],height:e[2]});b.isFunction(h.resizeStart)&&h.resizeStart.call(this,d,c);document.onselectstart=function(){return false}},dragMove:function(c){if(this.resizing){var d=c.clientX-this.resizing.startX;c=this.headers[this.resizing.idx];var e=h.direction==="ltr"?c.width+d:c.width-d,l;if(e>33){this.curGbox.css({left:this.resizing.sOL+d});if(h.forceFit===true){l=this.headers[this.resizing.idx+h.nv];d=h.direction===
-"ltr"?l.width-d:l.width+d;if(d>33){c.newWidth=e;l.newWidth=d}}else{this.newWidth=h.direction==="ltr"?h.tblwidth+d:h.tblwidth-d;c.newWidth=e}}}},dragEnd:function(){this.hDiv.style.cursor="default";if(this.resizing){var c=this.resizing.idx,d=this.headers[c].newWidth||this.headers[c].width;d=parseInt(d,10);this.resizing=false;b("#rs_m"+h.id).css("display","none");h.colModel[c].width=d;this.headers[c].width=d;this.headers[c].el.style.width=d+"px";if(this.cols.length>0)this.cols[c].style.width=d+"px";
-if(this.footers.length>0)this.footers[c].style.width=d+"px";if(h.forceFit===true){d=this.headers[c+h.nv].newWidth||this.headers[c+h.nv].width;this.headers[c+h.nv].width=d;this.headers[c+h.nv].el.style.width=d+"px";if(this.cols.length>0)this.cols[c+h.nv].style.width=d+"px";if(this.footers.length>0)this.footers[c+h.nv].style.width=d+"px";h.colModel[c+h.nv].width=d}else{h.tblwidth=this.newWidth||h.tblwidth;b("table:first",this.bDiv).css("width",h.tblwidth+"px");b("table:first",this.hDiv).css("width",
-h.tblwidth+"px");this.hDiv.scrollLeft=this.bDiv.scrollLeft;if(h.footerrow){b("table:first",this.sDiv).css("width",h.tblwidth+"px");this.sDiv.scrollLeft=this.bDiv.scrollLeft}}b.isFunction(h.resizeStop)&&h.resizeStop.call(this,d,c)}this.curGbox=null;document.onselectstart=function(){return true}},populateVisible:function(){g.timer&&clearTimeout(g.timer);g.timer=null;var c=b(g.bDiv).height();if(c){var d=b("table:first",g.bDiv),e=b("> tbody > tr:visible:first",d).outerHeight()||g.prevRowHeight;if(e){g.prevRowHeight=
-e;var l=h.rowNum,n=g.scrollTop=g.bDiv.scrollTop,o=Math.round(d.position().top)-n,p=o+d.height();e=e*l;var w,y,s;if(o<=0&&(h.lastpage===undefined||parseInt((p+n+e-1)/e,10)<=h.lastpage)){y=parseInt((c-p+e-1)/e,10);if(p>=0||y<2||h.scroll===true){w=Math.round((p+n)/e)+1;o=-1}else o=1}if(o>0){w=parseInt(n/e,10)+1;y=parseInt((n+c)/e,10)+2-w;s=true}if(y)if(!(h.lastpage&&w>h.lastpage))if(g.hDiv.loading)g.timer=setTimeout(g.populateVisible,h.scrollTimeout);else{h.page=w;if(s){g.selectionPreserver(d[0]);g.emptyRows(g.bDiv,
-false)}g.populate(y)}}}},scrollGrid:function(){if(h.scroll){var c=g.bDiv.scrollTop;if(c!=g.scrollTop){g.scrollTop=c;g.timer&&clearTimeout(g.timer);g.timer=setTimeout(g.populateVisible,200)}}g.hDiv.scrollLeft=g.bDiv.scrollLeft;if(h.footerrow)g.sDiv.scrollLeft=g.bDiv.scrollLeft},selectionPreserver:function(c){var d=c.p,e=d.selrow,l=d.selarrrow?b.makeArray(d.selarrrow):null,n=c.grid.bDiv.scrollLeft,o=d.gridComplete;d.gridComplete=function(){d.selrow=null;d.selarrrow=[];if(d.multiselect&&l&&l.length>
-0)for(var p=0;p<l.length;p++)l[p]!=e&&b(c).jqGrid("setSelection",l[p],false);e&&b(c).jqGrid("setSelection",e,false);c.grid.bDiv.scrollLeft=n;d.gridComplete=o;d.gridComplete&&o()}}};this.p=h;var j,m,a;if(this.p.colNames.length===0)for(j=0;j<this.p.colModel.length;j++)this.p.colNames[j]=this.p.colModel[j].label||this.p.colModel[j].name;if(this.p.colNames.length!==this.p.colModel.length)alert(b.jgrid.errors.model);else{var q=b("<div class='ui-jqgrid-view'></div>"),t,x=b.browser.msie?true:false,C=b.browser.safari?
-true:false;a=this;a.p.direction=b.trim(a.p.direction.toLowerCase());if(b.inArray(a.p.direction,["ltr","rtl"])==-1)a.p.direction="ltr";m=a.p.direction;b(q).insertBefore(this);b(this).appendTo(q).removeClass("scroll");var K=b("<div class='ui-jqgrid ui-widget ui-widget-content ui-corner-all'></div>");b(K).insertBefore(q).attr({id:"gbox_"+this.id,dir:m});b(q).appendTo(K).attr("id","gview_"+this.id);t=x&&b.browser.version<=6?'<iframe style="display:block;position:absolute;z-index:-1;filter:Alpha(Opacity=\'0\');" src="javascript:false;"></iframe>':
-"";b("<div class='ui-widget-overlay jqgrid-overlay' id='lui_"+this.id+"'></div>").append(t).insertBefore(q);b("<div class='loading ui-state-default ui-state-active' id='load_"+this.id+"'>"+this.p.loadtext+"</div>").insertBefore(q);b(this).attr({cellSpacing:"0",cellPadding:"0",border:"0",role:"grid","aria-multiselectable":!!this.p.multiselect,"aria-labelledby":"gbox_"+this.id});var J=function(c,d){c=parseInt(c,10);return isNaN(c)?d?d:0:c},F=function(c,d,e){var l=a.p.colModel[c],n=l.align,o='style="',
-p=l.classes,w=l.name;if(n)o+="text-align:"+n+";";if(l.hidden===true)o+="display:none;";if(d===0)o+="width: "+g.headers[c].width+"px;";o+='"'+(p!==undefined?' class="'+p+'"':"")+(l.title&&e?' title="'+b.jgrid.stripHtml(e)+'"':"");o+=' aria-describedby="'+a.p.id+"_"+w+'"';return o},Q=function(c){return c===undefined||c===null||c===""?"&#160;":a.p.autoencode?b.jgrid.htmlEncode(c):c+""},M=function(c,d,e,l,n){e=a.p.colModel[e];if(typeof e.formatter!=="undefined"){c={rowId:c,colModel:e,gid:a.p.id};d=b.isFunction(e.formatter)?
-e.formatter.call(a,d,c,l,n):b.fmatter?b.fn.fmatter(e.formatter,d,c,l,n):Q(d)}else d=Q(d);return d},R=function(c,d,e,l,n){c=M(c,d,e,n,"add");return'<td role="gridcell" '+F(e,l,c)+">"+c+"</td>"},u=function(c,d,e){c='<input role="checkbox" type="checkbox" id="jqg_'+c+'" class="cbox" name="jqg_'+c+'"/>';d=F(d,e,"");return'<td role="gridcell" aria-describedby="'+a.p.id+'_cb" '+d+">"+c+"</td>"},la=function(c,d,e,l){e=(parseInt(e,10)-1)*parseInt(l,10)+1+d;c=F(c,d,"");return'<td role="gridcell" aria-describedby="'+
-a.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+c+">"+e+"</td>"},ca=function(c){var d,e=[],l=0,n;for(n=0;n<a.p.colModel.length;n++){d=a.p.colModel[n];if(d.name!=="cb"&&d.name!=="subgrid"&&d.name!=="rn"){e[l]=c=="xml"?d.xmlmap||d.name:d.jsonmap||d.name;l++}}return e},fa=function(c){var d=a.p.remapColumns;if(!d||!d.length)d=b.map(a.p.colModel,function(e,l){return l});if(c)d=b.map(d,function(e){return e<c?null:e-c});return d},aa=function(c,d){a.p.deepempty?b("tbody:first tr",c).remove():b("tbody:first",
-c).empty();if(d&&a.p.scroll){b(">div:first",c).css({height:"auto"}).children("div:first").css({height:0,display:"none"});c.scrollTop=0}},U=function(c,d){var e,l,n,o;if(typeof d==="function")return d(c);e=c[d];if(e===undefined){if(typeof d==="string")n=d.split(".");try{if(o=n.length)for(e=c;e&&o--;){l=n.shift();e=e[l]}}catch(p){}}return e},ia=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(b.isXMLDoc(c)){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p,w=0,y,s,r=0,v=0,
-z=0,D,N,L=[],P,G={},da=a.rows.length,E,W,B=[],S=0,ga=a.p.altRows===true?" "+a.p.altclass:"";a.p.xmlReader.repeatitems||(L=ca("xml"));D=a.p.keyIndex===false?a.p.xmlReader.id:a.p.keyIndex;if(L.length>0&&!isNaN(D)){if(a.p.remapColumns&&a.p.remapColumns.length)D=b.inArray(D,a.p.remapColumns);D=L[D]}N=(D+"").indexOf("[")===-1?L.length?function(X,V){return b(D,X).text()||V}:function(X,V){return b(a.p.xmlReader.cell,X).eq(D).text()||V}:function(X,V){return X.getAttribute(D.replace(/[\[\]]/g,""))||V};a.p.userData=
-{};b(a.p.xmlReader.page,c).each(function(){a.p.page=this.textContent||this.text||0});b(a.p.xmlReader.total,c).each(function(){a.p.lastpage=this.textContent||this.text;if(a.p.lastpage===undefined)a.p.lastpage=1});b(a.p.xmlReader.records,c).each(function(){a.p.records=this.textContent||this.text||0});b(a.p.xmlReader.userdata,c).each(function(){a.p.userData[this.getAttribute("name")]=this.textContent||this.text});c=b(a.p.xmlReader.root+" "+a.p.xmlReader.row,c);var ha=c.length,O=0;if(c&&ha){var ma=parseInt(a.p.rowNum,
-10),wa=a.p.scroll?(parseInt(a.p.page,10)-1)*ma+1:1;if(n)ma*=n+1;for(n=b.isFunction(a.p.afterInsertRow);O<ha;){E=c[O];W=N(E,wa+O);p=e===0?0:e+1;p=(p+O)%2==1?ga:"";B[S++]='<tr id="'+W+'" role="row" class ="ui-widget-content jqgrow ui-row-'+a.p.direction+""+p+'">';if(a.p.rownumbers===true){B[S++]=la(0,O,a.p.page,a.p.rowNum);z=1}if(a.p.multiselect===true){B[S++]=u(W,z,O);r=1}if(a.p.subGrid===true){B[S++]=b(a).jqGrid("addSubGridCell",r+z,O+e);v=1}if(a.p.xmlReader.repeatitems){P||(P=fa(r+v+z));var za=b(a.p.xmlReader.cell,
-E);b.each(P,function(X){var V=za[this];if(!V)return false;y=V.textContent||V.text;G[a.p.colModel[X+r+v+z].name]=y;B[S++]=R(W,y,X+r+v+z,O+e,E)})}else for(p=0;p<L.length;p++){y=b(L[p],E).text();G[a.p.colModel[p+r+v+z].name]=y;B[S++]=R(W,y,p+r+v+z,O+e,E)}B[S++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){p=a.p.treeANode>=-1?a.p.treeANode:0;s=b(B.join(""))[0];try{b(a).jqGrid("setTreeNode",G,s)}catch(Fa){}da===0?b("tbody:first",d).append(s):b(a.rows[O+p+e]).after(s)}else b("tbody:first",d).append(B.join(""));
-if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],r+z)}catch(Ga){}n&&a.p.afterInsertRow.call(a,W,G,E);B=[];S=0}G={};w++;O++;if(w==ma)break}}a.p.gridview===true&&b("tbody:first",d).append(B.join(""));a.p.totaltime=new Date-o;if(w>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=ha}B=null;if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=0;a.p.reccount=w;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},
-ra=function(c,d,e,l,n){var o=new Date;a.p.reccount=0;if(c){if(a.p.treeANode===-1&&!a.p.scroll){aa(d,false);e=0}else e=e>0?e:0;var p=0,w,y,s,r=[],v,z=0,D=0,N=0,L,P,G,da={},E,W=a.rows.length,B;s=[];E=0;var S=a.p.altRows===true?" "+a.p.altclass:"";a.p.page=U(c,a.p.jsonReader.page)||0;G=U(c,a.p.jsonReader.total);a.p.lastpage=G===undefined?1:G;a.p.records=U(c,a.p.jsonReader.records)||0;a.p.userData=U(c,a.p.jsonReader.userdata)||{};a.p.jsonReader.repeatitems||(v=r=ca("json"));G=a.p.keyIndex===false?a.p.jsonReader.id:
-a.p.keyIndex;if(r.length>0&&!isNaN(G)){if(a.p.remapColumns&&a.p.remapColumns.length)G=b.inArray(G,a.p.remapColumns);G=r[G]}if(P=U(c,a.p.jsonReader.root)){L=P.length;c=0;var ga=parseInt(a.p.rowNum,10),ha=a.p.scroll?(parseInt(a.p.page,10)-1)*ga+1:1;if(n)ga*=n+1;for(var O=b.isFunction(a.p.afterInsertRow);c<L;){n=P[c];B=U(n,G);if(B===undefined){B=ha+c;if(r.length===0)if(a.p.jsonReader.cell)B=n[a.p.jsonReader.cell][G]||B}w=e===0?0:e+1;w=(w+c)%2==1?S:"";s[E++]='<tr id="'+B+'" role="row" class= "ui-widget-content jqgrow ui-row-'+
-a.p.direction+""+w+'">';if(a.p.rownumbers===true){s[E++]=la(0,c,a.p.page,a.p.rowNum);N=1}if(a.p.multiselect){s[E++]=u(B,N,c);z=1}if(a.p.subGrid){s[E++]=b(a).jqGrid("addSubGridCell",z+N,c+e);D=1}if(a.p.jsonReader.repeatitems){if(a.p.jsonReader.cell)n=U(n,a.p.jsonReader.cell);v||(v=fa(z+D+N))}for(y=0;y<v.length;y++){w=U(n,v[y]);s[E++]=R(B,w,y+z+D+N,c+e,n);da[a.p.colModel[y+z+D+N].name]=w}s[E++]="</tr>";if(a.p.gridview===false){if(a.p.treeGrid===true){E=a.p.treeANode>=-1?a.p.treeANode:0;s=b(s.join(""))[0];
-try{b(a).jqGrid("setTreeNode",da,s)}catch(ma){}W===0?b("tbody:first",d).append(s):b(a.rows[c+E+e]).after(s)}else b("tbody:first",d).append(s.join(""));if(a.p.subGrid===true)try{b(a).jqGrid("addSubGrid",a.rows[a.rows.length-1],z+N)}catch(wa){}O&&a.p.afterInsertRow.call(a,B,da,n);s=[];E=0}da={};p++;c++;if(p==ga)break}a.p.gridview===true&&b("tbody:first",d).append(s.join(""));a.p.totaltime=new Date-o;if(p>0){a.grid.cols=a.rows[0].cells;if(a.p.records===0)a.p.records=L}}if(!a.p.treeGrid&&!a.p.scroll)a.grid.bDiv.scrollTop=
-0;a.p.reccount=p;a.p.treeANode=-1;a.p.userDataOnFooter&&b(a).jqGrid("footerData","set",a.p.userData,true);l||na(false,true)}},na=function(c,d){var e,l,n,o,p,w,y,s="";n=parseInt(a.p.page,10)-1;if(n<0)n=0;n*=parseInt(a.p.rowNum,10);p=n+a.p.reccount;if(a.p.scroll){e=b("tbody:first > tr",a.grid.bDiv);n=p-e.length;if(l=e.outerHeight()){e=n*l;l=parseInt(a.p.records,10)*l;b(">div:first",a.grid.bDiv).css({height:l}).children("div:first").css({height:e,display:e?"":"none"})}}s=a.p.pager?a.p.pager:"";s+=a.p.toppager?
-s?","+a.p.toppager:a.p.toppager:"";if(s){y=b.jgrid.formatter.integer||{};if(a.p.loadonce){e=l=1;a.p.lastpage=a.page=1;b(".selbox",s).attr("disabled",true)}else{e=J(a.p.page);l=J(a.p.lastpage);b(".selbox",s).attr("disabled",false)}if(a.p.pginput===true){b(".ui-pg-input",s).val(a.p.page);b("#sp_1",s).html(b.fmatter?b.fmatter.util.NumberFormat(a.p.lastpage,y):a.p.lastpage)}if(a.p.viewrecords)if(a.p.reccount===0)b(".ui-paging-info",s).html(a.p.emptyrecords);else{o=n+1;w=a.p.records;if(b.fmatter){o=b.fmatter.util.NumberFormat(o,
-y);p=b.fmatter.util.NumberFormat(p,y);w=b.fmatter.util.NumberFormat(w,y)}b(".ui-paging-info",s).html(b.jgrid.format(a.p.recordtext,o,p,w))}if(a.p.pgbuttons===true){if(e<=0)e=l=0;if(e==1||e===0){b("#first, #prev",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#first, #prev",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#first_t, #prev_t",a.p.toppager).removeClass("ui-state-disabled")}if(e==
-l||e===0){b("#next, #last",a.p.pager).addClass("ui-state-disabled").removeClass("ui-state-hover");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).addClass("ui-state-disabled").removeClass("ui-state-hover")}else{b("#next, #last",a.p.pager).removeClass("ui-state-disabled");a.p.toppager&&b("#next_t, #last_t",a.p.toppager).removeClass("ui-state-disabled")}}}c===true&&a.p.rownumbers===true&&b("td.jqgrid-rownum",a.rows).each(function(r){b(this).html(n+1+r)});d&&a.p.jqgdnd&&b(a).jqGrid("gridDnD","updateDnD");
-b.isFunction(a.p.gridComplete)&&a.p.gridComplete.call(a)},Y=function(c){if(!a.grid.hDiv.loading){var d=a.p.scroll&&c===false,e={},l,n=a.p.prmNames;if(a.p.page<=0)a.p.page=1;if(n.search!==null)e[n.search]=a.p.search;if(n.nd!==null)e[n.nd]=(new Date).getTime();if(n.rows!==null)e[n.rows]=a.p.rowNum;if(n.page!==null)e[n.page]=a.p.page;if(n.sort!==null)e[n.sort]=a.p.sortname;if(n.order!==null)e[n.order]=a.p.sortorder;var o=a.p.loadComplete,p=b.isFunction(o);p||(o=null);var w=0;c=c||1;if(c>1)if(n.npage!==
-null){e[n.npage]=c;w=c-1;c=1}else o=function(s){p&&a.p.loadComplete.call(a,s);a.grid.hDiv.loading=false;a.p.page++;Y(c-1)};else n.npage!==null&&delete a.p.postData[n.npage];b.extend(a.p.postData,e);var y=!a.p.scroll?0:a.rows.length-1;if(b.isFunction(a.p.datatype))a.p.datatype.call(a,a.p.postData,"load_"+a.p.id);else{b.isFunction(a.p.beforeRequest)&&a.p.beforeRequest.call(a);l=a.p.datatype.toLowerCase();switch(l){case "json":case "jsonp":case "xml":case "script":b.ajax(b.extend({url:a.p.url,type:a.p.mtype,
-dataType:l,data:b.isFunction(a.p.serializeGridData)?a.p.serializeGridData.call(a,a.p.postData):a.p.postData,success:function(s){l==="xml"?ia(s,a.grid.bDiv,y,c>1,w):ra(s,a.grid.bDiv,y,c>1,w);o&&o.call(a,s);d&&a.grid.populateVisible();if(a.p.loadonce||a.p.treeGrid)a.p.datatype="local";ja()},error:function(s,r,v){b.isFunction(a.p.loadError)&&a.p.loadError.call(a,s,r,v);ja()},beforeSend:function(s){oa();b.isFunction(a.p.loadBeforeSend)&&a.p.loadBeforeSend.call(a,s)}},b.jgrid.ajaxOptions,a.p.ajaxGridOptions));
-break;case "xmlstring":oa();e=b.jgrid.stringToDoc(a.p.datastr);p&&a.p.loadComplete.call(a,e);ia(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "jsonstring":oa();e=typeof a.p.datastr=="string"?b.jgrid.parse(a.p.datastr):a.p.datastr;p&&a.p.loadComplete.call(a,e);ra(e,a.grid.bDiv);a.p.datatype="local";a.p.datastr=null;ja();break;case "local":case "clientside":oa();a.p.datatype="local";p&&a.p.loadComplete.call(a,"");Aa();na(true,true);ja();break}}}},oa=function(){a.grid.hDiv.loading=
-true;if(!a.p.hiddengrid)switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).show();break;case "block":b("#lui_"+a.p.id).show();b("#load_"+a.p.id).show();break}},ja=function(){a.grid.hDiv.loading=false;switch(a.p.loadui){case "disable":break;case "enable":b("#load_"+a.p.id).hide();break;case "block":b("#lui_"+a.p.id).hide();b("#load_"+a.p.id).hide();break}},Aa=function(){var c=/[\$,%]/g,d=[],e=0,l,n,o,p=a.p.sortorder=="asc"?1:-1,w=false,y;b.each(a.p.colModel,function(r){if(this.index==
-a.p.sortname||this.name==a.p.sortname){if(a.p.lastsort==r)w=true;e=r;l=this.sorttype;return false}});o=l=="float"||l=="number"||l=="currency"?function(r){r=parseFloat(r.replace(c,""));return isNaN(r)?0:r}:l=="int"||l=="integer"?function(r){return J(r.replace(c,""),0)}:l=="date"||l=="datetime"?function(r){return Ba(a.p.colModel[e].datefmt||"Y-m-d",r).getTime()}:b.isFunction(l)?l:function(r){return b.trim(r.toUpperCase())};y=a.p.colModel[e];b.each(a.rows,function(r,v){try{n=b.unformat(b(v).children("td").eq(e),
-{rowId:v.id,colModel:y},e,true)}catch(z){n=b(v).children("td").eq(e).text()}v.sortKey=o(n);d[r]=this});if(a.p.treeGrid)b(a).jqGrid("SortTree",p);else{w?d.reverse():d.sort(function(r,v){if(r.sortKey<v.sortKey)return-p;if(r.sortKey>v.sortKey)return p;return 0});if(d[0]){b("td",d[0]).each(function(r){b(this).css("width",g.headers[r].width+"px")});a.grid.cols=d[0].cells}var s="";if(a.p.altRows)s=a.p.altclass;b.each(d,function(r,v){if(s)r%2==1?b(v).addClass(s):b(v).removeClass(s);b("tbody",a.grid.bDiv).append(v);
-v.sortKey=null})}a.grid.bDiv.scrollTop=0},Ba=function(c,d){var e={m:1,d:1,y:1970,h:0,i:0,s:0},l,n,o;if(d=b.trim(d)){d=d.split(/[\\\/:_;.\t\T\s-]/);c=c.split(/[\\\/:_;.\t\T\s-]/);var p=b.jgrid.formatter.date.monthNames,w=b.jgrid.formatter.date.AmPm,y=function(s,r){if(s===0){if(r==12)r=0}else if(r!=12)r+=12;return r};l=0;for(n=c.length;l<n;l++){if(c[l]=="M"){o=b.inArray(d[l],p);if(o!==-1&&o<12)d[l]=o+1}if(c[l]=="F"){o=b.inArray(d[l],p);if(o!==-1&&o>11)d[l]=o+1-12}if(c[l]=="a"){o=b.inArray(d[l],w);if(o!==
--1&&o<2&&d[l]==w[o]){d[l]=o;e.h=y(d[l],e.h)}}if(c[l]=="A"){o=b.inArray(d[l],w);if(o!==-1&&o>1&&d[l]==w[o]){d[l]=o-2;e.h=y(d[l],e.h)}}e[c[l].toLowerCase()]=parseInt(d[l],10)}e.m=parseInt(e.m,10)-1;c=e.y;if(c>=70&&c<=99)e.y=1900+e.y;else if(c>=0&&c<=69)e.y=2E3+e.y}return new Date(e.y,e.m,e.d,e.h,e.i,e.s,0)};t=function(c,d){var e="",l="<table cellspacing='0' cellpadding='0' border='0' style='table-layout:auto;' class='ui-pg-table'><tbody><tr>",n="",o,p,w,y,s=function(r){var v;if(b.isFunction(a.p.onPaging))v=
-a.p.onPaging.call(a,r);a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];if(v=="stop")return false;return true};c=c.substr(1);o="pg_"+c;p=c+"_left";w=c+"_center";y=c+"_right";b("#"+c).append("<div id='"+o+"' class='ui-pager-control' role='group'><table cellspacing='0' cellpadding='0' border='0' class='ui-pg-table' style='width:100%;table-layout:fixed;' role='row'><tbody><tr><td id='"+p+"' align='left'></td><td id='"+
-w+"' align='center' style='white-space:pre;'></td><td id='"+y+"' align='right'></td></tr></tbody></table></div>").attr("dir","ltr");if(a.p.rowList.length>0){n="<td dir='"+m+"'>";n+="<select class='ui-pg-selbox' role='listbox'>";for(p=0;p<a.p.rowList.length;p++)n+="<option role='option' value='"+a.p.rowList[p]+"'"+(a.p.rowNum==a.p.rowList[p]?" selected":"")+">"+a.p.rowList[p]+"</option>";n+="</select></td>"}if(m=="rtl")l+=n;if(a.p.pginput===true)e="<td dir='"+m+"'>"+b.jgrid.format(a.p.pgtext||"","<input class='ui-pg-input' type='text' size='2' maxlength='7' value='0' role='textbox'/>",
-"<span id='sp_1'></span>")+"</td>";if(a.p.pgbuttons===true){p=["first"+d,"prev"+d,"next"+d,"last"+d];m=="rtl"&&p.reverse();l+="<td id='"+p[0]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-first'></span></td>";l+="<td id='"+p[1]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-prev'></span></td>";l+=e!=""?"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>"+e+"<td class='ui-pg-button ui-state-disabled' style='width:4px;'><span class='ui-separator'></span></td>":
-"";l+="<td id='"+p[2]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-next'></span></td>";l+="<td id='"+p[3]+"' class='ui-pg-button ui-corner-all'><span class='ui-icon ui-icon-seek-end'></span></td>"}else if(e!="")l+=e;if(m=="ltr")l+=n;l+="</tr></tbody></table>";a.p.viewrecords===true&&b("td#"+c+"_"+a.p.recordpos,"#"+o).append("<div dir='"+m+"' style='text-align:"+a.p.recordpos+"' class='ui-paging-info'></div>");b("td#"+c+"_"+a.p.pagerpos,"#"+o).append(l);n=b(".ui-jqgrid").css("font-size")||
-"11px";b("body").append("<div id='testpg' class='ui-jqgrid ui-widget ui-widget-content' style='font-size:"+n+";visibility:hidden;' ></div>");l=b(l).clone().appendTo("#testpg").width();b("#testpg").remove();if(l>0){if(e!="")l+=50;b("td#"+c+"_"+a.p.pagerpos,"#"+o).width(l)}a.p._nvtd=[];a.p._nvtd[0]=l?Math.floor((a.p.width-l)/2):Math.floor(a.p.width/3);a.p._nvtd[1]=0;l=null;b(".ui-pg-selbox","#"+o).bind("change",function(){a.p.page=Math.round(a.p.rowNum*(a.p.page-1)/this.value-0.5)+1;a.p.rowNum=this.value;
-if(d)b(".ui-pg-selbox",a.p.pager).val(this.value);else a.p.toppager&&b(".ui-pg-selbox",a.p.toppager).val(this.value);if(!s("records"))return false;Y();return false});if(a.p.pgbuttons===true){b(".ui-pg-button","#"+o).hover(function(){if(b(this).hasClass("ui-state-disabled"))this.style.cursor="default";else{b(this).addClass("ui-state-hover");this.style.cursor="pointer"}},function(){if(!b(this).hasClass("ui-state-disabled")){b(this).removeClass("ui-state-hover");this.style.cursor="default"}});b("#first"+
-d+", #prev"+d+", #next"+d+", #last"+d,"#"+c).click(function(){var r=J(a.p.page,1),v=J(a.p.lastpage,1),z=false,D=true,N=true,L=true,P=true;if(v===0||v===1)P=L=N=D=false;else if(v>1&&r>=1)if(r===1)N=D=false;else{if(!(r>1&&r<v))if(r===v)P=L=false}else if(v>1&&r===0){P=L=false;r=v-1}if(this.id==="first"+d&&D){a.p.page=1;z=true}if(this.id==="prev"+d&&N){a.p.page=r-1;z=true}if(this.id==="next"+d&&L){a.p.page=r+1;z=true}if(this.id==="last"+d&&P){a.p.page=v;z=true}if(z){if(!s(this.id))return false;Y()}return false})}a.p.pginput===
-true&&b("input.ui-pg-input","#"+o).keypress(function(r){if((r.charCode?r.charCode:r.keyCode?r.keyCode:0)==13){a.p.page=b(this).val()>0?b(this).val():a.p.page;if(!s("user"))return false;Y();return false}return this})};var xa=function(c,d,e,l){if(a.p.colModel[d].sortable)if(!(a.p.savedRow.length>0)){if(!e){if(a.p.lastsort==d)if(a.p.sortorder=="asc")a.p.sortorder="desc";else{if(a.p.sortorder=="desc")a.p.sortorder="asc"}else a.p.sortorder=a.p.colModel[d].firstsortorder||"asc";a.p.page=1}if(l)if(a.p.lastsort==
-d&&a.p.sortorder==l&&!e)return;else a.p.sortorder=l;e=b("thead:first",a.grid.hDiv).get(0);b("tr th:eq("+a.p.lastsort+") span.ui-grid-ico-sort",e).addClass("ui-state-disabled");b("tr th:eq("+a.p.lastsort+")",e).attr("aria-selected","false");b("tr th:eq("+d+") span.ui-icon-"+a.p.sortorder,e).removeClass("ui-state-disabled");b("tr th:eq("+d+")",e).attr("aria-selected","true");if(!a.p.viewsortcols[0])if(a.p.lastsort!=d){b("tr th:eq("+a.p.lastsort+") span.s-ico",e).hide();b("tr th:eq("+d+") span.s-ico",
-e).show()}c=c.substring(5);a.p.sortname=a.p.colModel[d].index||c;e=a.p.sortorder;if(b.isFunction(a.p.onSortCol))if(a.p.onSortCol.call(a,c,d,e)=="stop"){a.p.lastsort=d;return}if(a.p.datatype=="local")a.p.deselectAfterSort&&b(a).jqGrid("resetSelection");else{a.p.selrow=null;a.p.multiselect&&b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false);a.p.selarrrow=[];a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}a.p.subGrid&&a.p.datatype=="local"&&b("td.sgexpanded","#"+a.p.id).each(function(){b(this).trigger("click")});
-Y();a.p.lastsort=d;if(a.p.sortname!=c&&d)a.p.lastsort=d}},Ca=function(c){var d=c,e;for(e=c+1;e<a.p.colModel.length;e++)if(a.p.colModel[e].hidden!==true){d=e;break}return d-c},Da=function(c){var d,e={},l=C?0:a.p.cellLayout;for(d=e[0]=e[1]=e[2]=0;d<=c;d++)if(a.p.colModel[d].hidden===false)e[0]+=a.p.colModel[d].width+l;if(a.p.direction=="rtl")e[0]=a.p.width-e[0];e[0]-=a.grid.bDiv.scrollLeft;if(b(a.grid.cDiv).is(":visible"))e[1]+=b(a.grid.cDiv).height()+parseInt(b(a.grid.cDiv).css("padding-top"),10)+
-parseInt(b(a.grid.cDiv).css("padding-bottom"),10);if(a.p.toolbar[0]===true&&(a.p.toolbar[1]=="top"||a.p.toolbar[1]=="both"))e[1]+=b(a.grid.uDiv).height()+parseInt(b(a.grid.uDiv).css("border-top-width"),10)+parseInt(b(a.grid.uDiv).css("border-bottom-width"),10);if(a.p.toppager)e[1]+=b(a.grid.topDiv).height()+parseInt(b(a.grid.topDiv).css("border-bottom-width"),10);e[2]+=b(a.grid.bDiv).height()+b(a.grid.hDiv).height();return e};this.p.id=this.id;if(b.inArray(a.p.multikey,["shiftKey","altKey","ctrlKey"])==
--1)a.p.multikey=false;a.p.keyIndex=false;for(j=0;j<a.p.colModel.length;j++)if(a.p.colModel[j].key===true){a.p.keyIndex=j;break}a.p.sortorder=a.p.sortorder.toLowerCase();if(this.p.treeGrid===true)try{b(this).jqGrid("setTreeGrid")}catch(Ha){}if(this.p.subGrid)try{b(a).jqGrid("setSubGrid")}catch(Ia){}if(this.p.multiselect){this.p.colNames.unshift("<input role='checkbox' id='cb_"+this.p.id+"' class='cbox' type='checkbox'/>");this.p.colModel.unshift({name:"cb",width:C?a.p.multiselectWidth+a.p.cellLayout:
-a.p.multiselectWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}if(this.p.rownumbers){this.p.colNames.unshift("");this.p.colModel.unshift({name:"rn",width:a.p.rownumWidth,sortable:false,resizable:false,hidedlg:true,search:false,align:"center",fixed:true})}a.p.xmlReader=b.extend(true,{root:"rows",row:"row",page:"rows>page",total:"rows>total",records:"rows>records",repeatitems:true,cell:"cell",id:"[id]",userdata:"userdata",subgrid:{root:"rows",row:"row",repeatitems:true,
-cell:"cell"}},a.p.xmlReader);a.p.jsonReader=b.extend(true,{root:"rows",page:"page",total:"total",records:"records",repeatitems:true,cell:"cell",id:"id",userdata:"userdata",subgrid:{root:"rows",repeatitems:true,cell:"cell"}},a.p.jsonReader);if(a.p.scroll){a.p.pgbuttons=false;a.p.pginput=false;a.p.rowList=[]}var H="<thead><tr class='ui-jqgrid-labels' role='rowheader'>",ya,ba,sa,ka,pa,I,A,ea;ba=ea="";if(a.p.shrinkToFit===true&&a.p.forceFit===true)for(j=a.p.colModel.length-1;j>=0;j--)if(!a.p.colModel[j].hidden){a.p.colModel[j].resizable=
-false;break}if(a.p.viewsortcols[1]=="horizontal"){ea=" ui-i-asc";ba=" ui-i-desc"}ya=x?"class='ui-th-div-ie'":"";ea="<span class='s-ico' style='display:none'><span sort='asc' class='ui-grid-ico-sort ui-icon-asc"+ea+" ui-state-disabled ui-icon ui-icon-triangle-1-n ui-sort-"+m+"'></span>";ea+="<span sort='desc' class='ui-grid-ico-sort ui-icon-desc"+ba+" ui-state-disabled ui-icon ui-icon-triangle-1-s ui-sort-"+m+"'></span></span>";for(j=0;j<this.p.colNames.length;j++){ba=a.p.headertitles?' title="'+b.jgrid.stripHtml(a.p.colNames[j])+
-'"':"";H+="<th id='"+a.p.id+"_"+a.p.colModel[j].name+"' role='columnheader' class='ui-state-default ui-th-column ui-th-"+m+"'"+ba+">";ba=a.p.colModel[j].index||a.p.colModel[j].name;H+="<div id='jqgh_"+a.p.colModel[j].name+"' "+ya+">"+a.p.colNames[j];a.p.colModel[j].width=a.p.colModel[j].width?parseInt(a.p.colModel[j].width,10):150;if(typeof a.p.colModel[j].title!=="boolean")a.p.colModel[j].title=true;if(ba==a.p.sortname)a.p.lastsort=j;H+=ea+"</div></th>"}H+="</tr></thead>";b(this).append(H);b("thead tr:first th",
-this).hover(function(){b(this).addClass("ui-state-hover")},function(){b(this).removeClass("ui-state-hover")});if(this.p.multiselect){var ta=[],qa;b("#cb_"+b.jgrid.jqID(a.p.id),this).bind("click",function(){if(this.checked){b("[id^=jqg_]",a.rows).attr("checked",true);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).addClass("ui-state-highlight").attr("aria-selected","true");a.p.selarrrow[c]=a.p.selrow=this.id}});qa=true;ta=[]}else{b("[id^=jqg_]",a.rows).attr("checked",false);b(a.rows).each(function(c){if(!b(this).hasClass("subgrid")){b(this).removeClass("ui-state-highlight").attr("aria-selected",
-"false");ta[c]=this.id}});a.p.selarrrow=[];a.p.selrow=null;qa=false}if(b.isFunction(a.p.onSelectAll))a.p.onSelectAll.call(a,qa?a.p.selarrrow:ta,qa)})}if(a.p.autowidth===true){H=b(K).innerWidth();a.p.width=H>0?H:"nw"}(function(){var c=0,d=a.p.cellLayout,e=0,l,n=a.p.scrollOffset,o,p=false,w,y=0,s=0,r=0,v;if(C)d=0;b.each(a.p.colModel,function(){if(typeof this.hidden==="undefined")this.hidden=false;if(this.hidden===false){c+=J(this.width,0);if(this.fixed){y+=this.width;s+=this.width+d}else e++;r++}});
-if(isNaN(a.p.width))a.p.width=g.width=c;else g.width=a.p.width;a.p.tblwidth=c;if(a.p.shrinkToFit===false&&a.p.forceFit===true)a.p.forceFit=false;if(a.p.shrinkToFit===true&&e>0){w=g.width-d*e-s;if(!isNaN(a.p.height)){w-=n;p=true}c=0;b.each(a.p.colModel,function(z){if(this.hidden===false&&!this.fixed){this.width=o=Math.round(w*this.width/(a.p.tblwidth-y));c+=o;l=z}});v=0;if(p){if(g.width-s-(c+d*e)!==n)v=g.width-s-(c+d*e)-n}else if(!p&&Math.abs(g.width-s-(c+d*e))!==1)v=g.width-s-(c+d*e);a.p.colModel[l].width+=
-v;a.p.tblwidth=c+v+y+r*d;if(a.p.tblwidth>a.p.width){a.p.colModel[l].width-=a.p.tblwidth-parseInt(a.p.width,10);a.p.tblwidth=a.p.width}}})();b(K).css("width",g.width+"px").append("<div class='ui-jqgrid-resize-mark' id='rs_m"+a.p.id+"'>&#160;</div>");b(q).css("width",g.width+"px");H=b("thead:first",a).get(0);var ua="<table role='grid' style='width:"+a.p.tblwidth+"px' class='ui-jqgrid-ftable' cellspacing='0' cellpadding='0' border='0'><tbody><tr role='row' class='ui-widget-content footrow footrow-"+
-m+"'>";q=b("tr:first",H);a.p.disableClick=false;b("th",q).each(function(c){sa=a.p.colModel[c].width;if(typeof a.p.colModel[c].resizable==="undefined")a.p.colModel[c].resizable=true;if(a.p.colModel[c].resizable){ka=document.createElement("span");b(ka).html("&#160;").addClass("ui-jqgrid-resize ui-jqgrid-resize-"+m);b.browser.opera||b(ka).css("cursor","col-resize");b(this).addClass(a.p.resizeclass)}else ka="";b(this).css("width",sa+"px").prepend(ka);a.p.colModel[c].hidden&&b(this).css("display","none");
-g.headers[c]={width:sa,el:this};pa=a.p.colModel[c].sortable;if(typeof pa!=="boolean")pa=a.p.colModel[c].sortable=true;var d=a.p.colModel[c].name;d=="cb"||d=="subgrid"||d=="rn"||a.p.viewsortcols[2]&&b("div",this).addClass("ui-jqgrid-sortable");if(pa)if(a.p.viewsortcols[0]){b("div span.s-ico",this).show();c==a.p.lastsort&&b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}else if(c==a.p.lastsort){b("div span.s-ico",this).show();b("div span.ui-icon-"+a.p.sortorder,this).removeClass("ui-state-disabled")}ua+=
-"<td role='gridcell' "+F(c,0,"")+">&#160;</td>"}).mousedown(function(c){if(b(c.target).closest("th>span.ui-jqgrid-resize").length==1){var d=b.jgrid.getCellIndex(this);if(a.p.forceFit===true)a.p.nv=Ca(d);g.dragStart(d,c,Da(d));return false}}).click(function(c){if(a.p.disableClick)return a.p.disableClick=false;var d="th>div.ui-jqgrid-sortable",e,l;a.p.viewsortcols[2]||(d="th>div>span>span.ui-grid-ico-sort");c=b(c.target).closest(d);if(c.length==1){d=b.jgrid.getCellIndex(this);if(!a.p.viewsortcols[2]){e=
-true;l=c.attr("sort")}xa(b("div",this)[0].id,d,e,l);return false}});if(a.p.sortable&&b.fn.sortable)try{b(a).jqGrid("sortableColumns",q)}catch(Ja){}ua+="</tr></tbody></table>";this.appendChild(document.createElement("tbody"));b(this).addClass("ui-jqgrid-btable");q=b("<table class='ui-jqgrid-htable' style='width:"+a.p.tblwidth+"px' role='grid' aria-labelledby='gbox_"+this.id+"' cellspacing='0' cellpadding='0' border='0'></table>").append(H);var T=a.p.caption&&a.p.hiddengrid===true?true:false;H=b("<div class='ui-jqgrid-hbox"+
-(m=="rtl"?"-rtl":"")+"'></div>");g.hDiv=document.createElement("div");b(g.hDiv).css({width:g.width+"px"}).addClass("ui-state-default ui-jqgrid-hdiv").append(H);b(H).append(q);T&&b(g.hDiv).hide();if(a.p.pager){if(typeof a.p.pager=="string"){if(a.p.pager.substr(0,1)!="#")a.p.pager="#"+a.p.pager}else a.p.pager="#"+b(a.p.pager).attr("id");b(a.p.pager).css({width:g.width+"px"}).appendTo(K).addClass("ui-state-default ui-jqgrid-pager ui-corner-bottom");T&&b(a.p.pager).hide();t(a.p.pager,"")}a.p.cellEdit===
-false&&a.p.hoverrows===true&&b(a).bind("mouseover",function(c){A=b(c.target).closest("tr.jqgrow");b(A).attr("class")!=="subgrid"&&b(A).addClass("ui-state-hover");return false}).bind("mouseout",function(c){A=b(c.target).closest("tr.jqgrow");b(A).removeClass("ui-state-hover");return false});var Z,$;b(a).before(g.hDiv).click(function(c){I=c.target;var d=b(I).hasClass("cbox");A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return this;var e=true;if(b.isFunction(a.p.beforeSelectRow))e=a.p.beforeSelectRow.call(a,
-A[0].id,c);if(I.tagName=="A"||(I.tagName=="INPUT"||I.tagName=="TEXTAREA"||I.tagName=="OPTION"||I.tagName=="SELECT")&&!d)return this;if(e===true){if(a.p.cellEdit===true)if(a.p.multiselect&&d)b(a).jqGrid("setSelection",A[0].id,true);else{Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);try{b(a).jqGrid("editCell",Z,$,true)}catch(l){}}else if(a.p.multikey)if(c[a.p.multikey])b(a).jqGrid("setSelection",A[0].id,true);else{if(a.p.multiselect&&d){d=b("[id^=jqg_]",A).attr("checked");b("[id^=jqg_]",A).attr("checked",
-!d)}}else{if(a.p.multiselect&&a.p.multiboxonly)if(!d){b(a.p.selarrrow).each(function(n,o){n=a.rows.namedItem(o);b(n).removeClass("ui-state-highlight");b("#jqg_"+b.jgrid.jqID(o),n).attr("checked",false)});a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}b(a).jqGrid("setSelection",A[0].id,true)}if(b.isFunction(a.p.onCellSelect)){Z=A[0].id;$=b.jgrid.getCellIndex(I);a.p.onCellSelect.call(a,Z,$,b(I).html(),c)}c.stopPropagation()}else return this}).bind("reloadGrid",function(c,
-d){if(a.p.treeGrid===true)a.p.datatype=a.p.treedatatype;d&&d.current&&a.grid.selectionPreserver(a);if(a.p.datatype=="local")b(a).jqGrid("resetSelection");else if(!a.p.treeGrid){a.p.selrow=null;if(a.p.multiselect){a.p.selarrrow=[];b("#cb_"+b.jgrid.jqID(a.p.id),a.grid.hDiv).attr("checked",false)}a.p.savedRow=[];a.p.scroll&&aa(a.grid.bDiv,true)}if(d&&d.page){c=d.page;if(c>a.p.lastpage)c=a.p.lastpage;if(c<1)c=1;a.p.page=c;a.grid.bDiv.scrollTop=a.grid.prevRowHeight?(c-1)*a.grid.prevRowHeight*a.p.rowNum:
-0}if(a.grid.prevRowHeight&&a.p.scroll){delete a.p.lastpage;a.grid.populateVisible()}else a.grid.populate();return false});b.isFunction(this.p.ondblClickRow)&&b(this).dblclick(function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===0)return false;Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.ondblClickRow.call(a,b(A).attr("id"),Z,$,c);return false});b.isFunction(this.p.onRightClickRow)&&b(this).bind("contextmenu",function(c){I=c.target;A=b(I,a.rows).closest("tr.jqgrow");if(b(A).length===
-0)return false;a.p.multiselect||b(a).jqGrid("setSelection",A[0].id,true);Z=A[0].rowIndex;$=b.jgrid.getCellIndex(I);a.p.onRightClickRow.call(a,b(A).attr("id"),Z,$,c);return false});g.bDiv=document.createElement("div");b(g.bDiv).append(b('<div style="position:relative;'+(x&&b.browser.version<8?"height:0.01%;":"")+'"></div>').append("<div></div>").append(this)).addClass("ui-jqgrid-bdiv").css({height:a.p.height+(isNaN(a.p.height)?"":"px"),width:g.width+"px"}).scroll(g.scrollGrid);b("table:first",g.bDiv).css({width:a.p.tblwidth+
-"px"});if(x){b("tbody",this).size()==2&&b("tbody:first",this).remove();a.p.multikey&&b(g.bDiv).bind("selectstart",function(){return false})}else a.p.multikey&&b(g.bDiv).bind("mousedown",function(){return false});T&&b(g.bDiv).hide();g.cDiv=document.createElement("div");var va=a.p.hidegrid===true?b("<a role='link' href='javascript:void(0)'/>").addClass("ui-jqgrid-titlebar-close HeaderButton").hover(function(){va.addClass("ui-state-hover")},function(){va.removeClass("ui-state-hover")}).append("<span class='ui-icon ui-icon-circle-triangle-n'></span>").css(m==
-"rtl"?"left":"right","0px"):"";b(g.cDiv).append(va).append("<span class='ui-jqgrid-title"+(m=="rtl"?"-rtl":"")+"'>"+a.p.caption+"</span>").addClass("ui-jqgrid-titlebar ui-widget-header ui-corner-top ui-helper-clearfix");b(g.cDiv).insertBefore(g.hDiv);if(a.p.toolbar[0]){g.uDiv=document.createElement("div");if(a.p.toolbar[1]=="top")b(g.uDiv).insertBefore(g.hDiv);else a.p.toolbar[1]=="bottom"&&b(g.uDiv).insertAfter(g.hDiv);if(a.p.toolbar[1]=="both"){g.ubDiv=document.createElement("div");b(g.uDiv).insertBefore(g.hDiv).addClass("ui-userdata ui-state-default").attr("id",
-"t_"+this.id);b(g.ubDiv).insertAfter(g.hDiv).addClass("ui-userdata ui-state-default").attr("id","tb_"+this.id);T&&b(g.ubDiv).hide()}else b(g.uDiv).width(g.width).addClass("ui-userdata ui-state-default").attr("id","t_"+this.id);T&&b(g.uDiv).hide()}if(a.p.toppager){a.p.toppager=a.p.id+"_toppager";g.topDiv=b("<div id='"+a.p.toppager+"'></div>")[0];a.p.toppager="#"+a.p.toppager;b(g.topDiv).insertBefore(g.hDiv).addClass("ui-state-default ui-jqgrid-toppager").width(g.width);t(a.p.toppager,"_t")}if(a.p.footerrow){g.sDiv=
-b("<div class='ui-jqgrid-sdiv'></div>")[0];H=b("<div class='ui-jqgrid-hbox"+(m=="rtl"?"-rtl":"")+"'></div>");b(g.sDiv).append(H).insertAfter(g.hDiv).width(g.width);b(H).append(ua);g.footers=b(".ui-jqgrid-ftable",g.sDiv)[0].rows[0].cells;if(a.p.rownumbers)g.footers[0].className="ui-state-default jqgrid-rownum";T&&b(g.sDiv).hide()}if(a.p.caption){var Ea=a.p.datatype;if(a.p.hidegrid===true){b(".ui-jqgrid-titlebar-close",g.cDiv).click(function(c){var d=b.isFunction(a.p.onHeaderClick);if(a.p.gridstate==
-"visible"){b(".ui-jqgrid-bdiv, .ui-jqgrid-hdiv","#gview_"+a.p.id).slideUp("fast");a.p.pager&&b(a.p.pager).slideUp("fast");a.p.toppager&&b(a.p.toppager).slideUp("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideUp("fast");b(g.uDiv).slideUp("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideUp("fast");b("span",this).removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s");a.p.gridstate="hidden";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&
-b(".ui-resizable-handle","#gbox_"+a.p.id).hide();if(d)T||a.p.onHeaderClick.call(a,a.p.gridstate,c)}else if(a.p.gridstate=="hidden"){b(".ui-jqgrid-hdiv, .ui-jqgrid-bdiv","#gview_"+a.p.id).slideDown("fast");a.p.pager&&b(a.p.pager).slideDown("fast");a.p.toppager&&b(a.p.toppager).slideDown("fast");if(a.p.toolbar[0]===true){a.p.toolbar[1]=="both"&&b(g.ubDiv).slideDown("fast");b(g.uDiv).slideDown("fast")}a.p.footerrow&&b(".ui-jqgrid-sdiv","#gbox_"+a.p.id).slideDown("fast");b("span",this).removeClass("ui-icon-circle-triangle-s").addClass("ui-icon-circle-triangle-n");
-if(T){a.p.datatype=Ea;Y();T=false}a.p.gridstate="visible";b("#gbox_"+a.p.id).hasClass("ui-resizable")&&b(".ui-resizable-handle","#gbox_"+a.p.id).show();d&&a.p.onHeaderClick.call(a,a.p.gridstate,c)}return false});if(T){a.p.datatype="local";b(".ui-jqgrid-titlebar-close",g.cDiv).trigger("click")}}}else b(g.cDiv).hide();b(g.hDiv).after(g.bDiv).mousemove(function(c){if(g.resizing){g.dragMove(c);return false}});b(".ui-jqgrid-labels",g.hDiv).bind("selectstart",function(){return false});b(document).mouseup(function(){if(g.resizing){g.dragEnd();
-return false}return true});this.updateColumns=function(){var c=this.rows[0],d=this;if(c){b("td",c).each(function(e){b(this).css("width",d.grid.headers[e].width+"px")});this.grid.cols=c.cells}return this};a.formatCol=F;a.sortData=xa;a.updatepager=na;a.formatter=function(c,d,e,l,n){return M(c,d,e,l,n)};b.extend(g,{populate:Y,emptyRows:aa});this.grid=g;a.addXmlData=function(c){ia(c,a.grid.bDiv)};a.addJSONData=function(c){ra(c,a.grid.bDiv)};Y();a.p.hiddengrid=false;b(window).unload(function(){a=null})}}})};
-b.jgrid.extend({getGridParam:function(f){var k=this[0];if(k.grid)return f?typeof k.p[f]!="undefined"?k.p[f]:null:k.p},setGridParam:function(f){return this.each(function(){this.grid&&typeof f==="object"&&b.extend(true,this.p,f)})},getDataIDs:function(){var f=[],k=0,i;this.each(function(){if((i=this.rows.length)&&i>0)for(;k<i;){f[k]=this.rows[k].id;k++}});return f},setSelection:function(f,k){return this.each(function(){function i(a){var q=b(h.grid.bDiv)[0].clientHeight,t=b(h.grid.bDiv)[0].scrollTop,
-x=h.rows[a].offsetTop;a=h.rows[a].clientHeight;if(x+a>=q+t)b(h.grid.bDiv)[0].scrollTop=x-(q+t)+a+t;else if(x<q+t)if(x<t)b(h.grid.bDiv)[0].scrollTop=x}var h=this,g,j,m;if(f!==undefined){k=k===false?false:true;if(j=h.rows.namedItem(f+"")){if(h.p.scrollrows===true){g=h.rows.namedItem(f).rowIndex;g>=0&&i(g)}if(h.p.multiselect){h.p.selrow=j.id;m=b.inArray(h.p.selrow,h.p.selarrrow);if(m===-1){j.className!=="ui-subgrid"&&b(j).addClass("ui-state-highlight").attr("aria-selected","true");g=true;b("#jqg_"+b.jgrid.jqID(h.p.selrow),
-h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.push(h.p.selrow);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g)}else{j.className!=="ui-subgrid"&&b(j).removeClass("ui-state-highlight").attr("aria-selected","false");g=false;b("#jqg_"+b.jgrid.jqID(h.p.selrow),h.rows[j.rowIndex]).attr("checked",g);h.p.selarrrow.splice(m,1);h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,g);j=h.p.selarrrow[0];h.p.selrow=j===undefined?null:j}}else if(j.className!=="ui-subgrid"){h.p.selrow&&b(h.rows.namedItem(h.p.selrow)).removeClass("ui-state-highlight").attr("aria-selected",
-"false");h.p.selrow=j.id;b(j).addClass("ui-state-highlight").attr("aria-selected","true");h.p.onSelectRow&&k&&h.p.onSelectRow.call(h,h.p.selrow,true)}}}})},resetSelection:function(){return this.each(function(){var f=this,k;if(f.p.multiselect){b(f.p.selarrrow).each(function(i,h){k=f.rows.namedItem(h);b(k).removeClass("ui-state-highlight").attr("aria-selected","false");b("#jqg_"+b.jgrid.jqID(h),k).attr("checked",false)});b("#cb_"+b.jgrid.jqID(f.p.id),f.grid.hDiv).attr("checked",false);f.p.selarrrow=
-[]}else if(f.p.selrow){b("tr#"+b.jgrid.jqID(f.p.selrow),f.grid.bDiv).removeClass("ui-state-highlight").attr("aria-selected","false");f.p.selrow=null}f.p.savedRow=[]})},getRowData:function(f){var k={},i,h=false,g,j=0;this.each(function(){var m=this,a,q;if(typeof f=="undefined"){h=true;i=[];g=m.rows.length}else{q=m.rows.namedItem(f);if(!q)return k;g=1}for(;j<g;){if(h)q=m.rows[j];b("td",q).each(function(t){a=m.p.colModel[t].name;if(a!=="cb"&&a!=="subgrid")if(m.p.treeGrid===true&&a==m.p.ExpandColumn)k[a]=
-b.jgrid.htmlDecode(b("span:first",this).html());else try{k[a]=b.unformat(this,{rowId:q.id,colModel:m.p.colModel[t]},t)}catch(x){k[a]=b.jgrid.htmlDecode(b(this).html())}});j++;if(h){i.push(k);k={}}}});return i?i:k},delRowData:function(f){var k=false,i,h,g;this.each(function(){var j=this;if(i=j.rows.namedItem(f)){g=i.rowIndex;b(i).remove();j.p.records--;j.p.reccount--;j.updatepager(true,false);k=true;if(j.p.multiselect){h=b.inArray(f,j.p.selarrrow);h!=-1&&j.p.selarrrow.splice(h,1)}if(f==j.p.selrow)j.p.selrow=
-null}else return false;g===0&&k&&j.updateColumns();if(j.p.altRows===true&&k){var m=j.p.altclass;b(j.rows).each(function(a){a%2==1?b(this).addClass(m):b(this).removeClass(m)})}});return k},setRowData:function(f,k,i){var h,g=false,j;this.each(function(){var m=this,a,q,t=typeof i;if(!m.grid)return false;q=m.rows.namedItem(f);if(!q)return false;k&&b(this.p.colModel).each(function(x){h=this.name;if(k[h]!==undefined){a=m.formatter(f,k[h],x,k,"edit");j=this.title?{title:b.jgrid.stripHtml(a)}:{};m.p.treeGrid===
-true&&h==m.p.ExpandColumn?b("td:eq("+x+") > span:first",q).html(a).attr(j):b("td:eq("+x+")",q).html(a).attr(j);g=true}});if(t==="string")b(q).addClass(i);else t==="object"&&b(q).css(i)});return g},addRowData:function(f,k,i,h){i||(i="last");var g=false,j,m,a,q,t,x,C,K,J="",F,Q,M,R;if(k){if(b.isArray(k)){F=true;i="last";Q=f}else{k=[k];F=false}this.each(function(){var u=this,la=k.length;t=u.p.rownumbers===true?1:0;a=u.p.multiselect===true?1:0;q=u.p.subGrid===true?1:0;if(!F)if(typeof f!="undefined")f+=
-"";else{f=u.p.records+1+"";if(u.p.keyIndex!==false){Q=u.p.colModel[u.p.keyIndex+a+q+t].name;if(typeof k[0][Q]!="undefined")f=k[0][Q]}}M=u.p.altclass;for(var ca=0,fa="",aa=b.isFunction(u.p.afterInsertRow)?true:false;ca<la;){R=k[ca];m="";if(F){try{f=R[Q]}catch(U){f=u.p.records+1}fa=u.p.altRows===true?(u.rows.length-1)%2===0?M:"":""}if(t){J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_rn" class="ui-state-default jqgrid-rownum" '+J+">0</td>"}if(a){K='<input role="checkbox" type="checkbox" id="jqg_'+
-f+'" class="cbox"/>';J=u.formatCol(t,1,"");m+='<td role="gridcell" aria-describedby="'+u.p.id+'_cb" '+J+">"+K+"</td>"}if(q)m+=b(u).jqGrid("addSubGridCell",a+t,1);for(C=a+q+t;C<this.p.colModel.length;C++){j=this.p.colModel[C].name;K=u.formatter(f,R[j],C,R,"add");J=u.formatCol(C,1,K);m+='<td role="gridcell" aria-describedby="'+u.p.id+"_"+j+'" '+J+">"+K+"</td>"}m='<tr id="'+f+'" role="row" class="ui-widget-content jqgrow ui-row-'+u.p.direction+" "+fa+'">'+m+"</tr>";if(u.p.subGrid===true){m=b(m)[0];b(u).jqGrid("addSubGrid",
-m,a+t)}if(u.rows.length===0)b("table:first",u.grid.bDiv).append(m);else switch(i){case "last":b(u.rows[u.rows.length-1]).after(m);break;case "first":b(u.rows[0]).before(m);break;case "after":if(x=u.rows.namedItem(h))b(u.rows[x.rowIndex+1]).hasClass("ui-subgrid")?b(u.rows[x.rowIndex+1]).after(m):b(x).after(m);break;case "before":if(x=u.rows.namedItem(h)){b(x).before(m);x=x.rowIndex}break}u.p.records++;u.p.reccount++;if(!u.grid.cols||!u.grid.cols.length)u.grid.cols=u.rows[0].cells;if(i==="first"||i===
-"before"&&x<=1||u.rows.length===1)u.updateColumns();aa&&u.p.afterInsertRow.call(u,f,R,R);ca++}if(u.p.altRows===true&&!F)if(i=="last")(u.rows.length-1)%2==1&&b(u.rows[u.rows.length-1]).addClass(M);else b(u.rows).each(function(ia){ia%2==1?b(this).addClass(M):b(this).removeClass(M)});u.updatepager(true,true);g=true})}return g},footerData:function(f,k,i){function h(q){for(var t in q)if(q.hasOwnProperty(t))return false;return true}var g,j=false,m={},a;if(typeof f=="undefined")f="get";if(typeof i!="boolean")i=
-true;f=f.toLowerCase();this.each(function(){var q=this,t;if(!q.grid||!q.p.footerrow)return false;if(f=="set")if(h(k))return false;j=true;b(this.p.colModel).each(function(x){g=this.name;if(f=="set"){if(k[g]!==undefined){t=i?q.formatter("",k[g],x,k,"edit"):k[g];a=this.title?{title:b.jgrid.stripHtml(t)}:{};b("tr.footrow td:eq("+x+")",q.grid.sDiv).html(t).attr(a);j=true}}else if(f=="get")m[g]=b("tr.footrow td:eq("+x+")",q.grid.sDiv).html()})});return f=="get"?m:j},ShowHideCol:function(f,k){return this.each(function(){var i=
-this,h=false;if(i.grid){if(typeof f==="string")f=[f];k=k!="none"?"":"none";var g=k==""?true:false;b(this.p.colModel).each(function(j){if(b.inArray(this.name,f)!==-1&&this.hidden===g){b("tr",i.grid.hDiv).each(function(){b("th:eq("+j+")",this).css("display",k)});b(i.rows).each(function(m){b("td:eq("+j+")",i.rows[m]).css("display",k)});i.p.footerrow&&b("td:eq("+j+")",i.grid.sDiv).css("display",k);if(k=="none")i.p.tblwidth-=this.width;else i.p.tblwidth+=this.width;this.hidden=!g;h=true}});if(h===true){b("table:first",
-i.grid.hDiv).width(i.p.tblwidth);b("table:first",i.grid.bDiv).width(i.p.tblwidth);i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){b("table:first",i.grid.sDiv).width(i.p.tblwidth);i.grid.sDiv.scrollLeft=i.grid.bDiv.scrollLeft}}}})},hideCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"none")})},showCol:function(f){return this.each(function(){b(this).jqGrid("ShowHideCol",f,"")})},remapColumns:function(f,k,i){function h(m){var a;a=m.length?b.makeArray(m):b.extend({},
-m);b.each(f,function(q){m[q]=a[this]})}function g(m,a){b(">tr"+(a||""),m).each(function(){var q=this,t=b.makeArray(q.cells);b.each(f,function(){var x=t[this];x&&q.appendChild(x)})})}var j=this.get(0);h(j.p.colModel);h(j.p.colNames);h(j.grid.headers);g(b("thead:first",j.grid.hDiv),i&&":not(.ui-jqgrid-labels)");k&&g(b("tbody:first",j.grid.bDiv),".jqgrow");j.p.footerrow&&g(b("tbody:first",j.grid.sDiv));if(j.p.remapColumns)if(j.p.remapColumns.length)h(j.p.remapColumns);else j.p.remapColumns=b.makeArray(f);
-j.p.lastsort=b.inArray(j.p.lastsort,f);if(j.p.treeGrid)j.p.expColInd=b.inArray(j.p.expColInd,f)},setGridWidth:function(f,k){return this.each(function(){var i=this,h,g=0,j=i.p.cellLayout,m,a=0,q=false,t=i.p.scrollOffset,x,C=0,K=0,J=0,F;if(i.grid){if(typeof k!="boolean")k=i.p.shrinkToFit;if(!isNaN(f)){f=parseInt(f,10);i.grid.width=i.p.width=f;b("#gbox_"+i.p.id).css("width",f+"px");b("#gview_"+i.p.id).css("width",f+"px");b(i.grid.bDiv).css("width",f+"px");b(i.grid.hDiv).css("width",f+"px");i.p.pager&&
-b(i.p.pager).css("width",f+"px");i.p.toppager&&b(i.p.toppager).css("width",f+"px");if(i.p.toolbar[0]===true){b(i.grid.uDiv).css("width",f+"px");i.p.toolbar[1]=="both"&&b(i.grid.ubDiv).css("width",f+"px")}i.p.footerrow&&b(i.grid.sDiv).css("width",f+"px");if(k===false&&i.p.forceFit===true)i.p.forceFit=false;if(k===true){if(b.browser.safari)j=0;b.each(i.p.colModel,function(){if(this.hidden===false){g+=parseInt(this.width,10);if(this.fixed){K+=this.width;C+=this.width+j}else a++;J++}});if(a!==0){i.p.tblwidth=
-g;x=f-j*a-C;if(!isNaN(i.p.height))if(b(i.grid.bDiv)[0].clientHeight<b(i.grid.bDiv)[0].scrollHeight){q=true;x-=t}g=0;var Q=i.grid.cols.length>0;b.each(i.p.colModel,function(M){if(this.hidden===false&&!this.fixed){h=Math.round(x*this.width/(i.p.tblwidth-K));if(!(h<0)){this.width=h;g+=h;i.grid.headers[M].width=h;i.grid.headers[M].el.style.width=h+"px";if(i.p.footerrow)i.grid.footers[M].style.width=h+"px";if(Q)i.grid.cols[M].style.width=h+"px";m=M}}});F=0;if(q){if(f-C-(g+j*a)!==t)F=f-C-(g+j*a)-t}else if(Math.abs(f-
-C-(g+j*a))!==1)F=f-C-(g+j*a);i.p.colModel[m].width+=F;i.p.tblwidth=g+F+K+j*J;if(i.p.tblwidth>f){q=i.p.tblwidth-parseInt(f,10);i.p.tblwidth=f;h=i.p.colModel[m].width-=q}else h=i.p.colModel[m].width;i.grid.headers[m].width=h;i.grid.headers[m].el.style.width=h+"px";if(Q)i.grid.cols[m].style.width=h+"px";b("table:first",i.grid.bDiv).css("width",i.p.tblwidth+"px");b("table:first",i.grid.hDiv).css("width",i.p.tblwidth+"px");i.grid.hDiv.scrollLeft=i.grid.bDiv.scrollLeft;if(i.p.footerrow){i.grid.footers[m].style.width=
-h+"px";b("table:first",i.grid.sDiv).css("width",i.p.tblwidth+"px")}}}}}})},setGridHeight:function(f){return this.each(function(){var k=this;if(k.grid){b(k.grid.bDiv).css({height:f+(isNaN(f)?"":"px")});k.p.height=f;k.p.scroll&&k.grid.populateVisible()}})},setCaption:function(f){return this.each(function(){this.p.caption=f;b("span.ui-jqgrid-title",this.grid.cDiv).html(f);b(this.grid.cDiv).show()})},setLabel:function(f,k,i,h){return this.each(function(){var g=this,j=-1;if(g.grid){if(isNaN(f))b(g.p.colModel).each(function(q){if(this.name==
-f){j=q;return false}});else j=parseInt(f,10);if(j>=0){var m=b("tr.ui-jqgrid-labels th:eq("+j+")",g.grid.hDiv);if(k){var a=b(".s-ico",m);b("[id^=jqgh_]",m).empty().html(k).append(a);g.p.colNames[j]=k}if(i)typeof i==="string"?b(m).addClass(i):b(m).css(i);typeof h==="object"&&b(m).attr(h)}}})},setCell:function(f,k,i,h,g,j){return this.each(function(){var m=this,a=-1,q,t;if(m.grid){if(isNaN(k))b(m.p.colModel).each(function(C){if(this.name==k){a=C;return false}});else a=parseInt(k,10);if(a>=0)if(q=m.rows.namedItem(f)){var x=
-b("td:eq("+a+")",q);if(i!==""||j===true){q=m.formatter(f,i,a,q,"edit");t=m.p.colModel[a].title?{title:b.jgrid.stripHtml(q)}:{};m.p.treeGrid&&b(".tree-wrap",b(x)).length>0?b("span",b(x)).html(q).attr(t):b(x).html(q).attr(t)}if(typeof h==="string")b(x).addClass(h);else h&&b(x).css(h);typeof g==="object"&&b(x).attr(g)}}})},getCell:function(f,k){var i=false;this.each(function(){var h=this,g=-1;if(h.grid){if(isNaN(k))b(h.p.colModel).each(function(a){if(this.name===k){g=a;return false}});else g=parseInt(k,
-10);if(g>=0){var j=h.rows.namedItem(f);if(j)try{i=b.unformat(b("td:eq("+g+")",j),{rowId:j.id,colModel:h.p.colModel[g]},g)}catch(m){i=b.jgrid.htmlDecode(b("td:eq("+g+")",j).html())}}}});return i},getCol:function(f,k,i){var h=[],g,j=0;k=typeof k!="boolean"?false:k;if(typeof i=="undefined")i=false;this.each(function(){var m=this,a=-1;if(m.grid){if(isNaN(f))b(m.p.colModel).each(function(C){if(this.name===f){a=C;return false}});else a=parseInt(f,10);if(a>=0){var q=m.rows.length,t=0;if(q&&q>0){for(;t<q;){try{g=
-b.unformat(b(m.rows[t].cells[a]),{rowId:m.rows[t].id,colModel:m.p.colModel[a]},a)}catch(x){g=b.jgrid.htmlDecode(m.rows[t].cells[a].innerHTML)}if(i)j+=parseFloat(g);else if(k)h.push({id:m.rows[t].id,value:g});else h[t]=g;t++}if(i)switch(i.toLowerCase()){case "sum":h=j;break;case "avg":h=j/q;break;case "count":h=q;break}}}}});return h},clearGridData:function(f){return this.each(function(){var k=this;if(k.grid){if(typeof f!="boolean")f=false;b("tbody:first tr",k.grid.bDiv).remove();k.p.footerrow&&f&&
-b(".ui-jqgrid-ftable td",k.grid.sDiv).html("&#160;");k.p.selrow=null;k.p.selarrrow=[];k.p.savedRow=[];k.p.records=0;k.p.page="0";k.p.lastpage="0";k.p.reccount=0;k.updatepager(true,false)}})},getInd:function(f,k){var i=false,h;this.each(function(){if(h=this.rows.namedItem(f))i=k===true?h:h.rowIndex});return i}})})(jQuery);

Property changes on: controlies/branches/web2py/applications/controlies/static/js/jquery/jdgrid/jquery.jqGrid.min.js
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.dropdown.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.dropdown.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/jquery/jquery.dropdown.js	(nonexistent)
@@ -1,19 +0,0 @@
-$(document).ready(function(){
-
-	$("ul.dropdown li").dropdown();
-
-});
-
-$.fn.dropdown = function() {
-
-	$(this).hover(function(){
-		$(this).addClass("hover");
-		$('> .dir',this).addClass("open");
-		$('ul:first',this).css('visibility', 'visible');
-	},function(){
-		$(this).removeClass("hover");
-		$('.open',this).removeClass("open");
-		$('ul:first',this).css('visibility', 'hidden');
-	});
-
-}
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.css	(nonexistent)
@@ -1,19 +0,0 @@
-/* 
-		This stylesheet belongs to TextboxList - Copyright Guillermo Rauch <http://devthought.com> 2009 
-		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/> 
-		Purchase to remove copyright
-*/
-
-.textboxlist-autocomplete { position: absolute; }
-.textboxlist-autocomplete-placeholder, .textboxlist-autocomplete-results { opacity: 0.9; filter: alpha(opacity=90); background: #eee; -webkit-box-shadow: 0 3px 3px #ccc; -moz-box-shadow: 0 3px 3px #ccc; box-shadow: 0 3px 3px #ccc; border: 1px solid #999; border-top: none; display: none; }
-.textboxlist-autocomplete-placeholder { padding: 5px 7px; }
-.textboxlist-autocomplete-results { margin: 0; padding: 0; }
-.textboxlist-autocomplete-result { margin: 0; padding: 5px; list-style-type: none; background: #fff; }
-.textboxlist-autocomplete-result-focus { background: #C6D9E4; }
-.textboxlist-autocomplete-highlight { background: #54D6F4; font-weight: bold; }
-
-/*  TextboxList.Autocomplete Style guidelines 
-			Try to keep .textboxlist-autocomplete {} as it is now
-			If you apply custom styles to placeholder, also apply them to results, like it is now.
-			.textboxlist-autocomplete-result {} needs a background for IE.
-*/
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.css	(nonexistent)
@@ -1,30 +0,0 @@
-/* 
-		This stylesheet belongs to TextboxList - Copyright Guillermo Rauch <http://devthought.com> 2009 
-		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/> 
-		Purchase to remove copyright
-*/
-
-.textboxlist { font: 11px "Lucida Grande", Verdana; cursor: text; }
-.textboxlist-bits { zoom: 1; overflow: hidden; margin: 0; padding: 3px 4px 0; border: 1px solid #999; *padding-bottom: 3px; }
-.textboxlist-bit { list-style-type: none; float: left; display: block; padding: 0; margin: 0 5px 3px 0; cursor: default; }
-.textboxlist-bit-editable { border: 1px solid #fff; }
-.textboxlist-bit-editable-input { border: 0; padding: 2px 0; *padding-bottom: 0; height: 14px; font: 11px "Lucida Grande", Verdana; }
-.textboxlist-bit-editable-input:focus { outline: 0; }
-.textboxlist-bit-box { position: relative; line-height: 18px; padding: 0 5px; -moz-border-radius: 9px; -webkit-border-radius: 9px; border-radius: 9px; border: 1px solid #E78F08; background: #F6AF39; cursor: default; color:white; font-weight:bold; }
-.textboxlist-bit-box-deletable { padding-right: 15px; }
-.textboxlist-bit-box-deletebutton { position: absolute; right: 4px; top: 6px; display: block; width: 7px; height: 7px; font-size: 1px; background: url('close.gif'); }
-.textboxlist-bit-box-deletebutton:hover { border: none; background-position: 7px; text-decoration: none; }
-.textboxlist-bit-box-hover { background: #BBCEF1; border: 1px solid #6D95E0; }
-.textboxlist-bit-box-focus { border-color: #598BEC; background: #598BEC; color: #fff; }
-.textboxlist-bit-box-focus .textboxlist-bit-box-deletebutton { background-position: bottom; }
-
-/*  TextboxList Style guidelines 
-			This style doesn't necessarily have to be in a separate file. 
-			It's advisable not to set widths and margins from here, but instead apply it to a particular object or class (#id .textboxlist { width: xxx } or .class .textboxlist { width: xxx })
-			The padding-top + padding-left + height of ".textboxlist-bit-editable-input {}" has to match the line-height of ".textboxlist-bit-box {}" for UI consistency. 
-			The font configuration has to be present in .textboxlist and .textboxlist-bit-editable-input (for IE reasons)
-			The *padding-bottom (notice the *) property of .textboxlist-bits {} has to be equal to the margin-bottom of .textboxlist-bit {} for IE reasons.
-			The padding-top of .textboxlist ul {} has to match the margin-bottom of .textboxlist-bit, and the padding-bottom has to be null.
-			Make sure the border-width of the .textboxlist-bit-editable {} is equal to the border-width of the box (a border that matches the background is advisable for the input)
-			Feel free to edit the borders, fonts, backgrounds and radius.		
-*/
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.js	(nonexistent)
@@ -1,234 +0,0 @@
-/*
-Script: TextboxList.Autocomplete.js
-	TextboxList Autocomplete plugin
-
-	Authors:
-		Guillermo Rauch
-	
-	Note:
-		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/>
-		Purchase to remove this message.
-*/
-
-(function(){
-	
-$.TextboxList.Autocomplete = function(textboxlist, _options){
-	
-  var index, prefix, method, container, list, values = [], searchValues = [], results = [], placeholder = false, current, currentInput, hidetimer, doAdd, currentSearch, currentRequest;
-	var options = $.extend(true, {
-		minLength: 1,
-		maxResults: 10,
-		insensitive: true,
-		highlight: true,
-		highlightSelector: null,
-		mouseInteraction: true,
-		onlyFromValues: false,
-		queryRemote: false,
-    remote: {
-			url: '',
-			param: 'search',
-			extraParams: {},
-			loadPlaceholder: 'Por favor espere...'
-    },
-		method: 'standard',
-		placeholder: 'Escribe para obtener resultados'
-	}, _options);
-	
-	var init = function(){
-		textboxlist.addEvent('bitEditableAdd', setupBit)
-			.addEvent('bitEditableFocus', search)
-			.addEvent('bitEditableBlur', hide)
-			.setOptions({bitsOptions: {editable: {addKeys: false, stopEnter: false}}});
-		if ($.browser.msie) textboxlist.setOptions({bitsOptions: {editable: {addOnBlur: false}}});
-		prefix = textboxlist.getOptions().prefix + '-autocomplete';
-		method = $.TextboxList.Autocomplete.Methods[options.method];
-		container = $('<div class="'+ prefix +'" />').width(textboxlist.getContainer().width()).appendTo(textboxlist.getContainer());
-		if (chk(options.placeholder)) placeholder = $('<div class="'+ prefix +'-placeholder" />').html(options.placeholder).appendTo(container);		
-		list = $('<ul class="'+ prefix +'-results" />').appendTo(container).click(function(ev){
-			ev.stopPropagation(); ev.preventDefault();
-		});
-	};
-	
-	var setupBit = function(bit){
-		bit.toElement().keydown(navigate).keyup(function(){ search(); });
-	};
-	
-	var search = function(bit){
-		if (bit) currentInput = bit;
-		if (!options.queryRemote && !values.length) return;
-		var search = $.trim(currentInput.getValue()[1]);
-		if (search.length < options.minLength) showPlaceholder();
-		if (search == currentSearch) return;
-		currentSearch = search;
-		list.css('display', 'none');
-		if (search.length < options.minLength) return;
-		if (options.queryRemote){
-			if (searchValues[search]){
-				values = searchValues[search];
-			} else {
-				var data = options.remote.extraParams;
-				data[options.remote.param] = search;
-				if (currentRequest) currentRequest.abort();
-				currentRequest = $.ajax({
-					url: options.remote.url,
-					data: data,
-					type: "POST",
-					dataType: 'json',
-					success: function(r){
-						searchValues[search] = r;
-						values = r;
-						showResults(search);
-					}
-				});
-			}
-		}
-		showResults(search);
-	};
-	
-	var showResults = function(search){
-		var results = method.filter(values, search, options.insensitive, options.maxResults);
-		if (textboxlist.getOptions().unique){
-			results = $.grep(results, function(v){ return textboxlist.isDuplicate(v) == -1; });		
-		}
-		hidePlaceholder();
-		if (!results.length) return;
-		blur();
-		list.empty().css('display', 'block');
-		$.each(results, function(i, r){ addResult(r, search); });
-		if (options.onlyFromValues) focusFirst();
-		results = results;
-	};
-	
-	var addResult = function(r, searched){
-		var element = $('<li class="'+ prefix +'-result" />').html(r[3] ? r[3] : r[1]).data('textboxlist:auto:value', r);		
-		element.appendTo(list);
-		if (options.highlight) $(options.highlightSelector ? element.find(options.highlightSelector) : element).each(function(){
-			if ($(this).html()) method.highlight($(this), searched, options.insensitive, prefix + '-highlight');
-		});
-		if (options.mouseInteraction){
-			element.css('cursor', 'pointer').hover(function(){ focus(element); }).mousedown(function(ev){
-				ev.stopPropagation(); 
-				ev.preventDefault();
-				clearTimeout(hidetimer);
-				doAdd = true;
-			}).mouseup(function(){
-				if (doAdd){
-					addCurrent();
-					currentInput.focus();
-					search();
-					doAdd = false;
-				}
-			});
-			if (!options.onlyFromValues) element.mouseleave(function(){ if (current && (current.get(0) == element.get(0))) blur(); });	
-		}
-	};
-	
-	var hide = function(){
-		hidetimer = setTimeout(function(){
-			hidePlaceholder();
-			list.css('display', 'none');
-			currentSearch = null;			
-		}, $.browser.msie ? 150 : 0);
-	};
-	
-	var showPlaceholder = function(){
-		if (placeholder) placeholder.css('display', 'block');		
-	};
-	
-	var hidePlaceholder = function(){
-		if (placeholder) placeholder.css('display', 'none');
-	};
-	
-	var focus = function(element){
-		if (!element || !element.length) return;
-		blur();
-		current = element.addClass(prefix + '-result-focus');
-	};
-	
-	var blur = function(){
-		if (current && current.length){
-			current.removeClass(prefix + '-result-focus');
-			current = null;
-		}
-	};
-	
-	var focusFirst = function(){
-		return focus(list.find(':first'));
-	};
-	
-	var focusRelative = function(dir){
-		if (!current || !current.length) return self;
-		return focus(current[dir]());
-	};
-	
-	var addCurrent = function(){
-		var value = current.data('textboxlist:auto:value');
-		var b = textboxlist.create('box', value.slice(0, 3));
-		if (b){
-			b.autoValue = value;
-			if ($.isArray(index)) index.push(value);
-			currentInput.setValue([null, '', null]);
-			b.inject(currentInput.toElement(), 'before');
-		}
-		blur();
-		return self;
-	};
-	
-	var navigate = function(ev){
-		var evStop = function(){ ev.stopPropagation(); ev.preventDefault(); };
-		switch (ev.which){
-			case 38:			
-				evStop();
-				(!options.onlyFromValues && current && current.get(0) === list.find(':first').get(0)) ? blur() : focusRelative('prev');
-				break;
-			case 40:			
-				evStop();
-				(current && current.length) ? focusRelative('next') : focusFirst();
-				break;
-			case 13:
-				evStop();
-				if (current && current.length) addCurrent();
-				else if (!options.onlyFromValues){
-					var value = currentInput.getValue();				
-					var b = textboxlist.create('box', value);
-					if (b){
-						b.inject(currentInput.toElement(), 'before');
-						currentInput.setValue([null, '', null]);
-					}
-				}
-		}
-	};
-	
-	this.setValues = function(v){
-		values = v;
-	};
-	
-	init();
-};
-
-$.TextboxList.Autocomplete.Methods = {
-	
-	standard: {
-		filter: function(values, search, insensitive, max){
-			var newvals = [], regexp = new RegExp('\\b' + escapeRegExp(search), insensitive ? 'i' : '');
-			for (var i = 0; i < values.length; i++){
-				if (newvals.length === max) break;
-				if (regexp.test(values[i][1])) newvals.push(values[i]);
-			}
-			return newvals;
-		},
-		
-		highlight: function(element, search, insensitive, klass){
-			var regex = new RegExp('(<[^>]*>)|(\\b'+ escapeRegExp(search) +')', insensitive ? 'ig' : 'g');
-			return element.html(element.html().replace(regex, function(a, b, c){
-				return (a.charAt(0) == '<') ? a : '<strong class="'+ klass +'">' + c + '</strong>'; 
-			}));
-		}
-	}
-	
-};
-
-var chk = function(v){ return !!(v || v === 0); };
-var escapeRegExp = function(str){ return str.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1"); };
-
-})();
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.js	(nonexistent)
@@ -1,473 +0,0 @@
-/*
-Script: TextboxList.js
-	Displays a textbox as a combination of boxes an inputs (eg: facebook tokenizer)
-
-	Authors:
-		Guillermo Rauch
-		
-	Note:
-		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/>. 
-		Purchase to remove this message.
-*/
-
-(function($){
-	
-$.TextboxList = function(element, _options){
-	
-	var original, container, list, current, focused = false, index = [], blurtimer, events = {};
-	var options = $.extend(true, {
-    prefix: 'textboxlist',
-    max: null,
-		unique: false,
-		uniqueInsensitive: true,
-    endEditableBit: true,
-		startEditableBit: true,
-		hideEditableBits: true,
-    inBetweenEditableBits: true,
-		keys: {previous: 37, next: 39},
-		bitsOptions: {editable: {}, box: {}},
-    plugins: {},
-		// tip: you can change encode/decode with JSON.stringify and JSON.parse
-		encode: function(o){ 
-			return $.grep($.map(o, function(v){		
-				v = (chk(v[0]) ? v[0] : v[1]);
-				return chk(v) ? v.toString().replace(/,/, '') : null;
-			}), function(o){ return o != undefined; }).join(','); 
-		},
-		decode: function(o){ return o.split(','); }
-  }, _options);
-	
-	element = $(element);
-	
-	var self = this;
-	var init = function(){		
-		original = element.css('display', 'none').attr('autocomplete', 'off').focus(focusLast);
-		container = $('<div class="'+options.prefix+'" />')
-			.insertAfter(element)
-			.click(function(e){ 
-				if ((e.target == list.get(0) || e.target == container.get(0)) && (!focused || (current && current.toElement().get(0) != list.find(':last-child').get(0)))) focusLast(); 			
-			});			
-		list = $('<ul class="'+ options.prefix +'-bits" />').appendTo(container);
-		for (var name in options.plugins) enablePlugin(name, options.plugins[name]);		
-		afterInit();
-	};
-	
-	var enablePlugin = function(name, options){
-		self.plugins[name] = new $.TextboxList[camelCase(capitalize(name))](self, options);
-	};
-	
-	var afterInit = function(){
-		if (options.endEditableBit) create('editable', null, {tabIndex: original.tabIndex}).inject(list);
-		addEvent('bitAdd', update, true);
-		addEvent('bitRemove', update, true);
-		$(document).click(function(e){
-			if (!focused) return;
-			if (e.target.className.indexOf(options.prefix) != -1){				
-				if (e.target == $(container).get(0)) return;				
-				var parent = $(e.target).parents('div.' + options.prefix);
-				if (parent.get(0) == container.get(0)) return;
-			}
-			blur();
-		}).keydown(function(ev){
-			if (!focused || !current) return;
-			var caret = current.is('editable') ? current.getCaret() : null;
-			var value = current.getValue()[1];
-			var special = !!$.map(['shift', 'alt', 'meta', 'ctrl'], function(e){ return ev[e]; }).length;
-			var custom = special || (current.is('editable') && current.isSelected());
-			var evStop = function(){ ev.stopPropagation(); ev.preventDefault(); };
-			switch (ev.which){
-				case 8:
-					if (current.is('box')){ 
-						evStop();
-						return current.remove(); 
-					}
-				case options.keys.previous:
-					if (current.is('box') || ((caret == 0 || !value.length) && !custom)){
-						evStop();
-						focusRelative('prev');
-					}
-					break;
-				case 46:
-					if (current.is('box')){ 
-						evStop();
-						return current.remove(); 
-					}
-				case options.keys.next: 
-					if (current.is('box') || (caret == value.length && !custom)){
-						evStop();
-						focusRelative('next');
-					}
-			}
-		});
-		setValues(options.decode(original.val()));
-	};
-	
-	var create = function(klass, value, opt){
-		if (klass == 'box'){
-			if (chk(options.max) && list.children('.' + options.prefix + '-bit-box').length + 1 > options.max) return false;
-			if (options.unique && $.inArray(uniqueValue(value), index) != -1) return false;		
-		}		
-		return new $.TextboxListBit(klass, value, self, $.extend(true, options.bitsOptions[klass], opt));
-	};
-	
-	var uniqueValue = function(value){
-		return chk(value[0]) ? value[0] : (options.uniqueInsensitive ? value[1].toLowerCase() : value[1]);
-	}
-	
-	var add = function(plain, id, html, afterEl){
-		var b = create('box', [id, plain, html]);
-		if (b){
-			if (!afterEl || !afterEl.length) afterEl = list.find('.' + options.prefix + '-bit-box').filter(':last');
-			b.inject(afterEl.length ? afterEl : list, afterEl.length ? 'after' : 'top');
-		} 
-		return self;
-	};
-	
-	var focusRelative = function(dir, to){
-		var el = getBit(to && $(to).length ? to : current).toElement();
-		var b = getBit(el[dir]());
-		if (b) b.focus();
-		return self;
-	};
-	
-	var focusLast = function(){
-		var lastElement = list.children().filter(':last');
-		if (lastElement) getBit(lastElement).focus();
-		return self;
-	};
-	
-	var blur = function(){	
-		if (! focused) return self;
-		if (current) current.blur();
-		focused = false;
-		return fireEvent('blur');
-	};
-	
-	var getBit = function(obj){				
-		return (obj.type && (obj.type == 'editable' || obj.type == 'box')) ? obj : $(obj).data('textboxlist:bit');
-	};
-	
-	var getValues = function(){
-		var values = [];
-		list.children().each(function(){
-			var bit = getBit(this);
-			if (!bit.is('editable')) values.push(bit.getValue());
-		});
-		return values;
-	};
-	
-	var setValues = function(values){
-		if (!values) return;
-		$.each(values, function(i, v){
-			if (v) add.apply(self, $.isArray(v) ? [v[1], v[0], v[2]] : [v]);
-		});		
-	};
-	
-	var update = function(){
-		original.val(options.encode(getValues()));
-	};
-	
-	var addEvent = function(type, fn){
-		if (events[type] == undefined) events[type] = [];
-		var exists = false;
-		$.each(events[type], function(f){
-			if (f === fn){
-				exists = true;
-				return;
-			};
-		});
-		if (!exists) events[type].push(fn);
-		return self;
-	};
-	
-	var fireEvent = function(type, args, delay){
-		if (!events || !events[type]) return self;
-		$.each(events[type], function(i, fn){		
-			(function(){
-				args = (args != undefined) ? splat(args) : Array.prototype.slice.call(arguments);
-				var returns = function(){
-					return fn.apply(self || null, args);
-				};
-				if (delay) return setTimeout(returns, delay);
-				return returns();
-			})();
-		});
-		return self;
-	};
-	
-	var removeEvent = function(type, fn){
-		if (events[type]){
-			for (var i = events[type].length; i--; i){
-				if (events[type][i] === fn) events[type].splice(i, 1);
-			}
-		} 
-		return self;
-	};
-	
-	var isDuplicate = function(v){
-		return $.inArray(uniqueValue(v), index);
-	};
-	
-	this.onFocus = function(bit){
-		if (current) current.blur();
-		clearTimeout(blurtimer);
-		current = bit;
-		container.addClass(options.prefix + '-focus');		
-		if (!focused){
-			focused = true;
-			fireEvent('focus', bit);
-		}
-	};
-	
-	this.onAdd = function(bit){
-		if (options.unique && bit.is('box')) index.push(uniqueValue(bit.getValue()));
-		if (bit.is('box')){
-			var prior = getBit(bit.toElement().prev());
-			if ((prior && prior.is('box') && options.inBetweenEditableBits) || (!prior && options.startEditableBit)){				
-				var priorEl = prior && prior.toElement().length ? prior.toElement() : false;
-				var b = create('editable').inject(priorEl || list, priorEl ? 'after' : 'top');
-				if (options.hideEditableBits) b.hide();
-			}
-		}
-	};
-	
-	this.onRemove = function(bit){
-		if (!focused) return;
-		if (options.unique && bit.is('box')){
-			var i = isDuplicate(bit.getValue());
-			if (i != -1) index = index.splice(i + 1, 1);
-		} 
-		var prior = getBit(bit.toElement().prev());
-		if (prior && prior.is('editable')) prior.remove();
-		focusRelative('next', bit);
-	};
-	
-	this.onBlur = function(bit, all){
-		current = null;
-		container.removeClass(options.prefix + '-focus');		
-		blurtimer = setTimeout(blur, all ? 0 : 200);
-	};
-	
-	this.setOptions = function(opt){
-		options = $.extend(true, options, opt);
-	};
-	
-	this.getOptions = function(){
-		return options;
-	};
-	
-	this.getContainer = function(){
-		return container;
-	};
-	
-	this.isDuplicate = isDuplicate;
-	this.addEvent = addEvent;
-	this.removeEvent = removeEvent;
-	this.fireEvent = fireEvent;
-	this.create = create;
-	this.add = add;
-	this.getValues = getValues;
-	this.plugins = [];
-	init();
-};
-
-$.TextboxListBit = function(type, value, textboxlist, _options){
-	
-	var element, bit, prefix, typeprefix, close, hidden, focused = false, name = capitalize(type); 
-	var options = $.extend(true, type == 'box' ? {
-		deleteButton: true
-  } : {
-		tabIndex: null,
-		growing: true,
-		growingOptions: {},
-		stopEnter: true,
-		addOnBlur: false,
-		addKeys: [13]
-	}, _options);
-	
-	this.type = type;
-	this.value = value;
-	
-	var self = this;
-	var init = function(){
-		prefix = textboxlist.getOptions().prefix + '-bit';
-		typeprefix = prefix + '-' + type;
-		bit = $('<li />').addClass(prefix).addClass(typeprefix)
-			.data('textboxlist:bit', self)
-			.hover(function(){ 
-				bit.addClass(prefix + '-hover').addClass(typeprefix + '-hover'); 
-			}, function(){
-				bit.removeClass(prefix + '-hover').removeClass(typeprefix + '-hover'); 
-			});
-		if (type == 'box'){
-			bit.html(chk(self.value[2]) ? self.value[2] : self.value[1]).click(focus);
-			if (options.deleteButton){
-				bit.addClass(typeprefix + '-deletable');
-				close = $('<a href="#" class="'+ typeprefix +'-deletebutton" />').click(remove).appendTo(bit);
-			}
-			bit.children().click(function(e){ e.stopPropagation(); e.preventDefault(); });
-		} else {
-			element = $('<input type="text" class="'+ typeprefix +'-input" autocomplete="off" />').val(self.value ? self.value[1] : '').appendTo(bit);
-			if (chk(options.tabIndex)) element.tabIndex = options.tabIndex;
-			if (options.growing) new $.GrowingInput(element, options.growingOptions);		
-			element.focus(function(){ focus(true); }).blur(function(){
-				blur(true);
-				if (options.addOnBlur) toBox(); 
-			});				
-			if (options.addKeys || options.stopEnter){
-				element.keydown(function(ev){
-					if (!focused) return;
-					var evStop = function(){ ev.stopPropagation(); ev.preventDefault(); };
-					if (options.stopEnter && ev.which === 13) evStop();
-					if ($.inArray(ev.which, splat(options.addKeys)) != -1){
-						evStop();
-						toBox();
-					}
-				});
-			}
-		}
-	};
-	
-	var inject = function(el, where){
-		switch(where || 'bottom'){
-			case 'top': bit.prependTo(el); break;
-			case 'bottom': bit.appendTo(el); break;
-			case 'before': bit.insertBefore(el); break;			
-			case 'after': bit.insertAfter(el); break;						
-		}
-		textboxlist.onAdd(self);	
-		return fireBitEvent('add');
-	};
-	
-	var focus = function(noReal){
-		if (focused) return self;
-		show();
-		focused = true;
-		textboxlist.onFocus(self);
-		bit.addClass(prefix + '-focus').addClass(prefix + '-' + type + '-focus');
-		fireBitEvent('focus');		
-		if (type == 'editable' && !noReal) element.focus();
-		return self;
-	};
-	
-	var blur = function(noReal){
-		if (!focused) return self;
-		focused = false;
-		textboxlist.onBlur(self);
-		bit.removeClass(prefix + '-focus').removeClass(prefix + '-' + type + '-focus');
-		fireBitEvent('blur');
-		if (type == 'editable'){
-			if (!noReal) element.blur();
-			if (hidden && !element.val().length) hide();
-		}
-		return self;
-	};
-	
-	var remove = function(){
-		blur();		
-		textboxlist.onRemove(self);
-		bit.remove();
-		return fireBitEvent('remove');
-	};
-	
-	var show = function(){
-		bit.css('display', 'block');
-		return self;
-	};
-	
-	var hide = function(){
-		bit.css('display', 'none');		
-		hidden = true;
-		return self;
-	};
-	
-	var fireBitEvent = function(type){
-		type = capitalize(type);
-		textboxlist.fireEvent('bit' + type, self).fireEvent('bit' + name + type, self);
-		return self;
-	};
-	
-  this.is = function(t){
-    return type == t;
-  };
-
-	this.setValue = function(v){
-		if (type == 'editable'){
-			element.val(chk(v[0]) ? v[0] : v[1]);
-			if (options.growing) element.data('growing').resize();
-		} else value = v;
-		return self;
-	};
-
- 	this.getValue = function(){
-		return type == 'editable' ? [null, element.val(), null] : value;
-	};
-	
-	if (type == 'editable'){
-		this.getCaret = function(){
- 			var el = element.get(0);
-			if (el.createTextRange){
-		    var r = document.selection.createRange().duplicate();		
-		  	r.moveEnd('character', el.value.length);
-		  	if (r.text === '') return el.value.length;
-		  	return el.value.lastIndexOf(r.text);
-		  } else return el.selectionStart;
-		};
-
-		this.getCaretEnd = function(){
- 			var el = element.get(0);			
-			if (el.createTextRange){
-				var r = document.selection.createRange().duplicate();
-				r.moveStart('character', -el.value.length);
-				return r.text.length;
-			} else return el.selectionEnd;
-		};
-		
-		this.isSelected = function(){
-			return focused && (self.getCaret() !== self.getCaretEnd());
-		};
-		
-		var toBox = function(){
-			var value = self.getValue();				
-			var b = textboxlist.create('box', value);
-			if (b){
-				b.inject(bit, 'before');
-				self.setValue([null, '', null]);
-				return b;
-			}
-			return null;
-		};
-		
-		this.toBox = toBox;
-	}
-	
-	this.toElement = function(){
-		return bit;
-	};
-	
-	this.focus = focus;
-	this.blur = blur;
-	this.remove = remove;
-	this.inject = inject;
-	this.show = show;
-	this.hide = hide;
-	this.fireBitEvent = fireBitEvent;
-	init();
-};
-
-var chk = function(v){ return !!(v || v === 0); };
-var splat = function(a){ return $.isArray(a) ? a : [a]; };
-var camelCase = function(str){ return str.replace(/-\D/g, function(match){ return match.charAt(1).toUpperCase(); }); };
-var capitalize = function(str){ return str.replace(/\b[a-z]/g, function(A){ return A.toUpperCase(); }); };
-
-$.fn.extend({
-	
-	textboxlist: function(options){
-		return this.each(function(){
-			new $.TextboxList(this, options);
-		});
-	}
-	
-});
-
-})(jQuery);
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.Binary.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.Binary.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/autocomplete/TextboxList.Autocomplete.Binary.js	(nonexistent)
@@ -1,45 +0,0 @@
-/*
-Script: TextboxList.Autocomplete.Binary.js
-	TextboxList Autocomplete binary search extension
-
-	Authors:
-		Guillermo Rauch
-	
-	Note:
-		TextboxList is not priceless for commercial use. See <http://devthought.com/projects/jquery/textboxlist/>
-		Purchase to remove this message.
-*/
-
-$.TextboxList.Autocomplete.Methods.binary = {
-	filter: function(values, search, insensitive, max){
-		var method = insensitive ? 'toLowerCase' : 'toString', low = 0, high = values.length - 1, lastTry;
-		search = search[method]();
-		while (high >= low){
-			var mid = parseInt((low + high) / 2);
-			var curr = values[mid][1].substr(0, search.length)[method]();			
-			var result = ((search == curr) ? 0 : ((search > curr) ? 1 : -1));
-			if (result < 0) { high = mid - 1; continue; }
-			if (result > 0) { low = mid + 1; continue; }
-			if (result === 0) break;
-		}				
-		if (high < low) return [];
-		var newvalues = [values[mid]], checkNext = true, checkPrev = true, v1, v2;
-		for (var i = 1; i <= values.length - mid; i++){			
-			if (newvalues.length === max) break;
-			if (checkNext) v1 = values[mid + i] ? values[mid + i][1].substr(0, search.length)[method]() : false;
-			if (checkPrev) v2 = values[mid - i] ? values[mid - i][1].substr(0, search.length)[method]() : false;
-			checkNext = checkPrev = false;
-			if (v1 === search) { newvalues.push(values[mid + i]); checkNext = true; }
-			if (v2 === search) { newvalues.unshift(values[mid - i]); checkPrev = true; }
-			if (! (checkNext || checkPrev)) break;
-		}
-		return newvalues;
-	},
-	
-	highlight: function(element, search, insensitive, klass){
-		var regex = new RegExp('(<[^>]*>)|(\\b'+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +')', insensitive ? 'ig' : 'g');
-		return element.html(element.html().replace(regex, function(a, b, c, d){
-			return (a.charAt(0) == '<') ? a : '<strong class="'+ klass +'">' + c + '</strong>'; 
-		}));
-	}
-};
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/GrowingInput.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/js/autocomplete/GrowingInput.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/js/autocomplete/GrowingInput.js	(nonexistent)
@@ -1,80 +0,0 @@
-/*
-Script: GrowingInput.js
-	Alters the size of an input depending on its content
-
-	License:
-		MIT-style license.
-
-	Authors:
-		Guillermo Rauch
-*/
-
-(function($){
-
-$.GrowingInput = function(element, options){
-	
-	var value, lastValue, calc;
-	
-	options = $.extend({
-		min: 0,
-		max: null,
-		startWidth: 15,
-		correction: 15
-	}, options);
-	
-	element = $(element).data('growing', this);
-	
-	var self = this;
-	var init = function(){
-		calc = $('<span></span>').css({
-			'float': 'left',
-			'display': 'inline-block',
-			'position': 'absolute',
-			'left': -1000
-		}).insertAfter(element);
-		$.each(['font-size', 'font-family', 'padding-left', 'padding-top', 'padding-bottom', 
-		 'padding-right', 'border-left', 'border-right', 'border-top', 'border-bottom', 
-		 'word-spacing', 'letter-spacing', 'text-indent', 'text-transform'], function(i, p){				
-				calc.css(p, element.css(p));
-		});
-		element.blur(resize).keyup(resize).keydown(resize).keypress(resize);
-		resize();
-	};
-	
-	var calculate = function(chars){
-		calc.text(chars);
-		var width = calc.width();
-		return (width ? width : options.startWidth) + options.correction;
-	};
-	
-	var resize = function(){
-		lastValue = value;
-		value = element.val();
-		var retValue = value;		
-		if(chk(options.min) && value.length < options.min){
-			if(chk(lastValue) && (lastValue.length <= options.min)) return;
-			retValue = str_pad(value, options.min, '-');
-		} else if(chk(options.max) && value.length > options.max){
-			if(chk(lastValue) && (lastValue.length >= options.max)) return;
-			retValue = value.substr(0, options.max);
-		}
-		element.width(calculate(retValue));
-		return self;
-	};
-	
-	this.resize = resize;
-	init();
-};
-
-var chk = function(v){ return !!(v || v === 0); };
-var str_repeat = function(str, times){ return new Array(times + 1).join(str); };
-var str_pad = function(self, length, str, dir){
-	if (self.length >= length) return this;
-	str = str || ' ';
-	var pad = str_repeat(str, length - self.length).substr(0, length - self.length);
-	if (!dir || dir == 'right') return self + pad;
-	if (dir == 'left') return pad + self;
-	return pad.substr(0, (pad.length / 2).floor()) + self + pad.substr(0, (pad.length / 2).ceil());
-};
-
-})(jQuery);
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/js/autocomplete/close.gif
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/js/autocomplete/close.gif
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_454545_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_454545_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_888888_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_888888_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-icons_cd0a0a_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/jquery-ui-1.8.5.custom.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/jquery-ui-1.8.5.custom.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/ui/css/smoothness/jquery-ui-1.8.5.custom.css	(nonexistent)
@@ -1,572 +0,0 @@
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
-.ui-widget-header a { color: #222222; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
- * jQuery UI Resizable @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }/*
- * jQuery UI Autocomplete @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/jquery-ui-1.8.5.custom.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/jquery-ui-1.8.5.custom.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/jquery-ui-1.8.5.custom.css	(nonexistent)
@@ -1,572 +0,0 @@
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=deedf7&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=100&borderColorHeader=aed0ea&fcHeader=222222&iconColorHeader=72a7cf&bgColorContent=f2f5f7&bgTextureContent=04_highlight_hard.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=362b36&iconColorContent=72a7cf&bgColorDefault=d7ebf9&bgTextureDefault=02_glass.png&bgImgOpacityDefault=80&borderColorDefault=aed0ea&fcDefault=2779aa&iconColorDefault=3d80b3&bgColorHover=e4f1fb&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=74b2e2&fcHover=0070a3&iconColorHover=2694e8&bgColorActive=3baae3&bgTextureActive=02_glass.png&bgImgOpacityActive=50&borderColorActive=2694e8&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=ffef8f&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=25&borderColorHighlight=f9dd34&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=cd0a0a&bgTextureError=01_flat.png&bgImgOpacityError=15&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffffff&bgColorOverlay=eeeeee&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=90&opacityOverlay=80&bgColorShadow=000000&bgTextureShadow=04_highlight_hard.png&bgImgOpacityShadow=70&opacityShadow=30&thicknessShadow=7px&offsetTopShadow=-7px&offsetLeftShadow=-7px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #dddddd; background: #f2f5f7 url(images/ui-bg_highlight-hard_100_f2f5f7_1x100.png) 50% top repeat-x; color: #362b36; }
-.ui-widget-content a { color: #362b36; }
-.ui-widget-header { border: 1px solid #aed0ea; background: #deedf7 url(images/ui-bg_highlight-soft_100_deedf7_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
-.ui-widget-header a { color: #222222; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #aed0ea; background: #d7ebf9 url(images/ui-bg_glass_80_d7ebf9_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2779aa; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2779aa; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #74b2e2; background: #e4f1fb url(images/ui-bg_glass_100_e4f1fb_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #0070a3; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #0070a3; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #2694e8; background: #3baae3 url(images/ui-bg_glass_50_3baae3_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #f9dd34; background: #ffef8f url(images/ui-bg_highlight-soft_25_ffef8f_1x100.png) 50% top repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #cd0a0a url(images/ui-bg_flat_15_cd0a0a_40x100.png) 50% 50% repeat-x; color: #ffffff; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_72a7cf_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_72a7cf_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_3d80b3_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_2694e8_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; }
-.ui-corner-tr { -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
-.ui-corner-br { -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
-.ui-corner-top { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
-.ui-corner-right {  -moz-border-radius-topright: 6px; -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; -moz-border-radius-bottomright: 6px; -webkit-border-bottom-right-radius: 6px; border-bottom-right-radius: 6px; }
-.ui-corner-left { -moz-border-radius-topleft: 6px; -webkit-border-top-left-radius: 6px; border-top-left-radius: 6px; -moz-border-radius-bottomleft: 6px; -webkit-border-bottom-left-radius: 6px; border-bottom-left-radius: 6px; }
-.ui-corner-all { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #eeeeee url(images/ui-bg_diagonals-thick_90_eeeeee_40x40.png) 50% 50% repeat; opacity: .80;filter:Alpha(Opacity=80); }
-.ui-widget-shadow { margin: -7px 0 0 -7px; padding: 7px; background: #000000 url(images/ui-bg_highlight-hard_70_000000_1x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
- * jQuery UI Resizable @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }/*
- * jQuery UI Autocomplete @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_2694e8_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_2694e8_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_3d80b3_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_3d80b3_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_ffffff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_72a7cf_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-icons_72a7cf_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/jquery-ui-1.8.5.custom.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/ui/css/redmond/jquery-ui-1.8.5.custom.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/ui/css/redmond/jquery-ui-1.8.5.custom.css	(nonexistent)
@@ -1,572 +0,0 @@
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Lucida%20Grande,%20Lucida%20Sans,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=5px&bgColorHeader=5c9ccc&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=55&borderColorHeader=4297d7&fcHeader=ffffff&iconColorHeader=d8e7f3&bgColorContent=fcfdfd&bgTextureContent=06_inset_hard.png&bgImgOpacityContent=100&borderColorContent=a6c9e2&fcContent=222222&iconColorContent=469bdd&bgColorDefault=dfeffc&bgTextureDefault=02_glass.png&bgImgOpacityDefault=85&borderColorDefault=c5dbec&fcDefault=2e6e9e&iconColorDefault=6da8d5&bgColorHover=d0e5f5&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=79b7e7&fcHover=1d5987&iconColorHover=217bc0&bgColorActive=f5f8f9&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=100&borderColorActive=79b7e7&fcActive=e17009&iconColorActive=f9bd01&bgColorHighlight=fbec88&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=fad42e&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Lucida Grande, Lucida Sans, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #a6c9e2; background: #fcfdfd url(images/ui-bg_inset-hard_100_fcfdfd_1x100.png) 50% bottom repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #4297d7; background: #5c9ccc url(images/ui-bg_gloss-wave_55_5c9ccc_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-.ui-widget-header a { color: #ffffff; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #c5dbec; background: #dfeffc url(images/ui-bg_glass_85_dfeffc_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #2e6e9e; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #2e6e9e; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #79b7e7; background: #d0e5f5 url(images/ui-bg_glass_75_d0e5f5_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1d5987; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #1d5987; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #79b7e7; background: #f5f8f9 url(images/ui-bg_inset-hard_100_f5f8f9_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e17009; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e17009; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fad42e; background: #fbec88 url(images/ui-bg_flat_55_fbec88_40x100.png) 50% 50% repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_469bdd_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_469bdd_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_d8e7f3_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_6da8d5_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_217bc0_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_f9bd01_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; }
-.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
-.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
-.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
-.ui-corner-right {  -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; }
-.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; }
-.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
- * jQuery UI Resizable @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }/*
- * jQuery UI Autocomplete @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_2e83ff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_2e83ff_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_217bc0_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_217bc0_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_d8e7f3_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_d8e7f3_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_f9bd01_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_f9bd01_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_cd0a0a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_cd0a0a_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_6da8d5_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_6da8d5_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_469bdd_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/redmond/images/ui-icons_469bdd_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffffff_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_228ef1_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ffd27a_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_222222_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_222222_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-icons_ef8c08_256x240.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/jquery-ui-1.8.9.custom.css
===================================================================
--- controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/jquery-ui-1.8.9.custom.css	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/ui/css/ui-lightness/jquery-ui-1.8.9.custom.css	(nonexistent)
@@ -1,573 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS,%20Tahoma,%20Verdana,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS, Tahoma, Verdana, Arial, sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
-.ui-widget-content a { color: #333333; }
-.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-.ui-widget-header a { color: #ffffff; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #c77405; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .50;filter:Alpha(Opacity=50); }
-.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .20;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }/*
- * jQuery UI Resizable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*
- * jQuery UI Autocomplete 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.9
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*
- * jQuery UI Slider 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.9
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/ui/js/jquery-ui-1.8.5.custom.min.js
===================================================================
--- controlies/branches/web2py/applications/controlies/static/ui/js/jquery-ui-1.8.5.custom.min.js	(revision 177)
+++ controlies/branches/web2py/applications/controlies/static/ui/js/jquery-ui-1.8.5.custom.min.js	(nonexistent)
@@ -1,778 +0,0 @@
-/*!
- * jQuery UI 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.5",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
-NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
-"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
-if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind("mousedown.ui-disableSelection selectstart.ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
-"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c.style(this,h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c.style(this,
-h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
-c(function(){var a=document.createElement("div"),b=document.body;c.extend(a.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.appendChild(a).offsetHeight===100;b.removeChild(a).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,
-d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
-a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.substring(0,1)===
-"_")return h;e?this.each(function(){var g=b.data(this,a);if(!g)throw"cannot call methods on "+a+" prior to initialization; attempted to call method '"+d+"'";if(!b.isFunction(g[d]))throw"no such method '"+d+"' for "+a+" widget instance";var i=g[d].apply(g,f);if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",
-widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,b.metadata&&b.metadata.get(c)[this.widgetName],a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._init()},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+
-"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a,e=this;if(arguments.length===0)return b.extend({},e.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}b.each(d,function(f,h){e._setOption(f,h)});return e},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},enable:function(){return this._setOption("disabled",
-false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(c){c.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(b){return a._mouseDown(b)}).bind("click."+this.widgetName,function(b){if(a._preventClickEvent){a._preventClickEvent=false;b.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&
-this._mouseUp(a);this._mouseDownEvent=a;var b=this,e=a.which==1,f=typeof this.options.cancel=="string"?c(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){b.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();
-return true}}this._mouseMoveDelegate=function(d){return b._mouseMove(d)};this._mouseUpDelegate=function(d){return b._mouseUp(d)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.browser.safari||a.preventDefault();return a.originalEvent.mouseHandled=true}},_mouseMove:function(a){if(c.browser.msie&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&
-this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=a.target==this._mouseDownEvent.target;this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-
-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Position 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.scrollTo&&d.document){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j=
-{top:b.of.pageY,left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/
-2;if(b.at[1]==="bottom")j.top+=k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+parseInt(c.curCSS(this,"marginRight",true))||0,w=m+q+parseInt(c.curCSS(this,"marginBottom",true))||0,i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]===
-"center")i.top-=m/2;i.left=parseInt(i.left);i.top=parseInt(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();
-b.left=d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];
-b.left+=a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=
-c(b),g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
-;/*
- * jQuery UI Draggable 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
-d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
-this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element,
-b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
-a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
-0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment==
-"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&
-a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),
-10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+
-this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+
-Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-
-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=
-this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.5"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");
-if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g._refreshItems();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;
-c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=
-1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;
-this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=
-this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=
-d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;
-if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!=
-"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-
-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-
-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,
-width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&
-o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=
-p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&
-(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),
-10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.5"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight};e=="mousedown"&&c[f]._activate.call(c[f],b)}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
-d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
-;/*
- * jQuery UI Resizable 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
-if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
-d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
-this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
-this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
-b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
-f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",
-b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top=
-a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height,
-k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=[c.css("borderTopWidth"),
-c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=this.options;this.elementOffset=
-this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+
-a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,
-arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,
-{version:"1.8.5"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,
-function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n=
-(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition=
-false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left-
-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize",
-b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top",
-"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset,
-f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left=
-a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+
-a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&&
-e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative",
-height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=
-d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
-;/*
- * jQuery UI Selectable 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.5"})})(jQuery);
-;/*
- * jQuery UI Sortable 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,
-arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=
-c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,
-{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();
-if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",
-a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");
-if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+
-this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+
-b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+
-"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,
-c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==
-document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",
-null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):
-d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||
-"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+
-this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?
-2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},
-_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=
-this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=
-this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");
-if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=
-0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=
-this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f},
-update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=
-null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this));
-this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,
-null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||
-d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a==
-"string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition==
-"absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==
-"relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},
-_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-
-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),
-10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?
-this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=
-this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])f=this.containment[0]+
-this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?
-g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():
-e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==
-f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",
-f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",
-g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=
-0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});
-d.extend(d.ui.sortable,{version:"1.8.5"})})(jQuery);
-;/*
- * jQuery UI Accordion 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var f=d.closest(".ui-accordion-header");a.active=f.length?f:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",function(g){return a._keydown(g)}).next().attr("role",
-"tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(g){a._clickHandler.call(a,g,this);g.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);
-this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
-this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,f=this.headers.index(a.target),g=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:g=this.headers[(f+1)%d];break;case b.LEFT:case b.UP:g=this.headers[(f-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(g){c(a.target).attr("tabIndex",-1);c(g).attr("tabIndex",0);g.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
-a.next().addClass("ui-accordion-content-active")}h=a.next();f=this.active.next();g={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):h,oldContent:f};d=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(h,f,g,b,d)}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-this.active.next().addClass("ui-accordion-content-active");var f=this.active.next(),g={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:f},h=this.active=c([]);this._toggle(h,f,g)}},_toggle:function(a,b,d,f,g){var h=this,e=h.options;h.toShow=a;h.toHide=b;h.data=d;var j=function(){if(h)return h._completed.apply(h,arguments)};h._trigger("changestart",null,h.data);h.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&f?{toShow:c([]),toHide:b,complete:j,
-down:g,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:g,autoHeight:e.autoHeight||e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;f=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!f[k]&&!c.easing[k])k="slide";f[k]||(f[k]=function(l){this.slide(l,{easing:k,duration:i||700})});
-f[k](d)}else{if(e.collapsible&&f)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.5",animations:{slide:function(a,
-b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),f=0,g={},h={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){h[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);g[i]={value:j[1],
-unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(h,{step:function(j,i){if(i.prop=="height")f=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=f*g[i.prop].value+g[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide",
-paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
-;/*
- * jQuery UI Autocomplete 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(function(e){e.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},_create:function(){var a=this,b=this.element[0].ownerDocument;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!a.options.disabled){var d=e.ui.keyCode;switch(c.keyCode){case d.PAGE_UP:a._move("previousPage",
-c);break;case d.PAGE_DOWN:a._move("nextPage",c);break;case d.UP:a._move("previous",c);c.preventDefault();break;case d.DOWN:a._move("next",c);c.preventDefault();break;case d.ENTER:case d.NUMPAD_ENTER:a.menu.element.is(":visible")&&c.preventDefault();case d.TAB:if(!a.menu.active)return;a.menu.select(c);break;case d.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);
-break}}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=e("<ul></ul>").addClass("ui-autocomplete").appendTo(e(this.options.appendTo||"body",b)[0]).mousedown(function(c){var d=a.menu.element[0];
-c.target===d&&setTimeout(function(){e(document).one("mousedown",function(f){f.target!==a.element[0]&&f.target!==d&&!e.ui.contains(d,f.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,d){d=d.item.data("item.autocomplete");false!==a._trigger("focus",null,{item:d})&&/^key/.test(c.originalEvent.type)&&a.element.val(d.value)},selected:function(c,d){d=d.item.data("item.autocomplete");var f=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();
-a.previous=f}if(false!==a._trigger("select",c,{item:d})){a.term=d.value;a.element.val(d.value)}a.close(c);a.selectedItem=d},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");e.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");
-this.menu.element.remove();e.Widget.prototype.destroy.call(this)},_setOption:function(a,b){e.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(e(b||"body",this.element[0].ownerDocument)[0])},_initSource:function(){var a=this,b,c;if(e.isArray(this.options.source)){b=this.options.source;this.source=function(d,f){f(e.ui.autocomplete.filter(b,d.term))}}else if(typeof this.options.source==="string"){c=this.options.source;this.source=
-function(d,f){a.xhr&&a.xhr.abort();a.xhr=e.getJSON(c,d,function(g,i,h){h===a.xhr&&f(g);a.xhr=null})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search")!==false)return this._search(a)},_search:function(a){this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(a.length){a=
-this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this._trigger("close",a);this.menu.element.hide();this.menu.deactivate()}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return e.map(a,function(b){if(typeof b===
-"string")return{label:b,value:b};return e.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1),c;this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();this.menu.element.show().position(e.extend({of:this.element},this.options.position));a=b.width("").outerWidth();c=this.element.outerWidth();b.outerWidth(Math.max(a,c))},_renderMenu:function(a,b){var c=this;e.each(b,function(d,f){c._renderItem(a,f)})},
-_renderItem:function(a,b){return e("<li></li>").data("item.autocomplete",b).append(e("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});e.extend(e.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},
-filter:function(a,b){var c=new RegExp(e.ui.autocomplete.escapeRegex(b),"i");return e.grep(a,function(d){return c.test(d.label||d.value||d)})}})})(jQuery);
-(function(e){e.widget("ui.menu",{_create:function(){var a=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(b){if(e(b.target).closest(".ui-menu-item a").length){b.preventDefault();a.select(b)}});this.refresh()},refresh:function(){var a=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
--1).mouseenter(function(b){a.activate(b,e(this).parent())}).mouseleave(function(){a.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.attr("scrollTop"),f=this.element.height();if(c<0)this.element.attr("scrollTop",d+c);else c>=f&&this.element.attr("scrollTop",d+c-f+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",a,{item:b})},
-deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(this.active){a=this.active[a+"All"](".ui-menu-item").eq(0);
-a.length?this.activate(c,a):this.activate(c,this.element.children(b))}else this.activate(c,this.element.children(b))},nextPage:function(a){if(this.hasScroll())if(!this.active||this.last())this.activate(a,this.element.children(":first"));else{var b=this.active.offset().top,c=this.element.height(),d=this.element.children("li").filter(function(){var f=e(this).offset().top-b-c+e(this).height();return f<10&&f>-10});d.length||(d=this.element.children(":last"));this.activate(a,d)}else this.activate(a,this.element.children(!this.active||
-this.last()?":first":":last"))},previousPage:function(a){if(this.hasScroll())if(!this.active||this.first())this.activate(a,this.element.children(":last"));else{var b=this.active.offset().top,c=this.element.height();result=this.element.children("li").filter(function(){var d=e(this).offset().top-b+c-e(this).height();return d<10&&d>-10});result.length||(result=this.element.children(":first"));this.activate(a,result)}else this.activate(a,this.element.children(!this.active||this.first()?":last":":first"))},
-hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})})(jQuery);
-;/*
- * jQuery UI Button 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,e=a([]);if(c)e=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return e};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",e="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(e)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
-b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var f=b.element[0];h(f).not(f).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
-g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(f){if(c.disabled)return false;if(f.keyCode==a.ui.keyCode.SPACE||f.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(f){f.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
-c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){this.buttonElement=this.element.parents().last().find("label[for="+this.element.attr("id")+"]");this.element.addClass("ui-helper-hidden-accessible");var b=this.element.is(":checked");b&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=
-this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||
-this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
-c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary;if(d.primary||d.secondary){b.addClass("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){b.addClass(e?"ui-button-icons-only":"ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
-this.hasTitle||b.attr("title",c)}}else b.addClass("ui-button-text-only")}}});a.widget("ui.buttonset",{_create:function(){this.element.addClass("ui-buttonset");this._init()},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":visible").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end().end()},
-destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
-;/*
- * jQuery UI Dialog 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function(c,j){c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");
-if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",f=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog",
-"aria-labelledby":f}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var e=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);
-return false}).appendTo(e);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",f).html(d).prependTo(e);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=b.beforeclose;e.find("*").add(e).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&
-g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");
-b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0])d=Math.max(d,c(this).css("z-index"))});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,f=d.options;if(f.modal&&!a||!f.stack&&!f.modal)return d._trigger("focus",b);if(f.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=
-f.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;d.next().length&&d.appendTo("body");a._size();a._position(b.position);d.show(b.show);
-a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(f){if(f.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),e=g.filter(":first");g=g.filter(":last");if(f.target===g[0]&&!f.shiftKey){e.focus(1);return false}else if(f.target===e[0]&&f.shiftKey){g.focus(1);return false}}});c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,
-f=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(f);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(e,h){h=c.isFunction(h)?{click:h,text:e}:h;e=c("<button></button>",h).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&e.button()});f.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(e){return{position:e.position,
-offset:e.offset}}var b=this,d=b.options,f=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(e,h){g=d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",e,a(h))},drag:function(e,h){b._trigger("drag",e,a(h))},stop:function(e,h){d.position=[h.position.left-f.scrollLeft(),h.position.top-f.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);
-b._trigger("dragStop",e,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}a=a===j?this.options.resizable:a;var d=this,f=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:d._minHeight(),
-handles:a,start:function(e,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",e,b(h))},resize:function(e,h){d._trigger("resize",e,b(h))},stop:function(e,h){c(this).removeClass("ui-dialog-resizing");f.height=c(this).height();f.width=c(this).width();d._trigger("resizeStop",e,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,
-a.height)},_position:function(a){var b=[],d=[0,0],f;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===1)b[1]=b[0];c.each(["left","top"],function(g,e){if(+b[g]===b[g]){d[g]=b[g];b[g]=e}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(f=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(a);
-f||this.uiDialog.hide()},_setOption:function(a,b){var d=this,f=d.uiDialog,g=f.is(":data(resizable)"),e=false;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);e=true;break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":f.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case "draggable":b?
-d._makeDraggable():f.draggable("destroy");break;case "height":e=true;break;case "maxHeight":g&&f.resizable("option","maxHeight",b);e=true;break;case "maxWidth":g&&f.resizable("option","maxWidth",b);e=true;break;case "minHeight":g&&f.resizable("option","minHeight",b);e=true;break;case "minWidth":g&&f.resizable("option","minWidth",b);e=true;break;case "position":d._position(b);break;case "resizable":g&&!b&&f.resizable("destroy");g&&typeof b==="string"&&f.resizable("option","handles",b);!g&&b!==false&&
-d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break;case "width":e=true;break}c.Widget.prototype._setOption.apply(d,arguments);e&&d._size()},_size:function(){var a=this.options,b;this.element.css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();this.element.css(a.height==="auto"?{minHeight:Math.max(a.minHeight-b,0),height:c.support.minHeight?"auto":Math.max(a.minHeight-
-b,0)}:{minHeight:0,height:Math.max(a.height-b,0)}).show();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.5",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),
-function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=
-(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){this.oldInstances.push(this.instances.splice(c.inArray(a,this.instances),1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var b=0;c.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var a,
-b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<
-b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-;/*
- * jQuery UI Slider 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");b.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
-this.range=d([]);if(b.range){if(b.range===true){this.range=d("<div></div>");if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(b.range==="min"||b.range==="max")this.range.addClass("ui-slider-range-"+b.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
-if(b.values&&b.values.length)for(;d(".ui-slider-handle",this.element).length<b.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();
-else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!a.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
-false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");h=a._start(c,f);if(h===false)return}break}i=a.options.step;h=a.options.values&&a.options.values.length?(g=a.values(f)):(g=a.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=a._valueMin();break;case d.ui.keyCode.END:g=a._valueMax();break;case d.ui.keyCode.PAGE_UP:g=a._trimAlignValue(h+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=a._trimAlignValue(h-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
-a._valueMax())return;g=a._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===a._valueMin())return;g=a._trimAlignValue(h-i);break}a._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(c,e);a._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
-this._mouseDestroy();return this},_mouseCapture:function(a){var b=this.options,c,e,f,h,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(b.range===true&&this.values(1)===b.min){g+=1;f=d(this.handles[g])}if(this._start(a,
-g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();b=f.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-f.width()/2,top:a.pageY-b.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b=
-this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b=
-this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);
-c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var e;if(this.options.values&&this.options.values.length){e=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>e||b===1&&c<e))c=e;if(c!==this.values(b)){e=this.values();e[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c});
-a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=
-this._trimAlignValue(a);this._refreshValue();this._change(null,0)}return this._value()},values:function(a,b){var c,e,f;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a):this.value();
-else return this._values()},_setOption:function(a,b){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled");this.element.addClass("ui-disabled")}else{this.handles.removeAttr("disabled");this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a];
-return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<this._valueMin())return this._valueMin();if(a>this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=a%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a=
-this.options.range,b=this.options,c=this,e=!this._animateOff?b.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},b.animate);if(k===1)c.range[e?"animate":"css"]({width:f-
-g+"%"},{queue:false,duration:b.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},b.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:b.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},
-b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.5"})})(jQuery);
-;/*
- * jQuery UI Tabs 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(a,e){if(a=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[a]=e;this._tabify()}},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var a=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[a].concat(d.makeArray(arguments)))},_ui:function(a,e){return{tab:a,panel:e,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var a=
-d(this);a.html(a.data("label.tabs")).removeData("label.tabs")})},_tabify:function(a){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var b=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))b.panels=b.panels.add(b._sanitizeSelector(i));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=b._tabId(f);f.href="#"+i;f=d("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(b.panels[g-1]||b.list);f.data("destroy.tabs",true)}b.panels=b.panels.add(f)}else c.disabled.push(g)});if(a){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
-this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(b._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return b.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){this.panels.eq(c.selected).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");b.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[c.selected],b.panels[c.selected]))});this.load(c.selected)}d(window).bind("unload",function(){b.lis.add(b.anchors).unbind(".tabs");b.lis=b.anchors=b.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));this.element[c.collapsible?"addClass":
-"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);a=0;for(var j;j=this.lis[a];a++)d(j)[d.inArray(a,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+g)};this.lis.bind("mouseover.tabs",
-function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",function(){e(f,o);b._trigger("show",
-null,b._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");b._trigger("show",null,b._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){b.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);b.element.dequeue("tabs")})}:function(g,f){b.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");b.element.dequeue("tabs")};this.anchors.bind(c.event+".tabs",
-function(){var g=this,f=d(g).closest("li"),i=b.panels.filter(":not(.ui-tabs-hide)"),l=d(b._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||b.panels.filter(":animated").length||b._trigger("select",null,b._ui(this,l[0]))===false){this.blur();return false}c.selected=b.anchors.index(this);b.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=-1;c.cookie&&b._cookie(c.selected,c.cookie);b.element.queue("tabs",
-function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&b._cookie(c.selected,c.cookie);b.element.queue("tabs",function(){r(g,l)});b.load(b.anchors.index(this));this.blur();return false}c.cookie&&b._cookie(c.selected,c.cookie);if(l.length){i.length&&b.element.queue("tabs",function(){s(g,i)});b.element.queue("tabs",function(){r(g,l)});b.load(b.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",
-function(){return false})},_getIndex:function(a){if(typeof a=="string")a=this.anchors.index(this.anchors.filter("[href$="+a+"]"));return a},destroy:function(){var a=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e=d.data(this,"href.tabs");if(e)this.href=
-e;var b=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){b.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});a.cookie&&this._cookie(null,a.cookie);return this},add:function(a,e,b){if(b===p)b=this.anchors.length;
-var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,a).replace(/#\{label\}/g,e));a=!a.indexOf("#")?a.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=d("#"+a);j.length||(j=d(h.panelTemplate).attr("id",a).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(b>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[b]);
-j.insertBefore(this.panels[b])}h.disabled=d.map(h.disabled,function(k){return k>=b?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[b],this.panels[b]));return this},remove:function(a){a=this._getIndex(a);var e=this.options,b=this.lis.eq(a).remove(),c=this.panels.eq(a).remove();
-if(b.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(a+(a+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=a}),function(h){return h>=a?--h:h});this._tabify();this._trigger("remove",null,this._ui(b.find("a")[0],c[0]));return this},enable:function(a){a=this._getIndex(a);var e=this.options;if(d.inArray(a,e.disabled)!=-1){this.lis.eq(a).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(b){return b!=a});this._trigger("enable",null,
-this._ui(this.anchors[a],this.panels[a]));return this}},disable:function(a){a=this._getIndex(a);var e=this.options;if(a!=e.selected){this.lis.eq(a).addClass("ui-state-disabled");e.disabled.push(a);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))}return this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;this.anchors.eq(a).trigger(this.options.event+".tabs");return this},
-load:function(a){a=this._getIndex(a);var e=this,b=this.options,c=this.anchors.eq(a)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(a).addClass("ui-state-processing");if(b.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(b.spinner)}this.xhr=d.ajax(d.extend({},b.ajaxOptions,{url:h,success:function(k,n){d(e._sanitizeSelector(c.hash)).html(k);e._cleanup();b.cache&&d.data(c,"cache.tabs",
-true);e._trigger("load",null,e._ui(e.anchors[a],e.panels[a]));try{b.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[a],e.panels[a]));try{b.ajaxOptions.error(k,n,a,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},url:function(a,
-e){this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.5"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(a,e){var b=this,c=this.options,h=b._rotate||(b._rotate=function(j){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var k=c.selected;b.select(++k<b.anchors.length?k:0)},a);j&&j.stopPropagation()});e=b._unrotate||(b._unrotate=!e?function(j){j.clientX&&b.rotate(null)}:
-function(){t=c.selected;h()});if(a){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
-;/*
- * jQuery UI Datepicker 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function(d,G){function L(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su",
-"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}function E(a,b){d.extend(a,
-b);for(var c in b)if(b[c]==null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.5"}});var y=(new Date).getTime();d.extend(L.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=
-f}}}e=a.nodeName.toLowerCase();f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
-_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
-b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
-""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
-c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
-true);this._updateDatepicker(b);this._updateAlternate(b)}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{});b=b&&b.constructor==
-Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);
-d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},
-_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=
-d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;
-for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&
-this._hideDatepicker();var h=this._getDateDatepicker(a,true);E(e.settings,f);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&
-!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass,b.dpDiv).add(d("td."+d.datepicker._currentClass,b.dpDiv));c[0]?d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();
-return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||
-a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,
-a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));
-var c=String.fromCharCode(a.charCode==G?a.keyCode:a.charCode);return a.ctrlKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||
-a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);
-d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&
-d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=d.datepicker._getBorders(b.dpDiv);b.dpDiv.find("iframe.ui-datepicker-cover").css({left:-i[0],top:-i[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,
-h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");
-this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");
-this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);var e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");
-a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input.focus()},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),
-k=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>k&&k>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1);)a=a[b?"previousSibling":"nextSibling"];
-a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():
-"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&
-!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;
-b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=
-this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=
-d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,
-"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b==
-"object"?b.toString():b+"";if(b=="")return null;for(var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff,f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,k=c=-1,l=-1,u=-1,j=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"?4:p=="o"?
-3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,w,H){p=o(p)?H:w;for(w=0;w<p.length;w++)if(b.substr(s,p[w].length).toLowerCase()==p[w].toLowerCase()){s+=p[w].length;return w+1}throw"Unknown name at position "+s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(j)if(a.charAt(z)=="'"&&!o("'"))j=false;else r();else switch(a.charAt(z)){case "d":l=m("d");
-break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":k=m("m");break;case "M":k=n("M",i,g);break;case "y":c=m("y");break;case "@":var v=new Date(m("@"));c=v.getFullYear();k=v.getMonth()+1;l=v.getDate();break;case "!":v=new Date((m("!")-this._ticksTo1970)/1E4);c=v.getFullYear();k=v.getMonth()+1;l=v.getDate();break;case "'":if(o("'"))r();else j=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>
--1){k=1;l=u;do{e=this._getDaysInMonth(c,k-1);if(l<=e)break;k++;l-=e}while(1)}v=this._daylightSavingAdjust(new Date(c,k-1,l));if(v.getFullYear()!=c||v.getMonth()+1!=k||v.getDate()!=l)throw"Invalid date";return v},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*
-60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=j+1<a.length&&a.charAt(j+1)==o)&&j++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},k=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var j=0;j<a.length;j++)if(u)if(a.charAt(j)==
-"'"&&!i("'"))u=false;else l+=a.charAt(j);else switch(a.charAt(j)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=k("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=k("M",b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+=
-"'";else u=true;break;default:l+=a.charAt(j)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+="0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==G?a.settings[b]:this._defaults[b]},
-_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,
-this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,k=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,j=u.exec(h);j;){switch(j[2]||"d"){case "d":case "D":g+=
-parseInt(j[1],10);break;case "w":case "W":g+=parseInt(j[1],10)*7;break;case "m":case "M":l+=parseInt(j[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(k,l));break;case "y":case "Y":k+=parseInt(j[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(k,l));break}j=u.exec(h)}return new Date(k,l,g)};if(b=(b=b==null?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):b)&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},
-_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?
-"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),k=
-this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),j=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=j&&n<j?j:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,
-"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-k,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+k+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+
-n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+k,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+k+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"w":"e")+'">'+r+"</span></a>";k=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;k=!h?k:this.formatDate(k,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+
-y+".datepicker._gotoToday('#"+a.id+"');\">"+k+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;k=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=this._get(a,"monthNames"),v=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),w=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var M=this._getDefaultDate(a),I="",C=0;C<i[0];C++){for(var N=
-"",D=0;D<i[1];D++){var J=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&C==0?c?
-f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,j,o,C>0||D>0,z,v)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var A=k?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=(t+h)%7;A+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=A+"</tr></thead><tbody>";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,
-A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<A;O++){x+="<tr>";var P=!k?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var F=p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,K=B&&!H||!F[0]||j&&q<j||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(B?" ui-datepicker-other-month":"")+(q.getTime()==J.getTime()&&g==a.selectedMonth&&
-a._keyEvent||M.getTime()==q.getTime()&&M.getTime()==J.getTime()?" "+this._dayOverClass:"")+(K?" "+this._unselectableClass+" ui-state-disabled":"")+(B&&!w?"":" "+F[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!B||w)&&F[2]?' title="'+F[2]+'"':"")+(K?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(B&&!w?"&#xa0;":K?'<span class="ui-state-default">'+q.getDate()+
-"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==J.getTime()?" ui-state-active":"")+(B?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&D==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");N+=x}I+=N}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':
-"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var k=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),j='<div class="ui-datepicker-title">',o="";if(h||!k)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+
-a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(j+=o+(h||!(k&&l)?"&#xa0;":""));if(h||!l)j+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,
-i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(j+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)j+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";j+="</select>"}j+=this._get(a,"yearSuffix");if(u)j+=(h||!(k&&l)?"&#xa0;":"")+o;j+="</div>";return j},_adjustInstDate:function(a,b,c){var e=
-a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
-"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
-c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
-"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
-function(a){if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));
-return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new L;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.5";window["DP_jQuery_"+y]=d})(jQuery);
-;/*
- * jQuery UI Progressbar 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function(b,c){b.widget("ui.progressbar",{options:{value:0},min:0,max:100,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===c)return this._value();this._setOption("value",a);return this},_setOption:function(a,d){if(a==="value"){this.options.value=d;this._refreshValue();this._trigger("change")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.max,Math.max(this.min,a))},_refreshValue:function(){var a=this.value();this.valueDiv.toggleClass("ui-corner-right",
-a===this.max).width(a+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.5"})})(jQuery);
-;/*
- * jQuery UI Effects 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,j){function l(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return m.transparent;return m[f.trim(c).toLowerCase()]}function r(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return l(b)}function n(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function o(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in s||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function t(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:f.fx.speeds[b]||f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=r(b.elem,a);b.end=l(b.end);b.colorInit=
-true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var m={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,
-183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,
-165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},p=["add","remove","toggle"],s={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,d){if(f.isFunction(b)){d=b;b=null}return this.each(function(){var e=f(this),g=e.attr("style")||" ",h=o(n.call(this)),q,u=e.attr("className");f.each(p,function(v,
-i){c[i]&&e[i+"Class"](c[i])});q=o(n.call(this));e.attr("className",u);e.animate(t(h,q),a,b,function(){f.each(p,function(v,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)})})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?
-f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.5",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==
-null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();
-var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});
-c.css({position:"relative",top:0,left:0})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments);a={options:a[1],duration:a[2],callback:a[3]};var b=f.effects[c];return b&&!f.fx.off?b.call(this,a):this},_show:f.fn.show,show:function(c){if(!c||
-typeof c=="number"||f.fx.speeds[c]||!f.effects[c])return this._show.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||!f.effects[c])return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(!c||typeof c=="number"||f.fx.speeds[c]||!f.effects[c]||typeof c==
-"boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,
-a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=
-e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+
-b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/
-2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*
-a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;
-return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,
-a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
-;/*
- * jQuery UI Effects Blind 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","left"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,g);b.effects.removeWrapper(a);
-c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Bounce 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","left"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Clip 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","left","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,c/2)}var h={};h[g.size]=
-f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Drop 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","left","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e=="show"?1:
-0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Explode 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
-;/*
- * jQuery UI Effects Fade 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Fold 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","left"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],10)/100*
-f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Highlight 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Pulsate 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Scale 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","left","width","height","overflow","opacity"],g=["position","top","left","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=c.effects.setMode(a,
-b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};if(m=="box"||m=="both"){if(d.from.y!=
-d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);a.css("overflow","hidden").css(a.from);
-if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);child.to=c.effects.setTransition(child,
-f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,n?e:g);c.effects.removeWrapper(a);b.callback&&
-b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Shake 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","left"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=(h=="pos"?"-=":"+=")+
-e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Slide 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","left"],e=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(e=="show")a.css(f,b=="pos"?-g:g);var i={};i[f]=(e=="show"?b=="pos"?
-"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Transfer 1.8.5
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
-;
\ No newline at end of file
Index: controlies/branches/web2py/applications/controlies/static/favicon.ico
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: controlies/branches/web2py/applications/controlies/static/favicon.ico
___________________________________________________________________
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/modules/Utils/Configs.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Utils/Configs.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Utils/Configs.py	(nonexistent)
@@ -1,3 +0,0 @@
-LOG_FILENAME= '/tmp/controlies.log'
-
-
Index: controlies/branches/web2py/applications/controlies/modules/Utils/Utils.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Utils/Utils.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Utils/Utils.py	(nonexistent)
@@ -1,63 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    Groups.py
-# Purpose:     Groups class
-# Language:    Python 2.5
-# Date:        18-Feb-2011.
-# Ver:        18-Feb-2011.
-# Author:	Manuel Mora Gordillo
-#			Francisco Mendez Palma
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-def cmpLists(list1, list2):
-	
-	onlyInList1 = set(list1).difference(set(list2))
-	onlyInList2 = set(list2).difference(set(list1))
-	inTwoLists = set(list1) & set(list2)
-
-	return { 'onlyInList1':onlyInList1, 'onlyInList2':onlyInList2, 'inTwoLists':inTwoLists }
-
-
-def parseToLdap(string):
-	string = string.replace(" ","_")
-	string = string.replace("á","a").replace("é","e").replace("í","o").replace("ó","o").replace("ú","u")
-	string = string.replace("Á","A").replace("É","E").replace("Í","I").replace("Ó","O").replace("Ú","U")	
-	string = string.replace("ñ","n").replace("Ñ","N")
-				
-	return string
-
-def generate_salt():
-	# Salt can be any length, but not more than about 37 characters
-	# because of limitations of the binascii module.
-	# 7 is what Netscape's example used and should be enough.
-	# All 256 characters are available.
-	from random import randrange
-	
-	salt = ''
-	for n in range(7):
-		salt += chr(randrange(256))
-	return salt
-
-def encrypt(password):
-	import sha
-	from binascii import b2a_base64
-	
-	password = str(password)
-	salt = generate_salt()
- 
-	return b2a_base64(sha.new(password + salt).digest() + salt)[:-1]
Index: controlies/branches/web2py/applications/controlies/modules/Utils/LdapUtils.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Utils/LdapUtils.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Utils/LdapUtils.py	(nonexistent)
@@ -1,82 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    LdapUtils.py
-# Purpose:     Ldap utils
-# Language:    Python 2.5
-# Date:        18-Feb-2011.
-# Ver:        18-Feb-2011.
-# Author:	Manuel Mora Gordillo
-#			Francisco Mendez Palma
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-# Get all users
-def getAllUsers(ldap):
-	result = ldap.search("ou=People","uid=*",["uid","cn"])
-
-	rows = []
-	for u in result:
-		rows.append([u[0][1]['uid'][0] , u[0][1]['cn'][0] ]);
-
-	return rows
-
-
-# Get all groups classified by type
-def getAllGroups(ldap):
-	result = ldap.search("ou=Group","(|(groupType=school_department)(groupType=school_class))",["cn","groupType"])
-	
-	departments = []
-	classrooms = []		
-	for g in result:
-		if g[0][1]["groupType"][0] == "school_department":
-			departments.append(g[0][1]["cn"][0])
-		elif g[0][1]["groupType"][0] == "school_class":
-			classrooms.append(g[0][1]["cn"][0])
-	
-	departments.sort()
-	classrooms.sort()
-	
-	return { "departments":departments, "classrooms":classrooms }
-
-
-# Get the max ID of the groups and users
-def getMaxID(ldap): 
-	result = ldap.search("ou=Group","cn=*",["gidNumber"])		
-	
-	numbers = []
-	for i in result:
-		numbers.append(int(i[0][1]['gidNumber'][0]))
-
-	result = ldap.search("ou=People","uid=*",["gidNumber","uidNumber"])		
-	for i in result:
-		numbers.append(int(i[0][1]['gidNumber'][0]))
-		numbers.append(int(i[0][1]['uidNumber'][0]))
-
-	numbers.sort()		
-	
-	maxID = 1		
-	if len(numbers) > 0:
-		maxID = numbers[len(numbers)-1] + 1
-
-	return maxID
-
-def whatHome(type):
-	
-	if type == "teacher":
-		return "/home/profesor/"
-	else:
-		return "/home/alumnos/"
Index: controlies/branches/web2py/applications/controlies/modules/Utils/avahiClient.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Utils/avahiClient.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Utils/avahiClient.py	(nonexistent)
@@ -1,104 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:		ControlIES
-# Module:    	avahiClient.py
-# Purpose:		Avahi client to detect ltsp servers
-# Language:		Python 2.5
-# Date:			27-Feb-2011.
-# Ver:			27-Feb-2011.
-# Author:		José Luis Redrejo Rodriguez
-# Copyright:    2011 - José Luis Redrejo Rodriguez <jredrejo @no-spam@ debian.org>
-# Modified by:  Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-try:
-    import dbus
-    if getattr(dbus, 'version', (0,0,0)) >= (0,41,0):
-		import dbus.glib		
-except ImportError:
-    dbus = None
-
-if dbus:
-    try:
-        import avahi
-    except ImportError:
-        avahi = None
-else:
-    avahi = None
-
-from twisted.internet import defer, threads
-from twisted.internet import glib2reactor
-import logging
-glib2reactor.install()
-
-class avahiClient():
-
-    def __init__(self, type):
-		self._callbacks = {'new-service':  [], 'remove-service': [] }
-		# initialize dbus stuff needed for discovery
-								   
-		self.bus = dbus.SystemBus()
-		
-		avahi_bus = self.bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER)
-		self.server = dbus.Interface(avahi_bus, avahi.DBUS_INTERFACE_SERVER)
-		
-		#stype = '_workstation._tcp'
-		#stype = '_controlaula._tcp'
-
-		stype = type
-
-		domain = 'local'
-		self._plugged = {}
-
-		avahi_browser = self.server.ServiceBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, stype, domain, dbus.UInt32(0))
-		obj = self.bus.get_object(avahi.DBUS_NAME, avahi_browser)
-		self.browser = dbus.Interface(obj, avahi.DBUS_INTERFACE_SERVICE_BROWSER)	
-
-    def start(self):
-		self.browser.connect_to_signal('ItemNew', self.new_service)
-		self.browser.connect_to_signal('ItemRemove', self.remove_service)
-		
-    def stop(self):
-        self.bus.close()
-
-    def new_service(self, interface, protocol, name, type, domain, flags):
-		
-		def resolve_service_reply(*service):
-			address, port = service[-4:-2]
-			name = unicode(service[2])
-			for cb in self._callbacks['new-service']:
-				self._plugged[name] = (address,port)				
-				cb(self,name, address, port)
-				
-		def resolve_service_error(exception):
-			logging.getLogger().debug('could not resolve daap service %s %s: %s' % (name, domain, exception))			
-			#self.warning('could not resolve daap service %s %s: %s' % (name, domain, exception))
-
-		self.server.ResolveService(interface, protocol, name, type, domain,
-				avahi.PROTO_UNSPEC, dbus.UInt32(0),
-				reply_handler=resolve_service_reply,
-				error_handler=resolve_service_error)
-
-    def remove_service(self, interface, protocol, name, type, domain,server):
-        address, port = self._plugged[name]
-        for cb in self._callbacks['remove-service']:
-            cb(self,name, address, port)
-
-
-    def add_callback(self, sig_name, callback):
-        self._callbacks[sig_name].append(callback)
-
-    def remove_callback(self, sig_name, callback):
-        self._callback[sig_name].remove(callback)
Index: controlies/branches/web2py/applications/controlies/modules/NetworkUtils.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/NetworkUtils.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/NetworkUtils.py	(nonexistent)
@@ -1,305 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     Controlaula
-# Module:     NetworkUtils.py
-# Purpose:     Several network utilities to be used in Python
-# Language:    Python 2.5
-# Date:        17-Jan-2010.
-# Ver:        17-Jan-2010.
-# Author:    José L. Redrejo Rodríguez
-# Copyright:   2009 - José L. Redrejo Rodríguez    <jredrejo @nospam@ debian.org>
-#
-# ControlAula is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlAula is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-import array,fcntl,socket,struct,os,re
-import logging,subprocess
-
-gateway='0'
-ltspGateway='0'
-essid=''
-bssid=''
-IFNAMSIZE = 16
-IW_ESSID_MAX_SIZE = 16
-SIOCGIWESSID  = 0x8B1B
-SIOCGIWAP     = 0x8B15
-
-def get_ip_address(ifname):
-    """Returns the ip address of the interface ifname"""
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    try:
-        ip= socket.inet_ntoa(fcntl.ioctl(
-            s.fileno(),
-            0x8915,  # SIOCGIFADDR
-            struct.pack('256s', ifname[:15]) )[20:24]
-            )
-    except:
-        ip=''
-    return ip
-
-def get_ip_inet_address(connection_ip='198.41.0.4'):
-    """Returns the ip address of the interface used to connect to the given ip
-    
-    198.41.0.4 is a DNS ROOT Server, so it's the default value to connect to Internet
-    """
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)   
-    try: 
-        s.connect((connection_ip, 0))
-        inet_address= s.getsockname()[0]
-    except:
-        inet_address=''
-    s.close()
-    logging.getLogger().debug("Inet Address:" + inet_address)
-    return inet_address 
-
-
-def get_inet_HwAddr(connection_ip='192.168.0.254'):
-    """Returns the mac address of the interface used to connect to the given ip"""
-    interfaces=all_interfaces()
-    rightIP=get_ip_inet_address(connection_ip)
-    mac=''
-    ifname=''
-    for i in interfaces:
-        if rightIP== get_ip_address(i[0]):
-            ifname=i[0]
-            break
-    if ifname !='':
-        mac=get_HwAddr(ifname)
-        
-    return mac
-        
-
-
-def get_HwAddr(ifname):
-    """Returns the mac of the ifname network card"""
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    info = fcntl.ioctl(s.fileno(), 0x8927,  struct.pack('256s', ifname[:15]))
-    try:
-        mac= ''.join(['%02x:' % ord(char) for char in info[18:24]])[:-1]
-    except:
-        mac=''
-    
-    return mac
-
-
-def getWirelessNICnames():
-    """ return list of  wireless device names   """
-    device = re.compile('[a-z]{3,4}[0-9]') 
-    ifnames = []
-    
-    f = open('/proc/net/wireless', 'r')
-    data = f.readlines()
-    for line in data:
-        try:
-            ifnames.append(device.search(line).group())
-        except AttributeError:
-            pass 
-    
-    return ifnames
-
-
-def all_interfaces():
-    """Returns all the available network interfaces in a linux machine"""
-    max_possible = 128  # arbitrary. raise if needed.
-    bytes = max_possible * 32
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    names = array.array('B', '\0' * bytes)
-    outbytes = struct.unpack('iL', fcntl.ioctl( s.fileno(), 0x8912,  struct.pack('iL', bytes, names.buffer_info()[0])    ))[0]
-    namestr = names.tostring()
-    #return [namestr[i:i+32].split('\0', 1)[0] for i in range(0, outbytes, 32)]
-    lst = []
-    arch64=(os.uname()[4]=='x86_64')
-    if arch64:
-        totalStruct=40
-    else:
-        totalStruct=32
-    for i in range(0, outbytes, totalStruct):
-        if arch64:
-            name = namestr[i:i+16].split('\0', 1)[0]
-        else:
-            name = namestr[i:i+32].split('\0', 1)[0]
-        ip   = namestr[i+20:i+24]
-        lst.append((name, socket.inet_ntoa(ip)))
-
-
-    return lst
-
-def getESSID( ifname):
-
-    sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    essid = ""
-    
-    buff = array.array('c', '\0'*32)
-    caddr_t, length = buff.buffer_info()
-    s = struct.pack('Pi', caddr_t, length)
-       
-    buff2 = IFNAMSIZE-len(ifname)
-    ifreq = ifname + '\0'*buff2
-    ifreq = ifreq + s                  
-    try:
-        result = fcntl.ioctl(sockfd.fileno(), SIOCGIWESSID, ifreq)
-        i=0
-        result=result[16:]
-    except IOError, (i, e):
-        i=i
-        result=e
-            
-    if i > 0:
-        return (i, result)
-    str = buff.tostring()
-    return (0,str.strip('\x00'))
-
-
-def getHostName():
-    return socket.gethostname()
-
-def getFreeTCPPort():
-    """Returns a random free port provided by the Operative System"""
-    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
-    sock.bind(('localhost', 0))
-    newPort= sock.getsockname()[1]
-    sock.close()
-    return newPort
-
-
-def getWirelessData():
-    global essid
-    global bssid
-    wifiNICs=getWirelessNICnames()
-    if len(wifiNICs)>0:
-        for i in wifiNICs:
-            value,nessid=getESSID(i)
-            if value==0:
-                essid=nessid
-                value2,nbssid=getAPaddr(i)
-                if value2==0:
-                    bssid=nbssid    
-
-def getAPaddr(ifname):
-    sockfd = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    
-    buff = array.array('c', '\0'*32)
-    caddr_t, length = buff.buffer_info()
-    s = struct.pack('Pi', caddr_t, length)
-        
-
-    buff2 = IFNAMSIZE-len(ifname)
-    ifreq = ifname + '\0'*buff2
-    ifreq = ifreq + s                  
-    try:
-        result = fcntl.ioctl(sockfd.fileno(), SIOCGIWAP, ifreq)
-        i=0
-        result=result[16:]
-    except IOError, (i, e):
-        i=i
-        result=e
-                                  
-                                  
-    if i > 0:
-        return (i, result)
-    else:
-        mac_addr = struct.unpack('xxBBBBBB',result[:8])
-        return (0,"%02X:%02X:%02X:%02X:%02X:%02X" % mac_addr)
-    
-def scan_server(address, port): 
-    """Returns true if a port is open at address, or false otherwise"""
-    s = socket.socket() 
-    #print "Attempting to connect to %s on port %s." %(address, port) 
-    try: 
-        s.connect((address, port)) 
-        #print "Connected to server %s on port %s." %(address, port) 
-        s.close()
-        return True 
-    except socket.error, e: 
-        logging.getLogger().debug("Connecting to %s on port %s failed with the following error: %s" %(address, port, e))
-        return False
-
-
-def getUsableTCPPort(address,port):
-    """Returns the first free port between port and port +10"""
-    freeport=port
-    for x in range(port,port+10): 
-        check = scan_server(address, x) 
-        if check==False :
-            freeport=x
-            break
-    
-    
-    return freeport
-
-
-def startup(address):
-
-    addr_byte = address.split(':')
-    hw_addr = struct.pack('BBBBBB', int(addr_byte[0], 16),
-      int(addr_byte[1], 16),
-      int(addr_byte[2], 16),
-      int(addr_byte[3], 16),
-      int(addr_byte[4], 16),
-      int(addr_byte[5], 16))
-
-    msg = '\xff' * 6 + hw_addr * 16
-    
-    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
-    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
-    try:
-        s.sendto(msg, ('<broadcast>', 9))
-        s.sendto(msg, ('<broadcast>', 7))
-        s.sendto(msg, ('192.168.0.255', 9))
-        s.sendto(msg, ('192.168.0.255', 7))   
-    except:
-        s.sendto(msg, ('<broadcast>', 2000))
-        s.sendto(msg, ('192.168.0.255', 2000))
-    s.close()
-
-def defaultGW():
-    global gateway
-    if gateway=='0':
-        try:
-            s=subprocess.Popen('/sbin/route -n|grep "0.0.0.0"|grep UG',shell=True,stdout=subprocess.PIPE).communicate()[0]
-            gateway=s.splitlines()[0].split()[1]
-        except:
-            gateway='0'
-    return gateway
-    
-def ltspGW():
-    global ltspGateway
-    if ltspGateway=='0':
-        try:
-            externalIP=get_ip_inet_address()
-            internalIP=get_ip_inet_address('192.168.0.2')
-        
-            if externalIP==internalIP or externalIP=='':
-                ltspGateway=defaultGW()
-            else:
-                ltspGateway=internalIP
-        except:
-            ltspGateway='0'
-    return ltspGateway
-
-def cleanRoutes():
-    s=subprocess.Popen(['route','-n'],stdout=subprocess.PIPE).communicate()[0]
-    l=s.splitlines()
-    for route in l:
-        target=route.split()[0]
-        if target[:4]=='239.':
-            subprocess.Popen(['route','del','-net',target + '/24'])
-            
-def addRoute(net,gw=''):
-    if gw=='':
-        newgw=defaultGW()
-    else:
-        newgw=gw
-    subprocess.Popen(['route','add','-net',net+ '/24','gw',newgw])

Property changes on: controlies/branches/web2py/applications/controlies/modules/NetworkUtils.py
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/modules/DHCP.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/DHCP.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/DHCP.py	(nonexistent)
@@ -1,203 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    DHCP.py
-# Purpose:     DHCP class
-# Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
-# Author:	Manuel Mora Gordillo
-#			Francisco Mendez Palma
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import ldap
-import logging
-from math import ceil
-
-class DHCP(object):
-
-    def __init__(self):
-		pass
-	
-    def __init__(self,ldap,subnet_mask,broadcast_address,routers,domain_name_servers,domain_name,ntp_servers,log_servers,netbios_name_servers,netbios_node_type):
-		self.ldap = ldap
-		self.subnet_mask = subnet_mask
-		self.broadcast_address = broadcast_address
-		self.routers = routers
-		self.domain_name_servers = domain_name_servers
-		self.domain_name = domain_name
-		self.ntp_servers = ntp_servers
-		self.log_servers = log_servers
-		self.netbios_name_servers = netbios_name_servers
-		self.netbios_node_type = netbios_node_type
-	
-    def validation(self):
-		if self.subnet_mask == "":
-			return "subnet_mask"
-
-		if self.broadcast_address == "broadcast_address":
-			return "broadcast_address"
-			
-		if self.routers == "routers":
-			return "routers"
-
-		if self.domain-name == "domain-name":
-			return "domain-name"
-			
-		if self.domain_name_servers == "domain_name_servers":
-			return "domain_name_servers"
-			
-		if self.ntp_servers == "ntp_servers":
-			return "ntp_servers"
-			
-		if self.log_servers == "log_servers":
-			return "log_servers"
-
-		if self.netbios_name_servers == "netbios_name_servers":
-			return "netbios_name_servers"
-			
-		if self.netbios_node_type == "netbios_node_type":
-			return "netbios_node_type"
-			
-		return "OK"
-
-    def process(self,action):
-		if action == "add":
-			val = self.validation()
-			
-			if val != "OK":
-				return val
-			else:
-				response = self.add()
-				return response
-
-		if action == "modify":
-			val = self.validation()
-			
-			if val != "OK":
-				return val
-			else:
-				response = self.modify()
-				return response
-				
-		if action == "delete":
-			response = self.delete()
-			return response
-		
-		if action == "list":
-			response = self.list();
-			return response	
-			
-    def list(self,args):
-		#busqueda dhcp
-		search = self.ldap.search("cn=INTERNAL,cn=DHCP Config,dc=instituto,dc=extremadura,dc=es","dhcpOption=*",["dhcpOption"])
-
-		limit = int(args['rows'][0])
-		page = int(args['page'][0])
-
-		start = limit * page - limit
-		finish = start + limit;		
-		
-		if len(search) > 0:
-			totalPages = ceil( len(search) / int(limit) )
-		else:
-			totalPages = 0
-
-		if page > totalPages:
-			page = totalPages
-		# print search[0][0][1]["uidNumber"][0]
-		rows = []
-		for i in search[start:finish]:
-			row = { "cn":i[0][0], "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]]}
-			rows.append(row)
-
-		return { "page":page, "total":totalPages, "records":len(search), "rows":rows }
-
-    def add(self):
-		record = [
-		('objectclass', ['person','organizationalperson','inetorgperson']),
-		('uid', ['francis']),
-		('cn', [self.name] ),
-		('sn', ['Bacon'] ),
-		('userpassword', [self.password]),
-		('ou', ['users'])
-		]
-		try:
-			self.ldap.add("cn=hosts", record)
-		except ldap.ALREADY_EXISTS:
-			return "fail"
-		
-		return "OK"
- 
-    def modify(self):
-		mod_attrs = [
-		(ldap.MOD_ADD, 'description', 'Author of New Organon'),
-		(ldap.MOD_ADD, 'description', 'British empiricist') 
-		]
-		self.ldap.modify_s('uid='+ uid +',cn=hosts', mod_attrs)
-
-    def delete(self,uid):
-		self.ldap.delete('uid='+ uid +',cn=hosts')
-
-    def wakeup(self):
-		from twisted.internet.task import LoopingCall
-		from twisted.internet import defer
-		from Plugins import NetworkUtils
-		NetworkUtils.startup(self.mac)
-
-#	def wakeup(self):
-#		from twisted.internet.task import LoopingCall
-#		from twisted.internet import defer
-#		from Plugins import NetworkUtils
-#		NetworkUtils.startup(self.mac)
-		
-
-# Encender el equipo
-#def wakeup(self):
-#        macs=[]
-#        for i in self.targets:
-#            mac=Configs.MonitorConfigs.GetMAC(i)
-#            if mac !='':                
-#                macs.append(mac)                
-#        Actions.sendWOLBurst(macs, 2)
-
-#Apagar el equipo
-#    def sleep(self):
-#        self.usersCommand(Desktop.sleep)
-
-#def sendWOLBurst(macs,throttle):    
-#    from twisted.internet.task import LoopingCall    
-#    from twisted.internet import defer    
-#    if not macs:
-#        return defer.succeed(None)
-#    d = defer.Deferred()
-#    work = list(macs)
-#    def sendNext():
-#        if not work:
-#            loop.stop()
-#            d.callback(None)
-#            return defer.succeed(None)
-#        next = work.pop(0)
-#
-#        #subprocess.Popen(['wakeonlan',next ])
-#        #subprocess.Popen(['wakeonlan','-i','192.168.0.255',next ])
-#        NetworkUtils.startup(next)
-#                   
-#        return None
-#    loop = LoopingCall(sendNext)
-#    loop.start(throttle)
-#    return d

Property changes on: controlies/branches/web2py/applications/controlies/modules/DHCP.py
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/modules/Groups.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Groups.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Groups.py	(nonexistent)
@@ -1,227 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    Groups.py
-# Purpose:     Groups class
-# Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
-# Author:	Manuel Mora Gordillo
-#			Francisco Mendez Palma
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#				2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import ldap
-import logging
-from math import ceil
-from operator import itemgetter
-from Utils import Utils, LdapUtils
-
-class Groups(object):
-
-    def __init__(self):
-		pass
-	
-    def __init__(self,ldap,type,name,users):
-		self.ldap = ldap
-		self.type = type
-		self.name = Utils.parseToLdap(name)
-		self.users = users
-		
-    def validation(self,action):
-
-		if self.type == "none":
-			return "type"
-				
-		if self.name == "":
-			return "name"
-			
-		if self.users == "":
-			return "users"
-					
-		return "OK"
-
-    def process(self,action):
-		if action == "add":
-			val = self.validation(action)
-			
-			if val != "OK":
-				return val
-			else:
-				response = self.add()
-				return response
-
-		if action == "modify":
-			val = self.validation(action)
-
-			if val != "OK":
-				return val
-			else:
-				response = self.modify()
-				return response		
-			
-    def list(self,args):
-
-		filter = self.buildFilter(args)		
-		search = self.ldap.search("ou=Group",filter,["cn","gidNumber","groupType","memberUid"])
-
-		# grid parameters
-		limit = int(args['rows'])
-		page = int(args['page'])
-		start = limit * page - limit
-		finish = start + limit;				
-
-		# sort by field
-		sortBy = args['sidx']
-		if sortBy == "cn":
-			sortBy = "id"
-
-		# reverse Sort
-		reverseSort = False
-		if args['sord']== "asc":
-			reverseSort = True
-
-		# type of group (Classroom/Department)
-		try:
-			searchType = args['type']
-		except LookupError:
-			searchType = "none"
-
-		rows = []
-		for i in search:
-			
-			typeRow="Aula"
-			if i[0][1]["groupType"][0]=="school_department":
-				typeRow="Departamento"
-			
-			if searchType == typeRow or searchType=="none":
-				
-				try:
-					usersNumber = len(i[0][1]["memberUid"])
-				except:
-					usersNumber = 0
-					
-				row = {
-					"id":i[0][1]["cn"][0], 
-					"cell":[typeRow, i[0][1]["cn"][0], i[0][1]["gidNumber"][0], usersNumber],
-					"type": typeRow,
-					"cn": i[0][1]["cn"][0],
-					"gidNumber": i[0][1]["gidNumber"][0],
-					"usersNumber": usersNumber
-				}
-				rows.append(row)				
-								
-			
-		if len(search) > 0:
-			totalPages = ceil( len(search) / int(limit) )
-		else:
-			totalPages = 0
-
-		if page > totalPages:
-			page = totalPages
-
-		# sort rows
-		result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
-
-		return { "page":page, "total":totalPages, "records":len(search), "rows":result[start:finish] }
-		
-
-    def buildFilter(self, args):
-		filter = "(&(cn=*)(|(groupType=school_class)(groupType=school_department))"
-		
-		try:
-			filter = filter + "(cn=*" + args['cn'] + "*)"
-		except LookupError:
-			pass
-
-		try:
-			filter = filter + "(gidNumber=" + args['gidNumber'] + ")"
-		except LookupError:
-			pass
-
-		filter = filter + ")"
-		return filter
-		
-
-    def add(self):
-		maxID = str(LdapUtils.getMaxID(self.ldap))
-
-		members = []
-		for m in self.users.split(','):
-			members.append("uid=" + m + ",ou=People,dc=instituto,dc=extremadura,dc=es")
-
-		attr = [
-		('objectclass', ['top','posixGroup','lisGroup','lisAclGroup']),
-		('grouptype', [self.type] ),		
-		('gidnumber', [maxID] ),		
-		('cn', [self.name] ),
-		('description', [self.name+' department group']),
-		('memberuid', self.users.split(',')),
-		('member', members)
-		]
-
-		self.ldap.add("cn="+self.name+",ou=Group", attr)
-		
-		return "OK"
-
-			
-    def modify(self):
-
-		members = []
-		for m in self.users.split(','):
-			members.append("uid=" + m + ",ou=People,dc=instituto,dc=extremadura,dc=es")
-			
-		mod_attrs = [
-		(ldap.MOD_REPLACE, 'memberuid', self.users.split(',')),
-		(ldap.MOD_REPLACE, 'member', members) 
-		]
-
-		self.ldap.modify('cn='+ self.name +',ou=Group', mod_attrs)
-
-		return "OK"
-
-
-    def delete(self):
-		self.ldap.delete('cn='+ self.name +',ou=Group')
-
-		return "OK"
-		
-
-    def getGroupData(self):
-
-		result = self.ldap.search("ou=Group","cn="+self.name,["cn","grouptype","memberuid"])
-
-		members = result[0][0][1]["memberUid"]
-		members.sort()
-
-		dataGroup = {
-			"name":result[0][0][1]["cn"][0],
-			"type":result[0][0][1]["groupType"][0],
-			"memberuid":members
-		 }
-		 
-		return dataGroup
-
-    def getGroupUsers(self):
-		result = self.ldap.search("ou=Group","cn="+self.name,["cn","memberUid"])
-		
-		members = []
-		for m in result:
-			members.append(m[0][1]["memberUid"][0])
-		
-		members.sort()
-		
-		return members

Property changes on: controlies/branches/web2py/applications/controlies/modules/Groups.py
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/modules/LdapConnection.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/LdapConnection.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/LdapConnection.py	(nonexistent)
@@ -1,173 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    LdapConnection.py
-# Purpose:     Connection with ldap server
-# Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
-# Author:    Manuel Mora Gordillo
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import ldap
-import logging
-
-
-ldap_secure=True
-ldap_cert='/etc/ldap/ssl/ldap-server-pubkey.pem'
-ldapmode='uid'
-
-def session_ldap(server,username,password): 
-    import ldap
-    if ldap_secure:
-        ldap_port = 636
-        con = ldap.initialize("ldaps://" + server + ":" + str(ldap_port))
-        if ldap_cert:
-            con.set_option(ldap.OPT_X_TLS_CACERTDIR, ldap_cert)
-    else:
-        ldap_port = 389
-        con = ldap.initialize("ldap://" + server + ":" + str(ldap_port))
-
-    if username == 'admin':
-        dn = "cn=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
-    else:
-        dn = "uid=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
-        
-    con.simple_bind_s(dn, password)        
-        
-    
-    return con
-    
-    
-class LdapConnection(object):
-
-    
-    def __init__(self,session):
-        self.host = session.server
-        self.user = session.username
-        self.passwd = session.password
-
-    def setCredentials(self,host,user,passwd):
-        self.host = host
-        self.user = user
-        self.passwd = passwd
-
-    def validation(self):
-        if self.host == "":
-            return "host"
-
-        if self.user == "":
-            return "user"
-
-        if self.passwd == "":
-            return "password"
-
-        return "OK"
-
-    def process(self):
-        val = self.validation()
-            
-        if val != "OK":
-            return val
-
-        auth = self.connect()
-        return auth
-
-    def connect(self):
-        self.connection=ldap.open(self.host)
-        try:
-            self.connection.simple_bind_s("cn="+self.user+",ou=People,dc=instituto,dc=extremadura,dc=es",self.passwd)
-        except ldap.INVALID_CREDENTIALS:
-            logging.getLogger().debug('LDAP user or password incorrect')
-            return False
-        except ldap.CONFIDENTIALITY_REQUIRED:
-            try:
-                #self.connection.set_option(ldap.OPT_X_TLS_DEMAND, True)
-                self.connection=ldap.initialize("ldaps://" +self.host)
-                self.connection.simple_bind_s("cn="+self.user+",ou=People,dc=instituto,dc=extremadura,dc=es",self.passwd)
-                return True
-            except ldap.LDAPError,e:
-                logging.getLogger().debug('A secure connection with the ldap server could not be established')
-                return False          
-                
-        except ldap.LDAPError,e:
-            logging.getLogger().debug('LDAP error %s' % e.message["desc"])
-            return False
-
-        return True
-
-    def getConnect(self):
-        return self.connection
-        
-    def search(self,baseDN,filter,retrieveAttributes):
-        
-        try:
-            ldap_result_id = self.connection.search(baseDN+",dc=instituto,dc=extremadura,dc=es", ldap.SCOPE_SUBTREE, filter, retrieveAttributes)
-            result_set = []
-            while 1:
-                result_type, result_data = self.connection.result(ldap_result_id, 0)
-                if (result_data == []):
-                    break
-                else:
-                    if result_type == ldap.RES_SEARCH_ENTRY:
-                        result_set.append(result_data)
-            return result_set
-        except ldap.LDAPError, e:
-            logging.getLogger().debug('LDAP error search')
-        
-        """result = con.search_s( base_dn, ldap.SCOPE_SUBTREE, filter, attrs )
-        return result"""
-
-    def add(self,baseDN,attr):
-        try:
-            self.connection.add_s(baseDN+",dc=instituto,dc=extremadura,dc=es", attr)
-            
-        except ldap.ALREADY_EXISTS:
-            logging.getLogger().debug("LDAP already exists %s" % (baseDN))
-        except ldap.OPERATIONS_ERROR:
-            logging.getLogger().debug("LDAP operation error %s" % (baseDN))
-        except ldap.NO_SUCH_OBJECT:
-            logging.getLogger().debug("LDAP no such object %s" % (baseDN))
-            
-        return True
-
-    def modify(self,baseDN,attr):
-        try:
-            self.connection.modify_s(baseDN+",dc=instituto,dc=extremadura,dc=es", attr)
-            
-        except ldap.OPERATIONS_ERROR:
-            print "error"
-        except ldap.NO_SUCH_OBJECT:
-            print "no_such_object"
-            
-        return True
-        
-    def delete(self,baseDN):
-        try:
-            self.connection.delete_s(baseDN+",dc=instituto,dc=extremadura,dc=es")
-            
-        except ldap.OPERATIONS_ERROR:
-            print "error"
-        except ldap.NO_SUCH_OBJECT:
-            print "no_such_object"
-            
-        return True
-        
-        
-    def close(self):
-        self.connection.unbind()
-        
-
Index: controlies/branches/web2py/applications/controlies/modules/Hosts.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Hosts.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Hosts.py	(nonexistent)
@@ -1,451 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    Hosts.py
-# Purpose:     Hosts class
-# Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
-# Author:   Manuel Mora Gordillo
-#           Francisco Mendez Palma
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#               2011 - Francisco Mendez Palma <fmendezpalma @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import ldap
-import logging
-import time
-from math import ceil
-from operator import itemgetter
-
-class Hosts(object):
-
-    def __init__(self):
-        pass
-    
-    def __init__(self,ldap,name,ip,mac,group,type):
-        self.ldap = ldap
-        self.name = name
-        self.ip = ip
-        self.mac = mac
-        self.group = group 
-        self.type = type
-    
-    def getName (self):
-        return self.mac 
-                
-    def validation(self,action):
-
-        if action == "add":
-            if self.type == "none":
-                return "type"
-        
-        if self.name == "":
-            return "name"
-            
-        if self.type <> 'thinclient':
-            if self.ip == "":
-                return "ip"
-
-        if self.mac == "":
-            return "mac"
-            
-        if self.type =="thinclient":
-            if self.group == "":
-                return "group"
-
-        if self.type == "":
-            return "type"
-        
-        if action == "add":
-            if self.existsHostname():
-                return "hostAlreadyExists"
-        
-            # thinclients no requieren ip, la cogen dinamicamente en el aula
-            if self.type <> "thinclient":
-                if self.existsIP():
-                    return "ipAlreadyExists"
-            #controlar overflow en nodos        
-            if self.groupOverflow(300):
-                return "groupOverflow"
-
-            if self.existsMAC():
-                return "macAlreadyExists"
-
-        elif action == "modify":        
-            if self.groupOverflow(300):
-                return "groupOverflow"
-
-            if self.existsMAC():
-                return "macAlreadyExists"   
-
-        return "OK"     
-        
-    def process(self,action):
-        if action == "add":
-            val = self.validation(action)
-            
-            if val != "OK":
-                return val
-            else:
-                response = self.add()
-                return response
-
-        if action == "modify":
-            val = self.validation(action)
-            
-            if val != "OK":
-                return val
-            else:
-                response = self.modify()
-                return response
-                
-        if action == "delete":
-            response = self.delete()
-            return response
-        
-        if action == "list":
-            response = self.list();
-            return response 
-            
-    def list(self,args):
-        
-        #from Plugins.LdapConnection import LdapConnection
-
-        #l = LdapConnection("172.23.36.5",'cn=admin,ou=People,dc=instituto,dc=extremadura,dc=es',"Sta1987teleco")
-        #l.connect()
-        
-        # grid parameters
-        limit = int(args['rows'])
-        page = int(args['page'])
-        start = limit * page - limit
-        finish = start + limit;             
-
-        # sort by field
-        sortBy = args['sidx']
-        #if sortBy == "uid":
-            #sortBy = "id"
-
-        # reverse Sort
-        reverseSort = False
-        if args['sord'] == "asc":
-            reverseSort = True
-        
-        #Distinguimos entre hosts ltsp, workstations y portatiles
-        type = args['type']
-        
-                        
-        if type == "ltsp":
-            # Obtengo todos los elementos del nodo hosts
-            #search = l.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])
-            #filter = self.buildFilter(args)        
-            search = self.ldap.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])     
-            
-            # triplets que contiene los nombres de los ltsp-servers
-            hostnames = self.getLTSPServers()
-                            
-            # Ahora tengo que quedarme con los elementos de search que estan en hostnames: los que son ltsp
-            resultado=list()
-            for element in search:
-                if element[0][1]["cn"][0] in hostnames:
-                    resultado.append(element)
-            
-            search = resultado 
-
-            rows = []
-            for i in search:
-                row = {
-                    "id":i[0][1]["cn"][0], 
-                    "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]],
-                    "cn":i[0][1]["cn"][0],
-                    "ipHostNumber":i[0][1]["ipHostNumber"][0],
-                    "macAddress":i[0][1]["macAddress"][0]
-                }
-                #row = { "cn":i[0][0], "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]]}
-                rows.append(row)
-                
-            if len(rows) > 0:
-                totalPages = ceil( len(rows) / int(limit) )
-            else:
-                totalPages = 0
-            if page > totalPages:
-                page = totalPages
-
-            result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
-            return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish]  }       
-                
-        elif type == "thinclient":
-            search = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","cn=*",["cn","dhcpHWAddress"])
-            filter="(|(dhcpOption=*subnet*)(dhcpOption=*log*))"
-            
-            rows = []
-            
-            # esto hay que cambiarlo: tenemos 4 groups en thinclientes
-            for i in search[6:len(search)]:
-                    nodeinfo=i[0][0].replace ("cn=","").split(",")
-                    row = {
-                        "id":i[0][1]["cn"][0], 
-                        "cell":[i[0][1]["cn"][0], i[0][1]["dhcpHWAddress"][0].replace("ethernet ",""), nodeinfo[1]],
-                        "cn":i[0][1]["cn"][0],
-                        "dhcpHWAddress":i[0][1]["dhcpHWAddress"][0],
-                        "groupName":i[0][1]["dhcpHWAddress"][0]
-                    }                       
-                    rows.append(row)
-            if len(rows) > 0:
-                totalPages = ceil( len(rows) / int(limit) )
-            else:
-                totalPages = 0
-            if page > totalPages:
-                page = totalPages
-                
-            result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
-            return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish] }                    
-        
-        elif type == "workstation":
-            # Obtengo todos los elementos del nodo hosts
-            #search = l.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])
-            search = self.ldap.search("ou=hosts","cn=*",["cn","ipHostNumber","macAddress"])                 
-            # triplets que contiene los nombres de las workstations
-            #triplets = l.search("ou=Netgroup","cn=workstation-hosts",["nisNetgroupTriple"])
-            triplets = self.ldap.search("ou=Netgroup","cn=workstation-hosts",["nisNetgroupTriple"])
-            triplets = triplets [0][0][1]["nisNetgroupTriple"]
-            hostnames=list()
-            
-            # obtengo lista de nombres de los hosts workstation
-            for node in triplets:
-                name = node.replace(",-,-)","").replace("(","")
-                hostnames.append(name)
-                
-            # Ahora tengo que quedarme con los elementos de search que estan en hostnames
-            resultado=list()
-            for element in search:
-                if element[0][1]["cn"][0] in hostnames:
-                    resultado.append(element)
-            
-            search = resultado 
-
-            rows = []
-            for i in search:
-                row = {
-                    "id":i[0][1]["cn"][0], 
-                    "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]],
-                    "cn":i[0][1]["cn"][0],
-                    "ipHostNumber":i[0][1]["ipHostNumber"][0],
-                    "macAddress":i[0][1]["macAddress"][0]
-                }                       
-                #row = { "cn":i[0][0], "cell":[i[0][1]["cn"][0], i[0][1]["ipHostNumber"][0],i[0][1]["macAddress"]]}
-                rows.append(row)
-
-            if len(rows) > 0:
-                totalPages = ceil( len(rows) / int(limit) )
-            else:
-                totalPages = 0
-            if page > totalPages:
-                page = totalPages                   
-
-            result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
-            return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish] }        
-
-    def add(self):
-        if self.type=="thinclient":
-            attr = [
-            ('objectclass', ['top','dhcpHost']),
-            ('cn', [self.name] ),
-            ('dhcpStatements', ['filename "/var/lib/tftpboot/ltsp/i386/pxelinux.0"'] ), 
-            ('dhcpHWAddress', ['ethernet ' + self.mac] )
-            ]
-            
-            self.ldap.add("cn="+self.name +",cn="+self.group+",cn=THINCLIENTS,cn=DHCP Config", attr)
-                        
-        return "OK"
-        
-    def modify(self):
-        attr = [
-        (ldap.MOD_REPLACE, 'cn', [self.name] ),
-        (ldap.MOD_REPLACE, 'dhcpHWAddress', ["ethernet "+ self.mac])
-        ]
-            
-        self.ldap.modify("cn="+self.name+",cn="+self.group +",cn=THINCLIENTS,cn=DHCP Config", attr)
-
-        return "OK"
-
-    def delete(self):
-        if self.type=="thinclient":
-            self.ldap.delete('cn='+ self.name +',cn=' +self.group +',cn=THINCLIENTS,cn=DHCP Config')
-
-        return "OK"     
-
-    def wakeup(self):
-        from Plugins import NetworkUtils
-        NetworkUtils.startup(self.mac)
-        
-    def groupOverflow(self,overflow):
-        if self.type == 'thinclient':
-            search = self.ldap.search("cn=" + self.group +",cn=THINCLIENTS,cn=DHCP Config","cn=*",["cn"])
-            if len(search)-2 >= overflow:
-                return True
-                
-        return False
-            
-    def existsHostname(self):
-        
-        if self.type == 'thinclient':
-            result = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","cn="+self.name,["cn"])
-        else:
-            result = self.ldap.search("ou=hosts","cn="+self.name,["cn"])
-        
-        if len(result) > 0:
-            return True
-        
-        return False
-        
-    def existsMAC(self):
-        # Compruebo con las macs de la rama hosts
-        if self.type == 'thinclient':
-            result = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","dhcpHWAddress=*",["dhcpHWAddress"])
-            for i in range (0, len(result) - 1):
-                if result [i][0][1]['dhcpHWAddress'][0].replace ("ethernet ", "") == self.mac:
-                    return True
-        else:
-            result = self.ldap.search("ou=hosts","macAddress="+self.mac,["macAddress"])
-
-            if len(result) > 0:
-                return True
-        
-        return False
-        
-    def existsIP (self):
-        # Cojo las ips de la rama hosts -> arpa -> in-addr
-        result = self.ldap.search ("dc=23,dc=172,dc=in-addr,dc=arpa,ou=hosts", "dc=*",["associatedDomain"])
-        
-        myIP = self.ip.split (".")
-
-        for i in range (0, len (result) -1):
-            reverseIP = result [i][0][1]['associatedDomain'][0].replace (".in-addr.arpa","").split(".")
-            reverseIP.reverse() 
-            if myIP == reverseIP:
-                return True
-        
-        return False
-        
-    def getThinclientGroups (self):
-
-        groups = []
-        search = self.ldap.search("cn=THINCLIENTS,cn=DHCP Config","cn=group*",["cn"])
-        
-        for g in search:
-            groups.append (g[0][1]["cn"][0])
-            
-        return { "groups":groups }
-        
-    def getInternalGroups (self):
-        
-        groups = []
-        search = self.ldap.search("cn=INTERNAL,cn=DHCP Config","cn=group*",["cn"])
-        
-        for g in search:
-            groups.append (g[0][1]["cn"][0])
-            
-        return { "groups":groups }      
-        
-    def getHostData(self):       
-        result1 = self.ldap.search("cn=DHCP Config","cn="+self.name,["cn","dhcpHWAddress"])
-        result2 = self.ldap.search(" ou=hosts","dc="+self.name,["aRecord"])   
-        dataHost = {
-            "cn":self.name,
-            "group":self.group,
-            "mac":"",
-            "ip":""
-        }
-        if len(result1)==1:
-            dataHost["mac"]=result1[0][0][1]["dhcpHWAddress"][0].replace("ethernet ","")
-        if len(result2)==1:
-            dataHost["ip"]=result2[0][0][1]["aRecord"][0]
-         
-        return dataHost     
-        
-        
-    def getLTSPServers (self):
-        triplets = self.ldap.search("ou=Netgroup","cn=ltsp-server-hosts",["nisNetgroupTriple"])
-        triplets = triplets [0][0][1]["nisNetgroupTriple"]
-        hostnames=list()
-            
-        for node in triplets:
-            name = node.replace(",-,-)","").replace("(","")
-            hostnames.append(name)
-        hostnames.sort()
-        return hostnames
-
-
-    def getLTSPStatus (self):
-        from Utils.avahiClient import avahiClient
-        import threading
-        
-        a = avahiClient()  
-        a.start() 
-        time.sleep(1000)    
-        a.cancel()      
-        names = a.getList()
-        print names
-        
-        """a = avahiClient()
-        time.sleep(1000)        
-        names = a.getList()
-        print names
-        a.kill()"""
-        return names
-
-#   def wakeup(self):
-#       from twisted.internet.task import LoopingCall
-#       from twisted.internet import defer
-#       from Plugins import NetworkUtils
-#       NetworkUtils.startup(self.mac)
-        
-
-# Encender el equipo
-#def wakeup(self):
-#        macs=[]
-#        for i in self.targets:
-#            mac=Configs.MonitorConfigs.GetMAC(i)
-#            if mac !='':                
-#                macs.append(mac)                
-#        Actions.sendWOLBurst(macs, 2)
-
-#Apagar el equipo
-#    def sleep(self):
-#        self.usersCommand(Desktop.sleep)
-
-#def sendWOLBurst(macs,throttle):    
-#    from twisted.internet.task import LoopingCall    
-#    from twisted.internet import defer    
-#    if not macs:
-#        return defer.succeed(None)
-#    d = defer.Deferred()
-#    work = list(macs)
-#    def sendNext():
-#        if not work:
-#            loop.stop()
-#            d.callback(None)
-#            return defer.succeed(None)
-#        next = work.pop(0)
-#
-#        #subprocess.Popen(['wakeonlan',next ])
-#        #subprocess.Popen(['wakeonlan','-i','192.168.0.255',next ])
-#        NetworkUtils.startup(next)
-#                   
-#        return None
-#    loop = LoopingCall(sendNext)
-#    loop.start(throttle)
-#    return d

Property changes on: controlies/branches/web2py/applications/controlies/modules/Hosts.py
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: controlies/branches/web2py/applications/controlies/modules/Users.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Users.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Users.py	(nonexistent)
@@ -1,442 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:      ControlIES
-# Module:       Users.py
-# Purpose:      Users class
-# Language:     Python 2.5
-# Date:         7-Feb-2011.
-# Ver:          7-Feb-2011.
-# Author:       Manuel Mora Gordillo
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlIES. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import ldap
-import logging
-import hashlib
-import base64
-from math import ceil
-from operator import itemgetter
-from Utils import Utils, LdapUtils
-
-class Users(object):
-
-    def __init__(self):
-        pass
-    
-    def __init__(self,ldap,type,name,surname,nif,user,password,password2,departments,classrooms):
-        self.ldap = ldap
-        self.type = type
-        self.name = name
-        self.surname = surname
-        self.nif = nif
-        self.user = user        
-        self.password = password
-        self.password2 = password2
-        self.departments = departments
-        self.classrooms = classrooms
-        if  self.departments.__class__.__name__ == 'str': self.departments=[departments]
-        if  self.classrooms.__class__.__name__ == 'str': self.classrooms=[classrooms]
-        
-        
-    def validation(self,action):
-        
-        if action == "add":
-            if self.type == "none":
-                return "type"
-        
-        if self.name == "":
-            return "name"
-
-        if self.surname == "":
-            return "surname"
-
-        if self.nif == "":
-            return "nif"
-
-        if self.user == "":
-            return "user"
-        
-        if action == "add":
-            if self.existsUsername():
-                return "userAlreadyExists"
-        
-            if self.password == "":
-                return "password"
-
-            if self.password2 == "":
-                return "password2"
-
-            if self.password != self.password2:
-                return "distinctPassword"
-                
-        elif action == "modify":            
-            if self.password == "" and self.password2 != "":
-                return "password"
-                                
-            if self.password != "" and self.password2 == "":
-                return "password2"
-
-            if self.password != "" and self.password2 != "" and self.password != self.password2:
-                return "distinctPassword"
-
-        return "OK"
-
-    def process(self,action):
-        if action == "add":
-            val = self.validation(action)
-            
-            if val != "OK":
-                return val
-            else:
-                response = self.add()
-                return response
-
-        if action == "modify":
-            val = self.validation(action)
-            
-            if val != "OK":
-                return val
-            else:
-                response = self.modify()
-                return response
-        
-            
-    def list(self,args):
-
-        filter = self.buildFilter(args)
-        search = self.ldap.search("ou=People",filter,["employeeNumber","uid","cn","uidnumber","gidnumber","homedirectory"])
-
-        # grid parameters
-        limit = int(args['rows'])
-        page = int(args['page'])
-        start = limit * page - limit
-        finish = start + limit;             
-
-        # sort by field
-        sortBy = args['sidx']
-        if sortBy == "uid":
-            sortBy = "id"
-
-        # reverse Sort
-        reverseSort = False
-        if args['sord'] == "asc":
-            reverseSort = True
-
-        # type of user (Teacher/Student)
-        try:
-            searchType = args['type']
-        except LookupError:
-            searchType = "none"
-
-        rows = []
-        for i in search:
-            
-            typeRow="Alumno"
-            userdata=i[0][1]
-            if userdata["homeDirectory"][0][0:14]=="/home/profesor":
-                typeRow="Profesor"
-            if not "employeeNumber" in userdata: userdata["employeeNumber"]=["0"]
-            if searchType == typeRow or searchType=="none":
-                row = {
-                    "id":userdata["uid"][0], 
-                    "cell":[typeRow, userdata["cn"][0], userdata["uid"][0], userdata["uidNumber"][0], userdata["gidNumber"][0], userdata["employeeNumber"][0]], 
-                    "type": typeRow,                    
-                    "cn":userdata["cn"][0],
-                    "uidNumber":userdata["uidNumber"][0],
-                    "gidNumber":userdata["gidNumber"][0],                
-                    "employeeNumber":userdata["employeeNumber"][0]
-                }
-                rows.append(row)
-                    
-        # grid parameters
-        if len(rows) > 0:
-            totalPages = ceil( len(rows) / int(limit) )
-        else:
-            totalPages = 0
-
-        if page > totalPages:
-            page = totalPages
-
-        # sort rows
-        result = sorted(rows, key=itemgetter(sortBy), reverse=reverseSort)
-
-        return { "page":page, "total":totalPages, "records":len(rows), "rows":result[start:finish] }
-
-
-    def buildFilter(self, args):
-        filter = "(&(uid=*)"
-        
-        try:
-            filter = filter + "(uid=*" + args['uid'] + "*)"
-        except LookupError:
-            pass
-
-        try:
-            filter = filter + "(cn=*" + args['cn'] + "*)"
-        except LookupError:
-            pass
-
-        try:
-            filter = filter + "(uidNumber=" + args['uidNumber'] + ")"
-        except LookupError:
-            pass
-
-        try:
-            filter = filter + "(gidNumber=" + args['gidNumber'] + ")"
-        except LookupError:
-            pass
-
-        try:
-            filter = filter + "(employeeNumber=*" + args['employeeNumber'] + "*)"
-        except LookupError:
-            pass
-
-        filter = filter + ")"
-        return filter
-
-
-    def add(self):
-
-        maxID = str(LdapUtils.getMaxID(self.ldap))
-        passwd = '{SSHA}' + Utils.encrypt(self.password)
-        
-        attr = [
-        ('objectclass', ['top','posixAccount','shadowAccount','person','inetOrgPerson']),
-        ('uid', [self.user]),
-        ('cn', [self.name] ),
-        ('employeenumber', [self.nif] ),        
-        ('sn', [self.surname] ),
-        ('uidnumber', [maxID] ),
-        ('gidnumber', [maxID] ),    
-        ('loginshell', ['/bin/bash'] ),
-        ('homeDirectory', [LdapUtils.whatHome(self.type) + self.user] ),
-        #('jpegPhoto', ['jpegPhoto'] ),     
-        ('userpassword', [passwd])
-        ]
-
-        self.ldap.add("uid="+self.user+",ou=People", attr)
-
-        # Add private group
-        attr = [
-        ('objectclass', ['top','posixGroup','lisGroup']),
-        ('grouptype', ['private']), 
-        ('gidnumber', [maxID] ),    
-        ('cn', [self.user] ),
-        ('description', [self.name+' personal group'] )
-        ]
-
-        self.ldap.add("cn="+self.user+",ou=Group", attr)
-        
-        
-        # Add selected groups   
-        attr = [
-        (ldap.MOD_ADD, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
-        (ldap.MOD_ADD, 'memberUid', [self.user] )
-        ]
-
-                    
-        for n in self.departments:
-            self.ldap.modify('cn='+ n +',ou=Group', attr)
-
-        for n in self.classrooms:
-            self.ldap.modify('cn='+ n +',ou=Group', attr)
-            
-        if self.type=='teacher':
-            self.ldap.modify('cn=teachers,ou=Group', attr)
-        elif self.type=='student':
-            self.ldap.modify('cn=students,ou=Group', attr)
-                        
-        return "OK"
-            
-            
-    def modify(self):
-        attr = [
-        (ldap.MOD_REPLACE, 'cn', [self.name] ),
-        (ldap.MOD_REPLACE, 'employeenumber', [self.nif] ),      
-        (ldap.MOD_REPLACE, 'sn', [self.surname] )       
-        ]
-
-        if self.password!="":
-            passwd = '{SSHA}' + Utils.encrypt(self.password)
-            attr.append((ldap.MOD_REPLACE, 'userpassword', [passwd]))
-        
-        self.ldap.modify("uid="+self.user+",ou=People", attr)
-
-        # Get current groups
-        currentGroups = self.getUserGroups()
-        
-        groupsDepartments = Utils.cmpLists(currentGroups["departments"], self.departments)
-        groupsClassrooms = Utils.cmpLists(currentGroups["classrooms"], self.classrooms)     
-        
-        # Delete unselected groups      
-        deleteDepartments = groupsDepartments["onlyInList1"]
-        deleteClassrooms = groupsClassrooms["onlyInList1"]
-        
-        attr = [
-        (ldap.MOD_DELETE, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
-        (ldap.MOD_DELETE, 'memberUid', [self.user] )
-        ]
-
-        for d in deleteDepartments:
-            self.ldap.modify('cn='+ d +',ou=Group', attr)
-
-        for d in deleteClassrooms:
-            self.ldap.modify('cn='+ d +',ou=Group', attr)
-                    
-        # Add selected groups   
-        newDepartments = groupsDepartments["onlyInList2"]
-        newClassrooms = groupsClassrooms["onlyInList2"]
-        
-        attr = [
-        (ldap.MOD_ADD, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
-        (ldap.MOD_ADD, 'memberUid', [self.user] )
-        ]
-
-        for n in newDepartments:
-            self.ldap.modify('cn='+ n +',ou=Group', attr)
-
-        for n in newClassrooms:
-            self.ldap.modify('cn='+ n +',ou=Group', attr)
-                    
-        return "OK"
-
-
-    def delete(self):
-        
-        self.ldap.delete('uid='+ self.user +',ou=People')
-        self.ldap.delete("cn="+self.user+",ou=Group")
-        
-        # Delete unselected groups      
-        currentGroups = self.getUserGroups()
-
-        attr = [
-        (ldap.MOD_DELETE, 'member', ['uid='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es'] ),
-        (ldap.MOD_DELETE, 'memberUid', [self.user] )
-        ]
-
-        for d in currentGroups["departments"]:
-            self.ldap.modify('cn='+ d +',ou=Group', attr)
-
-        for d in currentGroups["classrooms"]:
-            self.ldap.modify('cn='+ d +',ou=Group', attr)
-            
-        return "OK"
-
-
-    def existsUsername(self):
-        
-        result = self.ldap.search("ou=People","uid="+self.user,["uid"])
-
-        if len(result) > 0:
-            return True
-        
-        return False
-
-
-    def searchNewUsername(self):
-
-        result = self.ldap.search("ou=People","uid=*",["uid"])
-        users = []
-        for i in result:
-            users.append(i[0][1]['uid'][0])
-
-        n = self.name.lower().split(" ")
-        
-        username = ""
-        if len(n) > 0:
-            username = n[0][0:1]
-
-        if len(n) > 1:
-             username = username + n[1]
-             
-        if len(n) > 2:
-            username = username + n[2][0:1]
-
-        num = 1
-        searching = username + "0" + str(num)
-
-        found = True
-        while found:
-            try:
-                users.index(searching)
-                num = num + 1
-                
-                if len(str(num)) == 1:
-                    searching = username + "0" + str(num)
-                else:
-                    searching = username + str(num)
-            except:
-                found = False
-                
-        return searching
-
-    def getUserGroups(self):
-        result = self.ldap.search("ou=Group","(&(memberUid="+self.user+")(|(groupType=school_department)(groupType=school_class)))",["cn","groupType"])
-        
-        departments = []
-        classrooms = []     
-        for g in result:
-            if g[0][1]["groupType"][0] == "school_department":
-                departments.append(g[0][1]["cn"][0])
-            elif g[0][1]["groupType"][0] == "school_class":
-                classrooms.append(g[0][1]["cn"][0])
-        
-        departments.sort()
-        classrooms.sort()
-        return { "departments":departments, "classrooms":classrooms }
-        
-    def getUserData(self):
-        self.getUserGroups()
-        result = self.ldap.search("ou=People","uid="+self.user,["uid","cn","sn","employeenumber","homedirectory","jpegPhoto"])
-        
-        if len(result) == 0:
-            return { "user":"", "name":"", "surname":"", "nif":"", "photo":"", "type":"", "groups":[] }
-        
-        type = "student"
-        if result[0][0][1]["homeDirectory"][0][0:14]=="/home/profesor":
-            type = "teacher"
-        
-        try:
-            photo = base64.b64encode(result[0][0][1]["jpegPhoto"][0])
-        except:
-            photo = ""
-        userdata=result[0][0][1]  
-        if "employeeNumber" not in userdata: userdata["employeeNumber"]=["0"]
-        dataUser = {
-            "user":userdata["uid"][0],
-            "name":userdata["cn"][0],
-            "surname":userdata["sn"][0],
-            "nif":userdata["employeeNumber"][0],
-            "photo":photo,
-            "type":type,
-            "groups":self.getUserGroups()
-         }
-         
-        return dataUser
-
-    def getUserPhoto(self):
-        self.getUserGroups()
-        result = self.ldap.search("ou=People","uid="+self.user,["jpegPhoto"])
-                
-        try:
-            photo = base64.b64encode(result[0][0][1]["jpegPhoto"][0])
-        except:
-            photo = ""
-            
-        dataUser = {
-            "photo":photo
-         }
-         
-        return dataUser
Index: controlies/branches/web2py/applications/controlies/modules/LdapConnection.py2
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/LdapConnection.py2	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/LdapConnection.py2	(nonexistent)
@@ -1,47 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    LdapConnection.py
-# Purpose:     Connection with ldap server
-# Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
-# Author:    Manuel Mora Gordillo
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-ldap_secure=True
-ldap_cert='/etc/ldap/ssl/ldap-server-pubkey.pem'
-ldapmode='uid'
-
-def session_ldap(server,username,password): 
-    import ldap
-    if ldap_secure:
-        ldap_port = 636
-        con = ldap.initialize("ldaps://" + server + ":" + str(ldap_port))
-        if ldap_cert:
-            con.set_option(ldap.OPT_X_TLS_CACERTDIR, ldap_cert)
-    else:
-        ldap_port = 389
-        con = ldap.initialize("ldap://" + server + ":" + str(ldap_port))
-
-    if username == 'admin':
-        dn = "cn=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
-    else:
-        dn = "uid=" + username + ",ou=People,dc=instituto,dc=extremadura,dc=es"
-        
-    con.simple_bind_s(dn, password)        
-        
-    
-    return con
Index: controlies/branches/web2py/applications/controlies/modules/Security.py
===================================================================
--- controlies/branches/web2py/applications/controlies/modules/Security.py	(revision 177)
+++ controlies/branches/web2py/applications/controlies/modules/Security.py	(nonexistent)
@@ -1,60 +0,0 @@
-##############################################################################
-# -*- coding: utf-8 -*-
-# Project:     ControlIES
-# Module:    Security.py
-# Purpose:     Authentication with ldap server
-# Language:    Python 2.5
-# Date:        7-Feb-2011.
-# Ver:        7-Feb-2011.
-# Author:    Manuel Mora Gordillo
-# Copyright:    2011 - Manuel Mora Gordillo <manuito @no-spam@ gmail.com>
-#
-# ControlIES is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-# ControlIES is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License
-# along with ControlAula. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from Plugins.LdapConnection import LdapConnection
-
-class Security(object):
-
-	def __init__(self,host,user,password):
-		self.host = host
-		self.user = user
-		self.password = password
-
-
-	def validation(self):
-		if self.host == "":
-			return "host"
-
-		if self.user == "":
-			return "user"
-
-		if self.password == "":
-			return "password"
-
-		return "OK"
-
-	def process(self):
-		val = self.validation()
-        	
-		if val != "OK":
-			return val
-
-		auth = self.authentication()
-		return auth
-
-	def authentication(self):
-		l = LdapConnection(self.host,'cn='+self.user+',ou=People,dc=instituto,dc=extremadura,dc=es',self.password)
-		ret = l.connect()
-
-		return ret
Index: controlies/branches/web2py/applications/controlies/ABOUT
===================================================================
--- controlies/branches/web2py/applications/controlies/ABOUT	(revision 177)
+++ controlies/branches/web2py/applications/controlies/ABOUT	(nonexistent)
@@ -1,2 +0,0 @@
-Write something about this app.
-Developed with web2py.
\ No newline at end of file
Index: controlies/branches/web2py/subwsgihandler.py
===================================================================
--- controlies/branches/web2py/subwsgihandler.py	(revision 177)
+++ controlies/branches/web2py/subwsgihandler.py	(nonexistent)
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# Author: Fred Gansevles <fred@gansevles.net>
-# 
-# subwsgihandler.py -- a *hack* to make web2py sub-url mountable
-#
-# example apache config
-#
-#        WSGIScriptAlias /web2py /usr/local/www/wsgi-scripts/web2py/subwsgihandler.py
-#        WSGIDaemonProcess subweb2py user=www-data group=www-data \
-#                          home=/usr/local/www/wsgi-scripts processes=5 \
-#                          maximum-requests=10000
-#
-#        <Location "/web2py">
-#            Order deny,allow
-#            Allow from all
-#            WSGIProcessGroup subweb2py
-#        </Location>
-#
-# the web2p app is now mounted at http://localhost/web2py
-#
-
-import sys
-sys.path.insert(0, '')
-
-class SubWeb2py(object):
-    def __init__(self, application):
-        self.application = application
-
-        import gluon.html
-        self.gluon_html_URL = gluon.html.URL
-        gluon.html.URL = self.URL
-
-    def URL(self, *args, **kw):
-        # rewrite the generated URLs, so external referencens have the SCRIPT_NAME prefix
-        return self.script_name + self.gluon_html_URL(*args, **kw)
-
-    def start_response(self, status, headers, info=None):
-        # rewrite redirect URLs, so external referencens have the SCRIPT_NAME prefix
-        if not status.startswith('3'):
-            return self._start_response(status, headers, info)
-        # status: 3xx (redirect)
-        _headers = []
-        for key, value in headers:
-            if key == 'Set-Cookie':
-                # don't modify the cookie, it already has a modified location
-                return self._start_response(status, headers, info)
-            # relative URLs start with '/', absolute URLs start with 'http'
-            if key == 'Location' and value.startswith('/'):
-                value = self.script_name + value
-            _headers.append((key, value))
-        return self._start_response(status, _headers, info)
-
-    def __call__(self, environ, start_response):
-        self.script_name = environ['SCRIPT_NAME']
-        environ['SCRIPT_NAME'] = ''
-        if self.script_name and environ['REQUEST_URI'].startswith(self.script_name):
-            environ['REQUEST_URI'] = environ['REQUEST_URI'][len(self.script_name):]
-        self._start_response = start_response
-        return self.application(environ, self.start_response)
-
-from web2py.wsgihandler import application
-application = SubWeb2py(application)
Index: controlies/branches/web2py/wsgihandler.py
===================================================================
--- controlies/branches/web2py/wsgihandler.py	(revision 177)
+++ controlies/branches/web2py/wsgihandler.py	(nonexistent)
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""
-This file is part of the web2py Web Framework
-Copyrighted by Massimo Di Pierro <mdipierro@cs.depaul.edu>
-License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
-
-
-This is a WSGI handler for Apache
-Requires apache+mod_wsgi.
-
-In httpd.conf put something like:
-
-    LoadModule wsgi_module modules/mod_wsgi.so
-    WSGIScriptAlias / /path/to/wsgihandler.py
-
-"""
-
-# change these parameters as required
-LOGGING = False
-SOFTCRON = False
-
-import sys
-import os
-
-path = os.path.dirname(os.path.abspath(__file__))
-os.chdir(path)
-sys.path = [path]+[p for p in sys.path if not p==path]
-
-import gluon.main
-
-if LOGGING:
-    application = gluon.main.appfactory(wsgiapp=gluon.main.wsgibase,
-                                        logfilename='httpserver.log',
-                                        profilerfilename=None)
-else:
-    application = gluon.main.wsgibase
-
-if SOFTCRON:
-    from gluon.settings import global_settings
-    global_settings.web2py_crontype = 'soft'
