/*
Copyright (c) Copyright (c) 2007, Carl S. Yestrau All rights reserved.
Code licensed under the BSD License: http://www.featureblend.com/license.txt
Version: 1.0.4
*/
var FlashDetect = new function(){
    var self = this;
    self.installed = false;
    self.raw = "";
    self.major = -1;
    self.minor = -1;
    self.revision = -1;
    self.revisionStr = "";
    var activeXDetectRules = [
        {
            "name":"ShockwaveFlash.ShockwaveFlash.7",
            "version":function(obj){
                return getActiveXVersion(obj);
            }
        },
        {
            "name":"ShockwaveFlash.ShockwaveFlash.6",
            "version":function(obj){
                var version = "6,0,21";
                try{
                    obj.AllowScriptAccess = "always";
                    version = getActiveXVersion(obj);
                }catch(err){}
                return version;
            }
        },
        {
            "name":"ShockwaveFlash.ShockwaveFlash",
            "version":function(obj){
                return getActiveXVersion(obj);
            }
        }
    ];
    /**
     * Extract the ActiveX version of the plugin.
     * 
     * @param {Object} The flash ActiveX object.
     * @type String
     */
    var getActiveXVersion = function(activeXObj){
        var version = -1;
        try{
            version = activeXObj.GetVariable("$version");
        }catch(err){}
        return version;
    };
    /**
     * Try and retrieve an ActiveX object having a specified name.
     * 
     * @param {String} name The ActiveX object name lookup.
     * @return One of ActiveX object or a simple object having an attribute of activeXError with a value of true.
     * @type Object
     */
    var getActiveXObject = function(name){
        var obj = -1;
        try{
            obj = new ActiveXObject(name);
        }catch(err){
            obj = {activeXError:true};
        }
        return obj;
    };
    /**
     * Parse an ActiveX $version string into an object.
     * 
     * @param {String} str The ActiveX Object GetVariable($version) return value. 
     * @return An object having raw, major, minor, revision and revisionStr attributes.
     * @type Object
     */
    var parseActiveXVersion = function(str){
        var versionArray = str.split(",");//replace with regex
        return {
            "raw":str,
            "major":parseInt(versionArray[0].split(" ")[1], 10),
            "minor":parseInt(versionArray[1], 10),
            "revision":parseInt(versionArray[2], 10),
            "revisionStr":versionArray[2]
        };
    };
    /**
     * Parse a standard enabledPlugin.description into an object.
     * 
     * @param {String} str The enabledPlugin.description value.
     * @return An object having raw, major, minor, revision and revisionStr attributes.
     * @type Object
     */
    var parseStandardVersion = function(str){
        var descParts = str.split(/ +/);
        var majorMinor = descParts[2].split(/\./);
        var revisionStr = descParts[3];
        return {
            "raw":str,
            "major":parseInt(majorMinor[0], 10),
            "minor":parseInt(majorMinor[1], 10), 
            "revisionStr":revisionStr,
            "revision":parseRevisionStrToInt(revisionStr)
        };
    };
    /**
     * Parse the plugin revision string into an integer.
     * 
     * @param {String} The revision in string format.
     * @type Number
     */
    var parseRevisionStrToInt = function(str){
        return parseInt(str.replace(/[a-zA-Z]/g, ""), 10) || self.revision;
    };
    /**
     * Is the major version greater than or equal to a specified version.
     * 
     * @param {Number} version The minimum required major version.
     * @type Boolean
     */
    self.majorAtLeast = function(version){
        return self.major >= version;
    };
    /**
     * Is the minor version greater than or equal to a specified version.
     * 
     * @param {Number} version The minimum required minor version.
     * @type Boolean
     */
    self.minorAtLeast = function(version){
        return self.minor >= version;
    };
    /**
     * Is the revision version greater than or equal to a specified version.
     * 
     * @param {Number} version The minimum required revision version.
     * @type Boolean
     */
    self.revisionAtLeast = function(version){
        return self.revision >= version;
    };
    /**
     * Is the version greater than or equal to a specified major, minor and revision.
     * 
     * @param {Number} major The minimum required major version.
     * @param {Number} (Optional) minor The minimum required minor version.
     * @param {Number} (Optional) revision The minimum required revision version.
     * @type Boolean
     */
    self.versionAtLeast = function(major){
        var properties = [self.major, self.minor, self.revision];
        var len = Math.min(properties.length, arguments.length);
        for(i=0; i<len; i++){
            if(properties[i]>=arguments[i]){
                if(i+1<len && properties[i]==arguments[i]){
                    continue;
                }else{
                    return true;
                }
            }else{
                return false;
            }
        }
    };
    /**
     * Constructor, sets raw, major, minor, revisionStr, revision and installed public properties.
     */
    self.FlashDetect = function(){
        if(navigator.plugins && navigator.plugins.length>0){
            var type = 'application/x-shockwave-flash';
            var mimeTypes = navigator.mimeTypes;
            if(mimeTypes && mimeTypes[type] && mimeTypes[type].enabledPlugin && mimeTypes[type].enabledPlugin.description){
                var version = mimeTypes[type].enabledPlugin.description;
                var versionObj = parseStandardVersion(version);
                self.raw = versionObj.raw;
                self.major = versionObj.major;
                self.minor = versionObj.minor; 
                self.revisionStr = versionObj.revisionStr;
                self.revision = versionObj.revision;
                self.installed = true;
            }
        }else if(navigator.appVersion.indexOf("Mac")==-1 && window.execScript){
            var version = -1;
            for(var i=0; i<activeXDetectRules.length && version==-1; i++){
                var obj = getActiveXObject(activeXDetectRules[i].name);
                if(!obj.activeXError){
                    self.installed = true;
                    version = activeXDetectRules[i].version(obj);
                    if(version!=-1){
                        var versionObj = parseActiveXVersion(version);
                        self.raw = versionObj.raw;
                        self.major = versionObj.major;
                        self.minor = versionObj.minor; 
                        self.revision = versionObj.revision;
                        self.revisionStr = versionObj.revisionStr;
                    }
                }
            }
        }
    }();
};
FlashDetect.JS_RELEASE = "1.0.4";
/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
/*
    http://www.JSON.org/json2.js
    2011-10-19

    Public Domain.

    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.

    See http://www.JSON.org/js.html


    This code should be minified before deployment.
    See http://javascript.crockford.com/jsmin.html

    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
    NOT CONTROL.


    This file creates a global JSON object containing two methods: stringify
    and parse.

        JSON.stringify(value, replacer, space)
            value       any JavaScript value, usually an object or array.

            replacer    an optional parameter that determines how object
                        values are stringified for objects. It can be a
                        function or an array of strings.

            space       an optional parameter that specifies the indentation
                        of nested structures. If it is omitted, the text will
                        be packed without extra whitespace. If it is a number,
                        it will specify the number of spaces to indent at each
                        level. If it is a string (such as '\t' or '&nbsp;'),
                        it contains the characters used to indent at each level.

            This method produces a JSON text from a JavaScript value.

            When an object value is found, if the object contains a toJSON
            method, its toJSON method will be called and the result will be
            stringified. A toJSON method does not serialize: it returns the
            value represented by the name/value pair that should be serialized,
            or undefined if nothing should be serialized. The toJSON method
            will be passed the key associated with the value, and this will be
            bound to the value

            For example, this would serialize Dates as ISO strings.

                Date.prototype.toJSON = function (key) {
                    function f(n) {
                        // Format integers to have at least two digits.
                        return n < 10 ? '0' + n : n;
                    }

                    return this.getUTCFullYear()   + '-' +
                         f(this.getUTCMonth() + 1) + '-' +
                         f(this.getUTCDate())      + 'T' +
                         f(this.getUTCHours())     + ':' +
                         f(this.getUTCMinutes())   + ':' +
                         f(this.getUTCSeconds())   + 'Z';
                };

            You can provide an optional replacer method. It will be passed the
            key and value of each member, with this bound to the containing
            object. The value that is returned from your method will be
            serialized. If your method returns undefined, then the member will
            be excluded from the serialization.

            If the replacer parameter is an array of strings, then it will be
            used to select the members to be serialized. It filters the results
            such that only members with keys listed in the replacer array are
            stringified.

            Values that do not have JSON representations, such as undefined or
            functions, will not be serialized. Such values in objects will be
            dropped; in arrays they will be replaced with null. You can use
            a replacer function to replace those with JSON values.
            JSON.stringify(undefined) returns undefined.

            The optional space parameter produces a stringification of the
            value that is filled with line breaks and indentation to make it
            easier to read.

            If the space parameter is a non-empty string, then that string will
            be used for indentation. If the space parameter is a number, then
            the indentation will be that many spaces.

            Example:

            text = JSON.stringify(['e', {pluribus: 'unum'}]);
            // text is '["e",{"pluribus":"unum"}]'


            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'

            text = JSON.stringify([new Date()], function (key, value) {
                return this[key] instanceof Date ?
                    'Date(' + this[key] + ')' : value;
            });
            // text is '["Date(---current time---)"]'


        JSON.parse(text, reviver)
            This method parses a JSON text to produce an object or array.
            It can throw a SyntaxError exception.

            The optional reviver parameter is a function that can filter and
            transform the results. It receives each of the keys and values,
            and its return value is used instead of the original value.
            If it returns what it received, then the structure is not modified.
            If it returns undefined then the member is deleted.

            Example:

            // Parse the text. Values that look like ISO date strings will
            // be converted to Date objects.

            myData = JSON.parse(text, function (key, value) {
                var a;
                if (typeof value === 'string') {
                    a =
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
                    if (a) {
                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
                    }
                }
                return value;
            });

            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
                var d;
                if (typeof value === 'string' &&
                        value.slice(0, 5) === 'Date(' &&
                        value.slice(-1) === ')') {
                    d = new Date(value.slice(5, -1));
                    if (d) {
                        return d;
                    }
                }
                return value;
            });


    This is a reference implementation. You are free to copy, modify, or
    redistribute.
*/

/*jslint evil: true, regexp: true */

/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
    lastIndex, length, parse, prototype, push, replace, slice, stringify,
    test, toJSON, toString, valueOf
*/


// Create a JSON object only if one does not already exist. We create the
// methods in a closure to avoid creating global variables.

var JSON;
if (!JSON) {
    JSON = {};
}

(function () {
    'use strict';

    function f(n) {
        // Format integers to have at least two digits.
        return n < 10 ? '0' + n : n;
    }

    if (typeof Date.prototype.toJSON !== 'function') {

        Date.prototype.toJSON = function (key) {

            return isFinite(this.valueOf())
                ? this.getUTCFullYear()     + '-' +
                    f(this.getUTCMonth() + 1) + '-' +
                    f(this.getUTCDate())      + 'T' +
                    f(this.getUTCHours())     + ':' +
                    f(this.getUTCMinutes())   + ':' +
                    f(this.getUTCSeconds())   + 'Z'
                : null;
        };

        String.prototype.toJSON      =
            Number.prototype.toJSON  =
            Boolean.prototype.toJSON = function (key) {
                return this.valueOf();
            };
    }

    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
        gap,
        indent,
        meta = {    // table of character substitutions
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"' : '\\"',
            '\\': '\\\\'
        },
        rep;


    function quote(string) {

// If the string contains no control characters, no quote characters, and no
// backslash characters, then we can safely slap some quotes around it.
// Otherwise we must also replace the offending characters with safe escape
// sequences.

        escapable.lastIndex = 0;
        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
            var c = meta[a];
            return typeof c === 'string'
                ? c
                : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
        }) + '"' : '"' + string + '"';
    }


    function str(key, holder) {

// Produce a string from holder[key].

        var i,          // The loop counter.
            k,          // The member key.
            v,          // The member value.
            length,
            mind = gap,
            partial,
            value = holder[key];

// If the value has a toJSON method, call it to obtain a replacement value.

        if (value && typeof value === 'object' &&
                typeof value.toJSON === 'function') {
            value = value.toJSON(key);
        }

// If we were called with a replacer function, then call the replacer to
// obtain a replacement value.

        if (typeof rep === 'function') {
            value = rep.call(holder, key, value);
        }

// What happens next depends on the value's type.

        switch (typeof value) {
        case 'string':
            return quote(value);

        case 'number':

// JSON numbers must be finite. Encode non-finite numbers as null.

            return isFinite(value) ? String(value) : 'null';

        case 'boolean':
        case 'null':

// If the value is a boolean or null, convert it to a string. Note:
// typeof null does not produce 'null'. The case is included here in
// the remote chance that this gets fixed someday.

            return String(value);

// If the type is 'object', we might be dealing with an object or an array or
// null.

        case 'object':

// Due to a specification blunder in ECMAScript, typeof null is 'object',
// so watch out for that case.

            if (!value) {
                return 'null';
            }

// Make an array to hold the partial results of stringifying this object value.

            gap += indent;
            partial = [];

// Is the value an array?

            if (Object.prototype.toString.apply(value) === '[object Array]') {

// The value is an array. Stringify every element. Use null as a placeholder
// for non-JSON values.

                length = value.length;
                for (i = 0; i < length; i += 1) {
                    partial[i] = str(i, value) || 'null';
                }

// Join all of the elements together, separated with commas, and wrap them in
// brackets.

                v = partial.length === 0
                    ? '[]'
                    : gap
                    ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']'
                    : '[' + partial.join(',') + ']';
                gap = mind;
                return v;
            }

// If the replacer is an array, use it to select the members to be stringified.

            if (rep && typeof rep === 'object') {
                length = rep.length;
                for (i = 0; i < length; i += 1) {
                    if (typeof rep[i] === 'string') {
                        k = rep[i];
                        v = str(k, value);
                        if (v) {
                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
                        }
                    }
                }
            } else {

// Otherwise, iterate through all of the keys in the object.

                for (k in value) {
                    if (Object.prototype.hasOwnProperty.call(value, k)) {
                        v = str(k, value);
                        if (v) {
                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
                        }
                    }
                }
            }

// Join all of the member texts together, separated with commas,
// and wrap them in braces.

            v = partial.length === 0
                ? '{}'
                : gap
                ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}'
                : '{' + partial.join(',') + '}';
            gap = mind;
            return v;
        }
    }

// If the JSON object does not yet have a stringify method, give it one.

    if (typeof JSON.stringify !== 'function') {
        JSON.stringify = function (value, replacer, space) {

// The stringify method takes a value and an optional replacer, and an optional
// space parameter, and returns a JSON text. The replacer can be a function
// that can replace values, or an array of strings that will select the keys.
// A default replacer method can be provided. Use of the space parameter can
// produce text that is more easily readable.

            var i;
            gap = '';
            indent = '';

// If the space parameter is a number, make an indent string containing that
// many spaces.

            if (typeof space === 'number') {
                for (i = 0; i < space; i += 1) {
                    indent += ' ';
                }

// If the space parameter is a string, it will be used as the indent string.

            } else if (typeof space === 'string') {
                indent = space;
            }

// If there is a replacer, it must be a function or an array.
// Otherwise, throw an error.

            rep = replacer;
            if (replacer && typeof replacer !== 'function' &&
                    (typeof replacer !== 'object' ||
                    typeof replacer.length !== 'number')) {
                throw new Error('JSON.stringify');
            }

// Make a fake root object containing our value under the key of ''.
// Return the result of stringifying the value.

            return str('', {'': value});
        };
    }


// If the JSON object does not yet have a parse method, give it one.

    if (typeof JSON.parse !== 'function') {
        JSON.parse = function (text, reviver) {

// The parse method takes a text and an optional reviver function, and returns
// a JavaScript value if the text is a valid JSON text.

            var j;

            function walk(holder, key) {

// The walk method is used to recursively walk the resulting structure so
// that modifications can be made.

                var k, v, value = holder[key];
                if (value && typeof value === 'object') {
                    for (k in value) {
                        if (Object.prototype.hasOwnProperty.call(value, k)) {
                            v = walk(value, k);
                            if (v !== undefined) {
                                value[k] = v;
                            } else {
                                delete value[k];
                            }
                        }
                    }
                }
                return reviver.call(holder, key, value);
            }


// Parsing happens in four stages. In the first stage, we replace certain
// Unicode characters with escape sequences. JavaScript handles many characters
// incorrectly, either silently deleting them, or treating them as line endings.

            text = String(text);
            cx.lastIndex = 0;
            if (cx.test(text)) {
                text = text.replace(cx, function (a) {
                    return '\\u' +
                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                });
            }

// In the second stage, we run the text against regular expressions that look
// for non-JSON patterns. We are especially concerned with '()' and 'new'
// because they can cause invocation, and '=' because it can cause mutation.
// But just to be safe, we want to reject all unexpected forms.

// We split the second stage into 4 regexp operations in order to work around
// crippling inefficiencies in IE's and Safari's regexp engines. First we
// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
// replace all simple value tokens with ']' characters. Third, we delete all
// open brackets that follow a colon or comma or that begin the text. Finally,
// we look to see that the remaining characters are only whitespace or ']' or
// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.

            if (/^[\],:{}\s]*$/
                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {

// In the third stage we use the eval function to compile the text into a
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
// in JavaScript: it can begin a block or an object literal. We wrap the text
// in parens to eliminate the ambiguity.

                j = eval('(' + text + ')');

// In the optional fourth stage, we recursively walk the new structure, passing
// each name/value pair to a reviver function for possible transformation.

                return typeof reviver === 'function'
                    ? walk({'': j}, '')
                    : j;
            }

// If the text is not JSON parseable, then a SyntaxError is thrown.

            throw new SyntaxError('JSON.parse');
        };
    }
}());
/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.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 originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.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){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.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|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={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,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(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;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<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>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);
/* clickMenu - v0.1.6
 * Copyright (c) 2007 Roman Weich
 * http://p.sohei.org
 *
 * Changelog: 
 * v 0.1.6 - 2007-09-06
 *	-fix: having a link in the top-level menu would not open the menu but call the link instead
 * v 0.1.5 - 2007-07-07
 *	-change/fix: menu opening/closing now through simple show() and hide() calls - before fadeIn and fadeOut were used for which extra functions to stop a already running animation were created -> they were 
 *			buggy (not working with the interface plugin in jquery1.1.2 and not working with jquery1.1.3 at all) and now removed
 *	-change: removed option: fadeTime
 *	-change: now using the bgiframe plugin for adding iframes in ie6 when available
 * v 0.1.4 - 2007-03-20
 *	-fix: the default options were overwritten by the context related options
 *	-fix: hiding a submenu all hover- and click-events were unbound, even the ones not defined in this plugin - unbinding should work now
 * v 0.1.3 - 2007-03-13
 *	-fix: some display problems ie had when no width was set on the submenu, so on ie the width for each submenu will be explicitely set
 *	-fix: the fix to the ie-width-problem is a fix to the "ie does not support css min-width stuff" problem too which displayed some submenus too narrow (it looked just not right)
 *	-fix: some bugs, when user the was too fast with the mouse
 * v 0.1.2 - 2007-03-11
 *	-change: made a lot changes in the traversing routines to speed things up (having better memory usage now as well)
 *	-change: added $.fn.clickMenu.setDefaults() for setting global defaults
 *	-fix: hoverbug when a main menu item had no submenu
 *	-fix: some bugs i found while rewriting most of the stuff
 * v 0.1.1 - 2007-03-04
 *	-change: the width of the submenus is no longer fixed, its set in the plugin now
 *	-change: the submenu-arrow is now an img, not the background-img of the list element - that allows better positioning, and background-changes on hover (you have to set the image through the arrowSrc option)
 *	-fix: clicking on a clickMenu while another was already open, didn't close the open one
 *	-change: clicking on the open main menu item will close it
 *	-fix: on an open menu moving the mouse to a main menu item and moving it fastly elsewere hid the whole menu
 * v 0.1.0 - 2007-03-03
 */

(function($)
{
	var defaults = {
		onClick: function(){
			/*$(this).find('>a').each(function(){
				if ( this.href )
				{
					window.location = this.href;
				}
			});*/
		},
		arrowSrc: '',
		subDelay: 300,
		mainDelay: 10
	};

	$.fn.clickMenu = function(options) 
	{
		var shown = false;
		var liOffset = ( ($.browser.msie) ? 4 : 2 );

		var settings = $.extend({}, defaults, options);

		var hideDIV = function(div, delay)
		{
			//a timer running to show the div?
			if ( div.timer && !div.isVisible )
			{
				clearTimeout(div.timer);
			}
			else if (div.timer)
			{
				return; //hide-timer already running
			}
			if ( div.isVisible )
			{
				div.timer = setTimeout(function()
				{
					//remove events
					$(getAllChilds(getOneChild(div, 'UL'), 'LI')).unbind('mouseover', liHoverIn).unbind('mouseout', liHoverOut).unbind('click', settings.onClick);
					//hide it
					$(div).hide();
					div.isVisible = false;
					div.timer = null;
				}, delay);
			}
		};

		var showDIV = function(div, delay)
		{
			if ( div.timer )
			{
				clearTimeout(div.timer);
			}
			if ( !div.isVisible )
			{
				div.timer = setTimeout(function()
				{
					//check if the mouse is still over the parent item - if not dont show the submenu
					if ( !checkClass(div.parentNode, 'hover') )
					{
						return;
					}
					//assign events to all div>ul>li-elements
					$(getAllChilds(getOneChild(div, 'UL'), 'LI')).mouseover(liHoverIn).mouseout(liHoverOut).click(settings.onClick);
					//positioning
					if ( !checkClass(div.parentNode, 'main') )
					{
						$(div).css('left', div.parentNode.offsetWidth - liOffset);
					}
					//show it
					div.isVisible = true; //we use this over :visible to speed up traversing
					$(div).show();
					if ( $.browser.msie ) //fixing a display-bug in ie6 and adding min-width
					{
						var cW = $(getOneChild(div, 'UL')).width();
						if ( cW < 100 )
						{
							cW = 100;
						}
						$(div).css('width', cW);
					}
					div.timer = null;
				}, delay);
			}
		};

		//same as hover.handlehover in jquery - just can't use hover() directly - need the ability to unbind only the one hover event
		var testHandleHover = function(e)
		{
			// Check if mouse(over|out) are still within the same parent element
			var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
			// Traverse up the tree
			while ( p && p != this )
			{
				try
				{ 
					p = p.parentNode;
				}
				catch(e)
				{ 
					p = this;
				}
			}
			// If we actually just moused on to a sub-element, ignore it
			if ( p == this )
			{
				return false;
			}
			return true;
		};
		
		var mainHoverIn = function(e)
		{
			//no need to test e.target==this, as no child has the same event binded
			//its possible, that a main menu item still has hover (if it has no submenu) - thus remove it
			var lis = getAllChilds(this.parentNode, 'LI');
			var pattern = new RegExp("(^|\\s)hover(\\s|$)");
			for (var i = 0; i < lis.length; i++)
			{
				if ( pattern.test(lis[i].className) )
				{
					$(lis[i]).removeClass('hover');
				}
			}
			$(this).addClass('hover');
			if ( shown )
			{
				hoverIn(this, settings.mainDelay);
			}
		};

		var liHoverIn = function(e)
		{
			if ( !testHandleHover(e) )
			{
				return false;
			}
			if ( e.target != this )
			{
				//look whether the target is a direct child of this (maybe an image)
				if ( !isChild(this, e.target) )
				{
					return;
				}
			}
			hoverIn(this, settings.subDelay);
		};

		var hoverIn = function(li, delay)
		{
			var innerDiv = getOneChild(li, 'DIV');
			//stop running timers from the other menus on the same level - a little faster than $('>*>div', li.parentNode)
			var n = li.parentNode.firstChild;
			for ( ; n; n = n.nextSibling ) 
			{
				if ( n.nodeType == 1 && n.nodeName.toUpperCase() == 'LI' )
				{
					var div = getOneChild(n, 'DIV');
					if ( div && div.timer && !div.isVisible ) //clear show-div timer
					{
						clearTimeout(div.timer);
						div.timer = null;
					}
				}
			}
			//is there a timer running to hide one of the parent divs? stop it
			var pNode = li.parentNode;
			for ( ; pNode; pNode = pNode.parentNode ) 
			{
				if ( pNode.nodeType == 1 && pNode.nodeName.toUpperCase() == 'DIV' )
				{
					if (pNode.timer)
					{
						clearTimeout(pNode.timer);
						pNode.timer = null;
						$(pNode.parentNode).addClass('hover');
					}
				}
			}
			//highlight the current element
			$(li).addClass('hover');
			//is the submenu already visible?
			if ( innerDiv && innerDiv.isVisible )
			{
				//hide-timer running?
				if ( innerDiv.timer )
				{
					clearTimeout(innerDiv.timer);
					innerDiv.timer = null;
				}
				else
				{
					return;
				}
			}
			//hide all open menus on the same level and below and unhighlight the li item (but not the current submenu!)
			$(li.parentNode.getElementsByTagName('DIV')).each(function(){
				if ( this != innerDiv && this.isVisible )
				{
					hideDIV(this, delay);
					$(this.parentNode).removeClass('hover');
				}
			});
			//show the submenu, if there is one
			if ( innerDiv )
			{
				showDIV(innerDiv, delay);
			}
		};

		var liHoverOut = function(e)
		{
			if ( !testHandleHover(e) )
			{
				return false;
			}
			if ( e.target != this )
			{
				if ( !isChild(this, e.target) ) //return only if the target is no direct child of this
				{
					return;
				}
			}
			//remove the hover from the submenu item, if the mouse is hovering out of the menu (this is only for the last open (levelwise) (sub-)menu)
			var div = getOneChild(this, 'DIV');
			if ( !div )
			{
				$(this).removeClass('hover');
			}
			else 
			{
				if ( !div.isVisible )
				{
					$(this).removeClass('hover');
				}
			}
		};

		var mainHoverOut = function(e)
		{
			//no need to test e.target==this, as no child has the same event binded
			//remove hover
			var div = getOneChild(this, 'DIV');
			var relTarget = e.relatedTarget || e.toElement; //this is undefined sometimes (e.g. when the mouse moves out of the window), so dont remove hover then
			var p;
			if ( !shown )
			{
				$(this).removeClass('hover');
			}
			else if ( !div && relTarget ) //menuitem has no submenu, so dont remove the hover if the mouse goes outside the menu
			{
				p = findParentWithClass(e.target, 'UL', 'clickMenu');
				if ( p.contains(relTarget))
				{
					$(this).removeClass('hover');
				}
			}
			else if ( relTarget )
			{
				//remove hover only when moving to anywhere inside the clickmenu
				p = findParentWithClass(e.target, 'UL', 'clickMenu');
				if ( !div.isVisible && (p.contains(relTarget)) )
				{
					$(this).removeClass('hover');
				}
			}
		};

		var mainClick = function()
		{
			var div = getOneChild(this, 'DIV');
			if ( div && div.isVisible ) //clicked on an open main-menu-item
			{
				clean();
				$(this).addClass('hover');
			}
			else
			{
				hoverIn(this, settings.mainDelay);
				shown = true;
				$(document).bind('mousedown', checkMouse);
			}
			return false;
		};

		var checkMouse = function(e)
		{
			//is the mouse inside a clickmenu? if yes, is it an open (the current) one?
			var vis = false;
			var cm = findParentWithClass(e.target, 'UL', 'clickMenu');
			if ( cm )
			{
				$(cm.getElementsByTagName('DIV')).each(function(){
					if ( this.isVisible )
					{
						vis = true;
					}
				});
			}
			if ( !vis )
			{
				clean();
			}
		};

		var clean = function()
		{
			//remove timeout and hide the divs
			$('ul.clickMenu div.outerbox').each(function(){
				if ( this.timer )
				{
					clearTimeout(this.timer);
					this.timer = null;
				}
				if ( this.isVisible )
				{
					$(this).hide();
					this.isVisible = false;
				}
			});
			$('ul.clickMenu li').removeClass('hover');
			//remove events
			$('ul.clickMenu>li li').unbind('mouseover', liHoverIn).unbind('mouseout', liHoverOut).unbind('click', settings.onClick);
			$(document).unbind('mousedown', checkMouse);
			shown = false;
		};

		var getOneChild = function(elem, name)
		{
			if ( !elem )
			{
				return null;
			}
			var n = elem.firstChild;
			for ( ; n; n = n.nextSibling ) 
			{
				if ( n.nodeType == 1 && n.nodeName.toUpperCase() == name )
				{
					return n;
				}
			}
			return null;
		};

		var getAllChilds = function(elem, name)
		{
			if ( !elem )
			{
				return [];
			}
			var r = [];
			var n = elem.firstChild;
			for ( ; n; n = n.nextSibling ) 
			{
				if ( n.nodeType == 1 && n.nodeName.toUpperCase() == name )
				{
					r[r.length] = n;
				}
			}
			return r;
		};

		var findParentWithClass = function(elem, searchTag, searchClass)
		{
			var pNode = elem.parentNode;
			var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
			for ( ; pNode; pNode = pNode.parentNode )
			{
				if ( pNode.nodeType == 1 && pNode.nodeName.toUpperCase() == searchTag && pattern.test(pNode.className) )
				{
					return pNode;
				}
			}
			return null;
		};
		
		var checkClass = function(elem, searchClass)
		{
			var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
			if ( pattern.test(elem.className) )
			{
				return true;
			}
			return false;
		};
		
		var isChild = function(elem, childElem)
		{
			var n = elem.firstChild;
			for ( ; n; n = n.nextSibling ) 
			{
				if ( n == childElem )
				{
					return true;
				}
			}
			return false;
		};

	    return this.each(function()
		{
			//add .contains() to mozilla - http://www.quirksmode.org/blog/archives/2006/01/contains_for_mo.html
			if (window.Node && Node.prototype && !Node.prototype.contains)
			{
				Node.prototype.contains = function(arg) 
				{
					return !!(this.compareDocumentPosition(arg) & 16);
				};
			}
			//add class
			if ( !checkClass(this, 'clickMenu') )
			{
				$(this).addClass('clickMenu');
			}
			//add shadows
			$('ul', this).shadowBox();
			//ie6? - add iframes
			if ( $.browser.msie && (!$.browser.version || parseInt($.browser.version) <= 6) )
			{
				if ( $.fn.bgiframe )
				{
					$('div.outerbox', this).bgiframe();
				}
				else
				{
					/* thanks to Mark Gibson - http://www.nabble.com/forum/ViewPost.jtp?post=6504414&framed=y */
					$('div.outerbox', this).append('<iframe style="display:block;position:absolute;top:0;left:0;z-index:-1;filter:mask();' + 
									'width:expression(this.parentNode.offsetWidth);height:expression(this.parentNode.offsetHeight)"/>');
				}
			}
			//assign events
			$(this).bind('closemenu', function(){clean();}); //assign closemenu-event, through wich the menu can be closed from outside the plugin
			//add click event handling, if there are any elements inside the main menu
			var liElems = getAllChilds(this, 'LI');
			for ( var j = 0; j < liElems.length; j++ )
			{
				if ( getOneChild(getOneChild(getOneChild(liElems[j], 'DIV'), 'UL'), 'LI') ) // >div>ul>li
				{
					$(liElems[j]).hover(mainClick);
					//$(liElems[j]).click(mainClick);
				}
			}
			//add hover event handling and assign classes
			$(liElems).hover(mainHoverIn, mainHoverOut).addClass('main').find('>div').addClass('inner');
			//add the little arrow before each submenu
			if ( settings.arrowSrc )
			{
				$('div.inner div.outerbox', this).before('<img src="' + settings.arrowSrc + '" class="liArrow" />');
			}

			//the floating list elements are destroying the layout..so make it nice again..
			$(this).wrap('<div class="cmDiv"></div>').after('<div style="clear: both; visibility: hidden;"></div>');
	    });
	};
	$.fn.clickMenu.setDefaults = function(o)
	{
		$.extend(defaults, o);
	};
})(jQuery);

(function($)
{
	$.fn.shadowBox = function() {
	    return this.each(function()
		{
			var outer = $('<div class="outerbox"></div>').get(0);
			if ( $(this).css('position') == 'absolute' )
			{
				//if the child(this) is positioned abolute, we have to use relative positioning and shrink the outerbox accordingly to the innerbox
				$(outer).css({position:'relative', width:this.offsetWidth, height:this.offsetHeight});
			}
			else
			{
				//shrink the outerbox
				$(outer).css('position', 'absolute');
			}
			//add the boxes
			$(this).addClass('innerBox').wrap(outer).
					before('<div class="shadowbox1"></div><div class="shadowbox2"></div><div class="shadowbox3"></div>');
	    });
	};
})(jQuery);
/*!
 * jQuery UI 1.8.4
 *
 * 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.4",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)},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)},enableSelection:function(){return this.attr("unselectable",
"off").css("MozUserSelect","")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none")},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}});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")}})}})(jQuery);
;/*!
 * jQuery UI Widget 1.8.4
 *
 * 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){var k=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 k.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),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);if(g){d&&g.option(d);g._init()}else 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.4
 *
 * 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.4
 *
 * 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 m=/left|center|right/,n=/top|center|bottom/,p=c.fn.position,q=c.fn.offset;c.fn.position=function(a){if(!a||!a.of)return p.apply(this,arguments);a=c.extend({},a);var b=c(a.of),d=(a.collision||"flip").split(" "),e=a.offset?a.offset.split(" "):[0,0],g,h,i;if(a.of.nodeType===9){g=b.width();h=b.height();i={top:0,left:0}}else if(a.of.scrollTo&&a.of.document){g=b.width();h=b.height();i={top:b.scrollTop(),left:b.scrollLeft()}}else if(a.of.preventDefault){a.at="left top";g=h=
0;i={top:a.of.pageY,left:a.of.pageX}}else{g=b.outerWidth();h=b.outerHeight();i=b.offset()}c.each(["my","at"],function(){var f=(a[this]||"").split(" ");if(f.length===1)f=m.test(f[0])?f.concat(["center"]):n.test(f[0])?["center"].concat(f):["center","center"];f[0]=m.test(f[0])?f[0]:"center";f[1]=n.test(f[1])?f[1]:"center";a[this]=f});if(d.length===1)d[1]=d[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(a.at[0]==="right")i.left+=g;else if(a.at[0]==="center")i.left+=
g/2;if(a.at[1]==="bottom")i.top+=h;else if(a.at[1]==="center")i.top+=h/2;i.left+=e[0];i.top+=e[1];return this.each(function(){var f=c(this),k=f.outerWidth(),l=f.outerHeight(),j=c.extend({},i);if(a.my[0]==="right")j.left-=k;else if(a.my[0]==="center")j.left-=k/2;if(a.my[1]==="bottom")j.top-=l;else if(a.my[1]==="center")j.top-=l/2;j.left=parseInt(j.left);j.top=parseInt(j.top);c.each(["left","top"],function(o,r){c.ui.position[d[o]]&&c.ui.position[d[o]][r](j,{targetWidth:g,targetHeight:h,elemWidth:k,
elemHeight:l,offset:e,my:a.my,at:a.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(j,{using:a.using}))})};c.ui.position={fit:{left:function(a,b){var d=c(window);b=a.left+b.elemWidth-d.width()-d.scrollLeft();a.left=b>0?a.left-b:Math.max(0,a.left)},top:function(a,b){var d=c(window);b=a.top+b.elemHeight-d.height()-d.scrollTop();a.top=b>0?a.top-b:Math.max(0,a.top)}},flip:{left:function(a,b){if(b.at[0]!=="center"){var d=c(window);d=a.left+b.elemWidth-d.width()-d.scrollLeft();var e=b.my[0]==="left"?
-b.elemWidth:b.my[0]==="right"?b.elemWidth:0,g=-2*b.offset[0];a.left+=a.left<0?e+b.targetWidth+g:d>0?e-b.targetWidth+g:0}},top:function(a,b){if(b.at[1]!=="center"){var d=c(window);d=a.top+b.elemHeight-d.height()-d.scrollTop();var e=b.my[1]==="top"?-b.elemHeight:b.my[1]==="bottom"?b.elemHeight:0,g=b.at[1]==="top"?b.targetHeight:-b.targetHeight,h=-2*b.offset[1];a.top+=a.top<0?e+b.targetHeight+h:d>0?e+g+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(a,b){if(/static/.test(c.curCSS(a,"position")))a.style.position=
"relative";var d=c(a),e=d.offset(),g=parseInt(c.curCSS(a,"top",true),10)||0,h=parseInt(c.curCSS(a,"left",true),10)||0;e={top:b.top-e.top+g,left:b.left-e.left+h};"using"in b?b.using.call(a,e):d.css(e)};c.fn.offset=function(a){var b=this[0];if(!b||!b.ownerDocument)return null;if(a)return this.each(function(){c.offset.setOffset(this,a)});return q.call(this)}}})(jQuery);
;/*
 * jQuery UI Draggable 1.8.4
 *
 * 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.4"});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.4
 *
 * 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.4"});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.4
 *
 * 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.4"});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.4
 *
 * 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.4"})})(jQuery);
;/*
 * jQuery UI Sortable 1.8.4
 *
 * 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.4"})})(jQuery);
;/*
 * jQuery UI Accordion 1.8.4
 *
 * 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.4",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.4
 *
 * 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}false!==a._trigger("select",c,{item:d})&&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,b;if(e.isArray(this.options.source)){a=this.options.source;this.source=function(c,d){d(e.ui.autocomplete.filter(a,c.term))}}else if(typeof this.options.source==="string"){b=this.options.source;this.source=function(c,d){e.getJSON(b,
c,d)}}else this.source=this.options.source},search:function(a,b){a=a!=null?a: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.term=this.element.addClass("ui-autocomplete-loading").val();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.4
 *
 * 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:{text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",i);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(":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.4
 *
 * 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="";var a=this,b=a.options,d=b.title||a.originalTitle||"&#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._trigger("open");a._isOpen=true;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){e=c('<button type="button"></button>').text(e).click(function(){h.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:"auto"}:{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.4",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){return c(d.target).zIndex()>=c.ui.dialog.overlay.maxZ})},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.4
 *
 * 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.4"})})(jQuery);
;/*
 * jQuery UI Tabs 1.8.4
 *
 * 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(/[^A-Za-z0-9\-_:\.]/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 j=d(f).attr("href"),l=j.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
(q=d("base")[0])&&l===q.href)){j=f.hash;f.href=j}if(h.test(j))b.panels=b.panels.add(b._sanitizeSelector(j));else if(j!=="#"){d.data(f,"href.tabs",j);d.data(f,"load.tabs",j.replace(/#.*$/,""));j=b._tabId(f);f.href="#"+j;f=d("#"+j);if(!f.length){f=d(c.panelTemplate).attr("id",j).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 i;i=this.lis[a];a++)d(i)[d.inArray(a,c.disabled)!=-1&&!d(i).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"),j=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._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,
j)}).dequeue("tabs");this.blur();return false}else if(!j.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){j.length&&b.element.queue("tabs",function(){s(g,j)});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 i=d("#"+a);i.length||(i=d(h.panelTemplate).attr("id",a).data("destroy.tabs",true));i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(b>=this.lis.length){e.appendTo(this.list);i.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[b]);
i.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");i.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 i=d("span",c);i.data("label.tabs",i.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.4"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(a,e){var b=this,c=this.options,h=b._rotate||(b._rotate=function(i){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var k=c.selected;b.select(++k<b.anchors.length?k:0)},a);i&&i.stopPropagation()});e=b._unrotate||(b._unrotate=!e?function(i){i.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.4
 *
 * 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.4"}});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)==p[w]){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.4";window["DP_jQuery_"+y]=d})(jQuery);
;/*
 * jQuery UI Progressbar 1.8.4
 *
 * 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.4"})})(jQuery);
;/*
 * jQuery UI Effects 1.8.4
 *
 * 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.4",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])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])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]||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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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 Fold 1.8.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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.4
 *
 * 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);
;
/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-07-21 18:45:56 -0500 (Sat, 21 Jul 2007) $
 * $Rev: 2447 $
 *
 * Version 2.1.1
 */
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);
/*
 * @name BeautyTips
 * @desc a tooltips/baloon-help plugin for jQuery
 *
 * @author Jeff Robbins - Lullabot - http://www.lullabot.com
 * @version 0.9.5-rc1  (5/20/2009)
 */
jQuery.bt={version:"0.9.5-rc1"};(function($){jQuery.fn.bt=function(content,options){if(typeof content!="string"){var contentSelect=true;options=content;content=false;}else{var contentSelect=false;}if(jQuery.fn.hoverIntent&&jQuery.bt.defaults.trigger=="hover"){jQuery.bt.defaults.trigger="hoverIntent";}return this.each(function(index){var opts=jQuery.extend(false,jQuery.bt.defaults,jQuery.bt.options,options);opts.spikeLength=numb(opts.spikeLength);opts.spikeGirth=numb(opts.spikeGirth);opts.overlap=numb(opts.overlap);var ajaxTimeout=false;if(opts.killTitle){$(this).find("[title]").andSelf().each(function(){if(!$(this).attr("bt-xTitle")){$(this).attr("bt-xTitle",$(this).attr("title")).attr("title","");}});}if(typeof opts.trigger=="string"){opts.trigger=[opts.trigger];}if(opts.trigger[0]=="hoverIntent"){var hoverOpts=jQuery.extend(opts.hoverIntentOpts,{over:function(){this.btOn();},out:function(){this.btOff();}});$(this).hoverIntent(hoverOpts);}else{if(opts.trigger[0]=="hover"){$(this).hover(function(){this.btOn();},function(){this.btOff();});}else{if(opts.trigger[0]=="now"){if($(this).hasClass("bt-active")){this.btOff();}else{this.btOn();}}else{if(opts.trigger[0]=="none"){}else{if(opts.trigger.length>1&&opts.trigger[0]!=opts.trigger[1]){$(this).bind(opts.trigger[0],function(){this.btOn();}).bind(opts.trigger[1],function(){this.btOff();});}else{$(this).bind(opts.trigger[0],function(){if($(this).hasClass("bt-active")){this.btOff();}else{this.btOn();}});}}}}}this.btOn=function(){if(typeof $(this).data("bt-box")=="object"){this.btOff();}opts.preBuild.apply(this);$(jQuery.bt.vars.closeWhenOpenStack).btOff();$(this).addClass("bt-active "+opts.activeClass);if(contentSelect&&opts.ajaxPath==null){if(opts.killTitle){$(this).attr("title",$(this).attr("bt-xTitle"));}content=$.isFunction(opts.contentSelector)?opts.contentSelector.apply(this):eval(opts.contentSelector);if(opts.killTitle){$(this).attr("title","");}}if(opts.ajaxPath!=null&&content==false){if(typeof opts.ajaxPath=="object"){var url=eval(opts.ajaxPath[0]);url+=opts.ajaxPath[1]?" "+opts.ajaxPath[1]:"";}else{var url=opts.ajaxPath;}var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}var cacheData=opts.ajaxCache?$(document.body).data("btCache-"+url.replace(/\./g,"")):null;if(typeof cacheData=="string"){content=selector?$("<div/>").append(cacheData.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):cacheData;}else{var target=this;var ajaxOpts=jQuery.extend(false,{type:opts.ajaxType,data:opts.ajaxData,cache:opts.ajaxCache,url:url,complete:function(XMLHttpRequest,textStatus){if(textStatus=="success"||textStatus=="notmodified"){if(opts.ajaxCache){$(document.body).data("btCache-"+url.replace(/\./g,""),XMLHttpRequest.responseText);}ajaxTimeout=false;content=selector?$("<div/>").append(XMLHttpRequest.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):XMLHttpRequest.responseText;}else{if(textStatus=="timeout"){ajaxTimeout=true;}content=opts.ajaxError.replace(/%error/g,XMLHttpRequest.statusText);}if($(target).hasClass("bt-active")){target.btOn();}}},opts.ajaxOpts);jQuery.ajax(ajaxOpts);content=opts.ajaxLoading;}}var shadowMarginX=0;var shadowMarginY=0;var shadowShiftX=0;var shadowShiftY=0;if(opts.shadow&&!shadowSupport()){opts.shadow=false;jQuery.extend(opts,opts.noShadowOpts);}if(opts.shadow){if(opts.shadowBlur>Math.abs(opts.shadowOffsetX)){shadowMarginX=opts.shadowBlur*2;}else{shadowMarginX=opts.shadowBlur+Math.abs(opts.shadowOffsetX);}shadowShiftX=(opts.shadowBlur-opts.shadowOffsetX)>0?opts.shadowBlur-opts.shadowOffsetX:0;if(opts.shadowBlur>Math.abs(opts.shadowOffsetY)){shadowMarginY=opts.shadowBlur*2;}else{shadowMarginY=opts.shadowBlur+Math.abs(opts.shadowOffsetY);}shadowShiftY=(opts.shadowBlur-opts.shadowOffsetY)>0?opts.shadowBlur-opts.shadowOffsetY:0;}if(opts.offsetParent){var offsetParent=$(opts.offsetParent);var offsetParentPos=offsetParent.offset();var pos=$(this).offset();var top=numb(pos.top)-numb(offsetParentPos.top)+numb($(this).css("margin-top"))-shadowShiftY;var left=numb(pos.left)-numb(offsetParentPos.left)+numb($(this).css("margin-left"))-shadowShiftX;}else{var offsetParent=($(this).css("position")=="absolute")?$(this).parents().eq(0).offsetParent():$(this).offsetParent();var pos=$(this).btPosition();var top=numb(pos.top)+numb($(this).css("margin-top"))-shadowShiftY;var left=numb(pos.left)+numb($(this).css("margin-left"))-shadowShiftX;}var width=$(this).btOuterWidth();var height=$(this).outerHeight();if(typeof content=="object"){var original=content;var clone=$(original).clone(true).show();var origClones=$(original).data("bt-clones")||[];origClones.push(clone);$(original).data("bt-clones",origClones);$(clone).data("bt-orig",original);$(this).data("bt-content-orig",{original:original,clone:clone});content=clone;}if(typeof content=="null"||content==""){return;}var $text=$('<div class="bt-content"></div>').append(content).css({padding:opts.padding,position:"absolute",width:(opts.shrinkToFit?"auto":opts.width),zIndex:opts.textzIndex,left:shadowShiftX,top:shadowShiftY}).css(opts.cssStyles);var $box=$('<div class="bt-wrapper"></div>').append($text).addClass(opts.cssClass).css({position:"absolute",width:opts.width,zIndex:opts.wrapperzIndex,visibility:"hidden"}).appendTo(offsetParent);if(jQuery.fn.bgiframe){$text.bgiframe();$box.bgiframe();}$(this).data("bt-box",$box);var scrollTop=numb($(document).scrollTop());var scrollLeft=numb($(document).scrollLeft());var docWidth=numb($(window).width());var docHeight=numb($(window).height());var winRight=scrollLeft+docWidth;var winBottom=scrollTop+docHeight;var space=new Object();var thisOffset=$(this).offset();space.top=thisOffset.top-scrollTop;space.bottom=docHeight-((thisOffset+height)-scrollTop);space.left=thisOffset.left-scrollLeft;space.right=docWidth-((thisOffset.left+width)-scrollLeft);var textOutHeight=numb($text.outerHeight());var textOutWidth=numb($text.btOuterWidth());if(opts.positions.constructor==String){opts.positions=opts.positions.replace(/ /,"").split(",");}if(opts.positions[0]=="most"){var position="top";for(var pig in space){position=space[pig]>space[position]?pig:position;}}else{for(var x in opts.positions){var position=opts.positions[x];if((position=="left"||position=="right")&&space[position]>textOutWidth+opts.spikeLength){break;}else{if((position=="top"||position=="bottom")&&space[position]>textOutHeight+opts.spikeLength){break;}}}}var horiz=left+((width-textOutWidth)*0.5);var vert=top+((height-textOutHeight)*0.5);var points=new Array();var textTop,textLeft,textRight,textBottom,textTopSpace,textBottomSpace,textLeftSpace,textRightSpace,crossPoint,textCenter,spikePoint;switch(position){case"top":$text.css("margin-bottom",opts.spikeLength+"px");$box.css({top:(top-$text.outerHeight(true))+opts.overlap,left:horiz});textRightSpace=(winRight-opts.windowMargin)-($text.offset().left+$text.btOuterWidth(true));var xShift=shadowShiftX;if(textRightSpace<0){$box.css("left",(numb($box.css("left"))+textRightSpace)+"px");xShift-=textRightSpace;}textLeftSpace=($text.offset().left+numb($text.css("margin-left")))-(scrollLeft+opts.windowMargin);if(textLeftSpace<0){$box.css("left",(numb($box.css("left"))-textLeftSpace)+"px");xShift+=textLeftSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={y:textBottom+opts.spikeLength,x:((textRight-textLeft)*0.5)+xShift,type:"spike"};crossPoint=findIntersectX(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textBottom);crossPoint.x=crossPoint.x<textLeft+opts.spikeGirth/2+opts.cornerRadius?textLeft+opts.spikeGirth/2+opts.cornerRadius:crossPoint.x;crossPoint.x=crossPoint.x>(textRight-opts.spikeGirth/2)-opts.cornerRadius?(textRight-opts.spikeGirth/2)-opts.CornerRadius:crossPoint.x;points[points.length]={x:crossPoint.x-(opts.spikeGirth/2),y:textBottom,type:"join"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:crossPoint.x+(opts.spikeGirth/2),y:textBottom,type:"join"};points[points.length]=spikePoint;break;case"left":$text.css("margin-right",opts.spikeLength+"px");$box.css({top:vert+"px",left:((left-$text.btOuterWidth(true))+opts.overlap)+"px"});textBottomSpace=(winBottom-opts.windowMargin)-($text.offset().top+$text.outerHeight(true));var yShift=shadowShiftY;if(textBottomSpace<0){$box.css("top",(numb($box.css("top"))+textBottomSpace)+"px");yShift-=textBottomSpace;}textTopSpace=($text.offset().top+numb($text.css("margin-top")))-(scrollTop+opts.windowMargin);if(textTopSpace<0){$box.css("top",(numb($box.css("top"))-textTopSpace)+"px");yShift+=textTopSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:textRight+opts.spikeLength,y:((textBottom-textTop)*0.5)+yShift,type:"spike"};crossPoint=findIntersectY(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textRight);crossPoint.y=crossPoint.y<textTop+opts.spikeGirth/2+opts.cornerRadius?textTop+opts.spikeGirth/2+opts.cornerRadius:crossPoint.y;crossPoint.y=crossPoint.y>(textBottom-opts.spikeGirth/2)-opts.cornerRadius?(textBottom-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.y;points[points.length]={x:textRight,y:crossPoint.y+opts.spikeGirth/2,type:"join"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:crossPoint.y-opts.spikeGirth/2,type:"join"};points[points.length]=spikePoint;break;case"bottom":$text.css("margin-top",opts.spikeLength+"px");$box.css({top:(top+height)-opts.overlap,left:horiz});textRightSpace=(winRight-opts.windowMargin)-($text.offset().left+$text.btOuterWidth(true));var xShift=shadowShiftX;if(textRightSpace<0){$box.css("left",(numb($box.css("left"))+textRightSpace)+"px");xShift-=textRightSpace;}textLeftSpace=($text.offset().left+numb($text.css("margin-left")))-(scrollLeft+opts.windowMargin);if(textLeftSpace<0){$box.css("left",(numb($box.css("left"))-textLeftSpace)+"px");xShift+=textLeftSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:((textRight-textLeft)*0.5)+xShift,y:shadowShiftY,type:"spike"};crossPoint=findIntersectX(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textTop);crossPoint.x=crossPoint.x<textLeft+opts.spikeGirth/2+opts.cornerRadius?textLeft+opts.spikeGirth/2+opts.cornerRadius:crossPoint.x;crossPoint.x=crossPoint.x>(textRight-opts.spikeGirth/2)-opts.cornerRadius?(textRight-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.x;points[points.length]={x:crossPoint.x+opts.spikeGirth/2,y:textTop,type:"join"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:crossPoint.x-(opts.spikeGirth/2),y:textTop,type:"join"};points[points.length]=spikePoint;break;case"right":$text.css("margin-left",(opts.spikeLength+"px"));$box.css({top:vert+"px",left:((left+width)-opts.overlap)+"px"});textBottomSpace=(winBottom-opts.windowMargin)-($text.offset().top+$text.outerHeight(true));var yShift=shadowShiftY;if(textBottomSpace<0){$box.css("top",(numb($box.css("top"))+textBottomSpace)+"px");yShift-=textBottomSpace;}textTopSpace=($text.offset().top+numb($text.css("margin-top")))-(scrollTop+opts.windowMargin);if(textTopSpace<0){$box.css("top",(numb($box.css("top"))-textTopSpace)+"px");yShift+=textTopSpace;}textTop=$text.btPosition().top+numb($text.css("margin-top"));textLeft=$text.btPosition().left+numb($text.css("margin-left"));textRight=textLeft+$text.btOuterWidth();textBottom=textTop+$text.outerHeight();textCenter={x:textLeft+($text.btOuterWidth()*opts.centerPointX),y:textTop+($text.outerHeight()*opts.centerPointY)};points[points.length]=spikePoint={x:shadowShiftX,y:((textBottom-textTop)*0.5)+yShift,type:"spike"};crossPoint=findIntersectY(spikePoint.x,spikePoint.y,textCenter.x,textCenter.y,textLeft);crossPoint.y=crossPoint.y<textTop+opts.spikeGirth/2+opts.cornerRadius?textTop+opts.spikeGirth/2+opts.cornerRadius:crossPoint.y;crossPoint.y=crossPoint.y>(textBottom-opts.spikeGirth/2)-opts.cornerRadius?(textBottom-opts.spikeGirth/2)-opts.cornerRadius:crossPoint.y;points[points.length]={x:textLeft,y:crossPoint.y-opts.spikeGirth/2,type:"join"};points[points.length]={x:textLeft,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textTop,type:"corner"};points[points.length]={x:textRight,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:textBottom,type:"corner"};points[points.length]={x:textLeft,y:crossPoint.y+opts.spikeGirth/2,type:"join"};points[points.length]=spikePoint;break;}var canvas=document.createElement("canvas");$(canvas).attr("width",(numb($text.btOuterWidth(true))+opts.strokeWidth*2+shadowMarginX)).attr("height",(numb($text.outerHeight(true))+opts.strokeWidth*2+shadowMarginY)).appendTo($box).css({position:"absolute",zIndex:opts.boxzIndex});if(typeof G_vmlCanvasManager!="undefined"){canvas=G_vmlCanvasManager.initElement(canvas);}if(opts.cornerRadius>0){var newPoints=new Array();var newPoint;for(var i=0;i<points.length;i++){if(points[i].type=="corner"){newPoint=betweenPoint(points[i],points[(i-1)%points.length],opts.cornerRadius);newPoint.type="arcStart";newPoints[newPoints.length]=newPoint;newPoints[newPoints.length]=points[i];newPoint=betweenPoint(points[i],points[(i+1)%points.length],opts.cornerRadius);newPoint.type="arcEnd";newPoints[newPoints.length]=newPoint;}else{newPoints[newPoints.length]=points[i];}}points=newPoints;}var ctx=canvas.getContext("2d");if(opts.shadow&&opts.shadowOverlap!==true){var shadowOverlap=numb(opts.shadowOverlap);switch(position){case"top":if(opts.shadowOffsetX+opts.shadowBlur-shadowOverlap>0){$box.css("top",(numb($box.css("top"))-(opts.shadowOffsetX+opts.shadowBlur-shadowOverlap)));}break;case"right":if(shadowShiftX-shadowOverlap>0){$box.css("left",(numb($box.css("left"))+shadowShiftX-shadowOverlap));}break;case"bottom":if(shadowShiftY-shadowOverlap>0){$box.css("top",(numb($box.css("top"))+shadowShiftY-shadowOverlap));}break;case"left":if(opts.shadowOffsetY+opts.shadowBlur-shadowOverlap>0){$box.css("left",(numb($box.css("left"))-(opts.shadowOffsetY+opts.shadowBlur-shadowOverlap)));}break;}}drawIt.apply(ctx,[points],opts.strokeWidth);ctx.fillStyle=opts.fill;if(opts.shadow){ctx.shadowOffsetX=opts.shadowOffsetX;ctx.shadowOffsetY=opts.shadowOffsetY;ctx.shadowBlur=opts.shadowBlur;ctx.shadowColor=opts.shadowColor;}ctx.closePath();ctx.fill();if(opts.strokeWidth>0){ctx.shadowColor="rgba(0, 0, 0, 0)";ctx.lineWidth=opts.strokeWidth;ctx.strokeStyle=opts.strokeStyle;ctx.beginPath();drawIt.apply(ctx,[points],opts.strokeWidth);ctx.closePath();ctx.stroke();}opts.preShow.apply(this,[$box[0]]);$box.css({display:"none",visibility:"visible"});opts.showTip.apply(this,[$box[0]]);if(opts.overlay){var overlay=$('<div class="bt-overlay"></div>').css({position:"absolute",backgroundColor:"blue",top:top,left:left,width:width,height:height,opacity:".2"}).appendTo(offsetParent);$(this).data("overlay",overlay);}if((opts.ajaxPath!=null&&opts.ajaxCache==false)||ajaxTimeout){content=false;}if(opts.clickAnywhereToClose){jQuery.bt.vars.clickAnywhereStack.push(this);$(document).click(jQuery.bt.docClick);}if(opts.closeWhenOthersOpen){jQuery.bt.vars.closeWhenOpenStack.push(this);}opts.postShow.apply(this,[$box[0]]);};this.btOff=function(){var box=$(this).data("bt-box");opts.preHide.apply(this,[box]);var i=this;i.btCleanup=function(){var box=$(i).data("bt-box");var contentOrig=$(i).data("bt-content-orig");var overlay=$(i).data("bt-overlay");if(typeof box=="object"){$(box).remove();$(i).removeData("bt-box");}if(typeof contentOrig=="object"){var clones=$(contentOrig.original).data("bt-clones");$(contentOrig).data("bt-clones",arrayRemove(clones,contentOrig.clone));}if(typeof overlay=="object"){$(overlay).remove();$(i).removeData("bt-overlay");}jQuery.bt.vars.clickAnywhereStack=arrayRemove(jQuery.bt.vars.clickAnywhereStack,i);jQuery.bt.vars.closeWhenOpenStack=arrayRemove(jQuery.bt.vars.closeWhenOpenStack,i);$(i).removeClass("bt-active "+opts.activeClass);opts.postHide.apply(i);};opts.hideTip.apply(this,[box,i.btCleanup]);};var refresh=this.btRefresh=function(){this.btOff();this.btOn();};});function drawIt(points,strokeWidth){this.moveTo(points[0].x,points[0].y);for(i=1;i<points.length;i++){if(points[i-1].type=="arcStart"){this.quadraticCurveTo(round5(points[i].x,strokeWidth),round5(points[i].y,strokeWidth),round5(points[(i+1)%points.length].x,strokeWidth),round5(points[(i+1)%points.length].y,strokeWidth));i++;}else{this.lineTo(round5(points[i].x,strokeWidth),round5(points[i].y,strokeWidth));}}}function round5(num,strokeWidth){var ret;strokeWidth=numb(strokeWidth);if(strokeWidth%2){ret=num;}else{ret=Math.round(num-0.5)+0.5;}return ret;}function numb(num){return parseInt(num)||0;}function arrayRemove(arr,elem){var x,newArr=new Array();for(x in arr){if(arr[x]!=elem){newArr.push(arr[x]);}}return newArr;}function canvasSupport(){var canvas_compatible=false;try{canvas_compatible=!!(document.createElement("canvas").getContext("2d"));}catch(e){canvas_compatible=!!(document.createElement("canvas").getContext);}return canvas_compatible;}function shadowSupport(){try{var userAgent=navigator.userAgent.toLowerCase();if(/webkit/.test(userAgent)){return true;}else{if(/gecko|mozilla/.test(userAgent)&&parseFloat(userAgent.match(/firefox\/(\d+(?:\.\d+)+)/)[1])>=3.1){return true;}}}catch(err){}return false;}function betweenPoint(point1,point2,dist){var y,x;if(point1.x==point2.x){y=point1.y<point2.y?point1.y+dist:point1.y-dist;return{x:point1.x,y:y};}else{if(point1.y==point2.y){x=point1.x<point2.x?point1.x+dist:point1.x-dist;return{x:x,y:point1.y};}}}function centerPoint(arcStart,corner,arcEnd){var x=corner.x==arcStart.x?arcEnd.x:arcStart.x;var y=corner.y==arcStart.y?arcEnd.y:arcStart.y;var startAngle,endAngle;if(arcStart.x<arcEnd.x){if(arcStart.y>arcEnd.y){startAngle=(Math.PI/180)*180;endAngle=(Math.PI/180)*90;}else{startAngle=(Math.PI/180)*90;endAngle=0;}}else{if(arcStart.y>arcEnd.y){startAngle=(Math.PI/180)*270;endAngle=(Math.PI/180)*180;}else{startAngle=0;endAngle=(Math.PI/180)*270;}}return{x:x,y:y,type:"center",startAngle:startAngle,endAngle:endAngle};}function findIntersect(r1x1,r1y1,r1x2,r1y2,r2x1,r2y1,r2x2,r2y2){if(r2x1==r2x2){return findIntersectY(r1x1,r1y1,r1x2,r1y2,r2x1);}if(r2y1==r2y2){return findIntersectX(r1x1,r1y1,r1x2,r1y2,r2y1);}var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var r2m=(r2y1-r2y2)/(r2x1-r2x2);var r2b=r2y1-(r2m*r2x1);var x=(r2b-r1b)/(r1m-r2m);var y=r1m*x+r1b;return{x:x,y:y};}function findIntersectY(r1x1,r1y1,r1x2,r1y2,x){if(r1y1==r1y2){return{x:x,y:r1y1};}var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var y=r1m*x+r1b;return{x:x,y:y};}function findIntersectX(r1x1,r1y1,r1x2,r1y2,y){if(r1x1==r1x2){return{x:r1x1,y:y};}var r1m=(r1y1-r1y2)/(r1x1-r1x2);var r1b=r1y1-(r1m*r1x1);var x=(y-r1b)/r1m;return{x:x,y:y};}};jQuery.fn.btPosition=function(){function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,"marginTop");offset.left-=num(this,"marginLeft");parentOffset.top+=num(offsetParent,"borderTopWidth");parentOffset.left+=num(offsetParent,"borderLeftWidth");results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;};jQuery.fn.btOuterWidth=function(margin){function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}return this["innerWidth"]()+num(this,"borderLeftWidth")+num(this,"borderRightWidth")+(margin?num(this,"marginLeft")+num(this,"marginRight"):0);};jQuery.fn.btOn=function(){return this.each(function(index){if(jQuery.isFunction(this.btOn)){this.btOn();}});};jQuery.fn.btOff=function(){return this.each(function(index){if(jQuery.isFunction(this.btOff)){this.btOff();}});};jQuery.bt.vars={clickAnywhereStack:[],closeWhenOpenStack:[]};jQuery.bt.docClick=function(e){if(!e){var e=window.event;}if(!$(e.target).parents().andSelf().filter(".bt-wrapper, .bt-active").length&&jQuery.bt.vars.clickAnywhereStack.length){$(jQuery.bt.vars.clickAnywhereStack).btOff();$(document).unbind("click",jQuery.bt.docClick);}};jQuery.bt.defaults={trigger:"hover",clickAnywhereToClose:true,closeWhenOthersOpen:false,shrinkToFit:false,width:"200px",padding:"10px",spikeGirth:10,spikeLength:15,overlap:0,overlay:false,killTitle:true,textzIndex:9999,boxzIndex:9998,wrapperzIndex:9997,offsetParent:null,positions:["most"],fill:"rgb(255, 255, 102)",windowMargin:10,strokeWidth:1,strokeStyle:"#000",cornerRadius:5,centerPointX:0.5,centerPointY:0.5,shadow:false,shadowOffsetX:2,shadowOffsetY:2,shadowBlur:3,shadowColor:"#000",shadowOverlap:false,noShadowOpts:{strokeStyle:"#999"},cssClass:"",cssStyles:{},activeClass:"bt-active",contentSelector:"$(this).attr('title')",ajaxPath:null,ajaxError:"<strong>ERROR:</strong> <em>%error</em>",ajaxLoading:"<blink>Loading...</blink>",ajaxData:{},ajaxType:"GET",ajaxCache:true,ajaxOpts:{},preBuild:function(){},preShow:function(box){},showTip:function(box){$(box).show();},postShow:function(box){},preHide:function(box){},hideTip:function(box,callback){$(box).hide();callback();},postHide:function(){},hoverIntentOpts:{interval:300,timeout:500}};jQuery.bt.options={};})(jQuery);

	var dialogWin = new Object();

	var g_whitespace = " \t\n\r";
	var g_reWhitespace = /^\s+$/
	var g_agt = navigator.userAgent.toLowerCase();
	
	var g_appVer = navigator.appVersion.toLowerCase();
	var g_is_minor = parseFloat(g_appVer);
	var g_is_major = parseInt(g_is_minor);
	var g_iePos = g_appVer.indexOf('msie');
	if (g_iePos !=-1) {
		g_is_minor = parseFloat(g_appVer.substring(g_iePos+5,g_appVer.indexOf(';',g_iePos)))
		g_is_major = parseInt(g_is_minor);
	}
	
	var g_isIE=((g_agt.indexOf("msie") != -1) && (g_agt.indexOf("opera") == -1));
	
	var g_isIE6 = (g_isIE && g_is_major == 6);
	var g_isIE7 = (g_isIE && g_is_major == 7);
	var g_isIE8 = (g_isIE && g_is_major == 8);
	var g_isIE9 = (g_isIE && g_is_major == 9);
	var g_isIE10 = (g_isIE && g_is_major == 10);
	var g_isOPERA= (g_agt.indexOf("opera") != -1);
	var g_isCHROME=(g_agt.indexOf("chrome") != -1);
	var g_isNS=(g_agt.indexOf("netscape") != -1);
	var g_isSAFARI = ( (g_agt.indexOf("safari") != -1) && (g_agt.indexOf("chrome") == -1) );
	var g_isFIREFOX = (g_agt.indexOf("firefox") != -1);
	var g_defaultSearchText = "Enter search text...";
	var g_defaultTxtMyUpdatesText = "Share an update...";
	var g_defaultComment = "Write comment...";
	var g_specialChars = "< > : ; & # % / \ , = + ~ ` ' \" [ ] { } ! @ $ ^ * ( )";
	var g_version = "v_1.0.0_20120127_2007/";
	var g_signinCookieName = "_olt_s1n1n";
	var g_serverBoCtx = null;
	var l_bodyClickHandler = null; //local click handler, page specific
	var l_onLoadHandler = null; //local load handler, page specific
	var g_examsMenuPanel = null;
	var g_regionsMenuPanel = null;
	var g_subjectsMenuPanel = null;
	var g_skillsMenuPanel = null;
	var g_currentBO = null;
	var g_throbber = null;

	var g_popupWidthFull = 600;
	var g_popupHeightFull = 500;
	var g_popupWidthSmall = 500;
	var g_popupHeightFull = 400;
	
	var g_childData = null;
	var g_editorPath = '../FCKeditor_2.6.4/';
	
	var g_allowedLessonFileTypes = 
		["doc", "ppt", "docx", "pptx", "xls", "xlsx", "pdf", "odg", "ods", "odt", "swf", "mp3", "flv", "gif", "png", "jpg", "jpeg", "tiff"];
	
	var g_allowedVideoFileTypes = ["flv", "mp4"];
	
	var g_allowedAudioFileTypes = ["mp3"];
	
	
	function g_slideshow(){
		window.location.href="../intro/intro.jsp";
	}
	
	var __eventStartButton = false;

	/*
	 * checks for empty string
	 */
	function g_isEmpty(s)
	{
		return ((s == null) || (trim(s).length == 0));
	}
	
	function g_changePointer(cursorType){
		try{
			document.body.style.cursor=cursorType;
		}catch(err){}
	}	
	
	function g_dateDelete(elem, e){
		if(window.event)
			e = window.event;
		var target = e.srcElement || e.target;
		var pressedKey = e.keyCode;
		if(pressedKey == 46){
			elem.value="";
		}
	}

	
	function g_URLEncode(val){
		if(encodeURIComponent){
			return encodeURIComponent(val);
		}else{
			return escape(val);
		}
	}
	
	function g_reloadPage(addlParam){
		parent.g_showWorking();
		var currUrl = location.pathname+location.search;
		if(addlParam){
			if(currUrl.indexOf("?") > 0){
				currUrl+="&"+addlParam;
			}else{
				currUrl+="?"+addlParam;	
			}
		}else{
			if(currUrl.indexOf("&asst=true") > 0){
				currUrl = currUrl.substring(0, currUrl.indexOf("&asst=true"));
			}else if(currUrl.indexOf("?asst=true") > 0){
				currUrl = currUrl.substring(0, currUrl.indexOf("?asst=true"));
			}
		}
		location.assign(currUrl);
		
		//location.reload();
//		window.location.hash = "";
//		setTimeout(g_reloadPageCB, 200);
	}
	
	function g_quickProctorSignin(e, elem, eventId){
		var url = "../site/procAgency.do?dispatch=showProctorLogin&eventId=" + eventId + "&popup=true";
		showpopdiv(url, e, elem, "450", "380", true);
	}
	
	function g_quickSignin(e, elem){
		var url = "../site/signin.do?dispatch=signin&popup=true";
		showpopdiv(url, e, elem, "450", "380", true);
	}
	
	function g_quickSignout(e, elem){
		var url = "../site/signout.do";
		var d = showpopdiv(url, e, elem, "50", "50", true);
		d.style.display="none";
		setTimeout(g_reloadPage, 3000);
	}

	function g_dashboardOptions(e, elem){
		var url = "../site/profile.do?dispatch=showDashboardOptions&inner=true";
		showpopdiv(url, e, elem, "450", "380", true);
	}
	
	function g_profileOptions(e, elem){
		var url = "../site/profile.do?dispatch=showProfileOptions&inner=true";
		showpopdiv(url, e, elem, "450", "380", true);
	}
	
	function g_isInteger (s)
	{
		var i;
		for (i = 0; i < s.length; i++){
			// Check that current character is number.
			var c = s.charAt(i);
			if (!g_isDigit(c)) return false;
		}
		// All characters are numbers.
		return true;
	}
	// Returns true if character c is a digit
	// (0 .. 9).
	function g_isDigit (c)
	{
		return ((c >= "0") && (c <= "9"))
	}
	
	// Returns true if character c is a digit
	// (1 .. 9).
	function g_isNonZeroDigit (c)
	{
		return ((c > "0") && (c <= "9"))
	}
	
	function g_isNonZeroInteger(s)
	{
		var i;
		if(s.length==1){
			if(g_isNonZeroDigit (s)) return true;
			else return false;
		}
		for (i = 0; i < s.length; i++){
			// Check that current character is number.
			var c = s.charAt(i);
			if (!g_isInteger(c)) return false;
		}
		// All characters are numbers.
		return true;
	}

	/* this function is used to replace textarea content during page load, if editor is not supported
	 * 
	 */
	function g_editHtml(fieldName){
		try{
			if(!g_isIE && !g_isFIREFOX){
				var field = eval("document.forms[0]."+fieldName);
				if(field){
					var html = field.value;
					html = html.replace(/[\r]?\n/g,'');
					html = html.replace(/<br[\s]*[/]?[>]/gi,"\r\n");
					html = html.replace(/<\s[^><]*>/g,"");
					html = html.replace(/&lt;/gi,"<");
					html = html.replace(/&gt;/gi,">");
					field.value = html;
				}
			}
		}catch(er){}
	}
	
	function g_downloadDoc(docId, fileName){
		window.open("../site/document.do?OLTAjax=true&dispatch=show&pdf=true&id="+docId);
	}
	
	function g_downloadAtt(docId, attId, fileName){
		var uri = "../pdf/"+attId;
		if(fileName){
			uri += "?name="+fileName;
		}
		window.open(uri);
	}
	
	function g_downloadAttOrig(docId, attId, fileName){
		var uri = "../att/"+attId;
		if(fileName){
			uri += "?name="+fileName;
		}
		window.open(uri);
	}
	
	function g_courseViewer(courseId, docId){
		var url = "../site/document.do?dispatch=show&pop=true&id="+docId+"&w=600&h=550";
		parent.showpopdiv(url, null, null, 600, 550, true);
	}
	
	/* this function is used to replace textarea content during save, if editor is not supported
	 * 
	 */
	function g_saveHtml(fieldName){
		try{
			if(!g_isIE && !g_isFIREFOX){
				var field = eval("document.forms[0]."+fieldName);
				if(field){
					var html = field.value;
					html = html.replace(/</g,'&lt;');
					html = html.replace(/>/g,'&gt;');
					html = html.replace(/[\r]?\n/g,'<br/>');
					field.value = html;
				}
			}
		}catch(er){}
	}


	function g_inviteFriends(e, elem){
		var url = "../site/invitation.do?dispatch=showInviteUsers";
		showpopdiv(url, e, elem, "600", "500", true);
	}
	
	function g_openAuthorAttachments(e, elem, entityType, entityId, showSelect){
		var url = "../site/authorFileUploader.do?dispatch=show&entityType="+entityType+"&entityId="+entityId;
		if(showSelect){
			url += "&showSelect=true";
		}
		parent.showpopdiv(url, e, elem, "600", "500", true);
		return false;
	}
	
	function g_openAttachments(e, elem, entityType, entityId, showSelect){
		var url = "../site/fileUploader.do?dispatch=show&entityType="+entityType+"&entityId="+entityId;
		if(showSelect){
			url += "&showSelect=true";
		}
		parent.showpopdiv(url, e, elem, "600", "500", true);
		return false;
	}

	
	function isEmailAddr(email)
	{
		
	  var result = false
	  var theStr = new String(email)
	  var index = theStr.indexOf("@");
	  if (index > 0)
	  {
	    var pindex = theStr.indexOf(".",index);
	    if ((pindex > index+1) && (theStr.length > pindex+1))
		result = true;
	  }
	  return result;
	}
	
	/*
	 * checks for whitespace string
	 */
	function g_isWhitespace (s)
	{
		return (g_isEmpty(s) || g_reWhitespace.test(s));
	}

	function stripWhitespace (s)
	{
		return stripCharsInBag (s, whitespace)
	}

	function stripCharsInBag (s, bag)
	{
		var i;
		var returnString = "";
		// Search through string's characters one by one.
		// If character is not in bag, append to returnString.
		for (i = 0; i < s.length; i++)
		{
			// Check that current character isn't whitespace.
			var c = s.charAt(i);
			if (bag.indexOf(c) == -1) returnString += c;
		}
		return returnString;
	}
	
	function setCookie(name, val, age)
	{
	  var expire = new Date();
	  if(age){
		  expire.setTime(expire.getTime() + ( age*24*60*60*1000 ) );
	  }else{
		  expire.setTime(expire.getTime() + ( 14*24*60*60*1000 ) );  
	  }
	  document.cookie = name+"=" + escape(val) + "; expires=" + expire.toGMTString() + "; path=/";
	}
	function getCookie(prefix)
	{
			var returnArray = new Array();
			if(document.cookie.length>0)
			{
				var arCookies = document.cookie.split(";");
				for(var i=0;i<arCookies.length;i++)
				{
					var cookie = arCookies[i].replace(/^\s+/,'').replace(/\s+$/,'');
					//alert("["+cookie+"]");
					if(cookie != "" && cookie.indexOf("=") != -1)
					{
						if(cookie.substring(0,prefix.length) == prefix)
						{
							var obj = new Object();
							obj.name = arCookies[i].substring(0,arCookies[i].indexOf("="));
							//alert("["+obj.name+"]");
							obj.value = unescape(arCookies[i].substring(arCookies[i].indexOf("=")+1));
							//alert("["+obj.value+"]");
							returnArray[returnArray.length] = obj;
						}
					}
				}
			}
			return returnArray;
	}

	var Fat = {
	make_hex : function (r,g,b) 
	{
		r = r.toString(16); if (r.length == 1) r = '0' + r;
		g = g.toString(16); if (g.length == 1) g = '0' + g;
		b = b.toString(16); if (b.length == 1) b = '0' + b;
		return "#" + r + g + b;
	},
	fade_all : function ()
	{
		var a = document.getElementsByTagName("*");
		for (var i = 0; i < a.length; i++) 
		{
			var o = a[i];
			var r = /fade-?(\w{3,6})?/.exec(o.className);
			if (r)
			{
				if (!r[1]) r[1] = "";
				if (o.id) Fat.fade_element(o.id,null,null,"#"+r[1]);
			}
		}
	},
	fade_obj : function (objId)
	{
		var o = document.getElementById(objId);
		var r = /fade-?(\w{3,6})?/.exec(o.className);
		if (r)
		{
			if (!r[1]) r[1] = "";
			if (o.id) Fat.fade_element(o.id,null,null,"#"+r[1]);
		}
		
	},
	fade_element : function (id, fps, duration, from, to) 
	{
		if (!fps) fps = 30;
		if (!duration) duration = 3000;
		if (!from || from=="#") from = "#FFFFCC";
		if (!to) to = this.get_bgcolor(id);
		
		var frames = Math.round(fps * (duration / 1000));
		var interval = duration / frames;
		var delay = interval;
		var frame = 0;
		
		if (from.length < 7) from += from.substr(1,3);
		if (to.length < 7) to += to.substr(1,3);
		
		var rf = parseInt(from.substr(1,2),16);
		var gf = parseInt(from.substr(3,2),16);
		var bf = parseInt(from.substr(5,2),16);
		var rt = parseInt(to.substr(1,2),16);
		var gt = parseInt(to.substr(3,2),16);
		var bt = parseInt(to.substr(5,2),16);
		
		var r,g,b,h;
		while (frame < frames)
		{
			r = Math.floor(rf * ((frames-frame)/frames) + rt * (frame/frames));
			g = Math.floor(gf * ((frames-frame)/frames) + gt * (frame/frames));
			b = Math.floor(bf * ((frames-frame)/frames) + bt * (frame/frames));
			h = this.make_hex(r,g,b);
		
			setTimeout("Fat.set_bgcolor('"+id+"','"+h+"')", delay);

			frame++;
			delay = interval * frame; 
		}
		setTimeout("Fat.set_bgcolor('"+id+"','"+to+"')", delay);
	},
	set_bgcolor : function (id, c)
	{
		var o = document.getElementById(id);
		o.style.backgroundColor = c;
	},
	get_bgcolor : function (id)
	{
		var o = document.getElementById(id);
		while(o)
		{
			var c;
			if (window.getComputedStyle) c = window.getComputedStyle(o,null).getPropertyValue("background-color");
			if (o.currentStyle) c = o.currentStyle.backgroundColor;
			if ((c != "" && c != "transparent") || o.tagName == "BODY") { break; }
			o = o.parentNode;
		}
		if (c == undefined || c == "" || c == "transparent") c = "#FFFFFF";
		var rgb = c.match(/rgb\s*\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)/);
		if (rgb) c = this.make_hex(parseInt(rgb[1]),parseInt(rgb[2]),parseInt(rgb[3]));
		return c;
	}
}

function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
}

	function openPopUpWindow(url, width, height, returnFunc, args,scroll,fullBlown)
	{
	   if (!dialogWin.win || (dialogWin.win && dialogWin.win.closed)) {
	      // Initialize properties of the modal dialog object.
	      dialogWin.returnFunc = returnFunc;
	      dialogWin.returnedValue = "";
	      dialogWin.args = args;
	      dialogWin.url = url;
	      dialogWin.width = width;
	      dialogWin.height = height;
	      // Keep name unique so Navigator doesn't overwrite an existing dialog.
	      dialogWin.name = (new Date()).getSeconds().toString();
	      // Assemble window attributes and try to center the dialog.
	      dialogWin.left = (screen.width - dialogWin.width) / 2;
	      dialogWin.top = (screen.height - dialogWin.height) / 2;
	      if (fullBlown == 1)
	               dialogWin.top = dialogWin.top - 70 ;
	      if(!scroll)
	           var attr = "left=" + dialogWin.left + ",top=" + dialogWin.top + ",resizable=yes,status,width=" + dialogWin.width + ",height=" + dialogWin.height + ",scrollbars=yes";
	      else
	           var attr = "left=" + dialogWin.left + ",top=" + dialogWin.top + ",resizable=yes,status,width=" + dialogWin.width + ",height=" + dialogWin.height;
		
	       if (fullBlown == 1)
	               attr = attr + ",menubar,toolbar,status,location";
	       // Generate the dialog and make sure it has focus.
	      dialogWin.win=window.open(dialogWin.url, dialogWin.name, attr);
	      dialogWin.win.focus();
	   } else {
	      if(dialogWin.url.indexOf("bowstreet") != -1)
	            dialogWin.win.focus();
	       else{
	            dialogWin.win.close();
	            openPopUpWindow(url, width, height, returnFunc, args,scroll,fullBlown)
	       }
	   }
	}

     var __x ;
     function requesterSendRequest(url,frameName,destination,submitMethod, action)
     {
          __x = destination ;
          var requester = document.getElementById(frameName);
          if(submitMethod != null && submitMethod == 'POST')
          {
          	//alert('POST');
          	//alert(action);
          	var newForm = document.createElement("<form>");
          	newForm.setAttribute("id", "__iframeForm");
          	newForm.setAttribute("name", "__iframeForm");
          	newForm.setAttribute("method", "post");
          	newForm.setAttribute("action", action);
          	newForm.innerHTML = url.innerHTML;
          	
          	requester.appendChild(newForm);
          	//alert(requester.innerHTML);
          	document.getElementById('__iframeForm').submit();
          }
          else
          	requester.src =  url;
     }

     function receiveContent(doc)
     {
          if (__x)
          {
          	//alert(__x.innerHTML);
               var content = doc.body.innerHTML;
               __x.innerHTML = content;
          }
     }

	function setTabStyle(tabId)
	{
		for(i=1; i<=6; i++)
		{
			document.getElementById("tab" + i).className= '';
		}
		document.getElementById("tab" + tabId).className= 'here';
	}
	
	function setLeftLinkStyle(linkId)
	{
		var table = document.getElementById("leftBarTable");
		var rows = table.getElementsByTagName("tr");
		for (i=0; i < rows.length; i++)
		{
		    if(rows[i].id == 'item_' + linkId)
		    	rows[i].className = 'selectedRowLeftNavBar';
		    else
		    	rows[i].className = '';
		}
	}
	
	function submitTab(tabId)
	{
		document.tabForm.tabId.value = tabId;
		document.tabForm.submit();
	}
	
	function submitLeftBarLink(linkId)
	{
		document.leftBarForm.linkId.value = linkId;
		document.leftBarForm.submit();
	}
	
	function submitAppForm(formId, action, javaMethod)
	{
		if(action != null)
			document.getElementById(formId).setAttribute("action", action);
		if(javaMethod != null)
			document.getElementById(formId).dispatch.value = javaMethod;
		document.getElementById(formId).submit();
	}
	////////////////
	function changeRowBGColor(checkBoxObject, del)
	{
		var trObject = g_getParent(checkBoxObject, "TR")
		if(trObject == null){
			trObject = g_getParent(checkBoxObject, "DIV")
		}
		if(trObject == null){
			return;
		}
		if(checkBoxObject.checked == true) {
			if(del){
				trObject.className=trObject.className.replace(/deletedRow/,'');
				trObject.className+=' deletedRow';
			}else{
				trObject.className=trObject.className.replace(/selectedRow/,'');
				trObject.className+=' selectedRow';
			}
		}
		else { 
			if(del){
				trObject.className=trObject.className.replace(/deletedRow/,'');
			}else{
				trObject.className=trObject.className.replace(/selectedRow/,'');
			}
		}
	}
	
	function changeCtlParentDivBGColor(checkBoxObject)
	{
		var divObject = g_getParent(checkBoxObject, "DIV");
		if(divObject == null){
			return;
		}
		if(checkBoxObject.checked == true) {
			divObject.className=divObject.className.replace(/selectedRow/,'');
			divObject.className+=' selectedRow';
		}
		else { 
			divObject.className=divObject.className.replace(/selectedRow/,'');
		}
	}

	function toggleSelection(chkGrpName, formName, del)
	{
		if (g_isEmpty(formName)) {
			formName = "forms[0]";
		}
		var checkBoxes = eval("document." + formName + "." + chkGrpName);
		if(checkBoxes && checkBoxes.length)
		{
			for(var i=0; i<checkBoxes.length; i++)
			{
				toggleCheckBox(checkBoxes[i], del);		
			}
		}
		else if(checkBoxes)
		{
			toggleCheckBox(checkBoxes, del);	
		}
	}
	
	function toggleCheckBox(chk, del)
	{
		try
		{
			if(chk.checked)
			{
				//chk.removeAttribute("checked");
				chk.checked = false;
			}
			else
			{
				//chk.setAttribute("checked", "checked");
				chk.checked = true;
			}
			changeRowBGColor(chk, del);
		}
		catch(err){}
	}
//window.onload = function () 
//	{
	//Fat.fade_all();
//	}

	function g_isAnyChkSelected(chk){
		var ret = false;
		if(chk.length){
			for(var i=0; i<chk.length; i++){
				if(chk[i].checked){
					ret = true;
					break;
				}
			}
		}else if(chk){
			ret = chk.checked;
		}
		return ret;
	}
	
	function g_getEventPosition(evt) 
	{
		var pos=new Object();
		pos.x=0;
		pos.y=0;
		if (!evt) 
		{
			evt = window.event;
		}
		if (typeof(evt.pageX) == 'number') 
		{
			pos.x = evt.pageX;
			pos.y = evt.pageY;
		}
		else 
		{
			pos.x = evt.clientX;
			pos.y = evt.clientY;
			if (!top.opera) 
			{
				if ((!window.document.compatMode) || (window.document.compatMode == 'BackCompat')) 
				{
					pos.x += window.document.body.scrollLeft;
					pos.y += window.document.body.scrollTop;
				}
				else 
				{
					pos.x += window.document.documentElement.scrollLeft;
					pos.y += window.document.documentElement.scrollTop;
				}
			}
		}
		//alert(pos.x +","+pos.y);
		return pos;
	}

	function g_getScrollXY() {
		var pos=new Object();
		pos.x=0;
		pos.y=0;
		//var scrOfX = 0, scrOfY = 0;
		  if( typeof( window.pageYOffset ) == 'number' ) {
		    //Netscape compliant
		    pos.y = window.pageYOffset;
		    pos.x = window.pageXOffset;
		  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		    //DOM compliant
		    pos.y = document.body.scrollTop;
		    pos.x = document.body.scrollLeft;
		  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		    //IE6 standards compliant mode
		    pos.y = document.documentElement.scrollTop;
		    pos.x = document.documentElement.scrollLeft;
		  }
		  return pos;
	}
	
	function g_isFullPage(){
		return document.getElementById("footer")!=null;
	}
	
	var g_popDivVisible = false;
	function showpopdiv(url, e, obj, width, height, centered, signinReqd, exactSize)
	{
		if(signinReqd && signinReqd == true && g_username=='guest'){
			alert("please signin to continue");
			parent.g_navigateTo("../site/signin.do");
			return;
		}
		//hidepopdiv(true);
		g_popDivVisible = true;
		if(window.event)
			e = window.event;
		var div = document.getElementById("popup_div");
		if(!width){
			width = "700";
		}
		if(!height){
			height = "600";
		}
		if(!exactSize){
			try{
				var w = parseInt(width);
				if(g_isFullPage() && w < g_popupWidthFull){
					width = g_popupWidthFull+"";
				}else if(!g_isFullPage() && w < g_popupWidthSmall){
					width = g_popupWidthSmall+"";
				}
			}catch(er){}
		
			try{
				var h = parseInt(height);
				if(g_isFullPage() && h < g_popupHeightFull){
					height = g_popupHeightFull+"";
				}else if(!g_isFullPage() && h < g_popupHeightSmall){
					height = g_popupHeightSmall+"";
				}
			}catch(er){}
		}
		div.style.width = width+"px";
		div.style.height = height+"px";
		div.style.position="absolute";
		div.style.display="";
		
		var scrollPos = g_getScrollXY();
		//alert(scrollPos.x +","+scrollPos.y);
		//positioning
		if(centered || e == null || !e){
			//var pos = g_getEventPosition(e);
			div.style.left = parseInt((screen.width - parseInt(width)) / 2)+"px";
			div.style.top = (scrollPos.y+100)+"px";
		}else{
			var pos = g_getEventPosition(e);
			div.style.left=pos.x+"px";
			div.style.top=pos.y+"px";
		}
		/*
		 * add _pop
		 */
		if(url.indexOf("?") > -1){
			url = url + "&__pop=true";
		}else{
			url = url + "?__pop=true";
		}
		document.getElementById("popup_ifr").setAttribute("src", url);
		var coverDiv = document.getElementById("gray_cover");
		coverDiv.style.width = "2000px";
		coverDiv.style.height = "2000px";
		coverDiv.style.display = "";
		//Drag.init(div)
		window.location.hash = "";
		setTimeout(g_checkForClosePopupDiv, 1000);
		return div;
	}
	
	function hidepopdiv()
	{
		try
		{
			var coverDiv = document.getElementById("gray_cover");
			coverDiv.style.width = "0px";
			coverDiv.style.height = "0px";
			coverDiv.style.display = "none";
			document.getElementById("popup_div").style.display="none";
			setTimeout("resetpopdiv()", 3000);	
			g_popDivVisible = false;
		}
		catch(err){}
	}
	
	
	function g_showOverlay(overlayObj, e, obj, centered)
	{
		if(window.event)
			e = window.event;
		overlayObj.style.position="absolute";
		overlayObj.style.display="";
		
		var scrollPos = g_getScrollXY();
		if(centered){
			overlayObj.style.left = parseInt((screen.width - parseInt(overlayObj.style.width)) / 2)+"px";
			overlayObj.style.top = (scrollPos.y+100)+"px";
		}else{
			var pos = g_getEventPosition(e);
			overlayObj.style.left=pos.x+"px";
			overlayObj.style.top=pos.y+"px";
		}
		/*var coverDiv = document.getElementById("gray_cover");
		coverDiv.style.width = "2000px";
		coverDiv.style.height = "2000px";
		coverDiv.style.display = "";
		coverDiv.style.zIndex = "0";
		overlayObj.style.zIndex = "1";
		*/
		return overlayObj;
	}
	
	function g_hideOverlay(overlayObj)
	{
		try
		{
			/*var coverDiv = document.getElementById("gray_cover");
			coverDiv.style.width = "0px";
			coverDiv.style.height = "0px";
			coverDiv.style.display = "none";*/
			overlayObj.style.display="none";
		}
		catch(err){}
	}
	
	function resetpopdiv(){
		if(g_popDivVisible == false){
			var popup_ifr = document.getElementById("popup_ifr");
			popup_ifr.setAttribute("src", "../html/blank.html");
		}
	}
	
	function goHome()
	{
		window.location.href="../site/index.do";
	}
	
	function isValidPassword(pass)
	{
		valid = true;
		if(pass.length < 6)
		{
			valid = false;
		}
		return valid;
	}
	
	
	function paginateList(lname, pageSize, pageNum){
		var paginationString = new Array();
		if(!pageNum)
			pageNum = 0;
		if(!pageSize || pageSize <= 0)
			pageSize = 10;
		var pdiv = document.getElementById(lname+"_page");
		var list = document.getElementById(lname);
		//var lis = list.getElementsByTagName("li");
		var lis = getChildren(list, "li");
		if(lis && lis.length > pageSize){
			paginationString.push("Questions ");
			var numPages = Math.ceil(lis.length / pageSize);
			for(var i=0; i<numPages; i++){
				var b = i*pageSize;
				var e = b + pageSize;
				e = (e > lis.length ? lis.length : e);
				var plabel = "[ "+(b+1)+" - "+(e)+" ]";
				var clickh = 'return paginateList("'+lname+'",'+pageSize+','+i+')';
				if(i != pageNum)
					paginationString.push("<a class='paging' href='#' onclick='"+clickh+"' >"+plabel+"</a>&nbsp;&nbsp;");
				else
					paginationString.push("<span class='highlighted' >"+plabel+"&nbsp;&nbsp;"+"</span>");
				for(var j=0; j<pageSize && (i*pageSize+j < lis.length); j++){
					var li = lis[i*pageSize+j];
					if(i != pageNum){
						li.style.display="none";
					}else{
						li.style.display="";
					}
				}
			}
		}
		pdiv.innerHTML = paginationString.join('');
		return true;
	}
	
	
	function getChildren(node, chnode){
		var children = new Array();
		if(node && chnode){
			var ch = node.firstChild;
			while(ch){
				if(ch.nodeType == 1 && ch.nodeName.toUpperCase() == chnode.toUpperCase()){
					children.push(ch);
				}
				ch = ch.nextSibling;
		}
		}
		return children;
	}
	
	function doSearchKeyDown(e)
	{
		if(isEnterKey(e))
		{
			doSearch(e);
		}
	}
	
	function isEnterKey(e)
	{
	    if(window.event) e = window.event || e;
		if(e)
		{		    		
			var code;
			if (e.keyCode) code = e.keyCode;
			else if (e.which) code = e.which;
			
			if (code == 13)
			{
				return true;
			}
		}
		return false;	
	}
	
	function g_getCookieValue(name){
		var cookie = getCookie(name);
		var val;
		if( cookie != null && cookie.length > 0 ){
			val = cookie[0].value;
			if(val == '' || val == 'null' || val == g_signinCookieName){
				val = null;
			}
		}
		if(val == undefined){
			val = null;
		}
		return val;
	}
	
	function getSigninCookie(){
		return g_getCookieValue(g_signinCookieName);
		/*var cookie = getCookie(g_signinCookieName);
		var val;
		if( cookie != null && cookie.length > 0 ){
			val = cookie[0].value;
			if(val == '' || val == 'null' || val == g_signinCookieName){
				val = null;
			}
		}
		if(val == undefined){
			val = null;
		}
		//alert("["+val+"]");
		return val;*/
	}
	
	function doSearch(e)
	{
		if(window.event) e = window.event || e;
		var searchBox = g_searchTextBox;//document.getElementById("searchText");
		document.forms['searchForm'].searchText.value = (searchBox.value == g_defaultSearchText?"":searchBox.value);
		
		if(Validate(document.forms['searchForm'])){
			document.forms['searchForm'].submit();
		}else{
			try{
				g_stopevents(e);
				searchBox.focus();
				return false;
			}catch(er){}
		}
	}
	
	function g_stopevents(e){
		if(window.event)
			e = window.event;
		if(e){
			e.cancelBubble = true;
			e.returnValue = false;
			if (e.stopPropagation){
				e.stopPropagation();
			}
			if(e.preventDefault){
				e.preventDefault();
			}
		}
		return false;
	}
	
	var op;
	var commentDiv;
	var name;
	var type;
	var elem;
	
	function toggleBookmarkAsync(elem, img, commentDiv, messageDiv, name){
		var id = elem.getAttribute("boid");
		var type = elem.getAttribute("botype");
		var op = elem.getAttribute("op");
		this.elem = elem;
		makeBookmarkAjaxCall(id, type, op, null, img, commentDiv, messageDiv, name);
	}
	
	function friendOperationAsync(formObj, img, commentDiv, messageDiv, name) {
		var id = formObj.boid.value;
		var type = formObj.botype.value;
		var op = formObj.op.value;
		var comment = formObj.comment.value;
		makeBookmarkAjaxCall(id, type, op, comment, img, commentDiv, messageDiv, name);
	}
	
	function makeBookmarkAjaxCall(id, type, op, comment, img, commentDiv, messageDiv, name) {
		this.op = op;
		this.commentDiv = commentDiv;
		this.messageDiv = messageDiv;
		this.name = name;
		this.type = type;
		var oAjax = new OLTAjax();
		oAjax.setRequestURL("../site/bookmarks.do");
		oAjax.setPost();
		oAjax.addField("dispatch", op);
		oAjax.addField("id", id);
		oAjax.addField("type", type);
		oAjax.addField("comment", comment);
		oAjax.addField("resp", "ajax");
		oAjax.setCallback(toggleBookmarkAsyncCB);
		oAjax.setUserData(img);
		oAjax.send();
	}
	
	function toggleBookmarkAsyncCB(respXml, errText, respText, img){
		var message = '';
		if(errText == null){
			if(respText == "APPROVED"){
				img.src = img.src.replace(/_blue/, "_yellow");
				if (type == "TEST" || type == "QUESTION") {
					img.alt = "Remove Favorite";
					img.title = "Remove Favorite";
					if (elem != null) {
						elem.setAttribute("op", "remove");
					}
				} else {
					message = name + " is now your friend";
					img.alt = "Friend";
					img.title = "Friend";
				}
			}else if(respText == "REQUEST_SENT"){
				img.src = "../<%=versionPrefix%>images/star_yellow.gif";
				img.alt = "Friend";
				img.title = "Friend";
			}else if(respText == "REQUEST_RECEIVED"){
				img.src = "../<%=versionPrefix%>images/star_yellow.gif";
				img.alt = "Friend";
				img.title = "Friend";
			}else if(respText == "REJECTED"){
				img.src = img.src.replace(/_yellow/, "_blue");
				if (type == "TEST" || type == "QUESTION") {
					img.alt = "Add Favorite";
					img.title = "Add Favorite";
					if (elem != null) {
						elem.setAttribute("op", "add");
					}
				} else {
					img.alt = "Not Friend";
					img.title = "Not Friend";
					message = name + " is no more your friend";
				}
			}else if(respText == "WITHDRAWN"){
				img.src = img.src.replace(/_yellow/, "_blue");
				img.alt = "Not Friend";
				img.title = "Not Friend";
				message = name + " is no more your friend";
			}
			//window.location.reload(true);
		}else{
			message = "Error";
			alert(errText);
		}
		
		if (this.commentDiv != null) {
			this.commentDiv.style.display='none';
		}
		if (this.messageDiv != null) {
			this.messageDiv.style.display='block';
			this.messageDiv.innerHTML = message;
		}
	}
	
	
	
	/*
	 * get parent node with matching node name
	 */
	function g_getParent(elem, name){
		if(elem){
			var par = elem.parentNode;
			name = name.toLowerCase();
			while(par){
				if(par.nodeName.toLowerCase() == name){
					return par;
				}
				par = par.parentNode;
			}
		}
	}
	
	/*
	 * get child image element
	 */
	function g_getChildImage(elem){
		/*var ch = elem.getElementsByTagName("IMG");
		if(ch && ch.length > 0){
			return ch[0];
		}*/
		return g_getChildElement(elem, "IMG");
	}
	
	/*
	 * get child element of matching node name
	 */
	function g_getChildElement(elem, name){
		var ch = elem.getElementsByTagName(name);
		if(ch && ch.length > 0){
			return ch[0];
		}
	}
	
	
	function forceAccessControl()
	{
		//userName
		var classname;
		if(g_username == "guest")
		{
			classname = "reqlogin";
		}
		else
		{
			classname = "reqguest";
		}
		var els = getElementsByClassName(document, "*", classname);
		for(var i=0; i<els.length; i++)
		{
			els[i].style.display = "none";
		}
	}
	
	function g_hideLoadingMessage()
	{
		var elem = document.getElementById("loading_msg");
		if(elem)
			elem.style.display="none";
	}
	
	function addEvent(obj, evType, fn){ 
		if (obj.addEventListener){ 
			obj.addEventListener(evType, fn, false); 
			return true; 
		} else if (obj.attachEvent){ 
			var r = obj.attachEvent("on"+evType, fn); 
			return r; 
		} else { 
			return false; 
		} 
	}
	
	function oltUiCookie(){
		//cookie will be a int with each bit representing 0 or 1 for corresponding flag 
		this.coookieName = "UI_STATE";
		//0 - unused
		this.SUBJECT = 1;
		this.EXAM = 2;
		this.REGION = 3;
		this.TEACHER = 4;
		this.ADMIN = 5;
		this.MY = 6;
		this.PTAG = 7;
		this.MTAG = 8;
		this.SKILL = 9;
		/*this.TAB_TEST = 15;
		this.TAB_QUESTION = 16;
		this.TAB_GROUP = 17;
		this.TAB_USER = 18;*/
		this.LAST_BIT = 30;//max length of int is 4 bytes = 32 bit
		this.MAX_LEN = this.LAST_BIT; //max length of int is 4 bytes = 32 bit
		//value of the variable
		this.cookieVal = 0;
		
		this.initialize = function (){
			//read the stored cookie
			try{
				var cookieStr = g_getCookieValue(this.coookieName);
				if(cookieStr && cookieStr != '' && cookieStr.length  > 0){
					this.cookieVal = parseInt(cookieStr);
				}
			}catch(er){
				
			}
			if(this.cookieVal <= 0){
				this.cookieVal = 0;
				//this.set(this.TAB_TEST, 1);
			}
		}
		
		this.get = function (c){
			if(c > this.MAX_LEN || c <= 0 ){
				alert("get: invalid val - "+c);
				return false;
			}
			var mask = 1 << (c-1);
			var val = this.cookieVal & mask;
			return (val > 0);
		}
		
		this.set = function (c, val){
			if((val != 1 && val != 0) || (c > this.MAX_LEN || c <= 0) ){
				alert("set: invalid val - "+c+","+val);
				return;
			}
			//set the corresponding bit from left...shift n-1 position
			//alert(this.cookieVal);
			if(val == 1){
				this.cookieVal = this.cookieVal | (1<<(c-1));
			}else{
				var m1 = (1<<(c-1));
				var m2 = 0xffff;
				var mask = m2 ^ m1;
				this.cookieVal = this.cookieVal  & mask;
			}
			//alert(this.cookieVal);
			//persist
			setCookie(this.coookieName, this.cookieVal+"", 60);//set for 60 days
		}
		
	}

	var g_uiCookie = new oltUiCookie();
	g_uiCookie.initialize();
	
	function doPagingTxtBoxKeyDown(jumpToField, event){
		if(isEnterKey(event)){
			if(jumpToPage){
				jumpToPage(jumpToField);
			}
		}
	}
	
	function tnTabClick(bot, params){
		if(bot == 'GROUP' && eb_SiteUrl != 'www.tenplustwo.com'){
			g_navigateTo("../site/search.do?dispatch=list&searchBy=SITE_GROUPS_ONLY_LOCAL&searchIn=GROUP");
		}else if(bot == 'TEST' && eb_SiteUrl != 'www.tenplustwo.com'){
			g_navigateTo("../jsp/test.do");
		}else if(bot == 'USER' && eb_SiteUrl != 'www.tenplustwo.com'){
			g_navigateTo("../jsp/user.do");
		}else{
			g_oltBrowser.addToCriteria(bot);
			if(params && !g_isEmpty(params)){
				g_oltBrowser.reloadPage(params);
			}else{
				g_oltBrowser.reloadPage();
			}
		}
	}
	
	function tnTabClickCbt(bot){
		if(bot == 'TEST'){
			g_navigateTo("../jsp/testlist.do?dispatch=list");
		}else if(bot == 'QUESTION'){
			g_navigateTo("../jsp/questionList.do?dispatch=getList");
		}else if(bot == 'GROUP'){
			g_navigateTo("../site/search.do?dispatch=list&searchBy=SITE_GROUPS_ONLY_LOCAL&searchIn=GROUP");
		}else if(bot == 'EVENT'){
			g_navigateTo("../site/cbtCandidate.do");
		}
	}
	
	function tnHomeClick(){
		if(g_oltBrowser){
			g_oltBrowser.resetBo();
		}
		window.location.href="../site/home.do";
	}
	
	function tnCommClick(){
		if(g_oltBrowser){
			g_oltBrowser.resetBo();
		}
		window.location.href="../site/community.do";
	}
	
	function tnIndexClick(){
		if(g_oltBrowser){
			g_oltBrowser.resetBo();
		}
		window.location.href="../site/index.do";
	}
	
	function tnTabMover(elem){
		if(elem && elem.href){
			if(elem.parentNode.indexOf(".gif") > -1){
				elem.src = elem.src.replace(/-in.gif/, "-over.gif");
			}
		}
	}
	
	function tnTabMout(elem){
		if(elem && elem.href){
			if(elem.src.indexOf("-over.gif") > -1){
				elem.src = elem.src.replace(/-in-over.gif/, ".gif");
			}
		}
	}

	function g_editSection(e, elem, id){
		var url = "../site/section.do?dispatch=show&id="+id;
		showpopdiv(url, e, elem, "480", "440", true);
	}
	
	function g_quickSendMessage(e, elem, recipients){
		var url = "../site/inbox.do?dispatch=showMessage&quickSend=true&recipients="+recipients;
		showpopdiv(url, e, elem, "450", "380", true);
	}
	
	function g_makeFriend(e, elem, userId){
		var url = "../site/bookmarks.do?dispatch=showMakeFriend&type=USER&id="+userId;
		showpopdiv(url, e, elem, "450", "380", true);
	}
	
	function g_editQuestion(e, elem, questionId){
		var url = "../jsp/questionAuthor.do?dispatch=showEdit&inner=true";
		if(questionId){	
			url+="&questionId="+questionId;
		}
		showpopdiv(url, e, elem, "700", "500", true);
		return false;
	}
	
	function g_editQuestionFull(e, elem, questionId){
		var url = "../jsp/questionAuthor.do?dispatch=showEdit";
		if(questionId){	
			url+="&questionId="+questionId;
		}
		g_navigateTo(url);
		return false;
	}

	function g_testMetadata(e, elem, testId){
		var url = "../site/metadata.do?dispatch=show&inner=true&entityType=TEST&entityId="+testId;
		showpopdiv(url, e, elem, "700", "500", true);
		return false;
	}
	
	function g_questionMetadata(e, elem, questionId, quick){
		if(quick){
			var url = "../site/metadataQ.do?dispatch=show&inner=true&entityType=QUESTION&entityId="+questionId;
		}else{
			var url = "../site/metadata.do?dispatch=show&inner=true&entityType=QUESTION&entityId="+questionId;
		}
		showpopdiv(url, e, elem, "700", "500", true);
		return false;
	}

	function g_multipleQuestionMetadata(e, elem, testId, quick){
		if(quick){
			var url = "../site/metadataQ.do?dispatch=show&inner=true&entityType=QUESTION&testId="+testId;
		}else{
			var url = "../site/metadata.do?dispatch=show&inner=true&entityType=QUESTION&testId="+testId;
		}
		showpopdiv(url, e, elem, "700", "500", true);
		return false;
	}
	
	function g_showTestRules(e, elem, testId){
		var url = "../jsp/testAuthor.do?dispatch=showTestRules&inner=true&testId="+testId;
		showpopdiv(url, e, elem, "750", "550", true);
		return false;
	}
	
	function g_switchToComposeView(url, dispatchVal, recipientsVal, subjectVal, contentVal){
		var dummyForm = document.createElement("form");
		var dispatch = document.createElement("input");
		dispatch.setAttribute("type", "hidden");
		dispatch.setAttribute("name", "dispatch");
		dispatch.value = dispatchVal;
		dummyForm.appendChild(dispatch);
		
		var recipients = document.createElement("input");
		recipients.setAttribute("type", "hidden");
		recipients.setAttribute("name", "recipients");
		recipients.value = recipientsVal;
		dummyForm.appendChild(recipients);
		
		var subject = document.createElement("input");
		subject.setAttribute("type", "hidden");
		subject.setAttribute("name", "subject");
		subject.value = subjectVal;
		dummyForm.appendChild(subject);
		
		var content = document.createElement("input");
		content.setAttribute("type", "hidden");
		content.setAttribute("name", "content");
		content.value = contentVal;
		dummyForm.appendChild(content);
		
		document.body.appendChild(dummyForm);
		dummyForm.action = url;
		dummyForm.method="post"
		dummyForm.submit();
	}
	
	function g_navToggle(elem, divId, e, absolutePos){
		var img = elem.getElementsByTagName("img");
		var div = document.getElementById(divId);
		if(window.event)
			e = window.event;
		var alt = img[0].getAttribute("title");
		if(!alt){
			alt = img[0].getAttribute("alt");
		}
		if(!alt){
			alt = alt.toLowerCase();
		}
		if(alt == "close"){
			img[0].setAttribute("alt", "open");
			img[0].setAttribute("title", "open");
			img[0].src = img[0].src.replace(/close/, "open");
			div.style.display="none";
			return false;
		}else{
			img[0].setAttribute("alt", "close");
			img[0].setAttribute("title", "close");
			img[0].src = img[0].src.replace(/open/, "close");
			if(absolutePos){
				var pos = g_getEventPosition(e);
				div.style.left = pos.x +"px";
				div.style.top = pos.y+10 +"px";
			}
			div.style.display="";
			return true;
		}
	}
	
	function g_validateMetadataForPopQuiz(metadataForm){
		var subSel = false;
		var subExists = true;
		if(metadataForm.subjectIds && metadataForm.subjectIds.length){
			for(var i=0; i< metadataForm.subjectIds.length; i++){
				if(metadataForm.subjectIds[i].checked){
					subSel = true;
					break;
				}
			}
		}else if(metadataForm.subjectIds){
			if(metadataForm.subjectIds.checked){
				subSel = true;
			}
		}else{
			subExists = false;
		}
		
		var regSel = false;
		var regExists = true;
		if(metadataForm.regionIds && metadataForm.regionIds.length){
			for(var i=0; i< metadataForm.regionIds.length; i++){
				if(metadataForm.regionIds[i].checked){
					regSel = true;
					break;
				}
			}
		}else if(metadataForm.regionIds){
			if(metadataForm.regionIds.checked){
				regSel = true;
			}
		}else{
			regExists = false;
		}
		
		var examSel = false;
		var examExists = true;
		if(metadataForm.examIds && metadataForm.examIds.length){
			for(var i=0; i< metadataForm.examIds.length; i++){
				if(metadataForm.examIds[i].checked){
					examSel = true;
					break;
				}
			}
		}else if(metadataForm.examIds){
			if(metadataForm.examIds.checked){
				examSel = true;
			}
		}else{
			examExists = false;
		}
		
		
		var skillLevelSel = false;
		var skillLevelExists = true;
		if(metadataForm.skillLevelIds && metadataForm.skillLevelIds.length){
			for(var i=0; i< metadataForm.skillLevelIds.length; i++){
				if(metadataForm.skillLevelIds[i].checked){
					skillLevelSel = true;
					break;
				}
			}
		}else if(metadataForm.skillLevelIds){
			if(metadataForm.skillLevelIds.checked){
				skillLevelSel = true;
			}
		}else{
			skillLevelExists = false;
		}
		
		var complexitySel = false;
		var complexityExists = true;
		if(metadataForm.complexityIds && metadataForm.complexityIds.length){
			for(var i=0; i< metadataForm.complexityIds.length; i++){
				if(metadataForm.complexityIds[i].checked){
					complexitySel = true;
					break;
				}
			}
		}else if(metadataForm.complexityIds){
			if(metadataForm.complexityIds.checked){
				complexitySel = true;
			}
		}else{
			complexityExists = false;
		}
		
		var groupsSelected = false;
		if(metadataForm.groupIds && trim(metadataForm.groupIds.value) != ""){
			groupsSelected = true;
		}
		
		
		if(!subSel && !regSel && !examSel && !skillLevelSel && !complexitySel && !groupsSelected){
			alert("Please select atleast one metadata");
			return false;
		}
		return true;
	}
	
	function g_navigateTo(url, signinReqd){
		if(signinReqd && signinReqd == true && g_username=='guest'){
			alert("please signin to continue");
			parent.g_navigateTo("../site/signin.do");
			return;
		}
		window.location.href=url;
	}
	
	/*
	 * open user selector popup, see OLTSelectionContainer for requirements on the parent page
	 */
	function g_openUserSelector(e, elem, params){
		var url = "../site/user_selector.do?dispatch=list";
		if(params && params.length){
			for(var i=0; i<params.length; i++){
				url += "&"+params[i].name+"="+params[i].value;
			}
		}
		return showpopdiv(url, e, elem, "450", "420", true);
	}
	
	/*
	 * Selection container is a type which can be used by any page which is a 
	 * destionation for items selected using a popup.  
	 * 	
	 * 	The container page can define a variable like this
	 * 		var OLTSelectionContainer = new OLTSelectionContainerType(); also it must define some callback functions
	 * 		__refreshSelection
	 * 		__doneSelection
	 * 		__cancelSelection
	 * 	
	 * To Debug, container can define a debug div element
	 * 	<div id="OLTClipboard" style="background-color:blue;position:absolute;left:0px;top:0px;width:150px;height:150px;">
</div>
	 * 	The popup page can invoke
	 * 		parent.OLTSelectionContainer.
	 * 			- doneSelection()
	 * 			- cancelSelection()
	 * 			- selectItem(item)
	 * 			- unselectItem(item)
	 * 			- isItemSelected(item)
	 * 
	 */
	function OLTSelectionContainerType(_singleSelection){
		this.doneSelectionCB = __doneSelection;
		this.cancelSelectionCB = __cancelSelection;
		this.refreshSelectionCB = __refreshSelection;
		
		
		this.selectedItems = new Array();
		this.debugDiv = document.getElementById("OLTClipboard");
		this.singleSelection = _singleSelection;
		
		this.clearSelections = function(){
			this.selectedItems = new Array();
			this.showValues();
		}
		
		this.overrideCB = function(rCB, canCB, dnCB){
			this.refreshSelectionCB = rCB;
			this.cancelSelectionCB = canCB;
			this.doneSelectionCB = dnCB;
		}
		
		this.showValues = function(){
			var s = new Array();
			for(var i=0; i<this.selectedItems.length; i++){
				s.push(this.selectedItems[i].name);
				s.push("<br/>");
			}
			var selectedValues = s.join("");
			if(this.debugDiv){
				this.debugDiv.innerHTML = selectedValues;
			}
			if(this.refreshSelectionCB){
				this.refreshSelectionCB(selectedValues);
			}
		}
		
		this.selectItem = function(item){
			if(this.singleSelection){
				this.selectedItems = new Array();
			}
			for(var i=0; i<this.selectedItems.length; i++){
				if(this.selectedItems[i].id == item.id){
					return false;
				}
			}
			this.selectedItems.push(item);
			this.showValues();
			return true;
		}
		
		this.unselectItem = function(item){
			for(var i=0; i<this.selectedItems.length; i++){
				if(this.selectedItems[i].id == item.id){
					this.selectedItems.splice(i, 1);
					this.showValues();
					return true;
				}
			}
			return false;
		}
		
		this.isItemSelected = function(item){
			for(var i=0; i<this.selectedItems.length; i++){
				if(this.selectedItems[i].id == item.id){
					return true;
				}
			}
			return false;
		}
		
		this.doneSelection = function(){
			var ids = "";
			if(this.selectedItems.length > 0){
				var first = true;
				for(var i=0; i<this.selectedItems.length; i++){
					if(!first){
						ids += ",";
					}
					ids += this.selectedItems[i].id;
					first = false;
				}
			}
			if(this.doneSelectionCB){
				this.doneSelectionCB(ids);
			}
		}
		
		this.cancelSelection = function(){
			if(this.cancelSelectionCB){
				this.cancelSelectionCB();
			}
		}
	}
	
	function g_showWorking(){
		if(g_throbber == null){
			g_throbber = document.getElementById("img_throbber");
		}
		if(g_throbber){
			var pos = g_getScrollXY();
			pos.x = parseInt(screen.width/2);
			pos.y = parseInt(pos.y + 100);
			
			g_throbber.style.left = pos.x+"px";
			g_throbber.style.top = pos.y+"px";
			g_throbber.style.display = "";
		}
	}
	
	function g_openLinkableDocuments(e, elem, selectorDocId, eId, eType, dType){
		var url = "../site/document.do?dispatch=list&inner=true&sel=true&selectorDocumentId="+selectorDocId;
		if(eId){
			url += "&entityId="+eId;
		}
		if(eType){
			url += "&entityType="+eType;
		}
		if(dType){
			url += "&type="+dType;
		}
		parent.showpopdiv(url, e, elem, "600", "500", true);
		return false;
	}
	
	function g_hideWorking(){
		if(g_throbber == null){
			g_throbber = document.getElementById("img_throbber");
		}
		if(g_throbber){
			g_throbber.style.display = "none";
		}
	}
	
	function g_addMemberProfile(e, obj, gid){
		var div = showpopdiv("../site/group.do?dispatch=editGroupMemberProfile&groupId="+gid, e, obj, "400", "380", true);
		var testDiv = document.getElementById("leftnav2");
		if(testDiv == null){
			div.style.left = "50px";
			div.style.top = "10px";
		}
	}
	function g_editMemberProfile(e, obj, pid){
		var div = showpopdiv("../site/group.do?dispatch=editGroupMemberProfile&id="+pid, e, obj, "400", "380", true);
		var testDiv = document.getElementById("leftnav2");
		if(testDiv == null){
			div.style.left = "50px";
			div.style.top = "10px";
		}
	}
	
	function g_showInlineMessage(msg, panelClass, centered, delayInShow, showForDuration, callbackAfterFade){
		$("#olt_ajax_message").html(msg);
		$("#olt_ajax_message").removeAttr("class");
		if(centered){
			var scrollPos = g_getScrollXY();
			//var pos = g_getEventPosition(e);
			$("#olt_ajax_message").css("left", parseInt((screen.width - 1000) / 2)+"px");
			$("#olt_ajax_message").css("top", (scrollPos.y+200)+"px");
		}
		if(panelClass){
			$("#olt_ajax_message").addClass(panelClass);
		}else{
			$("#olt_ajax_message").addClass("error_panel grey_panel");
		}
		$("#olt_ajax_message").show();
		var del = 3000;
		var dur = 10000;
		var cb = null;
		if(delayInShow){
			del = delayInShow;
		}
		if(showForDuration){
			dur = showForDuration;
		}
		if(callbackAfterFade){
			cb = callbackAfterFade;
		}
		if(del == 0){
			try{
	    		$('#olt_ajax_message').fadeOut(dur, cb);
		    }catch(er){}
			
		}else{
			setTimeout(function() {
		    	try{
		    		$('#olt_ajax_message').fadeOut(dur, cb);
		    	}catch(er){}
			}, delayInShow); 
		}
	}
	
	function g_resizeIframe(){
		try{
			if(resizeIframe){
				resizeIframe();
				return;
			}
		}catch(er){}
		
		try{
				var lmsIframes = $("iframe");
				if(lmsIframes && lmsIframes.length > 0){
					var the_height = 0;
				    if (document.body.scrollHeight && navigator.appVersion.indexOf("Win") != -1) {
				    	the_height = lmsIframes[0].contentWindow.document.body.scrollHeight;
				        } 
				    else if (document.documentElement.scrollHeight) { 
				    	the_height = lmsIframes[0].contentWindow.document.documentElement.scrollHeight;
				        } 
				    else if (document.documentElement.offsetHeight) { 
				    	the_height = lmsIframes[0].contentWindow.document.documentElement.offsetHeight
				    } 
				    lmsIframes[0].height = parseInt(the_height);
				}
		}catch(er){}
		
	}
	
	function g_rateIt(elem, type, id, rating, upDown){
		var oAjax = new OLTAjax();
		oAjax.setRequestURL("../site/rating.do");
		oAjax.setPost();
		oAjax.addField("dispatch", "rate");
		oAjax.addField("entityId", id);
		oAjax.addField("entityType", type);
		oAjax.addField("rating", rating+"");
		if(upDown){
			oAjax.addField("upDown", upDown+"");
		}
		oAjax.addField("resp", "ajax");
		oAjax.setCallback(g_rateItCB);
		oAjax.setUserData(elem);
		oAjax.send();
	}
	
	function g_rateItCB(respXml, errText, respText, elem){
		if(errText == null){
			//alert(respText);
			var li = elem.parentNode;
			var ul = li.parentNode;
			var div = ul.parentNode.parentNode;
			div.innerHTML=respText;
		}else{
			alert(errText);
		}
	}
	
	function g_hideErrors(){
		document.getElementById("olt_error").style.display="none";
	}
	
	
	function g_postMyUpdate(csId, grpId){
		var v = $("#txtMyUpdate").val();
		if(v != g_defaultTxtMyUpdatesText){
			g_showWorking();
			var oAjax = new OLTAjax();
			oAjax.setRequestURL("../site/document.do");
			oAjax.setPost();
			oAjax.addField("dispatch", "saveTweet");
			if(csId){
				oAjax.addField("entityType", "COURSE_SESSION");
				oAjax.addField("entityId", csId);
			}else if(grpId){
				oAjax.addField("entityType", "GROUP");
				oAjax.addField("entityId", grpId);
			}
			oAjax.addField("content", v);
			oAjax.setCallback(g_postMyUpdateCB);
			oAjax.send();
		}
	}
	
	function g_deleteActivityItem(id){
		if(confirm("Do you want to delete this item?")){
			g_showWorking();
			var oAjax = new OLTAjax();
			oAjax.setRequestURL("../site/recent.do");
			oAjax.setPost();
			oAjax.addField("dispatch", "deleteActivity");
			oAjax.addField("id", id);
			oAjax.setCallback(g_postMyUpdateCB);
			oAjax.send();
		}
	}
	
	function g_postMyUpdateCB(respXml, errText, respText, elem){
		g_hideWorking();
		if(errText == null){
			g_reloadPage();
		}
	}
	
	function g_inlineCommentFocus(id){
		$("#"+id).hide();
		$("#"+id+"_div").show();
		$("#"+id+"_area").focus();
	}
	function g_inlineCommentBlur(id){
		if($("#"+id+"_area").val().length == 0){
			$("#"+id).show();
			$("#"+id+"_div").hide();
		}
	}
	
	function g_inlineCommentKeyDown(elem, e){
		if(elem){
			$("#"+elem.id+"_ctr").html(140-elem.value.length);
		}
		if(isEnterKey(e)){
			g_postInlineComment(elem.getAttribute("feedId"));
		}
	}
	
	function g_postInlineComment(feedId){
		var v = $("#comm_"+feedId+"_area").val();
		if(v.length > 0){
			var oAjax = new OLTAjax();
			oAjax.setRequestURL("../site/comment.do");
			oAjax.setPost();
			oAjax.addField("dispatch", "save");
			oAjax.addField("entityId", feedId);
			oAjax.addField("entityType", "ACTIVITY");
			oAjax.addField("comment", v);
			oAjax.addField("xml", "true");
			oAjax.setCallback(g_postInlineCommentCB);
			oAjax.setUserData(elem);
			oAjax.send();
		}
	}
	
	function g_postInlineCommentCB(respXml, errText, respText, elem){
		if(errText == null){
			g_reloadPage();
		}else{
			alert(errText);
		}
	}
	
	
	function g_onLoadHandler()
	{
		try{
			//resize the page region
			/*var clWidth = parseFloat(document.body.clientWidth);
			if(clWidth > 1000){
				var w = clWidth - 180 - 150 - (clWidth*0.06);
				document.getElementById("pgRegion").style.width = w+"px";
			}*/
			//
			/*
			 deprecating this way of disabling links, not needed as we always require users to login
			forceAccessControl();
			*/
			//initLnavPanels();
			addMinMaxToggles();
			if (window.attachEvent){
				setIeFocusHandler();
			}
			
			if(l_bodyClickHandler && l_bodyClickHandler != null){
				document.onclick = l_bodyClickHandler;
			}
			
			if(document.forms['signin_form']){
				document.forms['signin_form'].username.focus();
			}else if(document.forms['searchForm']){
				var searchBox = document.getElementById("searchText");
				if(searchBox && searchBox.type && searchBox.type != "hidden"){
					searchBox.focus();
				}
			}
			setCookie("BINFO", screen.width+","+screen.height);
			//collapse left nav menus
//			option 2 - auto-child-collapse
			g_subjectsMenuPanel = document.getElementById("olt.site.ui2.subjectspanel");
			g_examsMenuPanel = document.getElementById("olt.site.ui2.examspanel");
			g_regionsMenuPanel = document.getElementById("olt.site.ui2.regionspanel");
			g_skillsMenuPanel = document.getElementById("olt.site.ui2.skillspanel");
			g_currentBO = g_oltBrowser.bo;
			if(g_subjectsMenuPanel && g_currentBO){
				g_compactMenu('olt.site.ui2.subjectspanel',true,'&plusmn; ');
				g_stateToFromStr('olt.site.ui2.subjectspanel',g_getCookieValue('smSt_'+g_currentBO));
			}
			if(g_examsMenuPanel && g_currentBO){
			  g_compactMenu('olt.site.ui2.examspanel',true,'&plusmn; ');
			  g_stateToFromStr('olt.site.ui2.examspanel',g_getCookieValue('emSt_'+g_currentBO));
			}
			if(g_regionsMenuPanel && g_currentBO){
			  g_compactMenu('olt.site.ui2.regionspanel',true,'&plusmn; ');
			  g_stateToFromStr('olt.site.ui2.regionspanel',g_getCookieValue('rmSt_'+g_currentBO));
			}
			if(g_skillsMenuPanel && g_currentBO){
				g_compactMenu('olt.site.ui2.skillspanel',true,'&plusmn; ');
				g_stateToFromStr('olt.site.ui2.skillspanel',g_getCookieValue('skmSt_'+g_currentBO));
			}
			if(l_onLoadHandler && l_onLoadHandler != null){
				l_onLoadHandler();
			}
			
			setTimeout(g_checkForClosePopupDiv, 1000);
			//$("table tr:last,table tr:last td,table.grid tr:last,table.grid tr:last td,ul li:last").css("border-bottom", "1px solid #ffffff");
			
			g_hideWorking();
		}catch(er){}
		return false;
	}
	addEvent(window, 'load', g_onLoadHandler);
	
	window.onunload = function () {
		if(g_subjectsMenuPanel && g_currentBO){
			setCookie('smSt_'+g_currentBO,g_stateToFromStr('olt.site.ui2.subjectspanel'));
		}
		if(g_examsMenuPanel && g_currentBO){
			setCookie('emSt_'+g_currentBO,g_stateToFromStr('olt.site.ui2.examspanel'));
		}
		if(g_regionsMenuPanel && g_currentBO){
			setCookie('rmSt_'+g_currentBO,g_stateToFromStr('olt.site.ui2.regionspanel'));
		}
		if(g_skillsMenuPanel && g_currentBO){
			setCookie('skmSt_'+g_currentBO,g_stateToFromStr('olt.site.ui2.skillspanel'));
		}
	}
	
	// script by Josh Fraser (http://www.onlineaspect.com)

	function calculate_time_zone() {
		var rightNow = new Date();
		var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);  // jan 1st
		var june1 = new Date(rightNow.getFullYear(), 6, 1, 0, 0, 0, 0); // june 1st
		var temp = jan1.toGMTString();
		var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
		temp = june1.toGMTString();
		var june2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1));
		var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);
		var daylight_time_offset = (june1 - june2) / (1000 * 60 * 60);
		var dst;
		if (std_time_offset == daylight_time_offset) {
			dst = "0"; // daylight savings time is NOT observed
		} else {
			// positive is southern, negative is northern hemisphere
			var hemisphere = std_time_offset - daylight_time_offset;
			if (hemisphere >= 0)
				std_time_offset = daylight_time_offset;
			dst = "1"; // daylight savings time is observed
		}
		
		return convert(std_time_offset)+","+dst;
//		var i;
//		// check just to avoid error messages
//		if (document.getElementById('timezone')) {
//			for (i = 0; i < document.getElementById('timezone').options.length; i++) {
//				if (document.getElementById('timezone').options[i].value == convert(std_time_offset)+","+dst) {
//					document.getElementById('timezone').selectedIndex = i;
//					break;
//				}
//			}
//		}
	}

	
	function g_getQuestionOfDay(){
		var oAjax = new OLTAjax();
		oAjax.setRequestURL("../jsp/test.do");
		oAjax.setPost();
		oAjax.addField("dispatch", "questionOfTheDay");
		if(document.forms["qOfDayForm"] && document.forms["qOfDayForm"].dateLong && document.forms["qOfDayForm"].dateLong.value != ""){
			oAjax.addField("dateLong", document.forms["qOfDayForm"].dateLong.value);
		}
		oAjax.setCallback(g_getQuestionOfDayCB);
		oAjax.send();
	}
	
	function g_getQuestionOfDayCB(respXml, errText, respText, elem){
		if(errText == null){
			$("#qOfDay").html(respText)
		}else{
			alert(errText);
		}
	}
	
	function g_getQuestionOfDaySubmit(formId){
		var oAjax = new OLTAjax();
		
		var elems = document.getElementById(formId).getElementsByTagName("input");
		var answered = false;
		for(var i=0; i<elems.length; i++){
			if(elems[i].checked){
				oAjax.addField("answerIds", elems[i].value);
				answered = true;
			}else if(elems[i].getAttribute("type") == "hidden" && elems[i].name && elems[i].name != '' && elems[i].value && elems[i].value != ''){
				oAjax.addField(elems[i].name, elems[i].value);
			}
		}
		if(!answered){
			alert("Please select a choice");
			return;
		}
		
		oAjax.setPost();
		oAjax.setRequestURL("../jsp/test.do");
		oAjax.addField("dispatch", "questionOfTheDayResponse");
		oAjax.setCallback(g_getQuestionOfDayCB);
		oAjax.send();
	}
	
	
	
	function convert(value) {
		var hours = parseInt(value);
	   	value -= parseInt(value);
		value *= 60;
		var mins = parseInt(value);
	   	value -= parseInt(value);
		value *= 60;
		var secs = parseInt(value);
		var display_hours = hours;
		// handle GMT case (00:00)
		if (hours == 0) {
			display_hours = "00";
		} else if (hours > 0) {
			// add a plus sign and perhaps an extra 0
			display_hours = (hours < 10) ? "+0"+hours : "+"+hours;
		} else {
			// add an extra 0 if needed 
			display_hours = (hours > -10) ? "-0"+Math.abs(hours) : hours;
		}
		
		mins = (mins < 10) ? "0"+mins : mins;
		return display_hours+":"+mins;
	}
	
	/*
	 * adds to array an object (having id attribue) and maintaining unique items in the array based on ids
	 */
	function g_addToArrayIfNotExists(arr, newObject){
		if(arr && arr.length > 0){
			for(var i=0; i<arr.length; i++){
				if(arr[i].id == newObject.id){
					return ;
				}
			}
		}
		arr.push(newObject);
	}
	
	function g_populateDropDown(ddId, valArr, addBlank, sort, addOther){
		var ddElem = document.getElementById(ddId);
		for(var i=ddElem.options.length-1;i>=0;i--) {
			ddElem.remove(i);
		}
		if(addBlank){
			ddElem.options[0] = new Option("", "");
		}
		if(valArr && valArr.length){
			for(var i=0; i<valArr.length; i++){
				if(valArr[i]){
					if(addBlank){
						ddElem.options[i+1] = new Option(valArr[i].name, valArr[i].id);
					}else{
						ddElem.options[i] = new Option(valArr[i].name, valArr[i].id);
					}
				}
			}
		}
		if(addOther){
			ddElem.options[ddElem.options.length] = new Option("--- Other ---", "__other__");
		}
	}
	
	function g_populateNumberDD(ddId, start, end){
		var ddElem = document.getElementById(ddId);
		for(var i=ddElem.options.length-1;i>=0;i--) {
			ddElem.remove(i);
		}
		var j = 0;
		for(var i=start; i<=end; i++){
			ddElem.options[j++] = new Option((i)+"", (i)+"");
		}
	}
	
	function g_populateDayDD(ddId){
		var ddElem = document.getElementById(ddId);
		for(var i=ddElem.options.length-1;i>=0;i--) {
			ddElem.remove(i);
		}
		for(var i=0; i<31; i++){
			ddElem.options[i] = new Option((i+1)+"", (i+1)+"");
		}
	}
	
	var g_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
	function g_populateMonthDD(ddId){
		var ddElem = document.getElementById(ddId);
		for(var i=ddElem.options.length-1;i>=0;i--) {
			ddElem.remove(i);
		}
		for(var i=0; i<g_months.length; i++){
			ddElem.options[i] = new Option(g_months[i], g_months[i]);
		}
	}
	
	function g_populateYearDD(ddId, ymin, ymax){
		var ddElem = document.getElementById(ddId);
		for(var i=ddElem.options.length-1;i>=0;i--) {
			ddElem.remove(i);
		}
		var j = 0;
		for(var i=ymin; i<=ymax; i++){
			ddElem.options[j++] = new Option(i+"", i+"");
		}
	}
	
	function g_createList(sb, panelId, elemName, valArr, chgHdlr){
		if(chgHdlr && chgHdlr.indexOf("(") == -1){
			chgHdlr = chgHdlr+"()";
		}
		for (var i=0; i<valArr.length; i++){
			sb.push("<tr valign=\'top\'><td width=\'5%\'>");
			sb.push("<input type=\'checkbox\' id=\'"+elemName+"_"+valArr[i].id+"\' name=\'"+elemName+"\' value=\'"+valArr[i].id+"\'");
			if(chgHdlr){
				sb.push(" onChange='"+chgHdlr+";' ");
			}
			sb.push("/></td>");
			sb.push("<td>");
			sb.push("<label class='light' for=\'"+elemName+"_"+valArr[i].id+"\'>"+valArr[i].name+"</label>");
			sb.push("</td><td width=\'10%\'><span id=\'"+valArr[i].id+"_count\'></span></td></tr>");
		}
	}
	
	function g_createDDList(sb, elemName, valArr, chgHdlr, optional){
		if(chgHdlr && chgHdlr.indexOf("(") == -1){
			chgHdlr = chgHdlr+"()";
		}
		
		sb.push("<select name='"+elemName+"' id='"+elemName+"' onChange='"+chgHdlr+"'>");
		if(optional){
			sb.push("<option value=\"\"></option>");
		}
		for (var i=0; i<valArr.length; i++){
			sb.push("<option value='"+valArr[i].id+"'>"+valArr[i].name+"</option>");
		}
		sb.push("</select>");
	}
	
	function g_gup( name )
	{
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+name+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( window.location.href );
	  if( results == null )
	    return "";
	  else
	    return results[1];
	}
	
	function g_safeId(id){
		return id.replace(/\./g, "\\."); 
	}
	
	function g_checkForClosePopupDiv()
	{
	    if(window.location.hash == "#close_child")
	    {
	      hidepopdiv();
	    }
	    else
	    {
	    	if(g_popDivVisible){
	    		setTimeout(g_checkForClosePopupDiv, 1000)
	    	}
	    }
	}
	
	function g_deleteDoc(docId){
		if(confirm("Are you sure, you want to delete?")){
			$.post( "../site/document.do", 
					{ "dispatch": "removeAjax", "documentIds": docId},
				function( data ) {
			       g_reloadPage();
			    }, "json"
			);
		}
	}
	
	jQuery.fn.center = function () {
	    this.css("position","absolute");
	    this.css("top", (($(window).height() - this.outerHeight()) / 2) + $(window).scrollTop() + "px");
	    this.css("left", (($(window).width() - this.outerWidth()) / 2) + $(window).scrollLeft() + "px");
	    return this;
	}
	
	function g_moveInArray (arr, old_index, new_index) {
	    if (new_index >= arr.length) {
	        alert("invalid move...");
	        return;
	    }
	    arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);
	};
	
	
	function g_restorePageState(pageId){
		try{
			if(localStorage){
				var storedObjStr = localStorage[pageId];
				if(storedObjStr){
					var storedObj = JSON.parse(storedObjStr);
					return storedObj;
				}
			}
		}catch(er){}
	}
	
	function g_savePageState(pageId, data){
		try{
			if(localStorage){
				localStorage[pageId] = JSON.stringify(data);
			}
			
		}catch(er){}
	}
	
	function eb_InitCustomHeader(){
		try{
			if(!eb_CustomHeader){
				return;
			}
			if(eb_CurrTopTab != null){
				$("#eb_TopTab_"+eb_CurrTopTab).addClass("current");
			}
			$("#eb_TopLogo").attr("src", eb_SiteLogo);
		}catch(er){
			
		}
	}
var g_sel_one_item="Please select one or more item(s)";
	function lnav_click(elem){
		if(window.event){
			elem = window.event.target||window.event.srcElement;
		}
		if(elem.nodeName.toLowerCase() == 'li'){
			var As = elem.getElementsByTagName("A");
			if(As && As.length > 0){
				window.location.href=As[0].href;
			}
		}
	}
	
	function lnav_mover(elem){
		if(window.event){
			elem = window.event.target||window.event.srcElement;
		}
		if(elem.nodeName.toLowerCase() == 'a'){
			elem = elem.parentNode;
		}
		if(elem.nodeName.toLowerCase() == 'li'){
			elem.setAttribute("oldColor", elem.style.backgroundColor);
			elem.style.backgroundColor="#EFEF77";
		}
	}
	
	function lnav_mout(elem){
		if(window.event){
			elem = window.event.target||window.event.srcElement;
		}
		if(elem.nodeName.toLowerCase() == 'a'){
			elem = elem.parentNode;
		}		
		if(elem.nodeName.toLowerCase() == 'li'){
			elem.style.backgroundColor=elem.getAttribute("oldColor");
			//elem.setAttribute("oldColor", elem.style.backgroundColor);
			//elem.style.backgroundColor="#E8F4D7";
		}
	}	
	
	function setIeFocusHandler() {
		var sfEls = document.getElementsByTagName("INPUT");
		setFocusHandler(sfEls);
		sfEls = document.getElementsByTagName("TEXTAREA");
		setFocusHandler(sfEls);
	}
	
	function setFocusHandler(sfEls){
		for (var i=0; i<sfEls.length; i++) {
			if(sfEls[i].nodeName.toLowerCase() == "textarea" || sfEls[i].type.toLowerCase() == "text" || sfEls[i].type.toLowerCase() == "password"){
				sfEls[i].onfocus=function() {
					this.className+=" sffocus";
					var oldHandler = this.getAttribute("oldFocusHandler");
					//alert(oldHandler);
					if(oldHandler){
						var fPtr = eval(oldHandler);
						fPtr(this);
					}
				}
				sfEls[i].onblur=function() {
					this.className=this.className.replace(new RegExp(" sffocus\\b"), "");
					var oldHandler = this.getAttribute("oldBlurHandler");
					//alert(oldHandler);
					if(oldHandler){
						var fPtr = eval(oldHandler);
						fPtr(this);
					}
				}
			}
		}
	}
	
	function searchOnFocus(elem){
		if(elem && elem.value == g_defaultSearchText){
			elem.value = "";
		}
	}
	
	function searchOnBlur(elem){
		if(elem && elem.value == ""){
			elem.value = g_defaultSearchText;
		}
	}
	
	function g_txtMyUpdateOnFocus(elem){
		if(elem && elem.value == g_defaultTxtMyUpdatesText){
			elem.value = "";
		}
	}
	
	function g_txtMyUpdateOnBlur(elem){
		if(elem && elem.value == ""){
			elem.value = g_defaultTxtMyUpdatesText;
		}
	}
	
	function g_txtMyUpdateOnKeydown(elem, csId, grpId, e){
		if(elem){
			$("#"+elem.id+"_ctr").html(140-elem.value.length);
		}
		if(isEnterKey(e)){
			g_postMyUpdate(csId, grpId);
		}
	}
	
	function g_txtMyUpdateOnChange(elem, e){
		if(elem){
			$("#"+elem.id+"_ctr").html(140-elem.value.length);
		}
	}
	
	
	///
	function g_txtWallCommentOnFocus(elem){
		if(elem && elem.value == g_defaultComment){
			elem.value = "";
		}
	}
	
	function g_txtWallCommentOnBlur(elem){
		if(elem && elem.value == ""){
			elem.value = g_defaultComment;
		}
	}
	
	function g_txtWallCommentOnKeydown(elem, e){
		if(isEnterKey(e)){
			g_postWallComment();
		}
	}
	
	function g_txtWallCommentOnChange(elem, e){
		if(elem){
			$("#"+elem.id+"_ctr").html(140-elem.value.length);
		}
	}
	
/*
ShadowValidation
----------------

Generic Form Validation.
To activate this validation, add attributes to your form elements.
Attribute "validate" defines what type of validation you want.
Possible values for "validate" attribute:
	"no_special_char" - element can't have special characters < > : ; & # % / \ , = + ~ ` ' " [ ] { } ! @ $ ^ * ( ) 
	"not_empty" - element can't be empty.
	"integer" - element must have integer value.
	"number" - element must have numeric value.
	"emails" - multiple emails comma separated
	"email" - element value must be valid email address.
	"alphabet" - element value must consist only of given alphabet list in allow_only attribute.
			you can give ranges using ".." in the allow_only attribute.
	[function name] - vaidate using your own function. see below for more details.
You can join more than one validation type by using the "|" character.
For example:
	<input type="text" name="myinput" validate="not_empty|number" />
	will force not empty and numeric value.
Example for alphabet validation:
	<input type="text" name="myinput" validate="not_empty|alphabet" allow_only="a..zA..Z0..9" />
	will force not empty value that contains only english letters or digits.
Attribute "msg" defines the message to display when validation fails.
For example:
	<input type="text" name="myinput" validate="not_empty|number" msg="please enter value|invalid value" />
	will show "please enter value" if value is empty and "invalid value" if not numeric.
By default, the message will appear next to the form element.
You can have the message appear as alert dialog by adding show_alert attribute to the form.
For example:
	<form show_alert="1" onsubmit="return Validate(this);">
	will show the messages as alerts.

Advanced:
	You can use your own function to validate the data.
	For this, write the function name as the value of "validate" attribute.
	For example:
		<input type="text" name="myinput" validate="MyValidate" />
	The function must get the form element as its parameter and return true if valid or false otherwise.


Written by:
	� Shadow Wizard, 2006

*/

function Validate(objForm, skipValidations) {
	if(!objForm || !objForm.elements || !objForm.elements.length){
		return true;
	}
	return _Validate(objForm.elements, skipValidations);
}	

function ValidateElem(objElem, skipValidations) {
	if(!objElem){
		return true;
	}
	//validate all input
	var elems = objElem.getElementsByTagName("input");
	if(!_Validate(elems, skipValidations)){
		return false;
	}
	elems = objElem.getElementsByTagName("select");
	if(!_Validate(elems, skipValidations)){
		return false;
	}
	elems = objElem.getElementsByTagName("textarea");
	if(!_Validate(elems, skipValidations)){
		return false;
	}
	return true;
}	

function _getPrintableName(elem){
	var elemname = elem.name;
	if(elemname.indexOf(".") > -1){
		return elemname.substring(elemname.lastIndexOf(".")+1);
	}
	return elemname;
}

function _Validate(elements, skipValidations) {
	/*
	if(!objForm || !objForm.elements || !objForm.elements.length){
		return true;
	}*/
	var arrValidated=new Array();
	for (var i=0; i<elements.length; i++) {
		var element=elements[i];
		var elName=element.name;
		if ((!elName)||(elName.length == 0)||(arrValidated[elName])||element.disabled)
			continue;
		arrValidated[elName] = true;
		var validationType = element.getAttribute("validate");
		if ((!validationType)||(validationType.length == 0)){
			if(element.nodeName.toLowerCase() != "textarea" 
				&& (element.nodeName.toLowerCase() != "input" 
				|| element.getAttribute("type").toLowerCase() != "text")){
				continue;
			}
		}
		//force special char check for all text fields
		if(element.nodeName.toLowerCase() == "textarea" || 
				(element.nodeName.toLowerCase() == "input" && element.getAttribute("type").toLowerCase() == "text")){
			if(validationType 
					&& validationType.indexOf("email") == -1 
					&& validationType.indexOf("emails") == -1
					&& validationType.indexOf("allow_special_char") == -1
					&& validationType.indexOf("no_special_char") == -1
					&& validationType.indexOf("alphabet") == -1
					&& validationType.indexOf("date") == -1
					){ //if not an email field and does not explicitly allows special chars
				validationType += "|no_special_char";
			}
		}
		
		try
		{
			var disabled = element.getAttribute("disabled");
			if(disabled)
				continue;
		}
		catch(er){}
		var strMessages=element.getAttribute("msg");
		if (!strMessages)
			strMessages = "";
		var arrMessages = strMessages.split("|");
		var blnValid=true;
		var defaultMessage;
		if(validationType){
			var arrValidationTypes = validationType.split("|");
			for (var j=0; blnValid && j<arrValidationTypes.length; j++) {
				var curValidationType = arrValidationTypes[j];
				if(skipValidations && skipValidations.length > 0){
					//skip specified validations
					var skipThisValidation = false;
					for(var sk=0; sk<skipValidations.length; sk++){
						if(skipValidations[sk] == curValidationType || skipValidations[sk] == "*"){
							skipThisValidation = true;
							break;
						}
					}
					if(skipThisValidation){
						continue;
					}
				}
				
				switch (curValidationType) {
					case "not_empty":
						blnValid = ValidateNotEmpty(element);
						defaultMessage = _getPrintableName(element)+" is mandatory";
						break;
					case "integer":
						blnValid = ValidateInteger(element);
						defaultMessage = _getPrintableName(element)+" should only contain integer value";
						break;
					case "number":
						blnValid = ValidateNumber(element);
						/*
						 * more precise message
						 */
						var sv = GetElementValue(element);
						var smin = element.getAttribute("minVal");
						if (!smin){
							smin = "";
						}
						var smax = element.getAttribute("maxVal");
						if (!smax){
							smax = "";
						}
						defaultMessage = _getPrintableName(element)+" should only contain numeric value"; //
						if(smin != ""){
							defaultMessage += " greater than "+smin;	
						}else{
							defaultMessage += " greater than zero";
						}
						
						if(smax != ""){
							defaultMessage += " and less than "+smax;
						}
						break;
					case "email":
						blnValid = ValidateEmail(element);
						defaultMessage = _getPrintableName(element)+" should only contain valid email address, e.g. yourname@domain.com";
						break;
					case "emails":
						blnValid = ValidateEmails(element, ",");
						defaultMessage = _getPrintableName(element)+" should only contain valid email addresses, e.g. yourname@domain.com";
						break;	
					case "alphabet":
						blnValid = ValidateAlphaBet(element);
						defaultMessage = _getPrintableName(element)+" should only contain characters ";
						var allowedChars = element.getAttribute("allow_only");
						if(allowedChars && allowedChars != ""){
							defaultMessage += allowedChars;
						}
						break;
					case "no_special_char":
						blnValid = ValidateNoSpecialChars(element);
						defaultMessage = _getPrintableName(element)+" should not contain any of these characters \n"+g_specialChars;
						break;
					default:
						try {
							blnValid = eval(curValidationType+"(element)");
						}
						catch (ex) {
							blnValid = true;
						}
				}
			}
		}
		if(blnValid){
			//length check
			var validationResult = ValidateLength(element);
			if(validationResult){
				blnValid = validationResult.valid;
				defaultMessage = validationResult.message;
			}
		}
		if (blnValid == false) {
			var message=defaultMessage;
			if(message == "")
				message = "invalid value for "+element.name;
			if ((j-1 < arrMessages.length)&&(arrMessages[j-1].length > 0))
				message = arrMessages[j-1];
			InsertError(element, message);
			if(element.type && element.type != "hidden" && ((typeof element.focus == "function")||(element.focus)) ) {
				try{
					element.focus();
				}catch(er){}
			}
			return false;
		}
		
		ClearError(element);
	}
	return true;
}

function ValidateNotEmpty(objElement) {
	var strValue = GetElementValue(objElement);
	return (strValue.length > 0);
}

function ValidateInteger(objElement) {
	var strValue = GetElementValue(objElement);
	return (!isNaN(parseInt(strValue)) && (parseInt(strValue) > 0));
}


function ValidateNumber(objElement) {
	var strValue = GetElementValue(objElement);
	var strMin = objElement.getAttribute("minVal");
	if (!strMin){
		strMin = "";
	}
	var strMax = objElement.getAttribute("maxVal");
	if (!strMax){
		strMax = "";
	}
	
	if(strValue != ''){
		if(!isNaN(parseFloat(strValue))){
			var v = parseFloat(strValue);
			if(strMin != ""){
				var fMin = parseFloat(strMin);
				if(v < fMin){
					return false;
				}
			}
			if(strMax != ""){
				var fMax = parseFloat(strMax);
				if(v > fMax){
					return false;
				}
				return true;
			}
		}else{
			return false;
		}
	}
	else{
		return true;
	}
}

function ValidateEmail(objElement) {
	var strValue = GetElementValue(objElement);
	return ValidateEmailStr(strValue);
}

function ValidateEmailStr(strValue) {
	if(strValue == ""){
		return true;
	}
	if (strValue.length < 5)
		return false;
	var arrTemp=strValue.split("@");
	if (arrTemp.length != 2)
		return false;
	var strLeftPart = arrTemp[0];
	var strRightPart = arrTemp[1];
	if ((strLeftPart.length == 0)||(strRightPart.length == 0))
		return false;
	arrTemp = strRightPart.split(".");
	if (arrTemp.length < 2)
		return false;
	for (var i=0; i<arrTemp.length; i++) {
		if (arrTemp[i].length == 0)
			return false;
	}
	return true;
}

function ValidateEmails(objElement, separatorChar) {
	var strValue = GetElementValue(objElement);
	var tokens = strValue.split(separatorChar);
	if(tokens){
		for(var i=0; i<tokens.length; i++){
			if(!ValidateEmailStr(tokens[i])){
				return false;
			}
		}
	}
	return true;
}

function ValidateNoSpecialChars(objElement){
//no_spaecial	
	var strValue = GetElementValue(objElement);
	if (strValue.length == 0)
		return true;
	if(ValidateAlphaBet(objElement)){
		var specialChars = g_specialChars;
		var specialCharsArr = specialChars.split(" ");
		var allowedSpecialChars = null;
		if(objElement.getAttribute("allowed_special")){
			allowedSpecialChars = objElement.getAttribute("allowed_special").split(" ");
		}
		for (var i=0; i<strValue.length; i++){
			var thisChar = strValue.substr(i, 1);
			if(allowedSpecialChars){
				if(InArray(allowedSpecialChars, thisChar) >= 0){
					continue;
				}
			}
			if (InArray(specialCharsArr, thisChar) >= 0){
				return false;
			}
		}
	}
}

function ValidateAlphaBet(objElement) {
	var strValue = GetElementValue(objElement);
	
	if (strValue.length == 0)
		return true;
	
	var strAllowOnly = objElement.getAttribute("allow_only");
	if (!strAllowOnly)
		strAllowOnly = "";
	
	if (strAllowOnly.length == 0)
		return true;
	
	var i=0;
	var arrAllowedChars=new Array();
	while (i < strAllowOnly.length) {
		if ((i < (strAllowOnly.length-2)) && (strAllowOnly.substr(i+1, 2) == "..")) {
			for (var j=strAllowOnly.charCodeAt(i); j<=strAllowOnly.charCodeAt(i+3); j++) {
				arrAllowedChars[arrAllowedChars.length] = String.fromCharCode(j);
			}
			i += (2*2);
			continue;
		}
		arrAllowedChars[arrAllowedChars.length] = strAllowOnly.charAt(i)+"";
		i++;
	}
	for (var i=0; i<strValue.length; i++){
		if (InArray(arrAllowedChars, strValue.substr(i, 1)) < 0){
			return false;
		}
	}
	
	return true;
}

function ValidateLength(objElement) {
	var strValue = GetElementValue(objElement);
	
	var minlen = -1;
	var maxlen = -1;
	
	var minLengthStr = objElement.getAttribute("minlength");
	if (minLengthStr){
		minlen = parseInt(minLengthStr);
	}

	var maxLengthStr = objElement.getAttribute("maxlength");
	if (maxLengthStr){
		maxlen = parseInt(maxLengthStr);
	}

	var name = objElement.getAttribute("name");
	if(strValue){
		var l = trim(strValue).length;
		var result = new ValidationResult();
		if(minlen > -1 && l < minlen){
			result.valid = false;
			result.message = name+" must have atleast "+minlen+" characters";
			return result;
		}
		if(maxlen > -1 && l > maxlen){
			result.valid = false;
			result.message = name+" must have less than "+maxlen+" characters";
			return result;
		}
	}
}

function GetElementValue(objElement) {
	var result="";
	switch (objElement.type) {
		case "text":
		case "file":
		case "hidden":
		case "textarea":
		case "password":
			result = objElement.value;
			break;
		case "select-one":
		case "select":
			if (objElement.selectedIndex >= 0)
				result = objElement.options[objElement.selectedIndex].value;
			break;
		case "radio":
		case "checkbox":
			for (var i=0; i<objElement.form.elements.length; i++) {
				if (objElement.form.elements[i].name == objElement.name) {
					if (objElement.form.elements[i].checked)
						result += objElement.form.elements[i].value+",";
				}
			}
			break;
	}
	return trim(result);
}

function InsertError(element, strMessage) {
	if ((element.form.getAttribute("show_alert")) && (element.form.getAttribute("show_alert") != "0")) {
		alert(strMessage);
		return;
	}
	
	var strSpanID = element.name+"_val_error";
	var objSpan = document.getElementById(strSpanID);
	if (!objSpan) {
		if ((element.type == "radio")||(element.type == "checkbox")) {
			for (var i=0; i<element.form.elements.length; i++) {
				if (element.form.elements[i].name == element.name) {
					element = element.form.elements[i];
				}
			}
		}
		objSpan = document.createElement("span");
		objSpan.id = strSpanID;
		objSpan.className = "validation_error";
		var nodeAfter=0;
		var nodeParent = element.parentNode;
		for (var i=0; i<nodeParent.childNodes.length; i++) {
			if (nodeParent.childNodes[i] == element) {
				if (i < (nodeParent.childNodes.length-1))
					nodeAfter = nodeParent.childNodes[i+1];
				break;
			}
		}
		if ((!nodeAfter)&&(nodeParent.parentNode)) {
			nodeParent = nodeParent.parentNode;
			for (var i=0; i<nodeParent.childNodes.length; i++) {
				if (nodeParent.childNodes[i] == element.parentNode) {
					if (i < (nodeParent.childNodes.length-1))
						nodeAfter = nodeParent.childNodes[i+1];
					break;
				}
			}
		}
		if (nodeAfter)
			nodeParent.insertBefore(objSpan, nodeAfter);
		else
			document.body.appendChild(objSpan);
	}
	objSpan.innerHTML = strMessage;
}

function ClearError(element) {
	var strSpanID = element.name+"_val_error";
	var objSpan = document.getElementById(strSpanID);
	if (objSpan) {
		objSpan.innerHTML = "";
	}
}

function InArray(arr, key) {
	for (var i=0; i<arr.length; i++) {
		if (arr[i] == key) {
			return i;
		}
	}
	return -1;
}

function ValidationResult(){
	this.valid = true;
	this.message = "";
}
var g_minMaxLinkArr = new Array();
var g_minMaxElemArr = new Array();

function eventOriginator (e) {
				if (typeof e == 'undefined') { 
					var e = window.event; 
				} 
				var source;
				if (typeof e.target != 'undefined') { 
					source = e.target; 
				} else if (typeof e.srcElement != 'undefined') { 
					source = e.srcElement; 
				} else { 
					return true; 
				}
				while (source.nodeType == 3 && source.parentNode != null) { 
					source = source.parentNode; 
				}
				return source;
			}
			
function getNextSiblingElement(n) {
				var x = n.nextSibling;
				while (x.nodeType!=1) {
					x = x.nextSibling;
				}
				return x;
			}
function getElementByName(name) {
				var d = document, e = null;
				if (d.all)
					e = d.all[name];
				if (!e && d.getElementById)
					e = d.getElementById(name);
				return e;
			}


function getElementsByClassName(oElm, strTagName, oClassNames){
				var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
				var arrReturnElements = new Array();
				var arrRegExpClassNames = new Array();
				if(typeof oClassNames == "object"){
					for(var i=0; i<oClassNames.length; i++){
						arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
					}
				}
				else{
					arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
				}
				var oElement;
				var bMatchesAll;
				for(var j=0; j<arrElements.length; j++){
					oElement = arrElements[j];
					bMatchesAll = true;
					for(var k=0; k<arrRegExpClassNames.length; k++){
						if(!arrRegExpClassNames[k].test(oElement.className)){
							bMatchesAll = false;
							break;                      
						}
					}
					if(bMatchesAll){
						arrReturnElements.push(oElement);
					}
				}
				return (arrReturnElements)
			}

var idBase = 'minmax';
			function addMinMaxToggles () {
				var els = getElementsByClassName(document, "*", "collapsible");
				for (var i = 0; i < els.length; i++) { 
					var initial;
					try
					{
						initial = els[i].getAttribute("initial");
					}
					catch(err){}
					var hideByDefault = false;
					if(initial && initial == 'hide')
						hideByDefault = true;
					var img = document.createElement('img');
					if(hideByDefault)
						img.src = '../'+g_version+'images/navigate_open.png';
					else
						img.src = '../'+g_version+'images/navigate_close.png';
					img.height = 16;
					img.width = 16;
					img.border = 0;
					if(hideByDefault)
						img.alt = 'show';
					else
						img.alt = 'hide';
					img.id = idBase + 'img' + i;
					img.style.margin = '0 10 0 0';
					img.style.verticalAlign = 'middle';
					var a = document.createElement('a');
					a.href = '#';
					a.onclick = toggleMinMax;
					a.id = idBase + 'a' + i;
					a.appendChild(img);
					els[i].insertBefore(a, els[i].firstChild);
					var collapsibleEl = getNextSiblingElement(els[i]);
					collapsibleEl.className = collapsibleEl.className + ' ' + idBase + 'c' + i;
					g_minMaxLinkArr[i]=a;
					g_minMaxElemArr[i]=collapsibleEl;
					if(hideByDefault)
						collapsibleEl.style.display = 'none';
					else
						collapsibleEl.style.display = 'block';
				}
			}
			function toggleMinMax (e) {
				var source = eventOriginator (e); 
				var idNr = source.id.match(/\d+/);
				//var collEl = getElementsByClassName(document, "*", idBase + 'c' + idNr)[0];
				var collEl = g_minMaxElemArr[parseInt(idNr)];
				
				var imgEl = getElementByName(idBase + 'img' + idNr);
				var reqState = imgEl.alt;
				var curState = (reqState == 'hide')? 'show' : 'hide';
				collEl.style.display = (reqState == 'hide')? 'none' : 'block';
				imgEl.src = (curState == 'hide')? '../'+g_version+'images/navigate_close.png' : '../'+g_version+'images/navigate_open.png';
				imgEl.alt = curState;
				
				return false;
			}

/*
 * usage: createClock(5, 5, "placeholderid", 0);
 */


var exClock = new Array();//global clock array
function createClock(total, remaining, placeholderId, remDivId, refreshafter, timeoutFunc, bgColor, fgColor, borderColor, finishMessage, beforeFinishTimeInSec, beforeFinishMessage)
{
	var consumed = total - remaining;
	exClock[exClock.length] = new examClock(total, consumed, placeholderId, remDivId, refreshafter, timeoutFunc, bgColor, fgColor, borderColor, finishMessage, beforeFinishTimeInSec, beforeFinishMessage);
	refreshExamClock();
}
function examClock(total, consumed, placeholderId, remDivId, refreshafter, timeoutFunc, bgColor, fgColor, borderColor, finishMessage, beforeFinishTimeInSec, beforeFinishMessage)
{
	this.started = (new Date()).getTime();
	this.absConsumedInSec = 0;
	this.totalInSec = parseInt(total);
	this.consumedInSec = parseInt(consumed);
	this.placeholderId = placeholderId;
	this.remDivId = remDivId;
	this.placeholder = document.getElementById(placeholderId);
	this.refreshafter = parseInt(2000);//refreshafter;
	this.divId = this.placeholderId+"_clock";
	this.width = 150;//parseInt(this.totalInSec/10); //every 10 seconds
	this.timeoutFunc = timeoutFunc;
	this.bgColor = bgColor;
	this.fgColor = fgColor;
	this.borderColor = borderColor;
	this.active = true;
	this.beforeFinishTimeInSec = 30;
	this.finishMessage = "The allocated time is finished !!!";
	this.beforeFinishMessage = null;
	this.beforeFinishWarningShown = false;
	
	if(finishMessage){
		this.finishMessage = finishMessage;
	}
	
	if(beforeFinishTimeInSec){
		this.beforeFinishTimeInSec = beforeFinishTimeInSec;
	}
	
	if(beforeFinishMessage){
		this.beforeFinishMessage = beforeFinishMessage;
	}
	
	
	if(this.bgColor == null){
		this.bgColor = "#FFFFCC";
	}
	if(this.fgColor == null){
		this.fgColor = "#FFCC00";
	}
	if(this.borderColor == null){
		this.borderColor = "#cccccc";
	}
	
	var clockContent = "<div style='width:"+this.width+"px;height:20px;background-color:"+this.bgColor+";border:1px solid "+this.borderColor+"'>"+
		"<div id='"+this.divId+"' style='text-align:center;color:#fff;width:0%;height:90%;background-color:"+this.fgColor+";border:1px solid "+this.borderColor+"'>"+
		"</div></div>";
	document.getElementById(placeholderId).innerHTML = clockContent;
	//setTimeout("refreshExamClock()", this.refreshafter);
}

function refreshExamClock()
{
	var clockSet = false;
	for(var clk=0; clk<exClock.length; clk++){
		var thisClock = exClock[clk];
		if(!thisClock.active){
			continue;
		}
		thisClock.absConsumedInSec = ( ((new Date()).getTime()) - thisClock.started  )/1000;//parseInt(thisClock.refreshafter/1000);
		var consumedTillNowInSec = parseInt(thisClock.consumedInSec + thisClock.absConsumedInSec);
		var remDiv = document.getElementById(thisClock.remDivId);
		var remainingMin = parseInt(Math.ceil((thisClock.totalInSec-consumedTillNowInSec)/60.0));
		if(remainingMin < 0)
			remainingMin = 0;
		remDiv.innerHTML = remainingMin +" minutes";
		var cw = (remainingMin<=0?parseInt(thisClock.width):parseInt((consumedTillNowInSec*thisClock.width)/thisClock.totalInSec));
		var div = document.getElementById(thisClock.divId);
		div.style.width=cw+"px";//relConsumed+"%";
		if(consumedTillNowInSec < thisClock.totalInSec){
			if(!clockSet){
				setTimeout("refreshExamClock()", thisClock.refreshafter);
			}
			clockSet = true;
			
			if(!thisClock.beforeFinishWarningShown && (thisClock.beforeFinishTimeInSec > 0) && ((thisClock.totalInSec - consumedTillNowInSec) <= thisClock.beforeFinishTimeInSec)){
				if(thisClock.beforeFinishMessage != null){
					thisClock.beforeFinishWarningShown = true;
					g_showInlineMessage(thisClock.beforeFinishMessage, "alarm_panel big error_panel orange_panel blue", true, 0, 
							20000);
				}
			}
		}
		else{
			thisClock.active = false;
			try{
				g_showInlineMessage(thisClock.finishMessage, "warning_panel big error_panel red_panel blue", true, 0, 10000, thisClock.timeoutFunc);
				//thisClock.timeoutFunc();
			}catch(err){alert(err);}
		}
	}
}
 
/*
  <div style="width:200;height:20;background-color:#FFFFCC;border:1px solid #ccc">
		<div style="width:10%;height:90%;background-color:red;border:1px solid #ccc">
		</div>
  </div>
*/
/* Nifty Corners Cube - rounded corners with CSS and Javascript
Copyright 2006 Alessandro Fulciniti (a.fulciniti@html.it)

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 2 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, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

var niftyOk=(document.getElementById && document.createElement && Array.prototype.push);
var niftyCss=false;

String.prototype.find=function(what){
return(this.indexOf(what)>=0 ? true : false);
}

var oldonload=window.onload;
if(typeof(NiftyLoad)!='function') NiftyLoad=function(){};
if(typeof(oldonload)=='function')
    window.onload=function(){oldonload();AddCss();NiftyLoad()};
else window.onload=function(){AddCss();NiftyLoad()};

function AddCss(){
niftyCss=true;
var l=CreateEl("link");
l.setAttribute("type","text/css");
l.setAttribute("rel","stylesheet");
l.setAttribute("href","../v_1.0.0_20120127_2007/js/niftyCorners.css");
l.setAttribute("media","screen");
document.getElementsByTagName("head")[0].appendChild(l);
}

function Nifty(selector,options){
if(niftyOk==false) return;
if(niftyCss==false) AddCss();
var i,v=selector.split(","),h=0;
if(options==null) options="";
if(options.find("fixed-height"))
    h=getElementsBySelector(v[0])[0].offsetHeight;
for(i=0;i<v.length;i++)
    Rounded(v[i],options);
if(options.find("height")) SameHeight(selector,h);
}

function Rounded(selector,options){
var i,top="",bottom="",v=new Array();
if(options!=""){
    options=options.replace("left","tl bl");
    options=options.replace("right","tr br");
    options=options.replace("top","tr tl");
    options=options.replace("bottom","br bl");
    options=options.replace("transparent","alias");
    if(options.find("tl")){
        top="both";
        if(!options.find("tr")) top="left";
        }
    else if(options.find("tr")) top="right";
    if(options.find("bl")){
        bottom="both";
        if(!options.find("br")) bottom="left";
        }
    else if(options.find("br")) bottom="right";
    }
if(top=="" && bottom=="" && !options.find("none")){top="both";bottom="both";}
v=getElementsBySelector(selector);
for(i=0;i<v.length;i++){
    FixIE(v[i]);
    if(top!="") AddTop(v[i],top,options);
    if(bottom!="") AddBottom(v[i],bottom,options);
    }
}

function AddTop(el,side,options){
var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;
d.style.marginLeft="-"+getPadding(el,"Left")+"px";
d.style.marginRight="-"+getPadding(el,"Right")+"px";
if(options.find("alias") || (color=getBk(el))=="transparent"){
    color="transparent";bk="transparent"; border=getParentBk(el);btype="t";
    }
else{
    bk=getParentBk(el); border=Mix(color,bk);
    }
d.style.background=bk;
d.className="niftycorners";
p=getPadding(el,"Top");
if(options.find("small")){
    d.style.marginBottom=(p-2)+"px";
    btype+="s"; lim=2;
    }
else if(options.find("big")){
    d.style.marginBottom=(p-10)+"px";
    btype+="b"; lim=8;
    }
else d.style.marginBottom=(p-5)+"px";
for(i=1;i<=lim;i++)
    d.appendChild(CreateStrip(i,side,color,border,btype));
el.style.paddingTop="0";
el.insertBefore(d,el.firstChild);
}

function AddBottom(el,side,options){
var d=CreateEl("b"),lim=4,border="",p,i,btype="r",bk,color;
d.style.marginLeft="-"+getPadding(el,"Left")+"px";
d.style.marginRight="-"+getPadding(el,"Right")+"px";
if(options.find("alias") || (color=getBk(el))=="transparent"){
    color="transparent";bk="transparent"; border=getParentBk(el);btype="t";
    }
else{
    bk=getParentBk(el); border=Mix(color,bk);
    }
d.style.background=bk;
d.className="niftycorners";
p=getPadding(el,"Bottom");
if(options.find("small")){
    d.style.marginTop=(p-2)+"px";
    btype+="s"; lim=2;
    }
else if(options.find("big")){
    d.style.marginTop=(p-10)+"px";
    btype+="b"; lim=8;
    }
else d.style.marginTop=(p-5)+"px";
for(i=lim;i>0;i--)
    d.appendChild(CreateStrip(i,side,color,border,btype));
el.style.paddingBottom=0;
el.appendChild(d);
}

function CreateStrip(index,side,color,border,btype){
var x=CreateEl("b");
x.className=btype+index;
x.style.backgroundColor=color;
x.style.borderColor=border;
if(side=="left"){
    x.style.borderRightWidth="0";
    x.style.marginRight="0";
    }
else if(side=="right"){
    x.style.borderLeftWidth="0";
    x.style.marginLeft="0";
    }
return(x);
}

function CreateEl(x){
return(document.createElement(x));
}

function FixIE(el){
if(el.currentStyle!=null && el.currentStyle.hasLayout!=null && el.currentStyle.hasLayout==false)
    el.style.display="inline-block";
}

function SameHeight(selector,maxh){
var i,v=selector.split(","),t,j,els=[],gap;
for(i=0;i<v.length;i++){
    t=getElementsBySelector(v[i]);
    els=els.concat(t);
    }
for(i=0;i<els.length;i++){
    if(els[i].offsetHeight>maxh) maxh=els[i].offsetHeight;
    els[i].style.height="auto";
    }
for(i=0;i<els.length;i++){
    gap=maxh-els[i].offsetHeight;
    if(gap>0){
        t=CreateEl("b");t.className="niftyfill";t.style.height=gap+"px";
        nc=els[i].lastChild;
        if(nc.className=="niftycorners")
            els[i].insertBefore(t,nc);
        else els[i].appendChild(t);
        }
    }
}

function getElementsBySelector(selector){
var i,j,selid="",selclass="",tag=selector,tag2="",v2,k,f,a,s=[],objlist=[],c;
if(selector.find("#")){ //id selector like "tag#id"
    if(selector.find(" ")){  //descendant selector like "tag#id tag"
        s=selector.split(" ");
        var fs=s[0].split("#");
        if(fs.length==1) return(objlist);
        f=document.getElementById(fs[1]);
        if(f){
            v=f.getElementsByTagName(s[1]);
            for(i=0;i<v.length;i++) objlist.push(v[i]);
            }
        return(objlist);
        }
    else{
        s=selector.split("#");
        tag=s[0];
        selid=s[1];
        if(selid!=""){
            f=document.getElementById(selid);
            if(f) objlist.push(f);
            return(objlist);
            }
        }
    }
if(selector.find(".")){      //class selector like "tag.class"
    s=selector.split(".");
    tag=s[0];
    selclass=s[1];
    if(selclass.find(" ")){   //descendant selector like tag1.classname tag2
        s=selclass.split(" ");
        selclass=s[0];
        tag2=s[1];
        }
    }
var v=document.getElementsByTagName(tag);  // tag selector like "tag"
if(selclass==""){
    for(i=0;i<v.length;i++) objlist.push(v[i]);
    return(objlist);
    }
for(i=0;i<v.length;i++){
    c=v[i].className.split(" ");
    for(j=0;j<c.length;j++){
        if(c[j]==selclass){
            if(tag2=="") objlist.push(v[i]);
            else{
                v2=v[i].getElementsByTagName(tag2);
                for(k=0;k<v2.length;k++) objlist.push(v2[k]);
                }
            }
        }
    }
return(objlist);
}

function getParentBk(x){
var el=x.parentNode,c;
while(el.tagName.toUpperCase()!="HTML" && (c=getBk(el))=="transparent")
    el=el.parentNode;
if(c=="transparent") c="#FFFFFF";
return(c);
}

function getBk(x){
var c=getStyleProp(x,"backgroundColor");
if(c==null || c=="transparent" || c.find("rgba(0, 0, 0, 0)"))
    return("transparent");
if(c.find("rgb")) c=rgb2hex(c);
return(c);
}

function getPadding(x,side){
var p=getStyleProp(x,"padding"+side);
if(p==null || !p.find("px")) return(0);
return(parseInt(p));
}

function getStyleProp(x,prop){
if(x.currentStyle)
    return(x.currentStyle[prop]);
if(document.defaultView.getComputedStyle)
    return(document.defaultView.getComputedStyle(x,'')[prop]);
return(null);
}

function rgb2hex(value){
var hex="",v,h,i;
var regexp=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;
var h=regexp.exec(value);
for(i=1;i<4;i++){
    v=parseInt(h[i]).toString(16);
    if(v.length==1) hex+="0"+v;
    else hex+=v;
    }
return("#"+hex);
}

function Mix(c1,c2){
var i,step1,step2,x,y,r=new Array(3);
if(c1.length==4)step1=1;
else step1=2;
if(c2.length==4) step2=1;
else step2=2;
for(i=0;i<3;i++){
    x=parseInt(c1.substr(1+step1*i,step1),16);
    if(step1==1) x=16*x+x;
    y=parseInt(c2.substr(1+step2*i,step2),16);
    if(step2==1) y=16*y+y;
    r[i]=Math.floor((x*50+y*50)/100);
    r[i]=r[i].toString(16);
    if(r[i].length==1) r[i]="0"+r[i];
    }
return("#"+r[0]+r[1]+r[2]);
}
// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download. 
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================

// HISTORY
// ------------------------------------------------------------------
// May 17, 2003: Fixed bug in parseDate() for dates <1970
// March 11, 2003: Added parseDate() function
// March 11, 2003: Added "NNN" formatting option. Doesn't match up
//                 perfectly with SimpleDateFormat formats, but 
//                 backwards-compatability was required.

// ------------------------------------------------------------------
// These functions use the same 'format' strings as the 
// java.text.SimpleDateFormat class, with minor exceptions.
// The format string consists of the following abbreviations:
// 
// Field        | Full Form          | Short Form
// -------------+--------------------+-----------------------
// Year         | yyyy (4 digits)    | yy (2 digits), y (2 or 4 digits)
// Month        | MMM (name or abbr.)| MM (2 digits), M (1 or 2 digits)
//              | NNN (abbr.)        |
// Day of Month | dd (2 digits)      | d (1 or 2 digits)
// Day of Week  | EE (name)          | E (abbr)
// Hour (1-12)  | hh (2 digits)      | h (1 or 2 digits)
// Hour (0-23)  | HH (2 digits)      | H (1 or 2 digits)
// Hour (0-11)  | KK (2 digits)      | K (1 or 2 digits)
// Hour (1-24)  | kk (2 digits)      | k (1 or 2 digits)
// Minute       | mm (2 digits)      | m (1 or 2 digits)
// Second       | ss (2 digits)      | s (1 or 2 digits)
// AM/PM        | a                  |
//
// NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!
// Examples:
//  "MMM d, y" matches: January 01, 2000
//                      Dec 1, 1900
//                      Nov 20, 00
//  "M/d/yy"   matches: 01/20/00
//                      9/2/00
//  "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
// ------------------------------------------------------------------

var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function LZ(x) {return(x<0||x>9?"":"0")+x}

// ------------------------------------------------------------------
// isDate ( date_string, format_string )
// Returns true if date string matches format of format string and
// is a valid date. Else returns false.
// It is recommended that you trim whitespace around the value before
// passing it to this function, as whitespace is NOT ignored!
// ------------------------------------------------------------------
function isDate(val,format) {
	var date=getDateFromFormat(val,format);
	if (date==0) { return false; }
	return true;
	}

// -------------------------------------------------------------------
// compareDates(date1,date1format,date2,date2format)
//   Compare two date strings to see which is greater.
//   Returns:
//   1 if date1 is greater than date2
//   -1 if date2 is greater than date1 
//  0 - if equal
//  2 - error, either of them is invalid
// -------------------------------------------------------------------
function compareDatesAsString(date1,dateformat1,date2,dateformat2) {
	var d1=getDateFromFormat(date1,dateformat1);
	var d2=getDateFromFormat(date2,dateformat2);
	if (d1==0 || d2==0) {
		return 2;
	}
	else if (d1 > d2) {
		return 1;
	}
	else if(d1==d2){
		return 0;
	}
	return -1;
}

function compareDatesAsDates(date1,date2) {
	var d1=date1;
	var d2=date2;
	if (d1==0 || d2==0) {
		return 2;
	}
	else if (d1 > d2) {
		return 1;
	}
	else if(d1==d2){
		return 0;
	}
	return -1;
}

// ------------------------------------------------------------------
// formatDate (date_object, format)
// Returns a date in the output format specified.
// The format string uses the same abbreviations as in getDateFromFormat()
// ------------------------------------------------------------------
function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
		}
	return result;
	}
	
// ------------------------------------------------------------------
// Utility functions for parsing in getDateFromFormat()
// ------------------------------------------------------------------
function _isInteger(val) {
	var digits="1234567890";
	for (var i=0; i < val.length; i++) {
		if (digits.indexOf(val.charAt(i))==-1) { return false; }
		}
	return true;
	}
function _getInt(str,i,minlength,maxlength) {
	for (var x=maxlength; x>=minlength; x--) {
		var token=str.substring(i,i+x);
		if (token.length < minlength) { return null; }
		if (_isInteger(token)) { return token; }
		}
	return null;
	}
	
// ------------------------------------------------------------------
// getDateFromFormat( date_string , format_string )
//
// This function takes a date string and a format string. It matches
// If the date string matches the format string, it returns the 
// getTime() of the date. If it does not match, it returns 0.
// ------------------------------------------------------------------
function getDateFromFormat(val,format) {
	val=val+"";
	format=format+"";
	var i_val=0;
	var i_format=0;
	var c="";
	var token="";
	var token2="";
	var x,y;
	var now=new Date();
	var year=now.getYear();
	var month=now.getMonth()+1;
	var date=1;
	var hh=now.getHours();
	var mm=now.getMinutes();
	var ss=now.getSeconds();
	var ampm="";
	
	while (i_format < format.length) {
		// Get next token from format string
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		// Extract contents of value based on format token
		if (token=="yyyy" || token=="yy" || token=="y") {
			if (token=="yyyy") { x=4;y=4; }
			if (token=="yy")   { x=2;y=2; }
			if (token=="y")    { x=2;y=4; }
			year=_getInt(val,i_val,x,y);
			if (year==null) { return 0; }
			i_val += year.length;
			if (year.length==2) {
				if (year > 70) { year=1900+(year-0); }
				else { year=2000+(year-0); }
				}
			}
		else if (token=="MMM"||token=="NNN"){
			month=0;
			for (var i=0; i<MONTH_NAMES.length; i++) {
				var month_name=MONTH_NAMES[i];
				if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {
					if (token=="MMM"||(token=="NNN"&&i>11)) {
						month=i+1;
						if (month>12) { month -= 12; }
						i_val += month_name.length;
						break;
						}
					}
				}
			if ((month < 1)||(month>12)){return 0;}
			}
		else if (token=="EE"||token=="E"){
			for (var i=0; i<DAY_NAMES.length; i++) {
				var day_name=DAY_NAMES[i];
				if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {
					i_val += day_name.length;
					break;
					}
				}
			}
		else if (token=="MM"||token=="M") {
			month=_getInt(val,i_val,token.length,2);
			if(month==null||(month<1)||(month>12)){return 0;}
			i_val+=month.length;}
		else if (token=="dd"||token=="d") {
			date=_getInt(val,i_val,token.length,2);
			if(date==null||(date<1)||(date>31)){return 0;}
			i_val+=date.length;}
		else if (token=="hh"||token=="h") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>12)){return 0;}
			i_val+=hh.length;}
		else if (token=="HH"||token=="H") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>23)){return 0;}
			i_val+=hh.length;}
		else if (token=="KK"||token=="K") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<0)||(hh>11)){return 0;}
			i_val+=hh.length;}
		else if (token=="kk"||token=="k") {
			hh=_getInt(val,i_val,token.length,2);
			if(hh==null||(hh<1)||(hh>24)){return 0;}
			i_val+=hh.length;hh--;}
		else if (token=="mm"||token=="m") {
			mm=_getInt(val,i_val,token.length,2);
			if(mm==null||(mm<0)||(mm>59)){return 0;}
			i_val+=mm.length;}
		else if (token=="ss"||token=="s") {
			ss=_getInt(val,i_val,token.length,2);
			if(ss==null||(ss<0)||(ss>59)){return 0;}
			i_val+=ss.length;}
		else if (token=="a") {
			if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}
			else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}
			else {return 0;}
			i_val+=2;}
		else {
			if (val.substring(i_val,i_val+token.length)!=token) {return 0;}
			else {i_val+=token.length;}
			}
		}
	// If there are any trailing characters left in the value, it doesn't match
	if (i_val != val.length) { return 0; }
	// Is date valid for month?
	if (month==2) {
		// Check for leap year
		if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year
			if (date > 29){ return 0; }
			}
		else { if (date > 28) { return 0; } }
		}
	if ((month==4)||(month==6)||(month==9)||(month==11)) {
		if (date > 30) { return 0; }
		}
	// Correct hours value
	if (hh<12 && ampm=="PM") { hh=hh-0+12; }
	else if (hh>11 && ampm=="AM") { hh-=12; }
	var newdate=new Date(year,month-1,date,hh,mm,ss);
	return newdate.getTime();
	}

// ------------------------------------------------------------------
// parseDate( date_string [, prefer_euro_format] )
//
// This function takes a date string and tries to match it to a
// number of possible date formats to get the value. It will try to
// match against the following international formats, in this order:
// y-M-d   MMM d, y   MMM d,y   y-MMM-d   d-MMM-y  MMM d
// M/d/y   M-d-y      M.d.y     MMM-d     M/d      M-d
// d/M/y   d-M-y      d.M.y     d-MMM     d/M      d-M
// A second argument may be passed to instruct the method to search
// for formats like d/M/y (european format) before M/d/y (American).
// Returns a Date object or null if no patterns match.
// ------------------------------------------------------------------
function parseDate(val) {
	var preferEuro=(arguments.length==2)?arguments[1]:false;
	generalFormats=new Array('y-M-d','MMM d, y','MMM d,y','y-MMM-d','d-MMM-y','MMM d');
	monthFirst=new Array('M/d/y','M-d-y','M.d.y','MMM-d','M/d','M-d');
	dateFirst =new Array('d/M/y','d-M-y','d.M.y','d-MMM','d/M','d-M');
	var checkList=new Array('generalFormats',preferEuro?'dateFirst':'monthFirst',preferEuro?'monthFirst':'dateFirst');
	var d=null;
	for (var i=0; i<checkList.length; i++) {
		var l=window[checkList[i]];
		for (var j=0; j<l.length; j++) {
			d=getDateFromFormat(val,l[j]);
			if (d!=0) { return new Date(d); }
			}
		}
	return null;
	}

function getMonthName(monthId) {
	return MONTH_NAMES[parseInt(monthId, 10) +11];
}

function setupPanes(containerId, defaultTabId, tabPaneArray) {
  // go through the DOM, find each tab-container
  // set up the panes array with named panes
  // find the max height, set tab-panes to that height
	tabPaneArray[containerId] = new Array();
  var maxHeight = 0; var maxWidth = 0;
  var container = document.getElementById(containerId);
  var paneContainer = container.getElementsByTagName("div")[0];
  var paneList = paneContainer.childNodes;
  for (var i=0; i < paneList.length; i++ ) {
    var pane = paneList[i];
    if (pane.nodeType != 1) continue;
    if (pane.offsetHeight > maxHeight) maxHeight = pane.offsetHeight;
    if (pane.offsetWidth  > maxWidth ) maxWidth  = pane.offsetWidth;
    tabPaneArray[containerId][pane.id] = pane;
    pane.style.display = "none";
  }
    paneContainer.style.height = maxHeight + "px";
    paneContainer.style.width  = maxWidth + "px";
    if(defaultTabId){
    	document.getElementById(defaultTabId).onclick();
    }
}

function showPane(paneId, activeTab, tabPaneArray) {
  // make tab active class
  // hide other panes (siblings)
  // make pane visible
  
    for (var con in tabPaneArray) {
    activeTab.blur();
    activeTab.className = "tab-active";
    if (tabPaneArray[con][paneId] != null) { // tab and pane are members of this container
      var pane = document.getElementById(paneId);
      pane.style.display = "block";
      var container = document.getElementById(con);
      var tabs = container.getElementsByTagName("ul")[0];
      var tabList = tabs.getElementsByTagName("a")
      for (var i=0; i<tabList.length; i++ ) {
        var tab = tabList[i];
        if (tab != activeTab) tab.className = "tab-disabled";
      }
      for (var i in tabPaneArray[con]) {
        var pane = tabPaneArray[con][i];
        if (pane == undefined) continue;
        if (pane.id == paneId) continue;
        pane.style.display = "none"
      }
    }
  }
  return false;    
}
/*wAjax = new WikiAjax();
		wAjax.setMethodTOPOST();
		wAjax.showWait(false);
		wAjax.setCallback(onAutoSave);
		wAjax.addField("reqdata", getPageSaveData());
		wAjax.send();
*/		
function OLTAjax(needwait)
{
	var requestObject 	= false;
	var responseObject 	= null;
	var method = "GET";
	var callBack = null;
	var requestURL= null;
	var wait	=	true;
	var userData = null;
	
    if( window.XMLHttpRequest ) 
	{
    	try 
		{
    		requestObject = new XMLHttpRequest();
		} catch(e) 
		{
			requestObject = false;
		}
	}
	else if(window.ActiveXObject) 
	{
		try
		{
			requestObject = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) 
		{
			try 
			{
				requestObject = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) 
			{
				requestObject = false;
			}
		}
	}
	if(!requestObject)
	{
		alert("Browser does not support XMLHttpRequest.");
	}
	else
	{
		requestObject.onreadystatechange=function()
		{
			if( requestObject.readyState == 4 ) 
			{
				requestObject.onreadystatechange=_nullFunction;
				if(wait)
				{
					g_changePointer("");
				}
				if ( requestObject.status == 200 ) 
				{
					if( callBack != null )
					{
						try
						{
							callBack( requestObject.responseXML, null, requestObject.responseText, userData );
						}
						catch(err){}
					}
				}
				else
				{
					try
					{
						callBack( null,  "Error Occured. Status Code["+requestObject.status+"] Message[" + requestObject.statusText + "]", null, userData );
					}
					catch(err){}
				}
				requestObject = null;
				wAjax = null;
			}
		}
	}
	function _nullFunction(){}
	var arFields = new Array();
	function showWait(w)
	{
		wait=w;
	}
	function setRequestURL(u)
	{
		requestURL = u;
	}
	function setCallback(c)
	{
		callBack = c;
	}
	
	function setUserData(u)
	{
		userData = u;
	}
	
	function addField(name, value)
	{
		var fieldObj = new Object();
		fieldObj.name 	= name;
		fieldObj.value 	= value;
		arFields[arFields.length] = fieldObj;
	}
	function setPost()
	{
		method = "POST";
	}
	function send(syncMode)
	{
		if(requestObject)
		{
			var rqO = requestObject;
			try
			{
				if(wait)
				{
					g_changePointer("wait");
				}			
				if(syncMode && syncMode == true){
					requestObject.open(method, requestURL, false);
				}else{
					requestObject.open(method, requestURL, true);
				}
				requestObject.setRequestHeader("OLTAjax","true");
				//alert(requestObject.getRequestHeader("OLTAjax"));
				if(method == "POST")
				{
					requestObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
				}
				requestObject.send(getRequestData());
			}
			catch(err){
				alert(err);
				if(wait)
				{
					g_changePointer("");
				}
			}
			
			if(syncMode && syncMode == true){
				if(wait)
				{
					g_changePointer("");
				}
				return rqO;
			}
		}
	}
	function getRequestData()
	{
		var str = null;
		if(arFields.length>0)
		{
			var arData = null;
			for (var i=0; i<arFields.length; i++)
			{
				if( arFields[i].name && !g_isWhitespace(arFields[i].name) )
				{
					if(arData == null)
					{
						arData = new Array();
					}
					else
					{
						arData.push("&");
					}
					arData.push(arFields[i].name);
					arData.push("=");
					arData.push(g_URLEncode(arFields[i].value));
				}
			}
			if( arData != null )
			{
				arData.push("&fakeparam=1"); 
				str = arData.join(""); 
			}
		}
		return str;
	}
	this.addField 	= addField;
	this.setPost 	= setPost;
	this.send		=	send;
	this.setCallback	=	setCallback;
	this.setRequestURL  = setRequestURL;
	this.showWait		=	showWait;
	this.setUserData = setUserData;
}	

function g_getNodeText(node){
	var ret = null;
	if(node != null){
		var ch = node.firstChild;
		while(ch != null){
			if(ch.nodeType == 3 || ch.nodeType == 4){
				if(ret == null){
					ret = ch.nodeValue;
				}else{
					ret += ch.nodeValue;
				}
			}
			ch = ch.nextSibling;
		}
	}
	return ret;
}
/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/

var Url = {

	// public method for url encoding
	encode : function (string) {
		return escape(this._utf8_encode(string));
	},

	// public method for url decoding
	decode : function (string) {
		return this._utf8_decode(unescape(string));
	},

	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";

		for (var n = 0; n < string.length; n++) {

			var c = string.charCodeAt(n);

			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}

		}

		return utftext;
	},

	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

}
	function oltPageVar(n, v){
		this.name=n;
		this.value=v;
		
		this.write = function(){
			try{
				if(this.name && this.value && this.name != "undefined" && this.value != "undefined")
					return this.name+":"+this.value;
			}catch(er){
				alert(er);
			}
		}
		
		this.read = function(nv){
			try{
				if(nv && nv !="undefined" && !g_isEmpty(nv)){
					var pair = nv.split(":");
					this.name = pair[0];
					this.value = pair[1];
				}
			}catch(er){
				alert(er);
			}
		}
	}

	function oltPageData(id){
		if(id != null && id != "undefined" && !g_isEmpty(id)){
			this.pageId = parseInt(id);
		}else{
			this.pageId = null;
		}
		this.pageVars = new Array();
		this.read = function(id, varsData){
			try{
				this.pageId = id;
				if(varsData && varsData != "undefined" && !g_isEmpty(varsData)){
					var nv = trim(varsData).split(";");
					for(var i=0; i<nv.length; i++){
						var pageVar = new oltPageVar();
						pageVar.read(trim(nv[i]));
						this.setPageVar(pageVar);
					}
				}
			}catch(er){
				alert(er);
			}
		}
		
		this.write = function(){
			var data = "";
			try{
				if(this.pageId != null && this.pageId != "undefined" && !g_isEmpty(this.pageId)){
					for(var i=0; i< this.pageVars.length; i++){
						var d = this.pageVars[i].write();
						if(d && d != "undefined" && !g_isEmpty(d)){
							data += d+";";
						}
					}
				}
			}catch(er){
				alert(er);
			}
			return data;
		}
		
		this.setPageVar = function (pageV){
			try{
				var i = this.getIndexOfVar(pageV.name);
				if(i > -1){
					this.pageVars[i].value = pageV.value;
				}else{
					if(this.pageVars == null){
						this.pageVars = new Array();
					}
					this.pageVars.push(pageV);
				}
			}catch(er){
				alert(er);
			}
		}
		
		this.getPageVar = function (name){
			try{
				var i = this.getIndexOfVar(name);
				if(i > -1){
					return this.pageVars[i];
				}
				return null;
			}catch(er){
				alert(er);
			}
		}
		
		this.getIndexOfVar = function (name){
			try{
				if(this.pageVars && this.pageVars.length > 0){
					for(var i=0; i<this.pageVars.length; i++){
						if(this.pageVars[i].name == name){
							return i;
						}
					}
				}
				return -1;
			}catch(er){
				alert(er);
			}
		}
	}
	/*
	//storage format - 
	 * pipe separated name:value;name:value tokens.
	 * pageId maps directly to token position
	 * so pageId must be 0, 1, 2, 3, 4, 5 etc...
	 * this string is encoded and then stored,
	 * so for reading it must be decoded first
	 */
	function oltPageCookie(){
		//cookie will be a int with each bit representing 0 or 1 for corresponding flag 
		this.coookieName = "PAGE_COOKIE";
		this.cookieVal = "";
		this.pagesData = new Array(); //array of oltPageData
		this.initialized = false;
		
		this.initialize = function (){
			//read the stored cookie
			if(true == this.initialized){
				return;
			}	
			try{
				var cookieStr = g_getCookieValue(this.coookieName);
				if(cookieStr && cookieStr != '' && cookieStr.length  > 0){
					//this.cookieVal = Url.decode(cookieStr);
					this.cookieVal = cookieStr;
					//alert(this.cookieVal);
				}
			
				if(!g_isEmpty(this.cookieVal)){
					var tokens = trim(this.cookieVal).split("|");
					for(var i=0; i<tokens.length; i++){
						if(!g_isEmpty(tokens[i])){
							var pageData = new oltPageData();
							pageData.read(i, tokens[i]);
							this.pagesData[i]=pageData;//indexed pageId
						}
					}
				}
			}catch(er){
				alert(er);
			}	
			this.initialized = true;
		}
		
		this.getPageData = function (pageId){
			this.initialize();
			if(pageId){
				pageId = parseInt(pageId);
			}
			if(this.pagesData && this.pagesData.length > 0 && (pageId >= 0 && pageId <= this.pagesData.length)){
				//pageId is direct index into the pagesData
				return this.pagesData[pageId];
			}
			return null;
		}
		
		this.setPageData = function (pageData){
			this.initialize();
			try{
				if(pageData.pageId != null){
					this.pagesData[pageData.pageId] = pageData; //pageId is a direct index in this array
					this.cookieVal = ""; //reset
					this.persist();
				}
			}catch(er){
				alert(er);
			}
		}
		
		this.persist = function (){
			if("" == this.cookieVal){
				//alert(this.pagesData.length);
				for(var i = 0; i < this.pagesData.length; i++){
					if(this.pagesData[i] && this.pagesData[i].write && this.pagesData[i] != "undefined" && this.pagesData[i].pageId){
						this.cookieVal += this.pagesData[i].write()+"|";
					}else{
						this.cookieVal += "|";
					}
				}
			}
			//setCookie(this.coookieName, Url.encode(this.cookieVal+""), 60);//set for 60 days
			setCookie(this.coookieName, (this.cookieVal+""), 60);//set for 60 days
		}
		
	}

	var g_pageCookie = new oltPageCookie();
	g_pageCookie.initialize();
/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 * Script featured on Dynamic Drive (http://www.dynamicdrive.com) 12.08.2005
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {

	obj : null,

	init : function(o, oRoot, minX, maxX, minY, maxY, bSwapHorzRef, bSwapVertRef, fXMapper, fYMapper)
	{
		o.onmousedown	= Drag.start;

		o.hmode			= bSwapHorzRef ? false : true ;
		o.vmode			= bSwapVertRef ? false : true ;

		o.root = oRoot && oRoot != null ? oRoot : o ;

		if (o.hmode  && isNaN(parseInt(o.root.style.left  ))) o.root.style.left   = "0px";
		if (o.vmode  && isNaN(parseInt(o.root.style.top   ))) o.root.style.top    = "0px";
		if (!o.hmode && isNaN(parseInt(o.root.style.right ))) o.root.style.right  = "0px";
		if (!o.vmode && isNaN(parseInt(o.root.style.bottom))) o.root.style.bottom = "0px";

		o.minX	= typeof minX != 'undefined' ? minX : null;
		o.minY	= typeof minY != 'undefined' ? minY : null;
		o.maxX	= typeof maxX != 'undefined' ? maxX : null;
		o.maxY	= typeof maxY != 'undefined' ? maxY : null;

		o.xMapper = fXMapper ? fXMapper : null;
		o.yMapper = fYMapper ? fYMapper : null;

		o.root.onDragStart	= new Function();
		o.root.onDragEnd	= new Function();
		o.root.onDrag		= new Function();
	},

	start : function(e)
	{
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		o.root.onDragStart(x, y);

		o.lastMouseX	= e.clientX;
		o.lastMouseY	= e.clientY;

		if (o.hmode) {
			if (o.minX != null)	o.minMouseX	= e.clientX - x + o.minX;
			if (o.maxX != null)	o.maxMouseX	= o.minMouseX + o.maxX - o.minX;
		} else {
			if (o.minX != null) o.maxMouseX = -o.minX + e.clientX + x;
			if (o.maxX != null) o.minMouseX = -o.maxX + e.clientX + x;
		}

		if (o.vmode) {
			if (o.minY != null)	o.minMouseY	= e.clientY - y + o.minY;
			if (o.maxY != null)	o.maxMouseY	= o.minMouseY + o.maxY - o.minY;
		} else {
			if (o.minY != null) o.maxMouseY = -o.minY + e.clientY + y;
			if (o.maxY != null) o.minMouseY = -o.maxY + e.clientY + y;
		}

		document.onmousemove	= Drag.drag;
		document.onmouseup		= Drag.end;

		return false;
	},

	drag : function(e)
	{
		e = Drag.fixE(e);
		var o = Drag.obj;

		var ey	= e.clientY;
		var ex	= e.clientX;
		var y = parseInt(o.vmode ? o.root.style.top  : o.root.style.bottom);
		var x = parseInt(o.hmode ? o.root.style.left : o.root.style.right );
		var nx, ny;

		if (o.minX != null) ex = o.hmode ? Math.max(ex, o.minMouseX) : Math.min(ex, o.maxMouseX);
		if (o.maxX != null) ex = o.hmode ? Math.min(ex, o.maxMouseX) : Math.max(ex, o.minMouseX);
		if (o.minY != null) ey = o.vmode ? Math.max(ey, o.minMouseY) : Math.min(ey, o.maxMouseY);
		if (o.maxY != null) ey = o.vmode ? Math.min(ey, o.maxMouseY) : Math.max(ey, o.minMouseY);

		nx = x + ((ex - o.lastMouseX) * (o.hmode ? 1 : -1));
		ny = y + ((ey - o.lastMouseY) * (o.vmode ? 1 : -1));

		if (o.xMapper)		nx = o.xMapper(y)
		else if (o.yMapper)	ny = o.yMapper(x)

		Drag.obj.root.style[o.hmode ? "left" : "right"] = nx + "px";
		Drag.obj.root.style[o.vmode ? "top" : "bottom"] = ny + "px";
		Drag.obj.lastMouseX	= ex;
		Drag.obj.lastMouseY	= ey;

		Drag.obj.root.onDrag(nx, ny);
		return false;
	},

	end : function()
	{
		document.onmousemove = null;
		document.onmouseup   = null;
		Drag.obj.root.onDragEnd(	parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]), 
									parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));
		Drag.obj = null;
	},

	fixE : function(e)
	{
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
/***************************************************************************************
        Nested list collapsing script written by Mark Wilton-Jones - 21/11/2003
Version 2.3.0 - this script takes existing HTML nested UL or OL lists, and collapses them
            Updated 13/02/2004 to allow links in root of expanding branch
                  Updated 09/09/2004 to allow state to be saved
          Updated 07/10/2004 to allow page address links to be highlighted
Updated 28/11/2004 to allow you to force expand/collapse links to use just the extraHTML
Updated 23/09/2006 to add g_expandCollapseAll and to allow selfLink to locate custom links
****************************************************************************************

Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script
Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use
_________________________________________________________________________

You can put as many lists on the page as you like, each list may have a different format.

To use:
_________________________________________________________________________

Inbetween the <head> tags, put:

	<script src="PATH TO SCRIPT/listCollapse.js" type="text/javascript" language="javascript1.2"></script>
_________________________________________________________________________

Define the HTML. Note that to correctly nest lists, child OLs or ULs should be children of an LI element,
not direct descendents of their parent OL/UL. The text used to expand the branch should be written
between the <li> tag and the <UL/OL/A> tag, and should only contain HTML that is permitted inside an 'A'
element. Note; Opera 7 will lose any style attributes you define in this text - use classes instead.

<ul id="someID">
	<li>Book 1
		<ul>
			<li><a href="someHref">Chapter 1</a></li>
			<li><a href="someHref">Chapter 2</a></li>
		</ul>
	</li>
	<li><a href="elsewhere.html">Book 2</a>
		<ul>
			<li><a href="someHref">Chapter 1</a></li>
			<li><a href="someHref">Chapter 2</a></li>
		</ul>
	</li>
	<li>Book 3
		<ul>
			<li><a href="someHref">Chapter 1</a></li>
			<li>Cha<span class="doMore">pt</span>er 2
				<ul>
					<li><a href="someHref">Sub 1</a></li>
					<li><a href="someHref">Sub 2</a></li>
				</ul>
			</li>
		</ul>
	</li>
</ul>
________________________________________________________________________
Now you need to trigger the collapsing, using <body onload, window.onload or by putting the collapse
commands in a script just before the </body> tag. If using either onload technique, you must not use
any other scripts that rely on the onload event.

g_compactMenu(theRootID,shouldAutoCollapse,extraHTML[,useMinimalLink]);
  oID = string: ID of root nest element, must be a UL or OL; this will not be collapsed, but any child
  UL/OLs will be (note, if the root nest element is a UL, all child lists should be ULs - the same is
  true for OLs; if the root nest element is OL, all child lists should be OLs)
  shouldAutoCollapse = bool: auto-collapse unused branches
  extraHTML = string: HTML to insert to collapsible branches - usually '&plusmn; '
  useMinimalLink = bool: normally the expand/collapse link will use both extraHTML and the original list
  item text - if the list item text is already a link, this will not be included - set this option to
  true to force the script to use only the extraHTML as the link, even if the rest of the list item is
  not a link - this option will only be respected if you also provide some extraHTML

eg 1.
<body onload="g_compactMenu('someID',true,'&plusmn; ');">

eg 2.
<script type="text/javascript" language="javascript1.2"><!--
window.onload = function () { g_compactMenu('someID',false,'&plusmn; '); }
//--></script>

eg 3.
<script type="text/javascript" language="javascript1.2"><!--
g_compactMenu('someID',true,'&plusmn; ');
//--></script>
</body>

g_stateToFromStr(theRootID);
  oID = string: ID of root nest element, must be a UL or OL; returns a string representing all expanding
  branches - can be used with my cookie script to save state when unloading the page
g_stateToFromStr(theRootID,stringRepresentation);
  oID = string: ID of root nest element, must be a UL or OL;
  stringRepresentation = string: string representation of expanded branches, as created above
  must be called _after_ collapsing the list - values can be recovered from cookies using my cookie script
note: this facility will not be able to take changes in the list structure into account - use session cookies
or short-term cookies to avoid longer term structure change problems

selfLink(theRootID,newClass,shouldExpandBranch[,linkHref]);
  theRootID = string: ID of root nest element, must be a UL or OL;
  newClass = string: new class name to add to any existing class names
  shouldExpandBranch = bool: expand branches to show the first matching link
  linkHref = string: by default, it will try to locate links to the current page address - you can
  override that here by giving a specific address that it should look for.
  Allows you to highlight links to the current page that appear in the list
  must be called _after_ collapsing the list
  address hash and port are not included in the comparison - links containing href="#" are always ignored

g_expandCollapseAll(theRootID,shouldExpand);
  theRootID = string: ID of root nest element, must be a UL or OL that has been collapsed using g_compactMenu
  shouldExpand = bool: says if it should expand all branches (true) or collapse all branches (false)
  Expands/collapses all branches in a collapsed list. Must not be used with auto-collapsing lists.

My cookie script is available on http://www.howtocreate.co.uk/jslibs/
	<body onload="g_compactMenu('someID',true,'&plusmn; ');g_stateToFromStr(theRootID,retrieveCookie('menuState'));"
	onunload="setCookie('menuState',g_stateToFromStr(theRootID),31536000);">
____________________________________________________________________________________________________*/
var __listCollapseOpenLists = [], oIcount = 0;
function g_compactMenu(oID,oAutoCol,oPlMn,oMinimalLink) {
	if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return; }
	var baseElement = document.getElementById( oID ); if( !baseElement ) { return; }
	compactChildren( baseElement, 0, oID, oAutoCol, oPlMn, baseElement.tagName.toUpperCase(), oMinimalLink && oPlMn );
}
function compactChildren( oOb, oLev, oBsID, oCol, oPM, oT, oML ) {
	if( !oLev ) { oBsID = escape(oBsID); if( oCol ) { __listCollapseOpenLists[oBsID] = []; } }
	for( var x = 0, y = oOb.childNodes; x < y.length; x++ ) { if( y[x].tagName ) {
		//for each immediate LI child
		var theNextUL = y[x].getElementsByTagName( oT )[0];
		if( theNextUL ) {
			//collapse the first UL/OL child
			theNextUL.style.display = 'none';
			//create a link for expanding/collapsing
			var newLink = document.createElement('A');
			newLink.setAttribute( 'href', '#' );
			newLink.onclick = new Function( 'clickSmack(this,' + oLev + ',\'' + oBsID + '\',' + oCol + ',\'' + escape(oT) + '\');return false;' );
			//wrap everything upto the child U/OL in the link
			if( oML ) { var theHTML = ''; } else {
				var theT = y[x].innerHTML.toUpperCase().indexOf('<'+oT);
				var theA = y[x].innerHTML.toUpperCase().indexOf('<A');
				var theHTML = y[x].innerHTML.substr(0, ( theA + 1 && theA < theT ) ? theA : theT );
				while( !y[x].childNodes[0].tagName || ( y[x].childNodes[0].tagName.toUpperCase() != oT && y[x].childNodes[0].tagName.toUpperCase() != 'A' ) ) {
					y[x].removeChild( y[x].childNodes[0] ); }
			}
			y[x].insertBefore(newLink,y[x].childNodes[0]);
			//y[x].childNodes[0].innerHTML = oPM + theHTML.replace(/^\s*|\s*$/g,'');
			y[x].childNodes[0].innerHTML = "<img src=../"+g_version+"images/expand_node.gif />" + theHTML.replace(/^\s*|\s*$/g,'');
			theNextUL.MWJuniqueID = theNextUL.getAttribute("id");//oIcount++;
			compactChildren( theNextUL, oLev + 1, oBsID, oCol, oPM, oT, oML );
} } } }
function clickSmack( oThisOb, oLevel, oBsID, oCol, oT ) {
	if( oThisOb.blur ) { oThisOb.blur(); }
	oThisOb = oThisOb.parentNode.getElementsByTagName( unescape(oT) )[0];
	if( oCol ) {
		for( var x = __listCollapseOpenLists[oBsID].length - 1; x >= oLevel; x-=1 ) { 
			if( __listCollapseOpenLists[oBsID][x] ) {
				__listCollapseOpenLists[oBsID][x].style.display = 'none'; 
				toggleChildImage(__listCollapseOpenLists[oBsID][x]);
				if( oLevel != x ) { 
					__listCollapseOpenLists[oBsID][x] = null; 
				}
			} 
		}
		if( oThisOb == __listCollapseOpenLists[oBsID][oLevel] ) { __listCollapseOpenLists[oBsID][oLevel] = null; }
		else { oThisOb.style.display = 'block'; toggleChildImage(oThisOb); __listCollapseOpenLists[oBsID][oLevel] = oThisOb; }
	} else { oThisOb.style.display = ( oThisOb.style.display == 'block' ) ? 'none' : 'block'; toggleChildImage(oThisOb);}
}

function toggleChildImage(ulElement){
	if(ulElement && ulElement.nodeName.toUpperCase() == 'UL'){
		var liElement = ulElement.parentNode;
		var ch = liElement.getElementsByTagName("A");
		if(ch && ch.length > 0){
			if(ch[0].href.indexOf("#") > -1){
				ch = ch[0];
			}else if(ch[1].href.indexOf("#") > -1){
				ch = ch[1];
			}else{
				return;
			}
			
		}
		if(ch){
			var img = g_getChildImage(ch);
			if(img){
				if(img.src.indexOf("expand") > 0)
					img.src = img.src.replace(/expand/g,'collapse');
				else
					img.src = img.src.replace(/collapse/g,'expand');
			}
		}
	}
}


function g_stateToFromStr(oID,oFStr) {
	if( !document.getElementsByTagName || !document.childNodes || !document.createElement ) { return ''; }
	var baseElement = document.getElementById( oID ); if( !baseElement ) { return ''; }
	if( !oFStr && typeof(oFStr) != 'undefined' ) { return ''; } if( oFStr ) { oFStr = oFStr.split(':'); }
	for( var oStr = '', l = baseElement.getElementsByTagName(baseElement.tagName), x = 0; l[x]; x++ ) {
		if( oFStr && MWJisInTheArray( l[x].MWJuniqueID, oFStr ) && l[x].style.display == 'none' ) { l[x].parentNode.getElementsByTagName('a')[0].onclick(); }
		else if( l[x].style.display != 'none' ) { oStr += (oStr?':':'') + l[x].MWJuniqueID; }
	}
	return oStr;
}
function MWJisInTheArray(oNeed,oHay) { for( var i = 0; i < oHay.length; i++ ) { if( oNeed == oHay[i] ) { return true; } } return false; }
function selfLink(oRootElement,oClass,oExpand,oLink) {
	var tmpLink;
	if(!document.getElementsByTagName||!document.childNodes) { return; }
	oRootElement = document.getElementById(oRootElement);
	if( oLink ) {
		tmpLink = document.createElement('a');
		tmpLink.setAttribute('href',oLink);
	}
	for( var x = 0, y = oRootElement.getElementsByTagName('a'); y[x]; x++ ) {
		if( y[x].getAttribute('href') && !y[x].href.match(/#$/) && g_getRealAddress(y[x]) == g_getRealAddress(oLink?tmpLink:location) ) {
			y[x].className = (y[x].className?(y[x].className+' '):'') + oClass;
			if( oExpand ) {
				oExpand = false;
				for( var oEl = y[x].parentNode, ulStr = ''; oEl != oRootElement && oEl != document.body; oEl = oEl.parentNode ) {
					if( oEl.tagName && oEl.tagName == oRootElement.tagName ) { ulStr = oEl.MWJuniqueID + (ulStr?(':'+ulStr):''); } }
				g_stateToFromStr(oRootElement.id,ulStr);
} } } }
function g_getRealAddress(oOb) { return oOb.protocol + ( ( oOb.protocol.indexOf( ':' ) + 1 ) ? '' : ':' ) + oOb.hostname + ( ( typeof(oOb.pathname) == typeof(' ') && oOb.pathname.indexOf('/') != 0 ) ? '/' : '' ) + oOb.pathname + oOb.search; }
function g_expandCollapseAll(oElID,oState) {
	if(!document.getElementsByTagName||!document.childNodes) { return; }
	var oEl = document.getElementById(oElID);
	var oT = oEl.tagName;
	var oULs = oEl.getElementsByTagName(oT);
	for( var i = 0, oLnk; i < oULs.length; i++ ) {
		if( typeof(oULs[i].MWJuniqueID) != 'undefined' ) {
			oLnk = oULs[i].parentNode.getElementsByTagName( 'a' )[0];
			if( oLnk && ( ( oState && oULs[i].style.display == 'none' ) || ( !oState && oULs[i].style.display != 'none' ) ) ) {
				oLnk.onclick();
} } } }

/*
* Question summary will add a div tag, with id="<<question_id>>_stats"
* another JS object which is array of question objects, question object is id, choices array, choice is id, usageCount--
  [{"id":question_id, "choices": [{"id":choice1_id, "num":0}, {"id":choice2_id, "num":0}...]},
   {"id":question_id, "choices": [{"id":choice1_id, "num":0}, {"id":choice2_id, "num":0}...]},
   ...
   ]
  usageCount is initially 0, and is returned by the ajax call...
  
  if we populate this js array on server side, then the the page size will go up by atleast 36*10*5
  , another option - populate only the question array, which is better... just 36*10=360 bytes
  
  The ajax cal can return complete array for the question, and then it will be cached in the js.. so
  this is better :-)
  
  
  ===========================================
  possible common stats fields 
  - isFavorite, numComments
  Test - total attempts, last attempt, last attempted by
  Question - choice level stats, total correct answers, total incorrect
  Group - total topics, posts, last post on, last topic on
  User - num comments... which will be linked to all comments by user page 
*/
var g_qIdsOnPg = new Array();
var g_alreadyFetchedQuestionsStats = false;
var g_questionStats = null;
var g_choiceIdentifiers = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];

function g_resetQuestionStats(){
	g_qIdsOnPg = new Array();
	g_alreadyFetchedQuestionsStats = false;
	g_questionStats = null;
}

function getQuestionStats(){
	try{
		if(!g_alreadyFetchedQuestionsStats && g_qIdsOnPg.length > 0){
			var qIdsStr = g_qIdsOnPg.join(",");
			var oAjax = new OLTAjax();
			oAjax.setRequestURL("../jsp/question.do");
			oAjax.setPost();
			oAjax.addField("dispatch", "getChoiceUsageData");
			oAjax.addField("ids", qIdsStr);
			oAjax.setCallback(onGetQuestionStats);
			oAjax.send();
		}
	}catch(er){
		
	}
}

function onGetQuestionStats(respXml, errText, respText){
	try{
		if(!g_alreadyFetchedQuestionsStats){
			g_alreadyFetchedQuestionsStats = true;
			try{
				if(errText == null && respText != null){
					g_questionStats = eval(respText);
					prepareQuestionStats();
				}else{
					alert(errText);
				}
			}catch(er){alert(er);}
		}
	}catch(er){
		
	}
}

function prepareQuestionStats(){
	if(g_alreadyFetchedQuestionsStats){
		for(var q=0; q<g_questionStats.length; q++){
			var question = g_questionStats[q];
			var questionId = question["id"];
			var questionType = question["type"];
			var totalUse = question["totalUse"];
			var stat = new Array();
			stat.push("<div style=\"line-height:6px;overflow:hidden\" >");
			if(totalUse > 0){
				stat.push("<table class=\"lighter stats\" cellspacing=\"0\" cellpadding=\"0\" style=\"border:none; margin:0px; padding:0px\" width=\"200px\">");
				var questionChoices = question["choices"];
				for(var i=0; i<questionChoices.length; i++){
					var choice = questionChoices[i];
					var newChoice = choice["new"];
					if (newChoice == "yes") {
						stat.push("<tr>&nbsp;</tr>");
					}
					stat.push("<tr>");
					stat.push("<td width=\"5%\" style=\"border:0px solid #fff;\">");
					if (questionType == "MT" || questionType == "ST") {
					   stat.push(choice["id"]);
					} else {
						stat.push(g_choiceIdentifiers[i]);
					}
					stat.push("</td>");
					stat.push("<td width=\"95%\">");
					stat.push("<table class=\"lighter stats\" cellspacing=\"0\" cellpadding=\"0\" style=\"border:none; margin:0px; padding:0px\" width=\"100%\"><tr>");
					stat.push("<td style=\"font-size:12px;border:0px solid #fff;background-color:#96DAFF;border:1px solid lightgrey; margin:0px;\" align=\"right\" width=\"");
					var percentUse = choice["use"]*100/totalUse;
					stat.push(percentUse+"%");
					stat.push("\" title=\"");
					stat.push(parseInt(percentUse));
					stat.push("%\">");
					stat.push(choice["use"]);
					stat.push("</td>");
					//padding td
					stat.push("<td style=\"border:none\" width=\"");
					stat.push((100-percentUse)+"%");
					stat.push("\">&nbsp;");
					stat.push("</td>");
					stat.push("</tr></table>");
					stat.push("</td>");
					stat.push("</tr>");
				}
				stat.push("</table>");
				stat.push("<p class=\"lighter\" style=\"font-size:11px;line-height:14px; padding-left:5px\">"+totalUse+" attempts</p>");
			}else{
				stat.push("<p class=\"lighter\" style=\"font-size:11px;line-height:14px; padding-left:5px\">Not yet attempted</p>");
			}
			stat.push("</div>");
			var statDiv = document.getElementById("q_stat_"+questionId);
			if(!statDiv){
				statDiv = document.getElementById("q_stat");
			}
			statDiv.innerHTML = stat.join("");
			showQuestionStats();
		}
	}
}

function showQuestionStats(){
	if(g_alreadyFetchedQuestionsStats){
		for(var q=0; q<g_questionStats.length; q++){
			var question = g_questionStats[q];
			var questionId = question["id"];
			var statDiv = document.getElementById("q_stat_"+questionId);
			if(statDiv && statDiv.length){
				for(var i=0; i<statDiv.length; i++){
					statDiv[i].style.display="";
				}
			}else if (statDiv){
				statDiv.style.display="";
			}else if(!statDiv){
				statDiv = document.getElementById("q_stat");
				if(statDiv){
					statDiv.style.display="";
				}
			}
		}
	}else{
		getQuestionStats();
	}
}

function hideQuestionStats(){
	if(g_alreadyFetchedQuestionsStats){
		for(var q=0; q<g_questionStats.length; q++){
			var question = g_questionStats[q];
			var questionId = question["id"];
			var statDiv = document.getElementById("q_stat_"+questionId);
			if(statDiv && statDiv.length){
				for(var i=0; i<statDiv.length; i++){
					statDiv[i].style.display="none";
				}
			}else if (statDiv){
				statDiv.style.display="none";
			}
		}
	}
}

function toggleQuestionStats(elem){
	if(elem.value == "Show Statistics"){
		showQuestionStats();
		elem.value = "Hide Statistics";
	}
	else{
		hideQuestionStats();
		elem.value = "Show Statistics";
	}
}
	function subscribeOltEvent(e, obj, eventId, pollId, pollTaken, needsAuthCode, itemId){
		if(pollId != null && pollId != '' && !pollTaken){
			alert("Event organizer requires you to take a brief survey \n which will be shown when you click OK");
			var url = "../site/poll.do?collapseOnSave=true&dispatch=show&id="+pollId+"&inner=true&popup=true&scroll=true&w=580&h=510&evId="+eventId;
			if(needsAuthCode != null){
				url += "&evAuth="+needsAuthCode;
			}
			if(itemId != null && itemId != ''){
				url += "&evItId="+itemId;
			}
			parent.showpopdiv(url, null, null, 600, 550, true);
			return;
		}
		if(needsAuthCode){
			var codeDlgUrl = "../site/event.do?dispatch=showSubscribeAuthCodeForm&eventId="+eventId;
			if(itemId){
				codeDlgUrl += "&eventItemId="+itemId;
			}
			if(obj && obj.getAttribute("target") == "_parent"){
				parent.showpopdiv(codeDlgUrl, e, obj, "550", "500", true);
			}else{
				showpopdiv(codeDlgUrl, e, obj, "550", "500", true);	
			}
		}else{
			sendSubscribeOltEvent(eventId, null, itemId);
		}
	}
	
	function sendSubscribeOltEvent(eventId, authCode, itemId){
		var oAjax = new OLTAjax();
		oAjax.setRequestURL("../site/event.do");
		oAjax.setPost();
		oAjax.addField("dispatch", "subscribe");
		oAjax.addField("eventId", eventId);
		if(itemId){
			oAjax.addField("eventItemId", itemId);
		}
		if(authCode){
			oAjax.addField("code", authCode);
		}
		oAjax.setCallback(subscribeOltEventCB);
		oAjax.send();
	}
	
	function subscribeOltEventCB(respXml, errText, respText){
		//alert(respXml);alert(errText);alert(respText);
		if(errText == null){
			alert(respText);
		}else{
			alert(errText);
		}
		parent.g_reloadPage();
	}
	
	function unsubscribeOltEvent(eventId, itemId){
		var oAjax = new OLTAjax();
		oAjax.setRequestURL("../site/event.do");
		oAjax.setPost();
		oAjax.addField("dispatch", "unsubscribe");
		oAjax.addField("eventId", eventId);
		if(itemId){
			oAjax.addField("eventItemId", itemId);
		}
		oAjax.setCallback(unsubscribeOltEventCB);
		oAjax.send();
	}
	
	function unsubscribeOltEventCB(respXml, errText, respText){
		//alert(respXml);alert(errText);alert(respText);
		if(errText == null){
			alert(respText);
		}else{
			alert(errText);
		}
		parent.g_reloadPage();
	}
	
	function viewOltEventInvite(e, elem, eventId, itemId){
		var url = "../site/event.do?dispatch=showInvite&eventId="+eventId;
		if(itemId){
			url += "&eventItemId="+itemId;
		}
		if(elem && elem.getAttribute("target") == "_parent"){
			parent.g_navigateTo(url);
		}else{
			g_navigateTo(url);
		}
	}
	
var gCSMap = new Array();
    gCSMap["India"]=
	["Andaman and Nicobar Islands","Andhra Pradesh","Arunachal Pradesh","Assam","Bihar","Chandigarh","Chhattisgarh","Dadra and Nagar Haveli","Daman and Diu","Delhi","Goa","Gujarat","Haryana","Himachal Pradesh","Jammu and Kashmir","Jharkhand","Karnataka","Kerala","Lakshadweep","Madhya Pradesh","Maharashtra","Manipur","Meghalaya","Mizoram","Nagaland","Orissa","Pondicherry","Punjab","Rajasthan","Sikkim","Tamil Nadu","Tripura","Uttar Pradesh","Uttaranchal","West Bengal"];
	
	gCSMap["United States"]=
	["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","District of Columbia","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"];

function g_fillStates(countryDD, stateCtrlName){
	var c = countryDD.value;
	g_FillStates(stateCtrlName, c, true);
}

function g_FillStates(stateCtrlName, initialCountry, clr){
	var txt = document.getElementById(stateCtrlName+"_txt");
	var cbo = document.getElementById(stateCtrlName+"_cbo");
	initialState = txt.value;
	if(gCSMap[initialCountry] && gCSMap[initialCountry].length > 0){
		txt.disabled = true;
		txt.style.display = "none";
		cbo.disabled = false;
		cbo.style.display = "";
		for(var i=0; i<gCSMap[initialCountry].length; i++){
			var sel = false;
			if(!clr && initialState != null && initialState == gCSMap[initialCountry][i]){
				sel = true;
			}
			cbo.options[i] = new Option(gCSMap[initialCountry][i], gCSMap[initialCountry][i], false, sel);
		}
	}else{
		txt.disabled = false;
		txt.style.display = "";
		cbo.disabled = true;
		cbo.style.display = "none";
		txt.value = initialState;
	}
}
	
function g_FillStatesDD(stateCtrlName, country, initialState, optional){
	var cbo = document.getElementById(stateCtrlName);
	if(gCSMap[country] && gCSMap[country].length > 0){
		if(optional){
			cbo.options[cbo.options.length] = new Option("", "", true, false);
		}
		for(var i=0; i<gCSMap[country].length; i++){
			var sel = false;
			if(initialState != null && initialState == gCSMap[country][i]){
				sel = true;
			}
			cbo.options[cbo.options.length] = new Option(gCSMap[country][i], gCSMap[country][i], false, sel);
		}
	}
}
	function lnSubClk(sub){
		g_oltBrowser.addToCriteria(null, g_oltBrowser.SUBJECTS, sub);
	}
	function lnSkillClk(sub){
		g_oltBrowser.addToCriteria(null, g_oltBrowser.SKILLS, sub);
	}
	function lnExamClk(exam, year){
		var ey = exam;
		if(year && year != ""){
			ey = ey +"-"+year;
		}
		g_oltBrowser.addToCriteria(null, g_oltBrowser.EXAMS, ey);
	}
	function lnRegionClk(reg){
		g_oltBrowser.addToCriteria(null, g_oltBrowser.REGIONS, reg);
	}
	function lnGrpTypeClk(gt){
		g_oltBrowser.removeCriteria(g_oltBrowser.GRP_TYPE, 'all');
		if(gt){
			g_oltBrowser.addToCriteria(null, g_oltBrowser.GRP_TYPE, gt);
		}
	}
	function lnGroupIdsClk(gid){
		g_oltBrowser.removeCriteria(g_oltBrowser.GRP_ID, 'all');
		if(gid){
			g_oltBrowser.addToCriteria(null, g_oltBrowser.GRP_ID, gid);
		}
	}
	function lnRemoveAllFilters(){
		g_oltBrowser.removeAllCriteria();
	}
	
	//browsing criterias
	function oltBrowser(){
		this.browseUrl = "../site/browselist2.do?dispatch=list";
		this.TEST = "TEST";
		this.QUESTION = "QUESTION";
		this.GROUP = "GROUP";
		this.USER = "USER";
		this.EVENT = "EVENT";
		this.COURSE = "COURSE";
		
		this.BO = 1;
		this.SUBJECTS = 2;
		this.EXAMS = 3;
		this.REGIONS = 4;
		this.SEARCH = 5;
		this.TAGS = 6;
		this.GRP_TYPE = 7;
		this.GRP_ID = 8;
		this.SKILLS = 9;
		this.browseCookie = "BROWSE"; //cookie, format is comma separated name:value
		
		this.bo = null;
		this.subjects = new Array();
		this.exams = new Array();
		this.regions = new Array();
		this.skills = new Array();
		this.tags = new Array();
		this.grpType = new Array();
		this.groupIds = new Array();
		this.searchText = null;
		this.cookieVal = null;
		
		//read the cookie, split on pipe, then read name value pairs and push in arrays/variables
		this.init = function(){
			this.cookieVal = "";
			try{
				var cookieStr = g_getCookieValue(this.browseCookie);
				if(cookieStr && cookieStr != '' && cookieStr.length  > 0){
					var arr = cookieStr.split("|");//pipe separated name value pairs
					if(arr){
						for(var i=0; i<arr.length; i++){
							var pair = arr[i].split(":");
							if(pair && pair.length == 2){
								if(pair[0] == this.SUBJECTS+""){
									this.subjects.push(pair[1]);
								}else if(pair[0] == this.EXAMS+""){
									this.exams.push(pair[1]);
								}else if(pair[0] == this.REGIONS+""){
									this.regions.push(pair[1]);
								}else if(pair[0] == this.TAGS+""){
									this.tags.push(pair[1]);
								}else if(pair[0] == this.SEARCH+""){
									this.searchText = pair[1];
								}else if(pair[0] == this.BO+""){
									this.bo = pair[1];
								}else if(pair[0] == this.GRP_TYPE+""){
									this.grpType.push(pair[1]);
								}else if(pair[0] == this.GRP_ID+""){
									this.groupIds.push(pair[1]);
								}else if(pair[0] == this.SKILLS+""){
									this.skills.push(pair[1]);
								}
							}
						}
					}
				}
			}catch(er){}
		}
		
		//persist the browse cookie
		this.persist = function(){
			var str = "";
			if(this.bo && this.bo != '' && this.bo.length  > 0){
				str += this.BO+":"+this.bo+"|";
			}
			if(this.searchText && this.searchText != '' && this.searchText.length  > 0){
				str += this.SEARCH+":"+this.searchText+"|";
			}
			if(this.subjects && this.subjects.length  > 0){
				for(var s=0; s<this.subjects.length; s++){
					if(this.subjects[s] && this.subjects[s].length > 0){
						str += this.SUBJECTS+":"+this.subjects[s]+"|";
					}
				}
			}
			if(this.exams && this.exams.length  > 0){
				for(var e=0; e<this.exams.length; e++){
					if(this.exams[e] && this.exams[e].length > 0){
						str += this.EXAMS+":"+this.exams[e]+"|";
					}
				}
			}
			if(this.regions && this.regions.length  > 0){
				for(var r=0; r<this.regions.length; r++){
					if(this.regions[r] && this.regions[r].length > 0){
						str += this.REGIONS+":"+this.regions[r]+"|";
					}
				}
			}
			if(this.skills && this.skills.length  > 0){
				for(var s=0; s<this.skills.length; s++){
					if(this.skills[s] && this.skills[s].length > 0){
						str += this.SKILLS+":"+this.skills[s]+"|";
					}
				}
			}
			if(this.tags && this.tags.length  > 0){
				for(var t=0; t<this.tags.length; t++){
					if(this.tags[t] && this.tags[t].length > 0){
						str += this.TAGS+":"+this.tags[t]+"|";
					}
				}
			}
			if(this.grpType && this.grpType.length  > 0){
				for(var s=0; s<this.grpType.length; s++){
					if(this.grpType[s] && this.grpType[s].length > 0){
						str += this.GRP_TYPE+":"+this.grpType[s]+"|";
					}
				}
			}
			if(this.groupIds && this.groupIds.length  > 0){
				for(var s=0; s<this.groupIds.length; s++){
					if(this.groupIds[s] && this.groupIds[s].length > 0){
						str += this.GRP_ID+":"+this.groupIds[s]+"|";
					}
				}
			}
			setCookie(this.browseCookie, str+"", 60);//set for 60 days
		}
		
		//add name-value pair to the browse criteria
		this.addToCriteria = function(boType, field, value){
			var arr;
			var changed = false;
			if(boType != null && boType != this.bo){
				this.bo = boType;
				changed = true;
			}
			if(field && value){
				if(field == this.SUBJECTS){
					arr = this.subjects;
				}else if(field == this.EXAMS){
					arr = this.exams;
				}else if(field == this.REGIONS){
					arr = this.regions;
				}else if(field == this.TAGS){
					arr = this.tags;
				}else if(field == this.SEARCH){
					this.searchText = value;
				}else if(field == this.GRP_TYPE){
					arr = this.grpType;
				}else if(field == this.GRP_ID){
					arr = this.groupIds;
				}else if(field == this.SKILLS){
					arr = this.skills;
				}
				if(arr){
					var found = false;
					for(var i=0; i<arr.length; i++){
						if(arr[i] == value){
							found = true;
							break;
						}
					}
					if(!found){
						arr.push(value);
						changed = true;
					}else{
						this.removeCriteria(field, value);
						return;
					}
				}
			}
			if(changed){
				this.persist();
				window.location.href=this.browseUrl;
			}
			return changed;
		}
		this.removeAllCriteria = function(){
			this.subjects = new Array();
			this.exams = new Array();
			this.regions = new Array();
			this.skills = new Array();
			this.tags = new Array();
			this.searchText = null;
			this.grpType = new Array();
			this.groupIds = new Array();
			this.persist();
			window.location.href=this.browseUrl;
		}
		this.reloadPage = function(paramsStr) {
			if(typeof paramsStr != 'undefined' && paramsStr != null && !g_isEmpty(paramsStr)){
				window.location.href=this.browseUrl+"&"+paramsStr;
			}else{
				window.location.href=this.browseUrl;
			}
		}
		
		//remove a specific name-value pair
		this.removeCriteria = function(field, value){
			var arr;
			var changed = false;
			if(field && value || field && value == 'all'){
				if(field == this.SUBJECTS){
					arr = this.subjects;
				}else if(field == this.EXAMS){
					arr = this.exams;
				}else if(field == this.REGIONS){
					arr = this.regions;
				}else if(field == this.TAGS){
					arr = this.tags;
				}else if(field == this.SEARCH){
					this.searchText = value;
				}else if(field == this.GRP_TYPE){
					arr = this.grpType;
				}else if(field == this.GRP_ID){
					arr = this.groupIds;
				}else if(field == this.SKILLS){
					arr = this.skills;
				}
				if(arr){
					for(var i=0; i<arr.length; i++){
						if(arr[i] == value || value == 'all'){
							arr[i] = null;
							changed = true;
							break;
						}
					}
				}
			}
			if(changed){
				this.persist();
				window.location.href=this.browseUrl;
			}
			return changed;
		}
		
		this.resetBo = function(){
			this.bo = null;
			this.persist();
		}
		
		this.syncUpBoCtx = function(serverBoCtx){
			if(serverBoCtx == null || serverBoCtx == ''){
				this.resetBo();
			}else{	
				if(serverBoCtx == this.TEST || 
						serverBoCtx == this.QUESTION ||
						serverBoCtx == this.GROUP ||
						serverBoCtx == this.USER){
					this.bo = serverBoCtx;
					this.persist();
				}
			}
		}
	}

	function lnav_mover(elem){
		elem.className = "tr_highlight";
	}

	function lnav_mout(elem){
		//alert(elem.parentNode.nodeName);
		elem.className = "";
	}
	
	var g_oltBrowser = new oltBrowser();
	g_oltBrowser.init();
	
	function toggleLnavPanel(n, c, e){
		if(window.event)
			e = window.event;
		var src = e.srcElement || e.target;
		if(src.nodeType == 1 && src.nodeName.toUpperCase() == "A"){
			if(!src.getAttribute("isExpander") || src.getAttribute("isExpander") != "true")
				return;
		}
		var div = document.getElementById(n);
		if(div){
			//check the bit for this flag
			if(g_uiCookie.get(c) == true){
				div.className = 'min';
				g_uiCookie.set(c, 0);
			}else{
				div.className = 'max';
				g_uiCookie.set(c, 1);
			}
		}
	}
	
	function initLnavPanels(){
		var bits = new Array();
		var divs = new Array();
		bits.push(g_uiCookie.SUBJECT);
		divs.push("_lnav_subjects_panel");
		bits.push(g_uiCookie.EXAM);
		divs.push("_lnav_exams_panel");
		bits.push(g_uiCookie.REGION);
		divs.push("_lnav_regions_panel");
		bits.push(g_uiCookie.TEACHER);
		divs.push("_lnav_teacher_panel");
		bits.push(g_uiCookie.ADMIN);
		divs.push("_lnav_admin_panel");
		bits.push(g_uiCookie.SKILLS);
		divs.push("_lnav_skills_panel");
		//bits.push(g_uiCookie.MY);
		//bits.push(g_uiCookie.PTAG);
		//bits.push(g_uiCookie.MTAG);
		for(var i=0; i<bits.length; i++){
			var div = document.getElementById(divs[i]);
			if(div){
				var c = false;
				try{
					c = g_uiCookie.get(bits[i]);
				}catch(er){}
				if(c == true){
					div.className = 'max';
				}else{
					div.className = 'min';
				}
			}
		}
	}
	
	
	function g_selectGroup(callbackFunc){
		var url = "../site/search.do?dispatch=list&selector=true&searchIn=GROUP&searchBy=USERS_GROUP&single=true&callback="+callbackFunc;
		showpopdiv(url, null, null, 500, 450, true);
	}
	
	function g_addGroupsToFilter_cb(gid){
		if(gid && gid != '' && gid.length > 0){
			lnGroupIdsClk(gid);
		}
	}

Calendar.prototype.showAtElement = function (el, opts) {
	var self = this;
	var p = Calendar.getAbsolutePos(el);
	if (!opts || typeof opts != "string") {
		this.showAt(p.x, p.y + el.offsetHeight);
		return true;
	}
	function fixPosition(box) {
		if (box.x < 0)
			box.x = 0;
		if (box.y < 0)
			box.y = 0;
		var cp = document.createElement("div");
		var s = cp.style;
		s.position = "absolute";
		s.right = s.bottom = s.width = s.height = "0px";
		document.body.appendChild(cp);
		var br = Calendar.getAbsolutePos(cp);
		document.body.removeChild(cp);
		if (Calendar.is_ie) {
			if (document.documentElement && !document.documentElement.scrollTop){
				// IE6 +4.01 but no scrolling going on
			}
			else if (document.documentElement && document.documentElement.scrollTop){
				// IE6 +4.01 and user has scrolled
				br.y += document.documentElement.scrollTop;
			}
			else if (document.body && document.body.scrollTop){
				// IE5 or DTD 3.2
				br.y += document.body.scrollTop;
			}
			br.x += document.body.scrollLeft;
		} else {
			br.y += window.scrollY;
			br.x += window.scrollX;
		}
		var tmp = box.x + box.width - br.x;
		if (tmp > 0) box.x -= tmp;
		tmp = box.y + box.height - br.y;
		if (tmp > 0) box.y -= tmp;
	};
	this.element.style.display = "block";
	Calendar.continuation_for_the_fucking_khtml_browser = function() {
		var w = self.element.offsetWidth;
		var h = self.element.offsetHeight;
		self.element.style.display = "none";
		var valign = opts.substr(0, 1);
		var halign = "l";
		if (opts.length > 1) {
			halign = opts.substr(1, 1);
		}
		// vertical alignment
		switch (valign) {
		    case "T": p.y -= h; break;
		    case "B": p.y += el.offsetHeight; break;
		    case "C": p.y += (el.offsetHeight - h) / 2; break;
		    case "t": p.y += el.offsetHeight - h; break;
		    case "b": break; // already there
		}
		// horizontal alignment
		switch (halign) {
		    case "L": p.x -= w; break;
		    case "R": p.x += el.offsetWidth; break;
		    case "C": p.x += (el.offsetWidth - w) / 2; break;
		    case "l": p.x += el.offsetWidth - w; break;
		    case "r": break; // already there
		}
		p.width = w;
		p.height = h + 40;
		self.monthsCombo.style.display = "none";
		fixPosition(p);
		self.showAt(p.x, p.y);
	};
	if (Calendar.is_khtml)
		setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
	else
		Calendar.continuation_for_the_fucking_khtml_browser();
};
/*

 FullCalendar v1.4.6
 http://arshaw.com/fullcalendar/

 Use fullcalendar.css for basic styling.
 For event drag & drop, required jQuery UI draggable.
 For event resizing, requires jQuery UI resizable.

 Copyright (c) 2009 Adam Shaw
 Dual licensed under the MIT and GPL licenses:
 http://www.opensource.org/licenses/mit-license.php
 http://www.gnu.org/licenses/gpl.html

 Date: Mon May 31 10:18:29 2010 -0700

*/
(function(m){function Ha(a,b){a._id=a._id||(a.id===J?"_fc"+Db++:a.id+"");if(a.date){if(!a.start)a.start=a.date;delete a.date}a._start=o(a.start=lb(a.start));a.end=lb(a.end);if(a.end&&a.end<=a.start)a.end=null;a._end=a.end?o(a.end):null;if(a.allDay===J)a.allDay=b.allDayDefault;if(a.className){if(typeof a.className=="string")a.className=a.className.split(/\s+/)}else a.className=[]}function Xa(a,b,e){function c(n,k,K,g){Z=n;Q=k;R=b.theme?"ui":"fc";ga=b.weekends?0:1;ja=b.firstDay;if(ea=b.isRTL){fa=-1;
ka=Q-1}else{fa=1;ka=0}var v=G.start.getMonth(),x=Ia(new Date),q,C=o(G.visStart);if(u){E();k=u.find("tr").length;if(Z<k)u.find("tr:gt("+(Z-1)+")").remove();else if(Z>k){n="";for(k=k;k<Z;k++){n+="<tr class='fc-week"+k+"'>";for(q=0;q<Q;q++){n+="<td class='fc-"+za[C.getDay()]+" "+R+"-state-default fc-new fc-day"+(k*Q+q)+(q==ka?" fc-leftmost":"")+"'>"+(g?"<div class='fc-day-number'></div>":"")+"<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></td>";D(C,1);ga&&ba(C)}n+="</tr>"}u.append(n)}r(u.find("td.fc-new").removeClass("fc-new"));
C=o(G.visStart);u.find("td").each(function(){var X=m(this);if(Z>1)C.getMonth()==v?X.removeClass("fc-other-month"):X.addClass("fc-other-month");+C==+x?X.removeClass("fc-not-today").addClass("fc-today").addClass(R+"-state-highlight"):X.addClass("fc-not-today").removeClass("fc-today").removeClass(R+"-state-highlight");X.find("div.fc-day-number").text(C.getDate());D(C,1);ga&&ba(C)});if(Z==1){C=o(G.visStart);na.find("th").each(function(){m(this).text(oa(C,K,b));this.className=this.className.replace(/^fc-\w+(?= )/,
"fc-"+za[C.getDay()]);D(C,1);ga&&ba(C)});C=o(G.visStart);u.find("td").each(function(){this.className=this.className.replace(/^fc-\w+(?= )/,"fc-"+za[C.getDay()]);D(C,1);ga&&ba(C)})}}else{var M=m("<table/>").appendTo(a);n="<thead><tr>";for(k=0;k<Q;k++){n+="<th class='fc-"+za[C.getDay()]+" "+R+"-state-default"+(k==ka?" fc-leftmost":"")+"'>"+oa(C,K,b)+"</th>";D(C,1);ga&&ba(C)}na=m(n+"</tr></thead>").appendTo(M);n="<tbody>";C=o(G.visStart);for(k=0;k<Z;k++){n+="<tr class='fc-week"+k+"'>";for(q=0;q<Q;q++){n+=
"<td class='fc-"+za[C.getDay()]+" "+R+"-state-default fc-day"+(k*Q+q)+(q==ka?" fc-leftmost":"")+(Z>1&&C.getMonth()!=v?" fc-other-month":"")+(+C==+x?" fc-today "+R+"-state-highlight":" fc-not-today")+"'>"+(g?"<div class='fc-day-number'>"+C.getDate()+"</div>":"")+"<div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></td>";D(C,1);ga&&ba(C)}n+="</tr>"}u=m(n+"</tbody>").appendTo(M);r(u.find("td"));sa=m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(a)}}function h(n){ua=
n;n=u.find("tr td:first-child");var k=ua-na.height(),K;if(b.weekMode=="variable")K=k=Math.floor(k/(Z==1?2:6));else{K=Math.floor(k/Z);k=k-K*(Z-1)}if(Ya===J){var g=u.find("tr:first").find("td:first");g.height(K);Ya=K!=g.height()}if(Ya){n.slice(0,-1).height(K);n.slice(-1).height(k)}else{Ra(n.slice(0,-1),K);Ra(n.slice(-1),k)}}function l(n){ca=n;U.clear();Ja(na.find("th").slice(0,-1),L=Math.floor(ca/Q))}function j(n){G.reportEvents(va=n);I(s(n))}function F(n){E();I(s(va),n)}function E(){G._clearEvents();
sa.empty()}function s(n){var k=o(G.visStart),K=D(o(k),Q),g=m.map(n,Pa),v,x,q,C,M,X,T=[];for(v=0;v<Z;v++){x=Za(G.sliceSegs(n,g,k,K));for(q=0;q<x.length;q++){C=x[q];for(M=0;M<C.length;M++){X=C[M];X.row=v;X.level=q;T.push(X)}}D(k,7);D(K,7)}return T}function I(n,k){mb(n,Z,G,0,ca,function(K){return u.find("tr:eq("+K+")")},U.left,U.right,sa,B,k)}function B(n,k,K){G.eventElementHandlers(n,k);if(n.editable||n.editable===J&&b.editable){S(n,k);K.isEnd&&G.resizableDayEvent(n,k,L)}}function S(n,k){if(!b.disableDragging&&
k.draggable){var K,g=0;k.draggable({zIndex:9,delay:50,opacity:G.option("dragOpacity"),revertDuration:b.dragRevertDuration,start:function(v,x){G.hideEvents(n,k);G.trigger("eventDragStart",k,n,v,x);K=la(function(q){k.draggable("option","revert",!q||!q.rowDelta&&!q.colDelta);pa();if(q){g=q.rowDelta*7+q.colDelta*fa;ha(K,D(o(n.start),g),D(Pa(n),g))}else g=0});K.mouse(v)},drag:function(v){K.mouse(v)},stop:function(v,x){pa();G.trigger("eventDragStop",k,n,v,x);if(g){k.find("a").removeAttr("href");G.eventDrop(this,
n,g,0,n.allDay,v,x)}else{m.browser.msie&&k.css("filter","");G.showEvents(n,k)}}})}}function r(n){n.click($).mousedown(A)}function $(n){if(!G.option("selectable")){var k=parseInt(this.className.match(/fc\-day(\d+)/)[1]);k=D(o(G.visStart),Math.floor(k/Q)*7+k%Q);G.trigger("dayClick",this,k,true,n)}}function A(n){if(G.option("selectable")){V=la(function(k){if(k){k=wa(k.row,k.col);ia.drag(k,k,true)}else ia.drag()});$a(function(k){V.mouse(k)},function(k){ia.dragStop(k)});ia.dragStart(n);V.mouse(n);return false}}
function P(){ia.unselect()}function ha(n,k,K){for(var g=o(G.visStart),v=D(o(g),Q),x=0;x<Z;x++){var q=new Date(Math.max(g,k)),C=new Date(Math.min(v,K));if(q<C){var M;if(ea){M=Aa(C,g)*fa+ka+1;q=Aa(q,g)*fa+ka+1}else{M=Aa(q,g);q=Aa(C,g)}M=n.rect(x,M,x+1,q,a);r(G.renderOverlay(M,a))}D(g,7);D(v,7)}}function pa(){G.clearOverlays()}function la(n){var k=u.find("tr:first td");if(ea)k=m(k.get().reverse());return new ab(u.find("tr"),k,n)}function wa(n,k){return D(o(G.visStart),n*7+k*fa+ka)}var R,ja,ga,ea,fa,
ka,ca,ua,Z,Q,L,na,u,va=[],sa,U=new nb(function(n){return u.find("td:eq("+(n-Math.max(ja,ga)+Q)%Q+") div div")}),ia,V,G=m.extend(this,ob,e,{renderGrid:c,renderEvents:j,rerenderEvents:F,clearEvents:E,setHeight:h,setWidth:l,defaultEventEnd:function(n){return o(n.start)}});G.init(a,b);pb(a.addClass("fc-grid"));ia=new bb(G,P,function(n,k){ha(V,n,D(o(k),1))},pa);qb(G,P);G.select=function(n,k,K){k||(k=o(n));V=la();ia.select(n,k,K)};G.unselect=P}function mb(a,b,e,c,h,l,j,F,E,s,I){var B=e.options,S=B.isRTL,
r,$=a.length,A,P,ha,pa,la,wa="",R={},ja={},ga=[],ea=[];for(r=0;r<$;r++){A=a[r];P=A.event;ha="fc-event fc-event-hori ";if(S){if(A.isStart)ha+="fc-corner-right ";if(A.isEnd)ha+="fc-corner-left ";pa=A.isEnd?j(A.end.getDay()-1):c;la=A.isStart?F(A.start.getDay()):h}else{if(A.isStart)ha+="fc-corner-left ";if(A.isEnd)ha+="fc-corner-right ";pa=A.isStart?j(A.start.getDay()):c;la=A.isEnd?F(A.end.getDay()-1):h}wa+="<div class='"+ha+P.className.join(" ")+"' style='position:absolute;z-index:8;left:"+pa+"px'><a"+
(P.url?" href='"+Ka(P.url)+"'":"")+">"+(!P.allDay&&A.isStart?"<span class='fc-event-time'>"+Ka(Ea(P.start,P.end,e.option("timeFormat"),B))+"</span>":"")+"<span class='fc-event-title'>"+Ka(P.title)+"</span></a>"+((P.editable||P.editable===J&&B.editable)&&!B.disableResizing&&m.fn.resizable?"<div class='ui-resizable-handle ui-resizable-"+(S?"w":"e")+"'></div>":"")+"</div>";A.left=pa;A.outerWidth=la-pa}E[0].innerHTML=wa;h=E.children();for(r=0;r<$;r++){A=a[r];c=m(h[r]);P=A.event;j=e.trigger("eventRender",
P,P,c);if(j===false)c.remove();else{if(j&&j!==true){c.remove();c=m(j).css({position:"absolute",left:A.left}).appendTo(E)}A.element=c;if(P._id===I)s(P,c,A);else c[0]._fci=r;e.reportEventElement(P,c)}}rb(E,a,s);for(r=0;r<$;r++){A=a[r];if(c=A.element){s=R[E=A.key=sb(c[0])];A.hsides=s===J?(R[E]=cb(c[0],true)):s}}for(r=0;r<$;r++){A=a[r];if(c=A.element)c[0].style.width=A.outerWidth-A.hsides+"px"}for(r=0;r<$;r++){A=a[r];if(c=A.element){s=ja[E=A.key];A.outerHeight=c[0].offsetHeight+(s===J?(ja[E]=tb(c[0])):
s)}}for(R=r=0;R<b;R++){for(ja=E=s=0;r<$&&(A=a[r]).row==R;){if(A.level!=E){ja+=s;s=0;E++}s=Math.max(s,A.outerHeight||0);A.top=ja;r++}ga[R]=l(R).find("td:first div.fc-day-content > div").height(ja+s)}for(R=0;R<b;R++)ea[R]=ga[R][0].offsetTop;for(r=0;r<$;r++){A=a[r];if(c=A.element){c[0].style.top=ea[A.row]+A.top+"px";P=A.event;e.trigger("eventAfterRender",P,P,c)}}}function ub(a,b,e){function c(d,f){g=d;ma=b.theme?"ui":"fc";La=b.weekends?0:1;vb=b.firstDay;if(Sa=b.isRTL){W=-1;qa=g-1}else{W=1;qa=0}Ba=wb(b.minTime);
Ta=wb(b.maxTime);d=Sa?D(o(w.visEnd),-1):o(w.visStart);var i=o(d),t=Ia(new Date);if(V){S();V.find("tr:first th").slice(1,-1).each(function(){m(this).text(oa(i,f,b));this.className=this.className.replace(/^fc-\w+(?= )/,"fc-"+za[i.getDay()]);D(i,W);La&&ba(i,W)});i=o(d);K.find("td").each(function(){this.className=this.className.replace(/^fc-\w+(?= )/,"fc-"+za[i.getDay()]);+i==+t?m(this).removeClass("fc-not-today").addClass("fc-today").addClass(ma+"-state-highlight"):m(this).addClass("fc-not-today").removeClass("fc-today").removeClass(ma+
"-state-highlight");D(i,W);La&&ba(i,W)})}else{var p,z,y=b.slotMinutes%15==0,H="<div class='fc-agenda-head' style='position:relative;z-index:4'><table style='width:100%'><tr class='fc-first"+(b.allDaySlot?"":" fc-last")+"'><th class='fc-leftmost "+ma+"-state-default'>&nbsp;</th>";for(p=0;p<g;p++){H+="<th class='fc-"+za[i.getDay()]+" "+ma+"-state-default'>"+oa(i,f,b)+"</th>";D(i,W);La&&ba(i,W)}H+="<th class='"+ma+"-state-default'>&nbsp;</th></tr>";if(b.allDaySlot)H+="<tr class='fc-all-day'><th class='fc-axis fc-leftmost "+
ma+"-state-default'>"+b.allDayText+"</th><td colspan='"+g+"' class='"+ma+"-state-default'><div class='fc-day-content'><div style='position:relative'>&nbsp;</div></div></td><th class='"+ma+"-state-default'>&nbsp;</th></tr><tr class='fc-divider fc-last'><th colspan='"+(g+2)+"' class='"+ma+"-state-default fc-leftmost'><div/></th></tr>";H+="</table></div>";V=m(H).appendTo(a);F(V.find("td"));db=m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(V);i=xb();var N=da(o(i),Ta);da(i,Ba);H=
"<table>";for(p=0;i<N;p++){z=i.getMinutes();H+="<tr class='"+(!p?"fc-first":!z?"":"fc-minor")+"'><th class='fc-axis fc-leftmost "+ma+"-state-default'>"+(!y||!z?oa(i,b.axisFormat):"&nbsp;")+"</th><td class='fc-slot"+p+" "+ma+"-state-default'><div style='position:relative'>&nbsp;</div></td></tr>";da(i,b.slotMinutes);v++}H+="</table>";G=m("<div class='fc-agenda-body' style='position:relative;z-index:2;overflow:auto'/>").append(n=m("<div style='position:relative;overflow:hidden'>").append(k=m(H))).appendTo(a);
E(G.find("td"));Ma=m("<div style='position:absolute;z-index:8;top:0;left:0'/>").appendTo(n);i=o(d);H="<div class='fc-agenda-bg' style='position:absolute;z-index:1'><table style='width:100%;height:100%'><tr class='fc-first'>";for(p=0;p<g;p++){H+="<td class='fc-"+za[i.getDay()]+" "+ma+"-state-default "+(!p?"fc-leftmost ":"")+(+i==+t?ma+"-state-highlight fc-today":"fc-not-today")+"'><div class='fc-day-content'><div>&nbsp;</div></div></td>";D(i,W);La&&ba(i,W)}H+="</tr></table></div>";K=m(H).appendTo(a)}}
function h(){var d=xb(),f=o(d);f.setHours(b.firstHour);var i=L(d,f)+1;d=function(){G.scrollTop(i)};d();setTimeout(d,0)}function l(d,f){X=d;eb={};G.height(d-V.height());C=G.find("tr:first div").height()+1;K.css({top:V.find("tr").height(),height:d});f&&h()}function j(d){M=d;Qa.clear();G.width(d);k.width("");d=V.find("tr:first th");var f=K.find("td"),i=G[0].clientWidth;k.width(i);x=0;Ja(V.find("tr:lt(2) th:first").add(G.find("tr:first th")).width("").each(function(){x=Math.max(x,m(this).outerWidth())}),
x);q=Math.floor((i-x)/g);Ja(f.slice(0,-1),q);Ja(d.slice(1,-2),q);Ja(d.slice(-2,-1),i-x-q*(g-1));K.css({left:x,width:i-x})}function F(d){d.click(s).mousedown(ga)}function E(d){d.click(s).mousedown(ea)}function s(d){if(!w.option("selectable")){var f=Math.floor((d.pageX-K.offset().left)/q);f=D(o(w.visStart),qa+W*f);var i=this.className.match(/fc-slot(\d+)/);if(i){i=parseInt(i[1])*b.slotMinutes;var t=Math.floor(i/60);f.setHours(t);f.setMinutes(i%60+Ba);w.trigger("dayClick",this,f,false,d)}else w.trigger("dayClick",
this,f,true,d)}}function I(d,f){w.reportEvents(xa=d);var i,t=d.length,p=[],z=[];for(i=0;i<t;i++)d[i].allDay?p.push(d[i]):z.push(d[i]);A(r(p),f);P($(z),f)}function B(d){S();I(xa,d)}function S(){w._clearEvents();db.empty();Ma.empty()}function r(d){d=Za(w.sliceSegs(d,m.map(d,Pa),w.visStart,w.visEnd));var f,i=d.length,t,p,z,y=[];for(f=0;f<i;f++){t=d[f];for(p=0;p<t.length;p++){z=t[p];z.row=0;z.level=f;y.push(z)}}return y}function $(d){var f=da(o(w.visStart),Ba),i=m.map(d,va),t,p,z,y,H,N,Y=[];for(t=0;t<
g;t++){p=Za(w.sliceSegs(d,i,f,da(o(f),Ta-Ba)));Eb(p);for(z=0;z<p.length;z++){y=p[z];for(H=0;H<y.length;H++){N=y[H];N.col=t;N.level=z;Y.push(N)}}D(f,1,true)}return Y}function A(d,f){if(b.allDaySlot){mb(d,1,w,x,M,function(){return V.find("tr.fc-all-day")},function(i){return x+Qa.left(sa(i))},function(i){return x+Qa.right(sa(i))},db,pa,f);l(X)}}function P(d,f){var i,t=d.length,p,z,y,H,N,Y,O,aa,Ca,Da,yb="",Ua={},zb={};for(i=0;i<t;i++){p=d[i];z=p.event;y="fc-event fc-event-vert ";if(p.isStart)y+="fc-corner-top ";
if(p.isEnd)y+="fc-corner-bottom ";H=L(p.start,p.start);N=L(p.start,p.end);Y=p.col;O=p.level;aa=p.forward||0;Ca=x+Qa.left(Y*W+qa);Da=x+Qa.right(Y*W+qa)-Ca;Da=Math.min(Da-6,Da*0.95);Y=O?Da/(O+aa+1):aa?(Da/(aa+1)-6)*2:Da;O=Ca+Da/(O+aa+1)*O*W+(Sa?Da-Y:0);p.top=H;p.left=O;p.outerWidth=Y;p.outerHeight=N-H;yb+=ha(z,p,y)}Ma[0].innerHTML=yb;H=Ma.children();for(i=0;i<t;i++){p=d[i];z=p.event;y=m(H[i]);N=w.trigger("eventRender",z,z,y);if(N===false)y.remove();else{if(N&&N!==true){y.remove();y=m(N).css({position:"absolute",
top:p.top,left:p.left}).appendTo(Ma)}p.element=y;if(z._id===f)la(z,y,p);else y[0]._fci=i;w.reportEventElement(z,y)}}rb(Ma,d,la);for(i=0;i<t;i++){p=d[i];if(y=p.element){f=Ua[z=p.key=sb(y[0])];p.vsides=f===J?(Ua[z]=fb(y[0],true)):f;f=zb[z];p.hsides=f===J?(zb[z]=cb(y[0],true)):f;z=y.find("span.fc-event-title");if(z.length)p.titleTop=z[0].offsetTop}}for(i=0;i<t;i++){p=d[i];if(y=p.element){y[0].style.width=p.outerWidth-p.hsides+"px";y[0].style.height=(Ua=p.outerHeight-p.vsides)+"px";z=p.event;if(p.titleTop!==
J&&Ua-p.titleTop<10){y.find("span.fc-event-time").text(oa(z.start,w.option("timeFormat"))+" - "+z.title);y.find("span.fc-event-title").remove()}w.trigger("eventAfterRender",z,z,y)}}}function ha(d,f,i){return"<div class='"+i+d.className.join(" ")+"' style='position:absolute;z-index:8;top:"+f.top+"px;left:"+f.left+"px'><a"+(d.url?" href='"+Ka(d.url)+"'":"")+"><span class='fc-event-bg'></span><span class='fc-event-time'>"+Ka(Ea(d.start,d.end,w.option("timeFormat")))+"</span><span class='fc-event-title'>"+
Ka(d.title)+"</span></a>"+((d.editable||d.editable===J&&b.editable)&&!b.disableResizing&&m.fn.resizable?"<div class='ui-resizable-handle ui-resizable-s'>=</div>":"")+"</div>"}function pa(d,f,i){w.eventElementHandlers(d,f);if(d.editable||d.editable===J&&b.editable){wa(d,f,i.isStart);i.isEnd&&w.resizableDayEvent(d,f,q)}}function la(d,f,i){w.eventElementHandlers(d,f);if(d.editable||d.editable===J&&b.editable){var t=f.find("span.fc-event-time");R(d,f,t);i.isEnd&&ja(d,f,t)}}function wa(d,f,i){if(!b.disableDragging&&
f.draggable){var t,p,z,y=true,H;f.draggable({zIndex:9,opacity:w.option("dragOpacity","month"),revertDuration:b.dragRevertDuration,start:function(N,Y){w.hideEvents(d,f);w.trigger("eventDragStart",f,d,N,Y);t=f.position();p=f.width();z=function(){if(!y){f.width(p).height("").draggable("option","grid",null);y=true}};H=na(function(O){f.draggable("option","revert",!O||!O.rowDelta&&!O.colDelta);w.clearOverlays();if(O)if(O.row){if(i&&y){Ra(f.width(q-10),C*Math.round((d.end?(d.end-d.start)/Fb:b.defaultEventMinutes)/
b.slotMinutes));f.draggable("option","grid",[q,1]);y=false}}else{ua(H,D(o(d.start),O.colDelta),D(Pa(d),O.colDelta));z()}},true);H.mouse(N)},drag:function(N){H.mouse(N)},stop:function(N,Y){w.trigger("eventDragStop",f,d,N,Y);w.clearOverlays();var O=H.cell,aa=W*(y?O?O.colDelta:0:Math.floor((Y.position.left-t.left)/q));if(!O||!aa&&!O.rowDelta){z();m.browser.msie&&f.css("filter","");w.showEvents(d,f)}else{f.find("a").removeAttr("href");w.eventDrop(this,d,aa,y?0:Math.round((f.offset().top-n.offset().top)/
C)*b.slotMinutes+Ba-(d.start.getHours()*60+d.start.getMinutes()),y,N,Y)}}})}}function R(d,f,i){if(!b.disableDragging&&f.draggable){var t,p,z,y,H=false,N;f.draggable({zIndex:9,scroll:false,grid:[q,C],axis:g==1?"y":false,opacity:w.option("dragOpacity"),revertDuration:b.dragRevertDuration,start:function(Y,O){w.hideEvents(d,f);w.trigger("eventDragStart",f,d,Y,O);m.browser.msie&&f.find("span.fc-event-bg").hide();t=f.position();p=function(){if(H){i.css("display","");f.draggable("option","grid",[q,C]);H=
false}};z=0;N=na(function(aa){f.draggable("option","revert",!aa);w.clearOverlays();if(aa)if(!aa.row&&b.allDaySlot){if(!H){H=true;i.hide();f.draggable("option","grid",null)}ua(N,D(o(d.start),aa.colDelta),D(Pa(d),aa.colDelta))}else p()},true);N.mouse(Y)},drag:function(Y,O){y=Math.round((O.position.top-t.top)/C);if(y!=z){if(!H){O=y*b.slotMinutes;var aa=da(o(d.start),O),Ca;if(d.end)Ca=da(o(d.end),O);i.text(Ea(aa,Ca,w.option("timeFormat")))}z=y}N.mouse(Y)},stop:function(Y,O){w.clearOverlays();w.trigger("eventDragStop",
f,d,Y,O);var aa=N.cell,Ca=W*(H?aa?aa.colDelta:0:Math.floor((O.position.left-t.left)/q));if(!aa||!y&&!Ca){p();m.browser.msie&&f.css("filter","").find("span.fc-event-bg").css("display","");f.css(t);w.showEvents(d,f)}else w.eventDrop(this,d,Ca,H?0:y*b.slotMinutes,H,Y,O)}})}}function ja(d,f,i){if(!b.disableResizing&&f.resizable){var t,p;f.resizable({handles:{s:"div.ui-resizable-s"},grid:C,start:function(z,y){t=p=0;w.hideEvents(d,f);m.browser.msie&&m.browser.version=="6.0"&&f.css("overflow","hidden");
f.css("z-index",9);w.trigger("eventResizeStart",this,d,z,y)},resize:function(z,y){t=Math.round((Math.max(C,f.height())-y.originalSize.height)/C);if(t!=p){i.text(Ea(d.start,!t&&!d.end?null:da(w.eventEnd(d),b.slotMinutes*t),w.option("timeFormat")));p=t}},stop:function(z,y){w.trigger("eventResizeStop",this,d,z,y);if(t)w.eventResize(this,d,0,b.slotMinutes*t,z,y);else{f.css("z-index",8);w.showEvents(d,f)}}})}}function ga(d){if(w.option("selectable")){ta=na(function(f){if(f){f=U(f.col);Fa.drag(f,f,true)}else Fa.drag()});
$a(function(f){ta.mouse(f)},function(f){Fa.dragStop(f)});Fa.dragStart(d);ta.mouse(d);return false}}function ea(d){if(w.option("selectable")){ta=u(function(f){if(f){f=ia(f.row,f.origCol);Ga.drag(f,da(o(f),b.slotMinutes),false)}else Ga.drag()});$a(function(f){ta.mouse(f)},function(f){Ga.dragStop(f)});Ga.dragStart(d);ta.mouse(d);return false}}function fa(){Ga.unselect();Fa.unselect()}function ka(d,f){var i=w.option("selectHelper");if(i){var t=Aa(d,w.visStart);if(t>=0&&t<g){t=ta.rect(0,t*W+qa,1,t*W+qa+
1,n);var p=L(d,d),z=L(d,f);if(z>p){t.top=p;t.height=z-p;t.left+=2;t.width-=5;if(m.isFunction(i)){if(d=i(d,f)){t.position="absolute";t.zIndex=8;ra=m(d).css(t).appendTo(n)}}else{ra=m(ha({title:"",start:d,end:f,className:[],editable:false},t,"fc-event fc-event-vert fc-corner-top fc-corner-bottom "));m.browser.msie&&ra.find("span.fc-event-bg").hide();ra.css("opacity",w.option("dragOpacity"))}if(ra){E(ra);n.append(ra);Ja(ra,t.width,true);Ra(ra,t.height,true)}}}}else Z(ta,d,f)}function ca(){Q();if(ra){ra.remove();
ra=null}}function ua(d,f,i){var t;if(Sa){t=Aa(i,w.visStart)*W+qa+1;f=Aa(f,w.visStart)*W+qa+1}else{t=Aa(f,w.visStart);f=Aa(i,w.visStart)}t=Math.max(0,t);f=Math.min(g,f);if(t<f){d=d.rect(0,t,1,f,V);F(w.renderOverlay(d,V))}}function Z(d,f,i){for(var t=o(w.visStart),p=D(o(t),1),z=0;z<g;z++){var y=new Date(Math.max(t,f)),H=new Date(Math.min(p,i));if(y<H){var N=d.rect(0,z*W+qa,1,z*W+qa+1,n);y=L(t,y);H=L(t,H);N.top=y;N.height=H-y;E(w.renderOverlay(N,n))}D(t,1);D(p,1)}}function Q(){w.clearOverlays()}function L(d,
f){d=o(d,true);if(f<da(o(d),Ba))return 0;if(f>=da(o(d),Ta))return n.height();d=b.slotMinutes;f=f.getHours()*60+f.getMinutes()-Ba;var i=Math.floor(f/d),t=eb[i];if(t===J)t=eb[i]=G.find("tr:eq("+i+") td div")[0].offsetTop;return Math.max(0,Math.round(t-1+C*(f%d/d)))}function na(d,f){var i=b.allDaySlot?V.find("td"):m([]);if(f)i=i.add(G);return new ab(i,K.find("td"),d)}function u(d){return new ab(k.find("td"),K.find("td"),d)}function va(d){return d.end?o(d.end):da(o(d.start),b.defaultEventMinutes)}function sa(d){return(d-
Math.max(vb,La)+g)%g*W+qa}function U(d){return D(o(w.visStart),d*W+qa)}function ia(d,f){f=U(f);da(f,Ba+d*b.slotMinutes);return f}var V,G,n,k,K,g,v=0,x,q,C,M,X,T,xa=[],db,Ma,ma,vb,La,Sa,W,qa,Ba,Ta,Qa=new nb(function(d){return K.find("td:eq("+d+") div div")}),eb={},Fa,Ga,ra,ta,w=m.extend(this,ob,e,{renderAgenda:c,renderEvents:I,rerenderEvents:B,clearEvents:S,setHeight:l,setWidth:j,beforeHide:function(){T=G.scrollTop()},afterShow:function(){G.scrollTop(T)},defaultEventEnd:function(d){var f=o(d.start);
if(d.allDay)return f;return da(f,b.defaultEventMinutes)}});w.init(a,b);pb(a.addClass("fc-agenda"));Fa=new bb(w,fa,function(d,f){ua(ta,d,D(o(f),1))},ca);Ga=new bb(w,fa,ka,ca);qb(w,fa);this.select=function(d,f,i){if(i){if(b.allDaySlot){f||(f=o(d));ta=na();Fa.select(d,f,i)}}else{f||(f=da(o(d),b.slotMinutes));ta=u();Ga.select(d,f,i)}};this.unselect=fa}function Eb(a){var b,e,c,h,l,j;for(b=a.length-1;b>0;b--){h=a[b];for(e=0;e<h.length;e++){l=h[e];for(c=0;c<a[b-1].length;c++){j=a[b-1][c];if(Ab(l,j))j.forward=
Math.max(j.forward||0,(l.forward||0)+1)}}}}function rb(a,b,e){a.unbind("mouseover").mouseover(function(c){for(var h=c.target,l;h!=this;){l=h;h=h.parentNode}if((h=l._fci)!==J){l._fci=J;l=b[h];e(l.event,l.element,l);m(c.target).trigger(c)}c.stopPropagation()})}function Za(a){var b=[],e,c=a.length,h,l,j,F;for(e=0;e<c;e++){h=a[e];for(l=0;;){j=false;if(b[l])for(F=0;F<b[l].length;F++)if(Ab(b[l][F],h)){j=true;break}if(j)l++;else break}if(b[l])b[l].push(h);else b[l]=[h]}return b}function Gb(a,b){return(b.msLength-
a.msLength)*100+(a.event.start-b.event.start)}function Ab(a,b){return a.end>b.start&&a.start<b.end}function bb(a,b,e,c){function h(){F=true;a.trigger("select",a,I,B,S)}function l(){if(F){F=false;I=B=J;c();a.trigger("unselect",a)}}var j=this,F=false,E,s,I,B,S;j.dragStart=function(r){b();s=I=B=J;E=r.currentTarget};j.drag=function(r,$,A){if(r){r=[r,$];s||(s=r);r=s.concat(r).sort(Hb);I=r[0];B=r[3];S=A;c();e(o(I),o(B),S)}else{I=B=J;c()}};j.dragStop=function(r){if(I){+s[0]==+I&&+s[1]==+B&&a.trigger("dayClick",
E,I,S,r);h()}};j.select=function(r,$,A){b();I=r;B=$;S=A;e(o(I),o(B),S);h()};j.unselect=l}function $a(a,b){function e(c){b(c);m(document).unbind("mousemove",a).unbind("mouseup",e)}m(document).mousemove(a).mouseup(e)}function qb(a,b){a.option("selectable")&&a.option("unselectAuto")&&m(document).mousedown(function(e){var c=a.option("unselectCancel");if(c)if(m(e.target).parents(c).length)return;b()})}function gb(a,b,e){a.setFullYear(a.getFullYear()+b);e||Ia(a);return a}function hb(a,b,e){if(+a){b=a.getMonth()+
b;var c=o(a);c.setDate(1);c.setMonth(b);a.setMonth(b);for(e||Ia(a);a.getMonth()!=c.getMonth();)a.setDate(a.getDate()+(a<c?1:-1))}return a}function D(a,b,e){if(+a){b=a.getDate()+b;var c=o(a);c.setHours(9);c.setDate(b);a.setDate(b);e||Ia(a);ib(a,c)}return a}function ib(a,b){if(+a)for(;a.getDate()!=b.getDate();)a.setTime(+a+(a<b?1:-1)*Ib)}function da(a,b){a.setMinutes(a.getMinutes()+b);return a}function Ia(a){a.setHours(0);a.setMinutes(0);a.setSeconds(0);a.setMilliseconds(0);return a}function o(a,b){if(b)return Ia(new Date(+a));
return new Date(+a)}function xb(){var a=0,b;do b=new Date(1970,a++,1);while(b.getHours());return b}function ba(a,b,e){for(b=b||1;!a.getDay()||e&&a.getDay()==1||!e&&a.getDay()==6;)D(a,b);return a}function Aa(a,b){return Math.round((o(a,true)-o(b,true))/Bb)}function Ja(a,b,e){a.each(function(c,h){h.style.width=b-cb(h,e)+"px"})}function Ra(a,b,e){a.each(function(c,h){h.style.height=b-fb(h,e)+"px"})}function cb(a,b){return(parseFloat(jQuery.curCSS(a,"paddingLeft",true))||0)+(parseFloat(jQuery.curCSS(a,
"paddingRight",true))||0)+(parseFloat(jQuery.curCSS(a,"borderLeftWidth",true))||0)+(parseFloat(jQuery.curCSS(a,"borderRightWidth",true))||0)+(b?Jb(a):0)}function Jb(a){return(parseFloat(jQuery.curCSS(a,"marginLeft",true))||0)+(parseFloat(jQuery.curCSS(a,"marginRight",true))||0)}function fb(a,b){return(parseFloat(jQuery.curCSS(a,"paddingTop",true))||0)+(parseFloat(jQuery.curCSS(a,"paddingBottom",true))||0)+(parseFloat(jQuery.curCSS(a,"borderTopWidth",true))||0)+(parseFloat(jQuery.curCSS(a,"borderBottomWidth",
true))||0)+(b?tb(a):0)}function tb(a){return(parseFloat(jQuery.curCSS(a,"marginTop",true))||0)+(parseFloat(jQuery.curCSS(a,"marginBottom",true))||0)}function jb(a,b){b=typeof b=="number"?b+"px":b;a[0].style.cssText+=";min-height:"+b+";_height:"+b}function Kb(a){if(Va!==false){var b;if(a.is("th,td"))a=(b=a).parent();if(Va===J&&a.is("tr"))Va=a.position().top!=a.children().position().top;if(Va)return a.parent().position().top+(b?a.position().top-b.position().top:0)}return 0}function ab(a,b,e){var c=
this,h=[],l=[],j,F,E,s,I;m.each(a,function(B,S){I=m(S);h.push(I.offset().top+Kb(I))});h.push(h[h.length-1]+I.outerHeight());m.each(b,function(B,S){I=m(S);l.push(I.offset().left)});l.push(l[l.length-1]+I.outerWidth());c.mouse=function(B){var S=B.pageX,r=B.pageY;for(B=0;B<h.length&&r>=h[B];B++);for(r=0;r<l.length&&S>=l[r];r++);B=B>=h.length?-1:B-1;r=r>=l.length?-1:r-1;if(B!=E||r!=s){E=B;s=r;if(B==-1||r==-1)c.cell=null;else{if(j===J){j=B;F=r}c.cell={row:B,col:r,top:h[B],left:l[r],width:l[r+1]-l[r],height:h[B+
1]-h[B],origRow:j,origCol:F,isOrig:B==j&&r==F,rowDelta:B-j,colDelta:r-F}}e(c.cell)}};c.rect=function(B,S,r,$,A){A=A.offset();return{top:h[B]-A.top,left:l[S]-A.left,width:l[$]-l[S],height:h[r]-h[B]}}}function Na(a){return(a<10?"0":"")+a}function kb(a,b){if(a[b]!==J)return a[b];b=b.split(/(?=[A-Z])/);for(var e=b.length-1,c;e>=0;e--){c=a[b[e].toLowerCase()];if(c!==J)return c}return a[""]}function Ka(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,
"&quot;")}function nb(a){function b(j){return c[j]=c[j]||a(j)}var e=this,c={},h={},l={};e.left=function(j){return h[j]=h[j]===J?b(j).position().left:h[j]};e.right=function(j){return l[j]=l[j]===J?e.left(j)+b(j).width():l[j]};e.clear=function(){c={};h={};l={}}}function sb(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function Hb(a,b){return a-b}function Pa(a){return a.end?Lb(a.end,a.allDay):D(o(a.start),1)}function Lb(a,b){a=o(a);return b||
a.getHours()||a.getMinutes()?D(a,1):a}function pb(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}var ya=m.fullCalendar={},Oa=ya.views={},Wa={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:true,allDayDefault:true,lazyFetching:true,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '&#8212;'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy"},columnFormat:{month:"ddd",
week:"ddd M/d",day:"dddd M/d"},timeFormat:{"":"h(:mm)t"},isRTL:false,firstDay:0,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"],buttonText:{prev:"&nbsp;&#9668;&nbsp;",next:"&nbsp;&#9658;&nbsp;",prevYear:"&nbsp;&lt;&lt;&nbsp;",
nextYear:"&nbsp;&gt;&gt;&nbsp;",today:"today",month:"month",week:"week",day:"day"},theme:false,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:true},Mb={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:"&nbsp;&#9658;&nbsp;",next:"&nbsp;&#9668;&nbsp;",prevYear:"&nbsp;&gt;&gt;&nbsp;",nextYear:"&nbsp;&lt;&lt;&nbsp;"},buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Cb=ya.setDefaults=function(a){m.extend(true,Wa,a)};m.fn.fullCalendar=
function(a){if(typeof a=="string"){var b=Array.prototype.slice.call(arguments,1),e;this.each(function(){var l=m.data(this,"fullCalendar");if(l)if(l=l[a]){l=l.apply(this,b);if(e===J)e=l}});if(e!==J)return e;return this}var c=a.eventSources||[];delete a.eventSources;if(a.events){c.push(a.events);delete a.events}c.unshift([]);a=m.extend(true,{},Wa,a.isRTL||a.isRTL===J&&Wa.isRTL?Mb:{},a);var h=a.theme?"ui":"fc";this.each(function(){function l(g){if(g!=na){Q++;s();var v=u,x;if(v){if(v.eventsChanged){B();
v.eventDirty=v.eventsChanged=false}v.beforeHide&&v.beforeHide();jb(ca,ca.height());v.element.hide()}else jb(ca,1);ca.css("overflow","hidden");if(va[g])(u=va[g]).element.show();else u=va[g]=ya.views[g](x=sa=m("<div class='fc-view fc-view-"+g+"' style='position:absolute'/>").appendTo(ca),a);if(k){k.find("div.fc-button-"+na).removeClass(h+"-state-active");k.find("div.fc-button-"+g).addClass(h+"-state-active")}u.name=na=g;j();ca.css("overflow","");v&&jb(ca,1);!x&&u.afterShow&&u.afterShow();Q--}}function j(g){if(F()){Q++;
s();ua===J&&wa();if(!u.start||g||L<u.start||L>=u.end){u.render(L,g||0);R(true);!ia||!a.lazyFetching||u.visStart<ia||u.visEnd>V?P():u.renderEvents(U)}else if(u.sizeDirty||u.eventsDirty||!a.lazyFetching){u.clearEvents();u.sizeDirty&&R();a.lazyFetching?u.renderEvents(U):P()}ka=fa.outerWidth();u.sizeDirty=false;u.eventsDirty=false;if(k){k.find("h2.fc-header-title").html(u.title);g=new Date;g>=u.start&&g<u.end?k.find("div.fc-button-today").addClass(h+"-state-disabled"):k.find("div.fc-button-today").removeClass(h+
"-state-disabled")}Q--;u.trigger("viewDisplay",ea)}}function F(){return ea.offsetWidth!==0}function E(){return m("body")[0].offsetWidth!==0}function s(){u&&u.unselect()}function I(){B();if(F()){u.clearEvents();u.renderEvents(U);u.eventsDirty=false}}function B(){m.each(va,function(){this.eventsDirty=true})}function S(){r();if(F()){wa();R();s();u.rerenderEvents();u.sizeDirty=false}}function r(){m.each(va,function(){this.sizeDirty=true})}function $(g){U=[];ia=o(u.visStart);V=o(u.visEnd);for(var v=c.length,
x=function(){--v||g&&g(U)},q=0;q<c.length;q++)A(c[q],x)}function A(g,v){var x=u.name,q=o(L),C=function(T){if(x==u.name&&+q==+L&&m.inArray(g,c)!=-1){for(var xa=0;xa<T.length;xa++){Ha(T[xa],a);T[xa].source=g}U=U.concat(T);v&&v(T)}},M=function(T){C(T);pa()};if(typeof g=="string"){var X={};X[a.startParam]=Math.round(ia.getTime()/1E3);X[a.endParam]=Math.round(V.getTime()/1E3);if(a.cacheParam)X[a.cacheParam]=(new Date).getTime();ha();m.ajax({url:g,dataType:"json",data:X,cache:a.cacheParam||false,success:M})}else if(m.isFunction(g)){ha();
g(o(ia),o(V),M)}else C(g)}function P(){$(function(g){u.renderEvents(g)})}function ha(){G++||u.trigger("loading",ea,true)}function pa(){--G||u.trigger("loading",ea,false)}function la(g){if(g){var v=m("<tr/>");m.each(g.split(" "),function(x){x>0&&v.append("<td><span class='fc-header-space'/></td>");var q;m.each(this.split(","),function(C,M){if(M=="title"){v.append("<td><h2 class='fc-header-title'>&nbsp;</h2></td>");q&&q.addClass(h+"-corner-right");q=null}else{var X;if(n[M])X=n[M];else if(Oa[M])X=function(){T.removeClass(h+
"-state-hover");l(M)};if(X){q&&q.addClass(h+"-no-right");var T;C=a.theme?kb(a.buttonIcons,M):null;var xa=kb(a.buttonText,M);if(C)T=m("<div class='fc-button-"+M+" ui-state-default'><a><span class='ui-icon ui-icon-"+C+"'/></a></div>");else if(xa)T=m("<div class='fc-button-"+M+" "+h+"-state-default'><a><span>"+xa+"</span></a></div>");if(T){T.click(function(){T.hasClass(h+"-state-disabled")||X()}).mousedown(function(){T.not("."+h+"-state-active").not("."+h+"-state-disabled").addClass(h+"-state-down")}).mouseup(function(){T.removeClass(h+
"-state-down")}).hover(function(){T.not("."+h+"-state-active").not("."+h+"-state-disabled").addClass(h+"-state-hover")},function(){T.removeClass(h+"-state-hover").removeClass(h+"-state-down")}).appendTo(m("<td/>").appendTo(v));q?q.addClass(h+"-no-right"):T.addClass(h+"-corner-left");q=T}}}});q&&q.addClass(h+"-corner-right")});return m("<table/>").append(v)}}function wa(){ua=a.contentHeight?a.contentHeight:a.height?a.height-(k?k.height():0)-fb(ca[0]):Math.round(ca.width()/Math.max(a.aspectRatio,0.5))}
function R(g){Q++;u.setHeight(ua,g);if(sa){sa.css("position","relative");sa=null}u.setWidth(ca.width(),g);Q--}function ja(){if(!Q)if(u.start){var g=++Z;setTimeout(function(){if(g==Z&&!Q&&F())if(ka!=(ka=fa.outerWidth())){Q++;S();u.trigger("windowResize",ea);Q--}},200)}else ga()}function ga(){setTimeout(function(){!u.start&&E()&&j()},0)}var ea=this,fa=m(ea).addClass("fc"),ka,ca=m("<div class='fc-content "+h+"-widget-content' style='position:relative'/>").prependTo(ea),ua,Z=0,Q=0,L=new Date,na,u,va=
{},sa;a.isRTL&&fa.addClass("fc-rtl");a.theme&&fa.addClass("ui-widget");if(a.year!==J&&a.year!=L.getFullYear()){L.setDate(1);L.setMonth(0);L.setFullYear(a.year)}if(a.month!==J&&a.month!=L.getMonth()){L.setDate(1);L.setMonth(a.month)}a.date!==J&&L.setDate(a.date);var U=[],ia,V,G=0,n={render:function(){wa();r();B();j()},changeView:l,getView:function(){return u},getDate:function(){return L},option:function(g,v){if(v===J)return a[g];if(g=="height"||g=="contentHeight"||g=="aspectRatio"){a[g]=v;S()}},destroy:function(){m(window).unbind("resize",
ja);k&&k.remove();ca.remove();m.removeData(ea,"fullCalendar")},prev:function(){j(-1)},next:function(){j(1)},prevYear:function(){gb(L,-1);j()},nextYear:function(){gb(L,1);j()},today:function(){L=new Date;j()},gotoDate:function(g,v,x){if(typeof g=="object")L=o(g);else{g!==J&&L.setFullYear(g);v!==J&&L.setMonth(v);x!==J&&L.setDate(x)}j()},incrementDate:function(g,v,x){g!==J&&gb(L,g);v!==J&&hb(L,v);x!==J&&D(L,x);j()},updateEvent:function(g){var v,x=U.length,q,C=g.start-g._start,M=g.end?g.end-(g._end||
u.defaultEventEnd(g)):0;for(v=0;v<x;v++){q=U[v];if(q._id==g._id&&q!=g){q.start=new Date(+q.start+C);q.end=g.end?q.end?new Date(+q.end+M):new Date(+u.defaultEventEnd(q)+M):null;q.title=g.title;q.url=g.url;q.allDay=g.allDay;q.className=g.className;q.editable=g.editable;Ha(q,a)}}Ha(g,a);I()},renderEvent:function(g,v){Ha(g,a);if(!g.source){if(v)(g.source=c[0]).push(g);U.push(g)}I()},removeEvents:function(g){if(g){if(!m.isFunction(g)){var v=g+"";g=function(q){return q._id==v}}U=m.grep(U,g,true);for(x=
0;x<c.length;x++)if(typeof c[x]=="object")c[x]=m.grep(c[x],g,true)}else{U=[];for(var x=0;x<c.length;x++)if(typeof c[x]=="object")c[x]=[]}I()},clientEvents:function(g){if(m.isFunction(g))return m.grep(U,g);else if(g){g+="";return m.grep(U,function(v){return v._id==g})}return U},rerenderEvents:I,addEventSource:function(g){c.push(g);A(g,I)},removeEventSource:function(g){c=m.grep(c,function(v){return v!=g});U=m.grep(U,function(v){return v.source!=g});I()},refetchEvents:function(){$(I)},select:function(g,
v,x){u.select(g,v,x===J?true:x)},unselect:function(){u.unselect()}};m.data(this,"fullCalendar",n);var k,K=a.header;if(K)k=m("<table class='fc-header'/>").append(m("<tr/>").append(m("<td class='fc-header-left'/>").append(la(K.left))).append(m("<td class='fc-header-center'/>").append(la(K.center))).append(m("<td class='fc-header-right'/>").append(la(K.right)))).prependTo(fa);m(window).resize(ja);l(a.defaultView);E()||ga()});return this};var Db=0;Cb({weekMode:"fixed"});Oa.month=function(a,b){return new Xa(a,
b,{render:function(e,c){if(c){hb(e,c);e.setDate(1)}e=this.start=o(e,true);e.setDate(1);this.end=hb(o(e),1);var h=this.visStart=o(e);c=this.visEnd=o(this.end);var l=b.weekends?0:1;if(l){ba(h);ba(c,-1,true)}D(h,-((h.getDay()-Math.max(b.firstDay,l)+7)%7));D(c,(7-c.getDay()+Math.max(b.firstDay,l))%7);h=Math.round((c-h)/(Bb*7));if(b.weekMode=="fixed"){D(c,(6-h)*7);h=6}this.title=oa(e,this.option("titleFormat"),b);this.renderGrid(h,b.weekends?7:5,this.option("columnFormat"),true)}})};Oa.basicWeek=function(a,
b){return new Xa(a,b,{render:function(e,c){c&&D(e,c*7);e=this.visStart=o(this.start=D(o(e),-((e.getDay()-b.firstDay+7)%7)));c=this.visEnd=o(this.end=D(o(e),7));if(!b.weekends){ba(e);ba(c,-1,true)}this.title=Ea(e,D(o(c),-1),this.option("titleFormat"),b);this.renderGrid(1,b.weekends?7:5,this.option("columnFormat"),false)}})};Oa.basicDay=function(a,b){return new Xa(a,b,{render:function(e,c){if(c){D(e,c);b.weekends||ba(e,c<0?-1:1)}this.title=oa(e,this.option("titleFormat"),b);this.start=this.visStart=
o(e,true);this.end=this.visEnd=D(o(this.start),1);this.renderGrid(1,1,this.option("columnFormat"),false)}})};var Ya;Cb({allDaySlot:true,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0,maxTime:24});Oa.agendaWeek=function(a,b){return new ub(a,b,{render:function(e,c){c&&D(e,c*7);e=this.visStart=o(this.start=D(o(e),-((e.getDay()-b.firstDay+7)%7)));c=this.visEnd=o(this.end=D(o(e),7));if(!b.weekends){ba(e);
ba(c,-1,true)}this.title=Ea(e,D(o(c),-1),this.option("titleFormat"),b);this.renderAgenda(b.weekends?7:5,this.option("columnFormat"))}})};Oa.agendaDay=function(a,b){return new ub(a,b,{render:function(e,c){if(c){D(e,c);b.weekends||ba(e,c<0?-1:1)}this.title=oa(e,this.option("titleFormat"),b);this.start=this.visStart=o(e,true);this.end=this.visEnd=D(o(this.start),1);this.renderAgenda(1,this.option("columnFormat"))}})};var ob={init:function(a,b){this.element=a;this.options=b;this.eventsByID={};this.eventElements=
[];this.eventElementsByID={};this.usedOverlays=[];this.unusedOverlays=[]},trigger:function(a,b){if(this.options[a])return this.options[a].apply(b||this,Array.prototype.slice.call(arguments,2).concat([this]))},eventEnd:function(a){return a.end?o(a.end):this.defaultEventEnd(a)},reportEvents:function(a){var b,e=a.length,c,h=this.eventsByID={};for(b=0;b<e;b++){c=a[b];if(h[c._id])h[c._id].push(c);else h[c._id]=[c]}},reportEventElement:function(a,b){this.eventElements.push(b);var e=this.eventElementsByID;
if(e[a._id])e[a._id].push(b);else e[a._id]=[b]},_clearEvents:function(){this.eventElements=[];this.eventElementsByID={}},showEvents:function(a,b){this._eee(a,b,"show")},hideEvents:function(a,b){this._eee(a,b,"hide")},_eee:function(a,b,e){a=this.eventElementsByID[a._id];var c,h=a.length;for(c=0;c<h;c++)a[c][0]!=b[0]&&a[c][e]()},eventDrop:function(a,b,e,c,h,l,j){var F=this,E=b.allDay,s=b._id;F.moveEvents(F.eventsByID[s],e,c,h);F.trigger("eventDrop",a,b,e,c,h,function(){F.moveEvents(F.eventsByID[s],
-e,-c,E);F.rerenderEvents()},l,j);F.eventsChanged=true;F.rerenderEvents(s)},eventResize:function(a,b,e,c,h,l){var j=this,F=b._id;j.elongateEvents(j.eventsByID[F],e,c);j.trigger("eventResize",a,b,e,c,function(){j.elongateEvents(j.eventsByID[F],-e,-c);j.rerenderEvents()},h,l);j.eventsChanged=true;j.rerenderEvents(F)},moveEvents:function(a,b,e,c){e=e||0;for(var h,l=a.length,j=0;j<l;j++){h=a[j];if(c!==J)h.allDay=c;da(D(h.start,b,true),e);if(h.end)h.end=da(D(h.end,b,true),e);Ha(h,this.options)}},elongateEvents:function(a,
b,e){e=e||0;for(var c,h=a.length,l=0;l<h;l++){c=a[l];c.end=da(D(this.eventEnd(c),b,true),e);Ha(c,this.options)}},renderOverlay:function(a,b){var e=this.unusedOverlays.shift();e||(e=m("<div class='fc-cell-overlay' style='position:absolute;z-index:3'/>"));e[0].parentNode!=b[0]&&e.appendTo(b);this.usedOverlays.push(e.css(a).show());return e},clearOverlays:function(){for(var a;a=this.usedOverlays.shift();)this.unusedOverlays.push(a.hide().unbind())},resizableDayEvent:function(a,b,e){var c=this;if(!c.options.disableResizing&&
b.resizable)b.resizable({handles:c.options.isRTL?{w:"div.ui-resizable-w"}:{e:"div.ui-resizable-e"},grid:e,minWidth:e/2,containment:c.element.parent().parent(),start:function(h,l){b.css("z-index",9);c.hideEvents(a,b);c.trigger("eventResizeStart",this,a,h,l)},stop:function(h,l){c.trigger("eventResizeStop",this,a,h,l);var j=Math.round((b.width()-l.originalSize.width)/e);if(j)c.eventResize(this,a,j,0,h,l);else{b.css("z-index",8);c.showEvents(a,b)}}})},eventElementHandlers:function(a,b){var e=this;b.click(function(c){if(!b.hasClass("ui-draggable-dragging")&&
!b.hasClass("ui-resizable-resizing"))return e.trigger("eventClick",this,a,c)}).hover(function(c){e.trigger("eventMouseover",this,a,c)},function(c){e.trigger("eventMouseout",this,a,c)})},option:function(a,b){a=this.options[a];if(typeof a=="object")return kb(a,b||this.name);return a},sliceSegs:function(a,b,e,c){var h=[],l,j=a.length,F,E,s,I,B;for(l=0;l<j;l++){F=a[l];E=F.start;s=b[l];if(s>e&&E<c){if(E<e){E=o(e);I=false}else{E=E;I=true}if(s>c){s=o(c);B=false}else{s=s;B=true}h.push({event:F,start:E,end:s,
isStart:I,isEnd:B,msLength:s-E})}}return h.sort(Gb)}},Bb=864E5,Ib=36E5,Fb=6E4;ya.addDays=D;ya.cloneDate=o;var lb=ya.parseDate=function(a){if(typeof a=="object")return a;if(typeof a=="number")return new Date(a*1E3);if(typeof a=="string"){if(a.match(/^\d+$/))return new Date(parseInt(a)*1E3);return Nb(a,true)||(a?new Date(a):null)}return null},Nb=ya.parseISO8601=function(a,b){a=a.match(/^([0-9]{4})(-([0-9]{2})(-([0-9]{2})([T ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?$/);
if(!a)return null;var e=new Date(a[1],0,1),c=new Date(a[1],0,1,9,0),h=0;if(a[3]){e.setMonth(a[3]-1);c.setMonth(a[3]-1)}if(a[5]){e.setDate(a[5]);c.setDate(a[5])}ib(e,c);a[7]&&e.setHours(a[7]);a[8]&&e.setMinutes(a[8]);a[10]&&e.setSeconds(a[10]);a[12]&&e.setMilliseconds(Number("0."+a[12])*1E3);ib(e,c);if(!b){if(a[14]){h=Number(a[16])*60+Number(a[17]);h*=a[15]=="-"?1:-1}h-=e.getTimezoneOffset()}return new Date(+e+h*60*1E3)},wb=ya.parseTime=function(a){if(typeof a=="number")return a*60;if(typeof a=="object")return a.getHours()*
60+a.getMinutes();if(a=a.match(/(\d+)(?::(\d+))?\s*(\w+)?/)){var b=parseInt(a[1]);if(a[3]){b%=12;if(a[3].toLowerCase().charAt(0)=="p")b+=12}return b*60+(a[2]?parseInt(a[2]):0)}},oa=ya.formatDate=function(a,b,e){return Ea(a,null,b,e)},Ea=ya.formatDates=function(a,b,e,c){c=c||Wa;var h=a,l=b,j,F=e.length,E,s,I,B="";for(j=0;j<F;j++){E=e.charAt(j);if(E=="'")for(s=j+1;s<F;s++){if(e.charAt(s)=="'"){if(h){B+=s==j+1?"'":e.substring(j+1,s);j=s}break}}else if(E=="(")for(s=j+1;s<F;s++){if(e.charAt(s)==")"){j=
oa(h,e.substring(j+1,s),c);if(parseInt(j.replace(/\D/,"")))B+=j;j=s;break}}else if(E=="[")for(s=j+1;s<F;s++){if(e.charAt(s)=="]"){E=e.substring(j+1,s);j=oa(h,E,c);if(j!=oa(l,E,c))B+=j;j=s;break}}else if(E=="{"){h=b;l=a}else if(E=="}"){h=a;l=b}else{for(s=F;s>j;s--)if(I=Ob[e.substring(j,s)]){if(h)B+=I(h,c);j=s-1;break}if(s==j)if(h)B+=E}}return B},Ob={s:function(a){return a.getSeconds()},ss:function(a){return Na(a.getSeconds())},m:function(a){return a.getMinutes()},mm:function(a){return Na(a.getMinutes())},
h:function(a){return a.getHours()%12||12},hh:function(a){return Na(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return Na(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return Na(a.getDate())},ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]},M:function(a){return a.getMonth()+1},MM:function(a){return Na(a.getMonth()+1)},MMM:function(a,b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},
yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<12?"A":"P"},TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return oa(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){a=a.getDate();if(a>10&&a<20)return"th";return["st","nd","rd"][a%10-1]||"th"}},Va,J,za=["sun","mon","tue","wed","thu","fri","sat"]})(jQuery);
    /**
    * o------------------------------------------------------------------------------o
    * | This package is licensed under the Phpguru license. A quick summary is       |
    * | that for commercial use, there is a small one-time licensing fee to pay. For |
    * | registered charities and educational institutes there is a reduced license   |
    * | fee available. You can read more  at:                                        |
    * |                                                                              |
    * |                  http://www.phpguru.org/static/license.html                  |
    * o------------------------------------------------------------------------------o
    */

    /**
    * Global vars
    */
    __AutoComplete = new Array();

    // Basic UA detection
    isIE = document.all ? true : false;
    isGecko = navigator.userAgent.toLowerCase().indexOf('gecko') != -1;
    isOpera = navigator.userAgent.toLowerCase().indexOf('opera') != -1;


    /**
    * Attachs the autocomplete object to a form element. Sets
    * onkeypress event on the form element.
    * 
    * @param string formElement Name of form element to attach to
    * @param array  data        Array of strings of which to use as the autocomplete data
    */
    function AutoComplete_Create (id, data)
    {
        __AutoComplete[id] = {'data':data,
                              'isVisible':false,
                              'element':document.getElementById(id),
                              'dropdown':null,
                              'highlighted':null};

        __AutoComplete[id]['element'].setAttribute('autocomplete', 'off');
        __AutoComplete[id]['element'].onkeydown  = function(e) {return AutoComplete_KeyDown(this.getAttribute('id'), e);}
        __AutoComplete[id]['element'].onkeyup    = function(e) {return AutoComplete_KeyUp(this.getAttribute('id'), e);}
        __AutoComplete[id]['element'].onkeypress = function(e) {if (!e) e = window.event; if (e.keyCode == 13 || isOpera) return false;}
        __AutoComplete[id]['element'].ondblclick = function() {AutoComplete_ShowDropdown(this.getAttribute('id'));}
        __AutoComplete[id]['element'].onclick    = function(e) {if (!e) e = window.event; e.cancelBubble = true; e.returnValue = false;}

        // Hides the dropdowns when document clicked
        var docClick = function()
        {
           for (id in __AutoComplete) {
               AutoComplete_HideDropdown(id);
           }
        }

        if (document.addEventListener) {
            document.addEventListener('click', docClick, false);
        } else if (document.attachEvent) {
            document.attachEvent('onclick', docClick, false);
        }


        // Max number of items shown at once
        if (arguments[2] != null) {
            __AutoComplete[id]['maxitems'] = arguments[2];
            __AutoComplete[id]['firstItemShowing'] = 0;
            __AutoComplete[id]['lastItemShowing']  = arguments[2] - 1;
        }
        
        AutoComplete_CreateDropdown(id);
        
        // Prevent select dropdowns showing thru
        if (isIE) {
            __AutoComplete[id]['iframe'] = document.createElement('iframe');
            __AutoComplete[id]['iframe'].id = id +'_iframe';
            __AutoComplete[id]['iframe'].style.position = 'absolute';
            __AutoComplete[id]['iframe'].style.top = '0';
            __AutoComplete[id]['iframe'].style.left = '0';
            __AutoComplete[id]['iframe'].style.width = '0px';
            __AutoComplete[id]['iframe'].style.height = '0px';
            __AutoComplete[id]['iframe'].style.zIndex = '98';
            __AutoComplete[id]['iframe'].style.visibility = 'hidden';
            
            __AutoComplete[id]['element'].parentNode.insertBefore(__AutoComplete[id]['iframe'], __AutoComplete[id]['element']);
        }
    }


    /**
    * Creates the dropdown layer
    * 
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_CreateDropdown(id)
    {
        var left  = AutoComplete_GetLeft(__AutoComplete[id]['element']);
        var top   = AutoComplete_GetTop(__AutoComplete[id]['element']) + __AutoComplete[id]['element'].offsetHeight;
        var width = __AutoComplete[id]['element'].offsetWidth;
    
        __AutoComplete[id]['dropdown'] = document.createElement('div');
        __AutoComplete[id]['dropdown'].className = 'autocomplete'; // Don't use setAttribute()
    
        __AutoComplete[id]['element'].parentNode.insertBefore(__AutoComplete[id]['dropdown'], __AutoComplete[id]['element']);
        
        // Position it
        __AutoComplete[id]['dropdown'].style.left       = left + 'px';
        __AutoComplete[id]['dropdown'].style.top        = top + 'px';
        __AutoComplete[id]['dropdown'].style.width      = width + 'px';
        __AutoComplete[id]['dropdown'].style.zIndex     = '99';
        __AutoComplete[id]['dropdown'].style.visibility = 'hidden';
    }
    
    
    /**
    * Gets left coord of given element
    * 
    * @param object element The element to get the left coord for
    */
    function AutoComplete_GetLeft(element)
    {
        var curNode = element;
        var left    = 0;

        do {
            left += curNode.offsetLeft;
            
            curNode = curNode.offsetParent;

        } while(curNode.tagName.toLowerCase() != 'body' && curNode.style.position != 'fixed');

        return left;
    }
    
    /**
    * Gets top coord of given element
    * 
    * @param object element The element to get the top coord for
    */
    function AutoComplete_GetTop(element)
    {
        var curNode = element;
        var top    = 0;


        do {
            top += curNode.offsetTop;
            curNode = curNode.offsetParent;

        } while(curNode.tagName.toLowerCase() != 'body' && curNode.style.position != 'fixed');

        return top;
    }

    
    /**
    * Shows the dropdown layer
    * 
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_ShowDropdown(id)
    {
        AutoComplete_HideAll();

        var value = __AutoComplete[id]['element'].value;
        var toDisplay = new Array();
        var newDiv    = null;
        var text      = null;
        var numItems  = __AutoComplete[id]['dropdown'].childNodes.length;

        // Remove all child nodes from dropdown
        while (__AutoComplete[id]['dropdown'].childNodes.length > 0) {
            __AutoComplete[id]['dropdown'].removeChild(__AutoComplete[id]['dropdown'].childNodes[0]);
        }

        // Go thru data searching for matches
        for (i=0; i<__AutoComplete[id]['data'].length; ++i) {
            if (__AutoComplete[id]['data'][i].substr(0, value.length) == value) {
                toDisplay[toDisplay.length] = __AutoComplete[id]['data'][i];
            }
        }
        
        // No matches?
        if (toDisplay.length == 0) {
            AutoComplete_HideDropdown(id);
            return;
        }



        // Add data to the dropdown layer
        for (i=0; i<toDisplay.length; ++i) {
            newDiv = document.createElement('div');
            newDiv.className = 'autocomplete_item'; // Don't use setAttribute()
            newDiv.setAttribute('id', 'autocomplete_item_' + i);
            newDiv.setAttribute('index', i);
            newDiv.style.zIndex = '99';
            
             // Scrollbars are on display ?
            if (toDisplay.length > __AutoComplete[id]['maxitems'] && navigator.userAgent.indexOf('MSIE') == -1) {
                newDiv.style.width = __AutoComplete[id]['element'].offsetWidth - 22 + 'px';
            }

            newDiv.onmouseover = function() {AutoComplete_HighlightItem(__AutoComplete[id]['element'].getAttribute('id'), this.getAttribute('index'));};
            newDiv.onclick     = function() {AutoComplete_SetValue(__AutoComplete[id]['element'].getAttribute('id')); AutoComplete_HideDropdown(__AutoComplete[id]['element'].getAttribute('id'));}
            
            text   = document.createTextNode(toDisplay[i]);
            newDiv.appendChild(text);
            
            __AutoComplete[id]['dropdown'].appendChild(newDiv);
        }
        
        
        // Too many items?
        if (toDisplay.length > __AutoComplete[id]['maxitems']) {
            __AutoComplete[id]['dropdown'].style.height = (__AutoComplete[id]['maxitems'] * 15) + 2 + 'px';
        
        } else {
            __AutoComplete[id]['dropdown'].style.height = '';
        }

        
        /**
        * Set left/top in case of document movement/scroll/window resize etc
        */
        __AutoComplete[id]['dropdown'].style.left = AutoComplete_GetLeft(__AutoComplete[id]['element']);
        __AutoComplete[id]['dropdown'].style.top  = AutoComplete_GetTop(__AutoComplete[id]['element']) + __AutoComplete[id]['element'].offsetHeight;


        // Show the iframe for IE
        if (isIE) {
            __AutoComplete[id]['iframe'].style.top    = __AutoComplete[id]['dropdown'].style.top;
            __AutoComplete[id]['iframe'].style.left   = __AutoComplete[id]['dropdown'].style.left;
            __AutoComplete[id]['iframe'].style.width  = __AutoComplete[id]['dropdown'].offsetWidth;
            __AutoComplete[id]['iframe'].style.height = __AutoComplete[id]['dropdown'].offsetHeight;
            
            __AutoComplete[id]['iframe'].style.visibility = 'visible';
        }


        // Show dropdown
        if (!__AutoComplete[id]['isVisible']) {
            __AutoComplete[id]['dropdown'].style.visibility = 'visible';
            __AutoComplete[id]['isVisible'] = true;
        }

        
        // If now showing less items than before, reset the highlighted value
        if (__AutoComplete[id]['dropdown'].childNodes.length != numItems) {
            __AutoComplete[id]['highlighted'] = null;
        }
    }
    
    
    /**
    * Hides the dropdown layer
    * 
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_HideDropdown(id)
    {
        if (__AutoComplete[id]['iframe']) {
            __AutoComplete[id]['iframe'].style.visibility = 'hidden';
        }


        __AutoComplete[id]['dropdown'].style.visibility = 'hidden';
        __AutoComplete[id]['highlighted'] = null;
        __AutoComplete[id]['isVisible']   = false;
    }
    
    
    /**
    * Hides all dropdowns
    */
    function AutoComplete_HideAll()
    {
        for (id in __AutoComplete) {
            AutoComplete_HideDropdown(id);
        }
    }
    
    
    /**
    * Highlights a specific item
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    * @param int    index The index of the element in the dropdown to highlight
    */
    function AutoComplete_HighlightItem(id, index)
    {
        if (__AutoComplete[id]['dropdown'].childNodes[index]) {
            for (var i=0; i<__AutoComplete[id]['dropdown'].childNodes.length; ++i) {
                if (__AutoComplete[id]['dropdown'].childNodes[i].className == 'autocomplete_item_highlighted') {
                    __AutoComplete[id]['dropdown'].childNodes[i].className = 'autocomplete_item';
                }
            }
            
            __AutoComplete[id]['dropdown'].childNodes[index].className = 'autocomplete_item_highlighted';
            __AutoComplete[id]['highlighted'] = index;
        }
    }


    /**
    * Highlights the menu item with the given index
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    * @param int    index The index of the element in the dropdown to highlight
    */
    function AutoComplete_Highlight(id, index)
    {
        // Out of bounds checking
        if (index == 1 && __AutoComplete[id]['highlighted'] == __AutoComplete[id]['dropdown'].childNodes.length - 1) {
            __AutoComplete[id]['dropdown'].childNodes[__AutoComplete[id]['highlighted']].className = 'autocomplete_item';
            __AutoComplete[id]['highlighted'] = null;
        
        } else if (index == -1 && __AutoComplete[id]['highlighted'] == 0) {
            __AutoComplete[id]['dropdown'].childNodes[0].className = 'autocomplete_item';
            __AutoComplete[id]['highlighted'] = __AutoComplete[id]['dropdown'].childNodes.length;
        }

        // Nothing highlighted at the moment
        if (__AutoComplete[id]['highlighted'] == null) {
            __AutoComplete[id]['dropdown'].childNodes[0].className = 'autocomplete_item_highlighted';
            __AutoComplete[id]['highlighted'] = 0;

        } else {
            if (__AutoComplete[id]['dropdown'].childNodes[__AutoComplete[id]['highlighted']]) {
                __AutoComplete[id]['dropdown'].childNodes[__AutoComplete[id]['highlighted']].className = 'autocomplete_item';
            }

            var newIndex = __AutoComplete[id]['highlighted'] + index;

            if (__AutoComplete[id]['dropdown'].childNodes[newIndex]) {
                __AutoComplete[id]['dropdown'].childNodes[newIndex].className = 'autocomplete_item_highlighted';
                
                __AutoComplete[id]['highlighted'] = newIndex;
            }
        }
    }


    /**
    * Sets the input to a given value
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_SetValue(id)
    {
        __AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[__AutoComplete[id]['highlighted']].innerHTML;
    }
    
    
    /**
    * Checks if the dropdown needs scrolling
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_ScrollCheck(id)
    {
        // Scroll down, or wrapping around from scroll up
        if (__AutoComplete[id]['highlighted'] > __AutoComplete[id]['lastItemShowing']) {
            __AutoComplete[id]['firstItemShowing'] = __AutoComplete[id]['highlighted'] - (__AutoComplete[id]['maxitems'] - 1);
            __AutoComplete[id]['lastItemShowing']  = __AutoComplete[id]['highlighted'];
        }
        
        // Scroll up, or wrapping around from scroll down
        if (__AutoComplete[id]['highlighted'] < __AutoComplete[id]['firstItemShowing']) {
            __AutoComplete[id]['firstItemShowing'] = __AutoComplete[id]['highlighted'];
            __AutoComplete[id]['lastItemShowing']  = __AutoComplete[id]['highlighted'] + (__AutoComplete[id]['maxitems'] - 1);
        }
        
        __AutoComplete[id]['dropdown'].scrollTop = __AutoComplete[id]['firstItemShowing'] * 15;
    }


    /**
    * Function which handles the keypress event
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_KeyDown(id)
    {
        // Mozilla
        if (arguments[1] != null) {
            event = arguments[1];
        }

        var keyCode = event.keyCode;

        switch (keyCode) {

            // Return/Enter
            case 13:
                if (__AutoComplete[id]['highlighted'] != null) {
                    AutoComplete_SetValue(id);
                    AutoComplete_HideDropdown(id);
                }
                
                event.returnValue = false;
                event.cancelBubble = true;
                break;

            // Escape
            case 27:
                AutoComplete_HideDropdown(id);
                event.returnValue = false;
                event.cancelBubble = true;
                break;
            
            // Up arrow
            case 38:
                if (!__AutoComplete[id]['isVisible']) {
                    AutoComplete_ShowDropdown(id);
                }
                
                AutoComplete_Highlight(id, -1);
                AutoComplete_ScrollCheck(id, -1);
                return false;
                break;
            
            // Tab
            case 9:
                if (__AutoComplete[id]['isVisible']) {
                    AutoComplete_HideDropdown(id);
                }
                return;
            
            // Down arrow
            case 40:
                if (!__AutoComplete[id]['isVisible']) {
                    AutoComplete_ShowDropdown(id);
                }
                
                AutoComplete_Highlight(id, 1);
                AutoComplete_ScrollCheck(id, 1);
                return false;
                break;
        }
    }


    /**
    * Function which handles the keyup event
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_KeyUp(id)
    {
        // Mozilla
        if (arguments[1] != null) {
            event = arguments[1];
        }

        var keyCode = event.keyCode;

        switch (keyCode) {
            case 13:
                event.returnValue = false;
                event.cancelBubble = true;
                break;

            case 27:
                AutoComplete_HideDropdown(id);
                event.returnValue = false;
                event.cancelBubble = true;
                break;
            
            case 38:
            case 40:
                return false;
                break;

            default:
                AutoComplete_ShowDropdown(id);
                break;
        }
    }
    
    /**
    * Returns whether the dropdown is visible
    * 
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_isVisible(id)
    {
        return __AutoComplete[id]['dropdown'].style.visibility == 'visible';
    }
var paHigherEdu = [
	{"id": "h01","name":"GATE"},
	{"id": "h02","name":"GRE"},
	{"id": "h03","name":"CAT/IIM"},
	{"id": "h04","name":"State Level MBA"},
	{"id": "h05","name":"IAS"},
];

var paGrades = [
	{"id": "gr01","name":"A"},
	{"id": "gr02","name":"A-"},
	{"id": "gr03","name":"B"},
	{"id": "gr04","name":"B-"},
	{"id": "gr05","name":"C"},
	{"id": "gr06","name":"C-"},
	{"id": "gr07","name":"D"},
	{"id": "gr08","name":"D-"}
];

var paBoards = [
	{"id": "bd01","name":"CBSE"},
	{"id": "bd02","name":"CISCE"},
	{"id": "bd03","name":"National Open School"},
	{"id": "bd04","name":"Andhra Pradesh"},
	{"id": "bd05","name":"Assam"},
	{"id": "bd06","name":"Bihar"},
	{"id": "bd07","name":"Goa"},
	{"id": "bd08","name":"Gujarat"},
	{"id": "bd09","name":"Haryana"},
	{"id": "bd10","name":"Himachal Pradesh"},
	{"id": "bd11","name":"J & K"},
	{"id": "bd12","name":"Karnataka"},
	{"id": "bd13","name":"Kerala"},
	{"id": "bd14","name":"Maharashtra"},
	{"id": "bd15","name":"Madhya Pradesh"},
	{"id": "bd16","name":"Manipur"},
	{"id": "bd17","name":"Meghalaya"},
	{"id": "bd18","name":"Mizoram"},
	{"id": "bd19","name":"Nagaland"},
	{"id": "bd20","name":"Orissa"},
	{"id": "bd21","name":"Punjab"},
	{"id": "bd22","name":"Rajasthan"},
	{"id": "bd23","name":"Tamil Nadu"},
	{"id": "bd24","name":"Tripura"},
	{"id": "bd25","name":"Uttar Pradesh"},
	{"id": "bd26","name":"West Bengal"},
];

var paLanguages = [
	{"id": "ln01","name":"Assamese / Asomiya"}, 
	{"id": "ln02","name":"Bengali / Bangla"}, 
	{"id": "ln03","name":"English"}, 
	{"id": "ln04","name":"Gujarati"}, 
	{"id": "ln05","name":"Hindi"}, 
	{"id": "ln06","name":"Kannada"}, 
	{"id": "ln07","name":"Kashmiri"}, 
	{"id": "ln08","name":"Konkani"}, 
	{"id": "ln09","name":"Malayalam"}, 
	{"id": "ln10","name":"Manipuri"}, 
	{"id": "ln11","name":"Marathi"}, 
	{"id": "ln12","name":"Oriya"}, 
	{"id": "ln13","name":"Punjabi"}, 
	{"id": "ln14","name":"Sanskrit"}, 
	{"id": "ln15","name":"Tamil"}, 
	{"id": "ln16","name":"Telugu"}, 
	{"id": "ln17","name":"Urdu"} 
];

var paStates = [
                {"id": "st01","name":"Andaman and Nicobar Islands"},
                {"id": "st02","name":"Andhra Pradesh"},
                {"id": "st03","name":"Arunachal Pradesh"},
                {"id": "st04","name":"Assam"},
                {"id": "st05","name":"Bihar"},
                {"id": "st06","name":"Chandigarh"},
                {"id": "st07","name":"Chhattisgarh"},
                {"id": "st08","name":"Dadra and Nagar Haveli"},
                {"id": "st09","name":"Daman and Diu"},
                {"id": "st10","name":"Delhi"},
                {"id": "st11","name":"Goa"},
                {"id": "st12","name":"Gujarat"},
                {"id": "st13","name":"Haryana"},
                {"id": "st14","name":"Himachal Pradesh"},
                {"id": "st15","name":"Jammu and Kashmir"},
                {"id": "st16","name":"Jharkhand"},
                {"id": "st17","name":"Karnataka"},
                {"id": "st18","name":"Kerala"},
                {"id": "st19","name":"Lakshadweep"},
                {"id": "st20","name":"Madhya Pradesh"},
                {"id": "st21","name":"Maharashtra"},
                {"id": "st22","name":"Manipur"},
                {"id": "st23","name":"Meghalaya"},
                {"id": "st24","name":"Mizoram"},
                {"id": "st25","name":"Nagaland"},
                {"id": "st26","name":"Orissa"},
                {"id": "st27","name":"Pondicherry"},
                {"id": "st28","name":"Punjab"},
                {"id": "st29","name":"Rajasthan"},
                {"id": "st30","name":"Sikkim"},
                {"id": "st32","name":"Tamil Nadu"},
                {"id": "st33","name":"Tripura"},
                {"id": "st34","name":"Uttar Pradesh"},
                {"id": "st35","name":"Uttaranchal"},
                {"id": "st36","name":"West Bengal"}
        ];
 
var paStudiesSem = [
	  {"id": "st20" , "name": "Completed"},
      {"id": "st01" , "name": "Semester I"},
      {"id": "st02" , "name": "Semester II"},
      {"id": "st03" , "name": "Semester III"},
      {"id": "st04" , "name": "Semester IV"},
      {"id": "st05" , "name": "Semester V"},
      {"id": "st06" , "name": "Semester VI"},
      {"id": "st07" , "name": "Semester VII"},
      {"id": "st08" , "name": "Semester VIII"},
];

var paStudiesYear = [
                 {"id": "st20" , "name": "Completed"},
                 {"id": "st10" , "name": "Year I"},
                 {"id": "st11" , "name": "Year II"},
                 {"id": "st12" , "name": "Year III"},
                 {"id": "st13" , "name": "Year IV"}
           ];

var paDegrees = 
	[
           {"id": "dg01","name": "Graduation/Bachelors Degree or Equivalent", 
        	"courses":[
        	             {"id": "dg01.cs01", "name": "B.Com", "specs":[{"id": "dg01.cs01.sp01", "name": "Commerce"}]},
        	             {"id": "dg01.cs02", "name": "B.A.", "specs":[
                             {"id": "dg01.cs02.sp01", "name": "Arts & Humanities"},
                             {"id": "dg01.cs02.sp02", "name": "Bengali"},
                             {"id": "dg01.cs02.sp03", "name": "Business Economics"},
                             {"id": "dg01.cs02.sp04", "name": "Communication"},
                             {"id": "dg01.cs02.sp05", "name": "Economics"},
                             {"id": "dg01.cs02.sp06", "name": "English"},
                             {"id": "dg01.cs02.sp07", "name": "Film"},
                             {"id": "dg01.cs02.sp08", "name": "Fine Arts"},
                             {"id": "dg01.cs02.sp09", "name": "Geography"},
                             {"id": "dg01.cs02.sp10", "name": "Hindi"},
                             {"id": "dg01.cs02.sp11", "name": "History"},
                             {"id": "dg01.cs02.sp12", "name": "Home Science"},
                             {"id": "dg01.cs02.sp13", "name": "Human Resource Management"},
                             {"id": "dg01.cs02.sp14", "name": "Journalism"},
                             {"id": "dg01.cs02.sp15", "name": "Material Management"},
                             {"id": "dg01.cs02.sp16", "name": "Maths"},
                             {"id": "dg01.cs02.sp17", "name": "Music"},
                             {"id": "dg01.cs02.sp18", "name": "Office Administration and Secreterial Practice"},
                             {"id": "dg01.cs02.sp19", "name": "Pass Course"},
                             {"id": "dg01.cs02.sp20", "name": "Political Science"},
                             {"id": "dg01.cs02.sp21", "name": "PR / Advertising"},
                             {"id": "dg01.cs02.sp22", "name": "Psycology"},
                             {"id": "dg01.cs02.sp23", "name": "Sociology"},
                             {"id": "dg01.cs02.sp24", "name": "Statistics"},
                             {"id": "dg01.cs02.sp25", "name": "Vocational Course"}
                         ]
        	           },
                    {"id": "dg01.cs03", "name": "B.Arch", "specs":[
                             {"id": "dg01.cs03.sp01", "name": "Architecture"}]},
                    {"id": "dg01.cs04", "name": "B.Des", "specs":[
                             {"id": "dg01.cs04.sp01", "name": "Communication Design"},
                             {"id": "dg01.cs04.sp02", "name": "Industrial Design"},
                             {"id": "dg01.cs04.sp03", "name": "Interior and Furniture Design"}]
                     },
                    {"id": "dg01.cs05", "name": "B.Ed", "specs":[
                             {"id": "dg01.cs05.sp01", "name": "Education"}
                             ]},
                    {"id": "dg01.cs06", "name": "B.Pharma", "specs":[
                             {"id": "dg01.cs06.sp01", "name": "Pharmacy"}]},
                    {"id": "dg01.cs07", "name": "B.Sc", "specs":[
                             {"id": "dg01.cs07.sp01", "name": "Agriculture"},
                             {"id": "dg01.cs07.sp02", "name": "Anthropology"},
                             {"id": "dg01.cs07.sp03", "name": "Bio Medical Science"},
                             {"id": "dg01.cs07.sp04", "name": "Bio-Chemistry"},
                             {"id": "dg01.cs07.sp05", "name": "Biology"},
                             {"id": "dg01.cs07.sp06", "name": "Biotechnology"},
                             {"id": "dg01.cs07.sp07", "name": "Botany"},
                             {"id": "dg01.cs07.sp08", "name": "Chemistry"},
                             {"id": "dg01.cs07.sp09", "name": "Comp Sc"},
                             {"id": "dg01.cs07.sp10", "name": "Dairy Technology"},
                             {"id": "dg01.cs07.sp11", "name": "Electronics"},
                             {"id": "dg01.cs07.sp12", "name": "Environmental science"},
                             {"id": "dg01.cs07.sp13", "name": "Food Technology"},
                             {"id": "dg01.cs07.sp14", "name": "General"},
                             {"id": "dg01.cs07.sp15", "name": "Geology"},
                             {"id": "dg01.cs07.sp16", "name": "Home Science"},
                             {"id": "dg01.cs07.sp17", "name": "IT"},
                             {"id": "dg01.cs07.sp18", "name": "Life sciences"},
                             {"id": "dg01.cs07.sp19", "name": "Maths"},
                             {"id": "dg01.cs07.sp20", "name": "Micro Biology"},
                             {"id": "dg01.cs07.sp21", "name": "Nursing"},
                             {"id": "dg01.cs07.sp22", "name": "Nutrition"},
                             {"id": "dg01.cs07.sp23", "name": "Physics"},
                             {"id": "dg01.cs07.sp24", "name": "Statistics"},
                             {"id": "dg01.cs07.sp25", "name": "Zeology"},
                             {"id": "dg01.cs07.sp26", "name": "Zoology"}]
                    },
                    {"id": "dg01.cs08", "name": "B.Tourism", "specs":[
                             {"id": "dg01.cs08.sp01", "name": "Tourism"}]},
                    {"id": "dg01.cs09", "name": "BBA / BBM / BBS", "specs":[
                             {"id": "dg01.cs09.sp01", "name": "Computer Aided Management / Computer Applications"}, 
                             {"id": "dg01.cs09.sp02", "name": "Management"}]
                    },
                    {"id": "dg01.cs10", "name": "BCA / BCM", "specs":[
                             {"id": "dg01.cs10.sp01", "name": "Computers"}
                             ]},
                    {"id": "dg01.cs11", "name": "BDS", "specs":[{"id": "dg01.cs11.sp01", "name": "Dentistry"}]},
                    {"id": "dg01.cs12", "name": "BE / B.Tech", "specs":[
                              {"id": "dg01.cs12.sp01", "name": "Aeronautical"},
                              {"id": "dg01.cs12.sp02", "name": "Agriculture"},
                              {"id": "dg01.cs12.sp03", "name": "Automobile Engg"},
                              {"id": "dg01.cs12.sp04", "name": "Aviation"},
                              {"id": "dg01.cs12.sp05", "name": "Bio-Chemistry / Bio-Technology"},
                              {"id": "dg01.cs12.sp06", "name": "Biomedical"},
                              {"id": "dg01.cs12.sp07", "name": "Ceramics"},
                              {"id": "dg01.cs12.sp08", "name": "Chemical"},
                              {"id": "dg01.cs12.sp09", "name": "Civil"},
                              {"id": "dg01.cs12.sp10", "name": "Computer Science"},
                              {"id": "dg01.cs12.sp11", "name": "Electrical"},
                              {"id": "dg01.cs12.sp12", "name": "Electrical and Electronics"},
                              {"id": "dg01.cs12.sp13", "name": "Electronics and Communication"},
                              {"id": "dg01.cs12.sp14", "name": "Electronics and Instrumentation"},
                              {"id": "dg01.cs12.sp15", "name": "Energy"},
                              {"id": "dg01.cs12.sp16", "name": "Environmental Science"},
                              {"id": "dg01.cs12.sp17", "name": "Information Technology"},
                              {"id": "dg01.cs12.sp18", "name": "Manufacturing Process and Automation Engg"},
                              {"id": "dg01.cs12.sp19", "name": "Marine"},
                              {"id": "dg01.cs12.sp20", "name": "Mechanical"},
                              {"id": "dg01.cs12.sp21", "name": "Mechatronics"},
                              {"id": "dg01.cs12.sp22", "name": "Metallurgy"},
                              {"id": "dg01.cs12.sp23", "name": "Mineral Engineering"},
                              {"id": "dg01.cs12.sp24", "name": "Mining Engineering"},
                              {"id": "dg01.cs12.sp25", "name": "Nuclear"},
                              {"id": "dg01.cs12.sp26", "name": "Paint / Oil"},
                              {"id": "dg01.cs12.sp27", "name": "Petroleum Engineering"},
                              {"id": "dg01.cs12.sp28", "name": "Plastic Technology"},
                              {"id": "dg01.cs12.sp29", "name": "Polymer Science and Chemical Technology"},
                              {"id": "dg01.cs12.sp30", "name": "Production / Industrial"},
                              {"id": "dg01.cs12.sp31", "name": "Textile Technology"}]
                    },
                    {"id": "dg01.cs13", "name": "BFA", "specs":[
                              {"id": "dg01.cs13.sp01", "name": "Applied Art"},
                              {"id": "dg01.cs13.sp02", "name": "Art Education"},
                              {"id": "dg01.cs13.sp03", "name": "Painting"},
                              {"id": "dg01.cs13.sp04", "name": "Sculpture"}]
                    },
                    {"id": "dg01.cs14", "name": "BHM", "specs":[{"id": "dg01.cs14.sp01", "name": "Hotel Management"}]},
                    {"id": "dg01.cs15", "name": "BJMC", "specs":[{"id": "dg01.cs15.sp01", "name": "Journalism / Mass Communication"}]},
                    {"id": "dg01.cs16", "name": "BVSc", "specs":[{"id": "dg01.cs16.sp01", "name": "Veterinary Sciences"}]},
                    {"id": "dg01.cs17", "name": "Diploma", "specs":[
                              {"id": "dg01.cs17.sp01", "name": "Agriculture Tech"},
                              {"id": "dg01.cs17.sp02", "name": "Animation"},
                              {"id": "dg01.cs17.sp03", "name": "Architecture"},
                              {"id": "dg01.cs17.sp04", "name": "Automobile Engg"},
                              {"id": "dg01.cs17.sp05", "name": "Chemical"},
                              {"id": "dg01.cs17.sp06", "name": "Civil"},
                              {"id": "dg01.cs17.sp07", "name": "Computer"},
                              {"id": "dg01.cs17.sp08", "name": "Construction Technology"},
                              {"id": "dg01.cs17.sp09", "name": "Craft Design"},
                              {"id": "dg01.cs17.sp10", "name": "Creative Writing"},
                              {"id": "dg01.cs17.sp11", "name": "Diary Technology"},
                              {"id": "dg01.cs17.sp12", "name": "Disaster Management"},
                              {"id": "dg01.cs17.sp13", "name": "DOEACC O/A/B/C Level"},
                              {"id": "dg01.cs17.sp14", "name": "Electrical Engg"},
                              {"id": "dg01.cs17.sp15", "name": "Electronics / Telecommunication Engg"},
                              {"id": "dg01.cs17.sp16", "name": "Fashion Tech"},
                              {"id": "dg01.cs17.sp17", "name": "Garment Technology"},
                              {"id": "dg01.cs17.sp18", "name": "Graphic / Web Designing"},
                              {"id": "dg01.cs17.sp19", "name": "Hotel Management"},
                              {"id": "dg01.cs17.sp20", "name": "Insurance"},
                              {"id": "dg01.cs17.sp21", "name": "IT"},
                              {"id": "dg01.cs17.sp22", "name": "Labour Laws"},
                              {"id": "dg01.cs17.sp23", "name": "Management"},
                              {"id": "dg01.cs17.sp24", "name": "Mechanical"},
                              {"id": "dg01.cs17.sp25", "name": "Nursing Administration"},
                              {"id": "dg01.cs17.sp26", "name": "Teaching"},
                              {"id": "dg01.cs17.sp27", "name": "Textile Technology"},
                              {"id": "dg01.cs17.sp28", "name": "Tourism"},
                              {"id": "dg01.cs17.sp29", "name": "Visual Arts"},
                              {"id": "dg01.cs17.sp30", "name": "Vocational Course"}]
                    },
                    {"id": "dg01.cs18", "name": "LLB", "specs":[{"id": "dg01.cs18.sp01", "name": "Law"}]},
                    {"id": "dg01.cs19", "name": "MBBS", "specs":[{"id": "dg01.cs19.sp01", "name": "Medicine"}]}]
            },
            {"id": "dg02", "name": "Post - Graduation/Masters Degree or Equivalent", "courses":[
	             {"id": "dg02.cs01", "name": "CA", "specs":[
                            {"id": "dg02.cs01.sp01", "name": "Accounting"},
                            {"id": "dg02.cs01.sp02", "name": "Other"}
                           ]},
	             {"id": "dg02.cs02", "name": "CS", "specs":[
	                          {"id": "dg02.cs02.sp01", "name": "Company Secretary"},
	                          {"id": "dg02.cs02.sp02", "name": "Other"}
	                         ]},    
                 {"id": "dg02.cs03", "name": "ICWA", "specs":[
                            {"id": "dg02.cs03.sp01", "name": "ICWA"},
                            {"id": "dg02.cs03.sp02", "name": "Other"}
                           ]},    
			       {"id": "dg02.cs04", "name": "LLM", "specs":[
	                            {"id": "dg02.cs04.sp01", "name": "Law"},
	                            {"id": "dg02.cs04.sp02", "name": "Other"}
	                           ]},    
			       {"id": "dg02.cs05", "name": "M.A.", "specs":[
	                           {"id": "dg02.cs05.sp01", "name": "Anthropology"},
	                           {"id": "dg02.cs05.sp02", "name": "Arts & Humanities"},
	                           {"id": "dg02.cs05.sp03", "name": "Bengali"},
	                           {"id": "dg02.cs05.sp04", "name": "Communication"},
	                           {"id": "dg02.cs05.sp05", "name": "Economics"},
	                           {"id": "dg02.cs05.sp06", "name": "English"},
	                           {"id": "dg02.cs05.sp07", "name": "Film"},
	                           {"id": "dg02.cs05.sp08", "name": "Fine Arts"},
	                           {"id": "dg02.cs05.sp09", "name": "Hindi"},
	                           {"id": "dg02.cs05.sp10", "name": "History"},
	                           {"id": "dg02.cs05.sp11", "name": "Human Rights"},
	                           {"id": "dg02.cs05.sp12", "name": "International Relations"},
	                           {"id": "dg02.cs05.sp13", "name": "Journalism"},
	                           {"id": "dg02.cs05.sp14", "name": "Maths"},
	                           {"id": "dg02.cs05.sp15", "name": "Music"},
	                           {"id": "dg02.cs05.sp16", "name": "Political Science"},
	                           {"id": "dg02.cs05.sp17", "name": "PR / Advertising"},
	                           {"id": "dg02.cs05.sp18", "name": "Psycology"},
	                           {"id": "dg02.cs05.sp19", "name": "Public Administration"},
	                           {"id": "dg02.cs05.sp20", "name": "Sanskrit"},
	                           {"id": "dg02.cs05.sp21", "name": "Psycology"},
	                           {"id": "dg02.cs05.sp22", "name": "Social Work"},
	                           {"id": "dg02.cs05.sp23", "name": "Sociology"},
	                           {"id": "dg02.cs05.sp24", "name": "Statistics"},
	                           {"id": "dg02.cs05.sp25", "name": "Other"}
	                          ]},    
	              {"id": "dg02.cs06", "name": "M.Arch", "specs":[
	                          {"id": "dg02.cs06.sp01", "name": "Architecture"},
	                          {"id": "dg02.cs06.sp02", "name": "Other"}
	                         ]},    
	             {"id": "dg02.cs07", "name": "M.Com", "specs":[
	                        {"id": "dg02.cs07.sp01", "name": "Commerce"},
	                        {"id": "dg02.cs07.sp02", "name": "Finance and Taxation"},
	                        {"id": "dg02.cs07.sp03", "name": "Other"}
	                       ]},                
	           {"id": "dg02.cs08", "name": "M.D.", "specs":[
	                     {"id": "dg02.cs08.sp01", "name": "Biotechnology"},
	                     {"id": "dg02.cs08.sp02", "name": "Cardiology"},
	                     {"id": "dg02.cs08.sp03", "name": "Clinical Immunology"},
	                     {"id": "dg02.cs08.sp04", "name": "Dermatology"},
	                     {"id": "dg02.cs08.sp05", "name": "ENT"},
	                     {"id": "dg02.cs08.sp06", "name": "Gastroenterology"},
	                     {"id": "dg02.cs08.sp07", "name": "General Practitioner"},
	                     {"id": "dg02.cs08.sp08", "name": "Gynaecology"},
	                     {"id": "dg02.cs08.sp09", "name": "Hepatology"},
	                     {"id": "dg02.cs08.sp10", "name": "Immunology"},
	                     {"id": "dg02.cs08.sp11", "name": "Medicine"},
	                     {"id": "dg02.cs08.sp12", "name": "Microbiology"},
	                     {"id": "dg02.cs08.sp13", "name": "Neonatal"},
	                     {"id": "dg02.cs08.sp14", "name": "Nephrology"},
	                     {"id": "dg02.cs08.sp15", "name": "Obstretrics"},
	                     {"id": "dg02.cs08.sp16", "name": "Oncology"},
	                     {"id": "dg02.cs08.sp17", "name": "Opthalmology"},
	                     {"id": "dg02.cs08.sp18", "name": "Orthopaedics"},
	                     {"id": "dg02.cs08.sp19", "name": "Paediatric Surgery"},
	                     {"id": "dg02.cs08.sp20", "name": "Pathology"},
	                     {"id": "dg02.cs08.sp21", "name": "Pediatrics"},
	                     {"id": "dg02.cs08.sp22", "name": "Pharmocology"},
	                     {"id": "dg02.cs08.sp23", "name": "Physiology"},
	                     {"id": "dg02.cs08.sp24", "name": "Psychiatry"},
	                     {"id": "dg02.cs08.sp25", "name": "Psychology"},
	                     {"id": "dg02.cs08.sp26", "name": "Radiology"},
	                     {"id": "dg02.cs08.sp27", "name": "Rheumatology"},
	                     {"id": "dg02.cs08.sp28", "name": "Urology"},
	                     {"id": "dg02.cs08.sp29", "name": "Other"},
	                    ]},              
	        {"id": "dg02.cs09", "name": "M.Des", "specs":[
	                  {"id": "dg02.cs09.sp01", "name": "Communication Design"},
	                  {"id": "dg02.cs09.sp02", "name": "Industrial Design"},
	                  {"id": "dg02.cs09.sp03", "name": "Interior and Furniture Design"},
	                  {"id": "dg02.cs09.sp04", "name": "Other"}
	                 ]},                 
		     {"id": "dg02.cs10", "name": "M.E. / M.Tech", "specs":[
		               {"id": "dg02.cs10.sp01", "name": "Agriculture"},
		               {"id": "dg02.cs10.sp02", "name": "Automobile"},
		               {"id": "dg02.cs10.sp03", "name": "Aviation"},
		               {"id": "dg02.cs10.sp04", "name": "Bio-Chemistry / Bio-Technology"},
		               {"id": "dg02.cs10.sp05", "name": "Biomedical"},
		               {"id": "dg02.cs10.sp06", "name": "CAD / CAM"},
		               {"id": "dg02.cs10.sp07", "name": "Ceramics"},
		               {"id": "dg02.cs10.sp08", "name": "Chemical"},
		               {"id": "dg02.cs10.sp09", "name": "Civil"},
		               {"id": "dg02.cs10.sp10", "name": "Computer Engineering"},
		               {"id": "dg02.cs10.sp11", "name": "Electonics Instrumentation and Communication"},
		               {"id": "dg02.cs10.sp12", "name": "Electrical and Power Drives"},
		               {"id": "dg02.cs10.sp13", "name": "Electronics and Communication"},
		               {"id": "dg02.cs10.sp14", "name": "Embedded System"},
		               {"id": "dg02.cs10.sp15", "name": "Energy"},
		               {"id": "dg02.cs10.sp16", "name": "Environmental Science"},
		               {"id": "dg02.cs10.sp17", "name": "Information Technology"},
		               {"id": "dg02.cs10.sp18", "name": "Instrumentation and Control Engineering"},
		               {"id": "dg02.cs10.sp19", "name": "Marine"},
		               {"id": "dg02.cs10.sp20", "name": "Mechanical Engineering (Thermal and Fluid)"},
		               {"id": "dg02.cs10.sp21", "name": "Metallurgy"},
		               {"id": "dg02.cs10.sp22", "name": "Mineral"},
		               {"id": "dg02.cs10.sp23", "name": "Mining Enginering"},
		               {"id": "dg02.cs10.sp24", "name": "Nuclear"},
		               {"id": "dg02.cs10.sp25", "name": "Paint / Oil"},
		               {"id": "dg02.cs10.sp26", "name": "Petroluem Engineering"},
		               {"id": "dg02.cs10.sp27", "name": "Plastics"},
		               {"id": "dg02.cs10.sp28", "name": "Production and Industrial Engg"},
		               {"id": "dg02.cs10.sp29", "name": "Software Engineering"},
		               {"id": "dg02.cs10.sp30", "name": "Structural Engineering"},
		               {"id": "dg02.cs10.sp31", "name": "Textile"},
		               {"id": "dg02.cs10.sp32", "name": "VLSI"},
		               {"id": "dg02.cs10.sp33", "name": "Other"}
		              ]},                 
	          {"id": "dg02.cs11", "name": "M.Ed", "specs":[
	                {"id": "dg02.cs11.sp01", "name": "Education"},
	                {"id": "dg02.cs11.sp02", "name": "Other"}
	                ]},
		      {"id": "dg02.cs12", "name": "M.Ekistics", "specs":[
		             {"id": "dg02.cs12.sp01", "name": "Ekistics"},
		             {"id": "dg02.cs12.sp02", "name": "Other"},
		            ]}, 
		      {"id": "dg02.cs13", "name": "M.Pharma", "specs":[
		             {"id": "dg02.cs13.sp01", "name": "Pharmacy"},
		             {"id": "dg02.cs13.sp02", "name": "Other"},
		            ]},
	   	      {"id": "dg02.cs14", "name": "M.Phil", "specs":[
	   	             {"id": "dg02.cs14.sp01", "name": "Bengali"},
	   	             {"id": "dg02.cs14.sp02", "name": "Disarmament & Political Geography"},                  
	   	             {"id": "dg02.cs14.sp03", "name": "Economics"},
	   	             {"id": "dg02.cs14.sp04", "name": "Fine Arts"},
	   	             {"id": "dg02.cs14.sp05", "name": "Geography"},
	   	             {"id": "dg02.cs14.sp06", "name": "Hindi"},
	   	             {"id": "dg02.cs14.sp07", "name": "History"},
	   	             {"id": "dg02.cs14.sp08", "name": "Home Science"},
	   	             {"id": "dg02.cs14.sp09", "name": "International Politics"},
	   	             {"id": "dg02.cs14.sp10", "name": "International Relations"},
	   	             {"id": "dg02.cs14.sp11", "name": "Music"},
	   	             {"id": "dg02.cs14.sp12", "name": "Political Science"},
	   	             {"id": "dg02.cs14.sp13", "name": "Psycology"},
	   	             {"id": "dg02.cs14.sp14", "name": "Sociology"},
	   	             {"id": "dg02.cs14.sp15", "name": "Other"}
	   	          ]},
	            {"id": "dg02.cs15", "name": "M.Sc", "specs":[
		             {"id": "dg02.cs15.sp01", "name": "Agriculture"},
		             {"id": "dg02.cs15.sp02", "name": "Anthropology"},
		             {"id": "dg02.cs15.sp03", "name": "Bio Medical Science Bio-Chemistry"},
		             {"id": "dg02.cs15.sp04", "name": "Biology"},
		             {"id": "dg02.cs15.sp05", "name": "Biotechnology"},
		             {"id": "dg02.cs15.sp06", "name": "Botany"},
		             {"id": "dg02.cs15.sp07", "name": "Chemistry"},
		             {"id": "dg02.cs15.sp08", "name": "Comp Sc"},
		             {"id": "dg02.cs15.sp09", "name": "Dairy Technology"},
		             {"id": "dg02.cs15.sp10", "name": "Electronics"},
		             {"id": "dg02.cs15.sp11", "name": "Environmental science"},
		             {"id": "dg02.cs15.sp12", "name": "Food Technology"},
		             {"id": "dg02.cs15.sp12", "name": "Geology"},
		             {"id": "dg02.cs15.sp12", "name": "Home Science"},
		             {"id": "dg02.cs15.sp12", "name": "IT"},
		             {"id": "dg02.cs15.sp12", "name": "Life Sciences"},
		             {"id": "dg02.cs15.sp12", "name": "Maths"},
		             {"id": "dg02.cs15.sp12", "name": "Micro Biology"},
		             {"id": "dg02.cs15.sp12", "name": "Nursing"},
		             {"id": "dg02.cs15.sp12", "name": "Nutrition"},
		             {"id": "dg02.cs15.sp12", "name": "Physics"},
		             {"id": "dg02.cs15.sp12", "name": "Statistics"},
		             {"id": "dg02.cs15.sp12", "name": "Zeology"},
		             {"id": "dg02.cs15.sp12", "name": "Zoology"},
		             {"id": "dg02.cs15.sp12", "name": "Other"}
		            ]},     
            {"id": "dg02.cs16", "name": "M.Tourism", "specs":[
	             {"id": "dg02.cs16.sp01", "name": "Tourism"},
	             {"id": "dg02.cs16.sp02", "name": "Other"},
	            ]},    
            {"id": "dg02.cs17", "name": "M.Tourism", "specs":[
 	             {"id": "dg02.cs17.sp01", "name": "Tourism"},
 	             {"id": "dg02.cs17.sp02", "name": "Other"},
 	            ]},          
           {"id": "dg02.cs18", "name": "MBA / PGDM / MBM", "specs":[
	             {"id": "dg02.cs18.sp01", "name": "Advertising / Mass Communication"},
	             {"id": "dg02.cs18.sp02", "name": "Banking and Insurance"},
	             {"id": "dg02.cs18.sp03", "name": "Finance"},
	             {"id": "dg02.cs18.sp04", "name": "General"},
	             {"id": "dg02.cs18.sp05", "name": "Hospital Management"},
	             {"id": "dg02.cs18.sp06", "name": "HR"},
	             {"id": "dg02.cs18.sp07", "name": "International Business"},
	             {"id": "dg02.cs18.sp08", "name": "IT"},
	             {"id": "dg02.cs18.sp09", "name": "Marketing"},
	             {"id": "dg02.cs18.sp10", "name": "Mass Comm"},
	             {"id": "dg02.cs18.sp11", "name": "Personal Management"},
	             {"id": "dg02.cs18.sp12", "name": "Project Management"},
	             {"id": "dg02.cs18.sp13", "name": "Supply Chain Management"},
	             {"id": "dg02.cs18.sp14", "name": "Systems"},
	             {"id": "dg02.cs18.sp15", "name": "Other"}
	            ]},        
            {"id": "dg02.cs19", "name": "MCA", "specs":[
  	             {"id": "dg02.cs19.sp01", "name": "Computer"},
  	             {"id": "dg02.cs19.sp02", "name": "Other"},
  	            ]},
  	        {"id": "dg02.cs20", "name": "MDS", "specs":[
 	             {"id": "dg02.cs20.sp01", "name": "Denstry"},
 	             {"id": "dg02.cs20.sp02", "name": "Other"},
 	            ]},     
            {"id": "dg02.cs21", "name": "MFA", "specs":[
	             {"id": "dg02.cs21.sp01", "name": "Applied Art"},
	             {"id": "dg02.cs21.sp02", "name": "Art Education"},
	             {"id": "dg02.cs21.sp01", "name": "Painting"},
	             {"id": "dg02.cs21.sp01", "name": "Sculpture"},
	             {"id": "dg02.cs21.sp01", "name": "Other"}
	            ]},     
	        {"id": "dg02.cs22", "name": "MHM", "specs":[
	             {"id": "dg02.cs22.sp01", "name": "Hospitality"},
	             {"id": "dg02.cs22.sp02", "name": "Other"},
	            ]},       
            {"id": "dg02.cs23", "name": "MJMC", "specs":[
   	             {"id": "dg02.cs23.sp01", "name": "Journalism and Mass Communication"},
   	             {"id": "dg02.cs23.sp02", "name": "Other"},
   	            ]},
   	        {"id": "dg02.cs24", "name": "MVSc", "specs":[
	  	             {"id": "dg02.cs24.sp01", "name": "Veterinary Sciences"},
	  	             {"id": "dg02.cs24.sp02", "name": "Other"},
   	            ]},    
            {"id": "dg02.cs25", "name": "PG Diploma", "specs":[
  	             {"id": "dg02.cs25.sp01", "name": "Advertising"},
  	             {"id": "dg02.cs25.sp02", "name": "Anchoring and Video Jockeying"},
  	             {"id": "dg02.cs25.sp02", "name": "Chemical"},
  	             {"id": "dg02.cs25.sp02", "name": "Civil"},
  	             {"id": "dg02.cs25.sp02", "name": "Computer Applications"},
  	             {"id": "dg02.cs25.sp02", "name": "Copy Editing and Proof Reading"},
  	             {"id": "dg02.cs25.sp02", "name": "Disaster Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Editing"},
  	             {"id": "dg02.cs25.sp02", "name": "Electrical"},
  	             {"id": "dg02.cs25.sp02", "name": "Electronics"},
  	             {"id": "dg02.cs25.sp02", "name": "Film and TV Production"},
  	             {"id": "dg02.cs25.sp02", "name": "Financial Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Industrial Relations and Personal Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Interior Design"},
  	             {"id": "dg02.cs25.sp02", "name": "Journalism"},
  	             {"id": "dg02.cs25.sp02", "name": "Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Marketing Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Mass Comm"},
  	             {"id": "dg02.cs25.sp02", "name": "Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Mechanical"},
  	             {"id": "dg02.cs25.sp02", "name": "Operations Management"},
  	             {"id": "dg02.cs25.sp02", "name": "PR"},
  	             {"id": "dg02.cs25.sp02", "name": "Radio Jockey"},
  	             {"id": "dg02.cs25.sp02", "name": "Supply Chain Management"},
  	             {"id": "dg02.cs25.sp02", "name": "Tourism"},
  	             {"id": "dg02.cs25.sp02", "name": "Other"},
 	            ]},    
   	            
           {"id": "dg02.cs26", "name": "Other", "specs":[]},
     ]},
     {"id": "dg03", "name": "Doctorate", "courses":[
           {"id": "dg03.cs01", "name": "PhD / Doctorate", "specs":[
				{"id": "dg03.cs01.sp01", "name": "Advertising/Mass Communication"},
				{"id": "dg03.cs01.sp02", "name": "Agriculture"},
				{"id": "dg03.cs01.sp03", "name": "Anthropology"},
				{"id": "dg03.cs01.sp04", "name": "Architecture"},
				{"id": "dg03.cs01.sp05", "name": "Arts & Humanities"},
				{"id": "dg03.cs01.sp06", "name": "Automobile"},
				{"id": "dg03.cs01.sp07", "name": "Aviation"},
				{"id": "dg03.cs01.sp08", "name": "Bio-Chemistry/Bio-Technology"},
				{"id": "dg03.cs01.sp09", "name": "Biomedical"},
				{"id": "dg03.cs01.sp10", "name": "Biotechnology"},
				{"id": "dg03.cs01.sp11", "name": "Ceramics"},
				{"id": "dg03.cs01.sp12", "name": "Chemical"},
				{"id": "dg03.cs01.sp13", "name": "Chemistry"},
				{"id": "dg03.cs01.sp14", "name": "Civil"},
				{"id": "dg03.cs01.sp15", "name": "Commerce"},
				{"id": "dg03.cs01.sp16", "name": "Communication"},
				{"id": "dg03.cs01.sp17", "name": "Computers"},
				{"id": "dg03.cs01.sp18", "name": "Dairy Technology"},
				{"id": "dg03.cs01.sp19", "name": "Dermatology"},
				{"id": "dg03.cs01.sp20", "name": "Economics"},
				{"id": "dg03.cs01.sp21", "name": "Electrical"},
				{"id": "dg03.cs01.sp22", "name": "Electronics/Telecomnication"},
				{"id": "dg03.cs01.sp23", "name": "Energy"},
				{"id": "dg03.cs01.sp24", "name": "ENT"},
				{"id": "dg03.cs01.sp25", "name": "Environmental"},
				{"id": "dg03.cs01.sp26", "name": "Fashion Designing/Other Designing"},
				{"id": "dg03.cs01.sp27", "name": "Film"},
				{"id": "dg03.cs01.sp28", "name": "Finance"},
				{"id": "dg03.cs01.sp29", "name": "Fine arts"},
				{"id": "dg03.cs01.sp30", "name": "Food Technology"},
				{"id": "dg03.cs01.sp31", "name": "History"},
				{"id": "dg03.cs01.sp32", "name": "Hotel Management"},
				{"id": "dg03.cs01.sp33", "name": "HR/Industrial Relations"},
				{"id": "dg03.cs01.sp34", "name": "Immunology"},
				{"id": "dg03.cs01.sp35", "name": "Instrumentation"},
				{"id": "dg03.cs01.sp36", "name": "International Business"},
				{"id": "dg03.cs01.sp37", "name": "Journalism"},
				{"id": "dg03.cs01.sp38", "name": "Law"},
				{"id": "dg03.cs01.sp39", "name": "Literature"},
				{"id": "dg03.cs01.sp40", "name": "Marine"},
				{"id": "dg03.cs01.sp41", "name": "Marketing"},
				{"id": "dg03.cs01.sp42", "name": "Maths"},
				{"id": "dg03.cs01.sp43", "name": "Mechanical"},
				{"id": "dg03.cs01.sp44", "name": "Medicine"},
				{"id": "dg03.cs01.sp45", "name": "Metallurgy"},
				{"id": "dg03.cs01.sp46", "name": "Microbiology"},
				{"id": "dg03.cs01.sp47", "name": "Mineral"},
				{"id": "dg03.cs01.sp48", "name": "Mining"},
				{"id": "dg03.cs01.sp49", "name": "Neonatal"},
				{"id": "dg03.cs01.sp50", "name": "Nuclear"},
				{"id": "dg03.cs01.sp51", "name": "Obstretrics"},
				{"id": "dg03.cs01.sp52", "name": "Other Arts"},
				{"id": "dg03.cs01.sp53", "name": "Other Doctorate"},
				{"id": "dg03.cs01.sp54", "name": "Other Engineering"},
				{"id": "dg03.cs01.sp55", "name": "Other Management"},
				{"id": "dg03.cs01.sp56", "name": "Other Science"},
				{"id": "dg03.cs01.sp57", "name": "Paint/Oil"},
				{"id": "dg03.cs01.sp58", "name": "Pathology"},
				{"id": "dg03.cs01.sp59", "name": "Pediatrics"},
				{"id": "dg03.cs01.sp60", "name": "Petroleum"},
				{"id": "dg03.cs01.sp61", "name": "Pharmacy"},
				{"id": "dg03.cs01.sp62", "name": "Physics"},
				{"id": "dg03.cs01.sp63", "name": "Plastics"},
				{"id": "dg03.cs01.sp64", "name": "Production/Industrial"},
				{"id": "dg03.cs01.sp65", "name": "Psychiatry"},
				{"id": "dg03.cs01.sp66", "name": "Psychology"},
				{"id": "dg03.cs01.sp67", "name": "Radiology"},
				{"id": "dg03.cs01.sp68", "name": "Rheumatology"},
				{"id": "dg03.cs01.sp69", "name": "Sanskrit"},
				{"id": "dg03.cs01.sp70", "name": "Sociology"},
				{"id": "dg03.cs01.sp71", "name": "Statistics"},
				{"id": "dg03.cs01.sp72", "name": "Systems"},
				{"id": "dg03.cs01.sp73", "name": "Textile"},
				{"id": "dg03.cs01.sp74", "name": "Vocational Courses"},
				{"id": "dg03.cs01.sp75", "name": "Other"}
           ]},
           {"id": "dg03.cs02", "name": "M.Phil", "specs":[
                {"id": "dg03.cs02.sp01", "name": "Advertising/Mass Communication"},
                {"id": "dg03.cs02.sp01", "name": "Agriculture"},
                {"id": "dg03.cs02.sp01", "name": "Anthropology"},
                {"id": "dg03.cs02.sp01", "name": "Architecture"},
                {"id": "dg03.cs02.sp01", "name": "Arts & Humanities"},
                {"id": "dg03.cs02.sp01", "name": "Automobile"},
                {"id": "dg03.cs02.sp01", "name": "Aviation"},
                {"id": "dg03.cs02.sp01", "name": "Bio-Chemistry/Bio-Technology"},
                {"id": "dg03.cs02.sp01", "name": "Biomedical"},
                {"id": "dg03.cs02.sp01", "name": "Biotechnology"},
                {"id": "dg03.cs02.sp01", "name": "Ceramics"},
                {"id": "dg03.cs02.sp01", "name": "Chemical"},
                {"id": "dg03.cs02.sp01", "name": "Chemistry"},
                {"id": "dg03.cs02.sp01", "name": "Civil"},
                {"id": "dg03.cs02.sp01", "name": "Commerce"},
                {"id": "dg03.cs02.sp01", "name": "Communication"},
                {"id": "dg03.cs02.sp01", "name": "Computers"},
                {"id": "dg03.cs02.sp01", "name": "Dairy Technology"},
                {"id": "dg03.cs02.sp01", "name": "Dermatology"},
                {"id": "dg03.cs02.sp01", "name": "Economics"},
                {"id": "dg03.cs02.sp01", "name": "Electrical"},
                {"id": "dg03.cs02.sp01", "name": "Electronics/Telecomnication"},
                {"id": "dg03.cs02.sp01", "name": "Energy"},
                {"id": "dg03.cs02.sp01", "name": "ENT"},
                {"id": "dg03.cs02.sp01", "name": "Environmental"},
                {"id": "dg03.cs02.sp01", "name": "Fashion Designing/Other Designing"},
                {"id": "dg03.cs02.sp01", "name": "Film"},
                {"id": "dg03.cs02.sp01", "name": "Finance"},
                {"id": "dg03.cs02.sp01", "name": "Fine arts"},
                {"id": "dg03.cs02.sp01", "name": "Food Technology"},
                {"id": "dg03.cs02.sp01", "name": "History"},
                {"id": "dg03.cs02.sp01", "name": "Hotel Management"},
                {"id": "dg03.cs02.sp01", "name": "HR/Industrial Relations"},
                {"id": "dg03.cs02.sp01", "name": "Immunology"},
                {"id": "dg03.cs02.sp01", "name": "Instrumentation"},
                {"id": "dg03.cs02.sp01", "name": "International Business"},
                {"id": "dg03.cs02.sp01", "name": "Journalism"},
                {"id": "dg03.cs02.sp01", "name": "Law"},
                {"id": "dg03.cs02.sp01", "name": "Literature"},
                {"id": "dg03.cs02.sp01", "name": "Marine"},
                {"id": "dg03.cs02.sp01", "name": "Marketing"},
                {"id": "dg03.cs02.sp01", "name": "Maths"},
                {"id": "dg03.cs02.sp01", "name": "Mechanical"},
                {"id": "dg03.cs02.sp01", "name": "Medicine"},
                {"id": "dg03.cs02.sp01", "name": "Metallurgy"},
                {"id": "dg03.cs02.sp01", "name": "Microbiology"},
                {"id": "dg03.cs02.sp01", "name": "Mineral"},
                {"id": "dg03.cs02.sp01", "name": "Mining"},
                {"id": "dg03.cs02.sp01", "name": "Neonatal"},
                {"id": "dg03.cs02.sp01", "name": "Nuclear"},
                {"id": "dg03.cs02.sp01", "name": "Obstretrics"},
                {"id": "dg03.cs02.sp01", "name": "Other Arts"},
                {"id": "dg03.cs02.sp01", "name": "Other Doctorate"},
                {"id": "dg03.cs02.sp01", "name": "Other Engineering"},
                {"id": "dg03.cs02.sp01", "name": "Other Management"},
                {"id": "dg03.cs02.sp01", "name": "Other Science"},
                {"id": "dg03.cs02.sp01", "name": "Paint/Oil"},
                {"id": "dg03.cs02.sp01", "name": "Pathology"},
                {"id": "dg03.cs02.sp01", "name": "Pediatrics"},
                {"id": "dg03.cs02.sp01", "name": "Petroleum"},
                {"id": "dg03.cs02.sp01", "name": "Pharmacy"},
                {"id": "dg03.cs02.sp01", "name": "Physics"},
                {"id": "dg03.cs02.sp01", "name": "Plastics"},
                {"id": "dg03.cs02.sp01", "name": "Production/Industrial"},
                {"id": "dg03.cs02.sp01", "name": "Psychiatry"},
                {"id": "dg03.cs02.sp01", "name": "Psychology"},
                {"id": "dg03.cs02.sp01", "name": "Radiology"},
                {"id": "dg03.cs02.sp01", "name": "Rheumatology"},
                {"id": "dg03.cs02.sp01", "name": "Sanskrit"},
                {"id": "dg03.cs02.sp01", "name": "Sociology"},
                {"id": "dg03.cs02.sp01", "name": "Statistics"},
                {"id": "dg03.cs02.sp01", "name": "Systems"},
                {"id": "dg03.cs02.sp01", "name": "Textile"},
                {"id": "dg03.cs02.sp01", "name": "Vocational Courses"},
                {"id": "dg03.cs02.sp01", "name": "Other"}
           ]},
           {"id": "dg03.cs03", "name": "Other", "specs":[]}
     ]}
   ];









var paDegreeType = [
          {"id": "dt01", "name": "Full Time"},             
          {"id": "dt02", "name": "Part Time"},
          {"id": "dt03", "name": "Corresponsence"}
     ];
var paCertificates = [
         {"id": "cer0001", "name": "Advanced Certificate in Power Distribution Management (ACPDM)"},
         {"id": "cer0002", "name": "CCIE - Cisco certified internetwork expert"},
         {"id": "cer0003", "name": "CCNA - Cisco Certified Network Associate"},
         {"id": "cer0004", "name": "CCNP - Cisco Certified Networking Professional"},
         {"id": "cer0005", "name": "Certficate Course in Ticketing"},
         {"id": "cer0006", "name": "Certificate Course in Applied Managerial Economics"},
         {"id": "cer0007", "name": "Certificate Course in Acupunture"},
         {"id": "cer0008", "name": "Certificate Course in Airlines & Travel Industry Management"},
         {"id": "cer0009", "name": "Certificate Course In Arabic"},
         {"id": "cer0010", "name": "Certificate Course in Basic Programming"},
         {"id": "cer0011", "name": "Certificate Course in Capital Market"},
         {"id": "cer0012", "name": "Certificate Course In chinese"},
         {"id": "cer0013", "name": "Certificate Course in Computer Engineering (Auto CAD)"},
         {"id": "cer0014", "name": "Certificate Course in Computer Operations"},
         {"id": "cer0015", "name": "Certificate Course In Computing (CIC)"},
         {"id": "cer0016", "name": "Certificate Course In Cosmetic Science "},
         {"id": "cer0017", "name": "Certificate Course in Database Programming"},
         {"id": "cer0018", "name": "Certificate Course in Derivatives"},
         {"id": "cer0019", "name": "Certificate Course In Diet Therapy"},
         {"id": "cer0020", "name": "Certificate Course In Disaster Management"},
         {"id": "cer0021", "name": "Certificate Course In English For Communication"},
         {"id": "cer0022", "name": "Certificate Course In English Improvement"},
         {"id": "cer0023", "name": "Certificate Course In Family Savings & Investment"},
         {"id": "cer0024", "name": "Certificate Course In Food & Nutrition"},
         {"id": "cer0025", "name": "Certificate Course In French"},
         {"id": "cer0026", "name": "Certificate Course In Gandhian Thought"},
         {"id": "cer0027", "name": "Certificate Course In German"},
         {"id": "cer0028", "name": "Certificate Course In Hindi"},
         {"id": "cer0029", "name": "Certificate Course In Home Management"},
         {"id": "cer0030", "name": "Certificate Course In Internet Application"},
         {"id": "cer0031", "name": "Certificate Course in Italian"},
         {"id": "cer0032", "name": "Certificate Course In Kannada"},
         {"id": "cer0033", "name": "Certificate Course In Library & Information Science"},
         {"id": "cer0034", "name": "Certificate Course In Nutrition For The Community"},
         {"id": "cer0035", "name": "Certificate Course in Office Automation"},
         {"id": "cer0036", "name": "Certificate Course in Operations Research (OR)"},
         {"id": "cer0037", "name": "Certificate Course In Organising Child Care Services"},
         {"id": "cer0038", "name": "Certificate Course in Portugese"},
         {"id": "cer0039", "name": "Certificate Course in Printing and Binding"},
         {"id": "cer0040", "name": "Certificate Course In Rural Development"},
         {"id": "cer0041", "name": "Certificate Course in Russian"},
         {"id": "cer0042", "name": "Certificate Course In Software Application"},
         {"id": "cer0043", "name": "Certificate Course in Sound Recording & Reproduction"},
         {"id": "cer0044", "name": "Certificate Course In Spanish"},
         {"id": "cer0045", "name": "Certificate Course in Sports Coaching"},
         {"id": "cer0046", "name": "Certificate Course in System Analysis and Designing"},
         {"id": "cer0047", "name": "Certificate Course In Teaching English"},
         {"id": "cer0048", "name": "Certificate Course In Techniques Of Translation"},
         {"id": "cer0049", "name": "Certificate Course In Tourism Studies"},
         {"id": "cer0050", "name": "Certificate Course In Urdu"},
         {"id": "cer0051", "name": "Certificate Course in Visual Basic"},
         {"id": "cer0052", "name": "Certificate Course in Visual C++"},
         {"id": "cer0053", "name": "Certificate Course in Web Application Developer"},
         {"id": "cer0054", "name": "Certificate Course in Web Page Designin"},
         {"id": "cer0055", "name": "Certificate Course in Welding Technology"},
         {"id": "cer0056", "name": "Certificate Course in Windows-NT-Server"},
         {"id": "cer0057", "name": "Certificate Course in Women and Legal Literacy"},
         {"id": "cer0058", "name": "Certificate Course In Women Law"},
         {"id": "cer0059", "name": "Certificate in Business Skills (CBS)"},
         {"id": "cer0060", "name": "Certificate in call center training"},
         {"id": "cer0061", "name": "Certificate in Care Waste Management (CHCWM)"},
         {"id": "cer0062", "name": "Certificate in Competency Enhancement for ANM/FHW (CCEANM)"},
         {"id": "cer0063", "name": "Certificate In Computer Programming (CCP)"},
         {"id": "cer0064", "name": "Certificate in Craft and Design Pottery (CCDP)"},
         {"id": "cer0065", "name": "Certificate in Empowering Women through Self Help Groups (CWDL)"},
         {"id": "cer0066", "name": "Certificate in Energy Management and Audit"},
         {"id": "cer0067", "name": "Certificate in Food Safety (CFS)"},
         {"id": "cer0068", "name": "Certificate in Guidance (CIG)"},
         {"id": "cer0069", "name": "Certificate in HIV and Family Education (CAFE)"},
         {"id": "cer0070", "name": "Certificate in Human Rights (CHR)"},
         {"id": "cer0071", "name": "Certificate in Intelligence"},
         {"id": "cer0072", "name": "Certificate in Intelligence Report-Writing"},
         {"id": "cer0073", "name": "Certificate in Laboratory Techniques (CPLT)"},
         {"id": "cer0074", "name": "Certificate in Labour in Development (CLD)"},
         {"id": "cer0075", "name": "Certificate in Management of Intelligence"},
         {"id": "cer0076", "name": "Certificate in Maternal and Child Health Care (CMCHC)"},
         {"id": "cer0077", "name": "Certificate in Mircoprocesor Applications"},
         {"id": "cer0078", "name": "Certificate in Motorcycle Service & Repair (CMSR)"},
         {"id": "cer0079", "name": "Certificate in Network Oriented Office Computing"},
         {"id": "cer0080", "name": "Certificate in Newborn and Infant Care (CNIC)"},
         {"id": "cer0081", "name": "Certificate in Participatory Forest Management (CPFM)"},
         {"id": "cer0082", "name": "Certificate in Primary Education (CPE)"},
         {"id": "cer0083", "name": "Certificate in Rural Development (CRD)"},
         {"id": "cer0084", "name": "Certificate in Strategic Intelligence Analysis"},
         {"id": "cer0085", "name": "Certificate in Web Site Design & Management"},
         {"id": "cer0086", "name": "Certificate Programme In Consumer Protection"},
         {"id": "cer0087", "name": "Certificate Programme In Environmental Studies"},
         {"id": "cer0088", "name": "Certificate Programme In Fashion Design And Merchandising (FDM)"},
         {"id": "cer0089", "name": "Certififcate Course in PR"},
         {"id": "cer0090", "name": "MCP - Microsoft Certified Professional"},
         {"id": "cer0091", "name": "MCSE - Microsoft Certified Systems Engineer."},
         {"id": "cer0092", "name": "Post Graduate Certificate Course in Copyediting"},
         {"id": "cer0093", "name": "Post Graduate Certificate Course in Marine Engineering"},
         {"id": "cer0094", "name": "Post Graduate Certificate Course in Photography Design"},
         {"id": "cer0095", "name": "Post Graduate Certificate course on Computer Aided Management"},
         {"id": "cer0096", "name": "Post Graduate Certificate course on Medical and Genetic Counselling"},
         {"id": "cer0097", "name": "Post Graduate Certificate in Copy Editing and Proof Reading (PGCCP)"},
         {"id": "cer0098", "name": "Post Graduate Certificate in Cyber Laws (PGCCL)"},
         {"id": "cer0099", "name": "Post Graduate Certificate in Indian Patents Law and Procedures (PGCIPLP)"},
         {"id": "cer0100", "name": "Post Graduate certificate in Nutrition"},
         {"id": "cer0101", "name": "Post Graduate Cert. in Participatory Management of Displacement (PGCMRR)"},
         {"id": "cer0102", "name": "Post Graduate Certificate in Writing for Television (PGCTW)"}
     ];

var paZones = [
          {"id": "z01", "name": "East"},
          {"id": "z02", "name": "West"},
          {"id": "z03", "name": "North"},
          {"id": "z04", "name": "South"},
          {"id": "z05", "name": "Central"}
      ];
 

var paCities = [
	{"id": "ct0001", "name": "Ahmedabad"},
	{"id": "ct0002", "name": "Bengaluru / Bangalore"},
	{"id": "ct0003", "name": "Chandigarh"},
	{"id": "ct0004", "name": "Chennai"},
	{"id": "ct0005", "name": "Delhi"},
	{"id": "ct0006", "name": "Gurgaon"},
	{"id": "ct0007", "name": "Hyderabad / Secunderabad"},
	{"id": "ct0008", "name": "Kolkata"},
	{"id": "ct0009", "name": "Mumbai"},
	{"id": "ct0010", "name": "Noida"},
	{"id": "ct0011", "name": "Pune "}, 
	{"id": "ct0012", "name": "Anantapur"},
	{"id": "ct0013", "name": "Guntakal"},
	{"id": "ct0014", "name": "Guntur"},
	{"id": "ct0015", "name": "Hyderabad / Secunderabad"},
	{"id": "ct0016", "name": "Kakinada"},
	{"id": "ct0017", "name": "Kurnool"},
	{"id": "ct0018", "name": "Nellore"},
	{"id": "ct0019", "name": "Nizamabad"},
	{"id": "ct0020", "name": "Rajahmundry"},
	{"id": "ct0021", "name": "Tirupati"},
	{"id": "ct0022", "name": "Vijayawada"},
	{"id": "ct0023", "name": "Visakhapatnam"},
	{"id": "ct0024", "name": "Warangal"},
	{"id": "ct0025", "name": "Itanagar"},
	{"id": "ct0026", "name": "Guwahati"},
	{"id": "ct0027", "name": "Silchar"},
	{"id": "ct0028", "name": "Bahgalpur"},
	{"id": "ct0029", "name": "Patna"},
	{"id": "ct0030", "name": "Bhillai"},
	{"id": "ct0031", "name": "Bilaspur"},
	{"id": "ct0032", "name": "Raipur"},
	{"id": "ct0033", "name": "Panjim / Panaji"},
	{"id": "ct0034", "name": "Vasco Da Gama"},
	{"id": "ct0035", "name": "Ahmedabad"},
	{"id": "ct0036", "name": "Anand"},
	{"id": "ct0037", "name": "Ankleshwar"},
	{"id": "ct0038", "name": "Bharuch"},
	{"id": "ct0039", "name": "Bhavnagar"},
	{"id": "ct0040", "name": "Bhuj"},
	{"id": "ct0041", "name": "Gandhinagar"},
	{"id": "ct0042", "name": "Gir"},
	{"id": "ct0043", "name": "Jamnagar"},
	{"id": "ct0044", "name": "Kandla"},
	{"id": "ct0045", "name": "Porbandar"},
	{"id": "ct0046", "name": "Rajkot"},
	{"id": "ct0047", "name": "Surat"},
	{"id": "ct0048", "name": "Vadodara / Baroda"},
	{"id": "ct0049", "name": "Valsad"},
	{"id": "ct0050", "name": "Vapi"},
	{"id": "ct0051", "name": "Ambala"},
	{"id": "ct0052", "name": "Chandigarh"},
	{"id": "ct0053", "name": "Faridabad"},
	{"id": "ct0054", "name": "Hisar"},
	{"id": "ct0055", "name": "Karnal"},
	{"id": "ct0056", "name": "Kurukshetra"},
	{"id": "ct0057", "name": "Panipat"},
	{"id": "ct0058", "name": "Rohtak"},
	{"id": "ct0059", "name": "Dalhousie"},
	{"id": "ct0060", "name": "Dharmasala"},
	{"id": "ct0061", "name": "Kulu/Manali"},
	{"id": "ct0062", "name": "Shimla"},
	{"id": "ct0063", "name": "Jammu"},
	{"id": "ct0064", "name": "Srinagar"},
	{"id": "ct0065", "name": "Bokaro"},
	{"id": "ct0066", "name": "Dhanbad"},
	{"id": "ct0067", "name": "Jamshedpur"},
	{"id": "ct0068", "name": "Ranchi"},
	{"id": "ct0069", "name": "Bengaluru / Bangalore"},
	{"id": "ct0070", "name": "Belgaum"},
	{"id": "ct0071", "name": "Bellary"},
	{"id": "ct0072", "name": "Bidar"},
	{"id": "ct0073", "name": "Dharwad"},
	{"id": "ct0074", "name": "Gulbarga"},
	{"id": "ct0075", "name": "Hubli"},
	{"id": "ct0076", "name": "Kolar"},
	{"id": "ct0077", "name": "Mangalore"},
	{"id": "ct0078", "name": "Mysoru / Mysore"},
	{"id": "ct0079", "name": "Calicut"},
	{"id": "ct0080", "name": "Cochin"},
	{"id": "ct0081", "name": "Ernakulam"},
	{"id": "ct0082", "name": "Kannur"},
	{"id": "ct0083", "name": "Kochi"},
	{"id": "ct0084", "name": "Kollam"},
	{"id": "ct0085", "name": "Kottayam"},
	{"id": "ct0086", "name": "Kozhikode"},
	{"id": "ct0087", "name": "Palakkad"},
	{"id": "ct0088", "name": "Palghat"},
	{"id": "ct0089", "name": "Thrissur"},
	{"id": "ct0090", "name": "Trivandrum"},
	{"id": "ct0091", "name": "Bhopal"},
	{"id": "ct0092", "name": "Gwalior"},
	{"id": "ct0093", "name": "Indore"},
	{"id": "ct0094", "name": "Jabalpur"},
	{"id": "ct0095", "name": "Ujjain"},
	{"id": "ct0096", "name": "Ahmednagar"},
	{"id": "ct0097", "name": "Aurangabad"},
	{"id": "ct0098", "name": "Jalgaon"},
	{"id": "ct0099", "name": "Kolhapur"},
	{"id": "ct0100", "name": "Mumbai"},
	{"id": "ct0101", "name": "Mumbai Suburbs"},
	{"id": "ct0102", "name": "Nagpur"},
	{"id": "ct0103", "name": "Nasik"},
	{"id": "ct0104", "name": "Navi Mumbai"},
	{"id": "ct0105", "name": "Pune"},
	{"id": "ct0106", "name": "Solapur"},
	{"id": "ct0107", "name": "Imphal"},
	{"id": "ct0108", "name": "Manipur"},
	{"id": "ct0109", "name": "Shillong"},
	{"id": "ct0110", "name": "Aizawal"},
	{"id": "ct0111", "name": "Dimapur"},
	{"id": "ct0112", "name": "Bhubaneshwar"},
	{"id": "ct0113", "name": "Cuttack"},
	{"id": "ct0114", "name": "Paradeep"},
	{"id": "ct0115", "name": "Puri"},
	{"id": "ct0116", "name": "Rourkela"},
	{"id": "ct0117", "name": "Amritsar"},
	{"id": "ct0118", "name": "Bathinda"},
	{"id": "ct0119", "name": "Chandigarh"},
	{"id": "ct0120", "name": "Jalandhar"},
	{"id": "ct0121", "name": "Ludhiana"},
	{"id": "ct0122", "name": "Mohali"},
	{"id": "ct0123", "name": "Pathankot"},
	{"id": "ct0124", "name": "Patiala"},
	{"id": "ct0125", "name": "Ajmer"},
	{"id": "ct0126", "name": "Jaipur"},
	{"id": "ct0127", "name": "Jaisalmer"},
	{"id": "ct0128", "name": "Jodhpur"},
	{"id": "ct0129", "name": "Kota"},
	{"id": "ct0130", "name": "Udaipur"},
	{"id": "ct0131", "name": "Gangtok"},
	{"id": "ct0132", "name": "Chennai"},
	{"id": "ct0133", "name": "Coimbatore"},
	{"id": "ct0134", "name": "Cuddalore"},
	{"id": "ct0135", "name": "Erode"},
	{"id": "ct0136", "name": "Hosur"},
	{"id": "ct0137", "name": "Madurai"},
	{"id": "ct0138", "name": "Nagercoil"},
	{"id": "ct0139", "name": "Ooty"},
	{"id": "ct0140", "name": "Salem"},
	{"id": "ct0141", "name": "Thanjavur"},
	{"id": "ct0142", "name": "Tirunalveli"},
	{"id": "ct0143", "name": "Trichy"},
	{"id": "ct0144", "name": "Tuticorin"},
	{"id": "ct0145", "name": "Vellore"},
	{"id": "ct0146", "name": "Agartala"},
	{"id": "ct0147", "name": "Agra"},
	{"id": "ct0148", "name": "Aligarh"},
	{"id": "ct0149", "name": "Allahabad"},
	{"id": "ct0150", "name": "Bareilly"},
	{"id": "ct0151", "name": "Faizabad"},
	{"id": "ct0152", "name": "Ghaziabad"},
	{"id": "ct0153", "name": "Gorakhpur"},
	{"id": "ct0154", "name": "Kanpur"},
	{"id": "ct0155", "name": "Lucknow"},
	{"id": "ct0156", "name": "Mathura"},
	{"id": "ct0157", "name": "Meerut"},
	{"id": "ct0158", "name": "Moradabad"},
	{"id": "ct0159", "name": "Noida"},
	{"id": "ct0160", "name": "Varanasi / Banaras"},
	{"id": "ct0161", "name": "Dehradun"},
	{"id": "ct0162", "name": "Roorkee"},
	{"id": "ct0163", "name": "Asansol"},
	{"id": "ct0164", "name": "Durgapur"},
	{"id": "ct0165", "name": "Haldia"},
	{"id": "ct0166", "name": "Kharagpur"},
	{"id": "ct0167", "name": "Kolkata"},
	{"id": "ct0168", "name": "Siliguri"}
];


var paJobSector = [
               	{"id": "s01","name":"ITeS/BPO"},
               	{"id": "s02","name":"IT"},
               	{"id": "s03","name":"Telecom"},
               	{"id": "s04","name":"Engineering"},
               	{"id": "s05","name":"Pharma"},
               	{"id": "s06","name":"Real Estate"},
               	{"id": "s07","name":"FMCG"},
               	{"id": "s08","name":"Financial Services"},
               	{"id": "s09","name":"Consulting"},
               	{"id": "s10","name":"Core Sector"}
               ];

var paSalaryRange = [
            	{"id": "sal01","name":"1 to 2 lakhs per annum"},
               	{"id": "sal02","name":"2 to 3 lakhs per annum"},
               	{"id": "sal03","name":"3 to 4 lakhs per annum"},
               	{"id": "sal04","name":"4 to 5 lakhs per annum"},
               	{"id": "sal05","name":"5 to 6 lakhs per annum"},
               	{"id": "sal06","name":"6 to 7 lakhs per annum"},
               	{"id": "sal07","name":"7 to 8 lakhs per annum"},
               	{"id": "sal08","name":"8 lakhs per annum plus"}
               ];


paCities = paCities.sort(paSortFunction);
paCertificates = paCertificates.sort(paSortFunction);
paBoards = paBoards.sort(paSortFunction);
paLanguages = paLanguages.sort(paSortFunction);

function paSortFunction(a, b){
	if(a.name == b.name){
		if(a.name == b.name){
			return 0;
		}
		return (a.name < b.name) ? -1 : 1;
	}
	return (a.name < b.name) ? -1 : 1;
}

