Skeleton Web
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..496ee2c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
\ No newline at end of file
diff --git a/css/admin.css b/css/admin.css
new file mode 100644
index 0000000..1a2ba37
--- /dev/null
+++ b/css/admin.css
@@ -0,0 +1 @@
+article,aside,footer,header,nav,section{display:block}html{height:100%;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;padding:0;margin:0}:focus{outline:0}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}img{-ms-interpolation-mode:bicubic;border:0;vertical-align:middle}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="radio"],input[type="checkbox"]{cursor:pointer}textarea{overflow:auto;vertical-align:top}form{padding:0;margin:0}table{border-collapse:collapse;border-spacing:0;width:100%}input[type="radio"],input[type="checkbox"]{margin:0;padding:0}::-webkit-input-placeholder{color:#fff}::-moz-placeholder{color:#fff}:-ms-input-placeholder{color:#fff}input:-moz-placeholder{color:#fff}
\ No newline at end of file
diff --git a/frontend/config/config.json b/frontend/config/config.json
new file mode 100755
index 0000000..bdcfcff
--- /dev/null
+++ b/frontend/config/config.json
@@ -0,0 +1,42 @@
+{

+	"compile":{

+		"ext":".styl",

+		"cmd":"stylus -c",

+		"cmdr":"-o",

+		"route":"../css/"

+	},

+	"layouts":{

+		"active":false

+	},

+	"views":{

+		"path":"./views",

+		"compile":{

+			"admin.styl":{

+				"helpers":{

+					"reset":"[@pp]reset.styl",

+					"plugins":[]

+				},

+				"includes":{

+					"vhelpers":["[@pp]resources.styl","[@pp]forms.styl","[@pp]sprites.styl"],

+					"layout":["[@pp]header.styl","[@pp]general.styl","[@pp]footer.styl"],

+					"imports":[]

+				}

+			}

+		}

+	},

+	"vars":{

+		"global":{

+			"styfluxFonts":"[@url]fonts/",

+			"routImgFancybox":"[@url]../img/fancybox/",

+			"routImgTipsy":"[@url]../img/",

+			"routImgLoader":"[@url]../img/"

+		},

+		"admin.styl":{

+			"routImg":"[@url]../img/"

+		}

+	},

+	"ignore":{

+		"layouts":["render"],

+		"views":["admin/vhelpers","admin/layout","admin/imports"]

+	}

+}
\ No newline at end of file
diff --git a/frontend/init.njs b/frontend/init.njs
new file mode 100755
index 0000000..bb9934f
--- /dev/null
+++ b/frontend/init.njs
@@ -0,0 +1,24 @@
+#!/usr/bin/env node

+

+var styflux=require('styflux'),

+	fs=require('fs'),

+	config=JSON.parse(fs.readFileSync(__dirname + "/config/config.json")), //Obtiene los parametros del config

+	compile=config.compile || {"ext":".styl","cmd":"stylus -c"}, //Almacenando configuracion del compilador

+	layout=config.layouts || {}, //Almacenando configuracion de layout

+	views=config.views || {}, //Almacenando configuracion de views

+	globals=config.vars || {}, //Almacenando las variables globales

+	ignore=config.ignore || {}, //Almacenando las rutas ignora por el compilador

+	routes={}; //Almacenador de rutas

+

+//Almacenando las rutas

+

+if(Object.keys(layout).length>=1&&layout.active){

+	routes["layout"]={"path":layout.path,"imports":(typeof layout.compile!="undefined")?layout.compile:{},"ignore":(ignore["layouts"]||[])};

+}

+if(Object.keys(views).length>=1){

+	routes["views"]={"path":views.path,"imports":(typeof views.compile!="undefined")?views.compile:{},"ignore":(ignore["views"]||[])};

+}

+

+//Recorriendo y Compilando

+

+styflux.compileProject(routes,globals,compile);
\ No newline at end of file
diff --git a/frontend/library/styflux/fonts/fonts.styl b/frontend/library/styflux/fonts/fonts.styl
new file mode 100755
index 0000000..a63200c
--- /dev/null
+++ b/frontend/library/styflux/fonts/fonts.styl
@@ -0,0 +1,10 @@
+font_face($font_face) {

+	font-family $font_face

+	font-style normal

+	font-weight normal

+	src url(styfluxFonts+$font_face+'/'+$font_face+'-webfont.eot');

+	src url(styfluxFonts+$font_face+'/'+$font_face+'-webfont.eot?#iefix') format('embedded-opentype'),

+		url(styfluxFonts+$font_face+'/'+$font_face+'-webfont.woff') format('woff'),

+        url(styfluxFonts+$font_face+'/'+$font_face+'-webfont.ttf') format('truetype'),

+        url(styfluxFonts+$font_face+'/'+$font_face+'-webfont.svg#'+$font_face) format('svg');

+}
\ No newline at end of file
diff --git a/frontend/library/styflux/prefix/prefix.styl b/frontend/library/styflux/prefix/prefix.styl
new file mode 100755
index 0000000..6848059
--- /dev/null
+++ b/frontend/library/styflux/prefix/prefix.styl
@@ -0,0 +1,39 @@
+border-radius()

+	-webkit-border-radius arguments

+	-moz-border-radius arguments

+	-ms-border-radius arguments

+	-o-border-radius arguments

+	border-radius arguments

+box-shadow()

+	-moz-box-shadow arguments

+	-webkit-box-shadow arguments

+	box-shadow arguments

+box-sizing()

+	box-sizing border-box

+	-webkit-box-sizing border-box

+	-moz-box-sizing border-box

+transition()

+	transition arguments

+	-webkit-transition arguments

+	-moz-transition arguments

+transitionFavorite(o,es,t,ef)	

+	transition opacity o ease-in-out es,transform t ease-in-out ef

+	transition opacity o ease-in-out es,-webkit-transform t ease-in-out ef

+	transition opacity o ease-in-out es,-moz-transform t ease-in-out ef

+transform()

+	-webkit-transform arguments

+	-moz-transform arguments

+	-ms-transform arguments

+	transform arguments

+perspective()

+	-webkit-perspective arguments

+	-moz-perspective arguments

+	perspective arguments

+backface-visibility()

+	-webkit-backface-visibility arguments

+	-moz-backface-visibility arguments

+	backface-visibility arguments

+transform-style()

+	-webkit-transform-style arguments

+	-moz-transform-style arguments

+	transform-style arguments
\ No newline at end of file
diff --git a/frontend/library/styflux/styflux.styl b/frontend/library/styflux/styflux.styl
new file mode 100755
index 0000000..c9d54bc
--- /dev/null
+++ b/frontend/library/styflux/styflux.styl
@@ -0,0 +1,3 @@
+@import "prefix/prefix.styl"

+@import "fonts/fonts.styl"

+@import "utils/utils.styl"
\ No newline at end of file
diff --git a/frontend/library/styflux/utils/utils.styl b/frontend/library/styflux/utils/utils.styl
new file mode 100755
index 0000000..b8e0758
--- /dev/null
+++ b/frontend/library/styflux/utils/utils.styl
@@ -0,0 +1,10 @@
+hoverLighten(rgb,percent)
+	color rgb
+	transition color .3s ease
+	&:hover
+		color lighten(rgb,percent)
+backgroundLighten(rgb,percent)
+	background-color rgb
+	transition background-color .3s ease
+	&:hover
+		background-color lighten(rgb,percent)
\ No newline at end of file
diff --git a/frontend/node_modules/styflux/README.md b/frontend/node_modules/styflux/README.md
new file mode 100755
index 0000000..b73b94d
--- /dev/null
+++ b/frontend/node_modules/styflux/README.md
@@ -0,0 +1,3 @@
+# Styflux

+

+Un framework de desarrollo Frontend.
\ No newline at end of file
diff --git a/frontend/node_modules/styflux/index.js b/frontend/node_modules/styflux/index.js
new file mode 100755
index 0000000..36fee1f
--- /dev/null
+++ b/frontend/node_modules/styflux/index.js
@@ -0,0 +1,11 @@
+#!/usr/bin/env node

+

+/*

+ * Styflux

+ * @author: Brayan113@gmail.com

+ * @date: 24-abr-2013

+ * @name: index.js

+ * @licence: MIT

+*/

+

+module.exports = require('./lib/styflux.js');
\ No newline at end of file
diff --git a/frontend/node_modules/styflux/lib/styflux.js b/frontend/node_modules/styflux/lib/styflux.js
new file mode 100755
index 0000000..204e306
--- /dev/null
+++ b/frontend/node_modules/styflux/lib/styflux.js
@@ -0,0 +1,267 @@
+#!/usr/bin/env node

+

+var fs=require('fs'),

+	os=require('os'),

+	path=require('path'),

+	exec = require('child_process').exec,child;

+

+(function(styflux){

+	/* Utils */

+	styflux.createDirectory=function(path,name,callback){ //Crea directorios

+		fs.mkdir(path+"/"+name, 0777, function(err){

+			(err!=null)?console.log("Ya existe el directorio "+path+"/"+name):callback&&callback();			

+		});

+	};

+	styflux.createFile=function(path,content,callback){ //Crea archivos

+		var cont=content || "";

+		fs.writeFile(path, cont,function (err) {

+			if (err) throw err;

+			callback&&callback();

+		});

+	};

+	styflux.readFile=function(path,callback){ //Lee archivos

+		fs.readFile(path, function (err,data) {

+			if (err) throw err;

+			callback&&callback(data);

+		});

+	};

+	styflux.hiddenWin=function(path){ //Oculta un archivo en windows

+		child=exec("ATTRIB -S -R +H "+path,function (err, stdout, stderr) {

+			if (err) throw err;

+		});

+	};

+	styflux.tmpFile=function(file,callback){ //Genera un archivo temporal		

+		var _this=this,

+			flagWin=('win32' == os.platform())?true:false,

+			fname=path.basename(file,".styl"),

+			routeTmp=file.split(path.basename(file)).join("")+"."+fname+".styl";

+		_this.readFile(file,function(data){

+			_this.createFile(routeTmp,data,function(){

+				if(flagWin){_this.hiddenWin(routeTmp);}

+				callback&&callback(data,routeTmp,fname+".styl");

+			});

+		});

+	};

+	styflux.pathRelative=function(from,to){ //Obtiene ruta relativa

+		var rpta=path.relative(from,to);

+		return rpta.slice(3);

+	};

+	styflux.interpretPrefix=function(route,file){ //Interprete de prefijos . Route (Ruta de archivo que contiene los imports) y file (Ruta de la importacion)

+		var _this=this,

+			flagWin=('win32' == os.platform())?true:false,

+			json={

+				"prepend":"", //Devuelve todos los imports que van al inicio del contenido

+				"append":"", //Devuelve todos los imports que van al final del contenido

+				"last":"" //Devuelve todos los imports que van al final

+			},

+			rout=this.pathRelative(route,file.replace(/\[\@[0-9a-zA-Z]+\]/g,"")), //ruta del archivo final			

+			arrs=file.match(/\[\@[0-9a-zA-Z]+\]/g); //Devuelve todos los prefijos en un array

+			interpret={

+				"[@inc]":function(){ //Le quita todos los ../

+					rout=(flagWin)?rout.replace(/\.\.\\/g,""):rout.replace(/\.\.\//gi,"");

+				},

+				"[@pp]":function(){ //Identifica que va al final del documento

+					json.prepend=json.prepend+"\n@import '"+rout+"'";

+				},

+				"[@ult]":function(){ //Identifica que debe ir al final de todos los includes

+					json.last=json.last+"\n@import '"+rout+"'";

+				},

+				"default":function(){ //Identifica que debe ir al inicio del documento

+					json.append=json.append+"@import '"+rout+"'\n";

+				}

+			};

+		if(arrs!=null){

+			arrs.forEach(function(arr){

+				interpret[arr]();

+			});

+			(arrs.length==1&&arrs.indexOf("[@inc]")>=0)?interpret["default"]():"";

+		}else{

+			interpret["default"]();

+		}

+		return json;

+	};

+	/* Fin Utils */

+	styflux.createRoutes=function(arrs){ //Crea las rutas para los helpers y los includes. En el callback devuelve la ruta y el nombre del archivo

+		var route={

+				"helpers":"./view-helpers/",

+				"includes":"[@inc]"

+			},

+			_this=this,

+		json=arrs.json || {}, //Json 

+		result=arrs.result || "", //Respuesta

+		callback=arrs.callback; //Callback

+		if(json.constructor==Object){

+			var arr=json;

+			for(var index in arr){

+				(function(index,arr,result,_this){

+					if(typeof route[index]!="undefined"){

+						_this.createRoutes({"json":arr[index],"result":route[index],"callback":callback});

+					}else{

+						var rsp=result+index;

+						(typeof arr[index]=="string")?callback(rsp+"/"+arr[index],arr[index]):_this.createRoutes({"json":arr[index],"result":rsp,"callback":callback});

+					}

+

+				})(index,arr,result,_this);

+			}

+		}else if(json.constructor==Array){

+			json.forEach(function(file){

+				callback&&callback(result+"/"+file,file);

+			});

+		}

+	};

+	styflux.appendFile=function(route,vars,imports,data,callback){ //Agrega data al inicio del archivo

+		//@route Ruta del Archivo a agregar data. Formato: PATH + file

+		//@vars JSON de Variables que se van asociar al archivo

+		//@imports JSON de Importaciones del archivo

+		//@data Data del archivo original

+		var _this=this,

+			file=path.basename(route).replace(".",""), //Nombre del archivo

+			arr=vars || {}, //Array de variables

+			content=data || "",  //Almacena la data del archivo

+			attr="", //Variable temporal que almacena los valores de cada variable

+			global="", //Almacena toda las variables globales

+			tmpVarObj= null, //Almacena temporalmento un objeto correspondiente a las variables

+			privateVar="", //Almacena las variables que solo se usaran en

+			prepend="", //Almacena un string de los includes que van al inicio del archivo

+			append="", //Almacena un string de los includes que van al final del archivo

+			last=""; // Almacena un string de los includes que van al final de los includes.

+		/* Interprete de Variables */

+		for(var index in arr){

+			if(arr[index].constructor==Object){

+				tmpVarObj= arr[index];

+				if(index=="global"||index==file){

+					for(var vars in tmpVarObj){

+						var vprefix=tmpVarObj[vars].match(/\[\@[0-9a-zA-Z]+\]/g); //Devuelve todos los prefijos en un array

+						attr=(vprefix!=null)?'"'+tmpVarObj[vars].replace(/\[\@[0-9a-zA-Z]+\]/g,"")+'"':tmpVarObj[vars].replace(/\[\@[0-9a-zA-Z]+\]/g,"");

+						if(index!="global"){

+							privateVar=privateVar+vars+"="+attr+"\n";

+						}else{

+							global=global+vars+"="+attr+"\n";

+						}

+					}

+				}

+			}else{

+				var vprefix=arr[index].match(/\[\@[0-9a-zA-Z]+\]/g); //Devuelve todos los prefijos en un array

+				attr=(vprefix!=null)?'"'+arr[index].replace(/\[\@[0-9a-zA-Z]+\]/g,"")+'"':arr[index].replace(/\[\@[0-9a-zA-Z]+\]/g,"");

+				global=global+index+"="+attr+"\n";

+			}			

+		}

+		/* Interprete de Importaciones  */

+		_this.createRoutes({"json":imports[file],"callback":function(file,name){

+			var json=_this.interpretPrefix(route,file);

+			prepend=prepend+json.prepend;

+			append=append+json.append;

+			last=last+json.last;

+		}});

+		content="@import '"+this.pathRelative(route,"./library/styflux/styflux.styl")+"'\n"+prepend+"\n"+content+"\n"+append+"\n"+last;

+		/* Funcionando Varibles con content de importarcions */

+		content=global+privateVar+content;

+		_this.createFile(route,content,function(data){

+			callback&&callback(content);

+		});

+	};

+	styflux.compile=function(path,params,callback){ //Compilar

+		var comnd=params.cmdr || "",

+			 dest=params.route || "",

+			 name=params.origName.replace(".styl",".css");

+		child = exec("stylus -c "+path+" "+comnd+" "+dest, function (error, stdout, stderr) {

+			if (error != null) {console.log(error);}

+			child=exec("mv "+dest+"."+name+" "+dest+name, function (error, stdout, stderr) {

+				if (error != null) {console.log(error);}

+				callback&&callback();

+			});

+		});

+	};

+	styflux.mapFiles=function(dir,ext,ignore,callback){ //Buscador de Archivos, busca archivos segun una extension y devuelve sus rutas

+		var _this=this;

+		fs.readdir(dir, function(err,files){

+			if(err) return console.log(err);

+			files.forEach(function(file){

+				var nfile=file;		

+				file=dir+'/'+file;

+				fs.stat(file,function(err,stat){

+					if(stat.isDirectory()){

+						if(ignore.indexOf(file)==-1){_this.mapFiles(file,ext,ignore,callback);}

+					}else{

+						(path.extname(file)===ext)?callback&&callback(file,nfile):"";

+					};

+				});

+			});

+		});

+	};

+	styflux.arrmapFiles=function(dir,ext,ignore,result){ //Buscador de Archivos, busca archivos segun una extension y devuelve sus rutas

+		var _this=this,

+			 res=result || [],

+			 files=fs.readdirSync(dir);

+		files.forEach(function(file){

+			file=dir+'/'+file;

+			var status=fs.statSync(file);

+			if(status.isDirectory()){

+				if(ignore.indexOf(file)==-1){_this.arrmapFiles(file,ext,ignore,res);}

+			}else{

+				(path.extname(file)===ext)?res.push(file):"";

+			}

+		});

+		return res;

+	};

+	styflux.dispatchCreate=function(path,name,content){ //Despachador, verifica si es un archivo o un directorio y segun ello toma las acciones respectivas

+		var _this=this;		

+		if(name.split(".").length==1){

+			_this.createDirectory(path,name);

+		}else{

+			if(typeof content=="object"){				

+				_this.readFile(content.path+"/"+content.file,function(data){

+					_this.createFile(path+"/"+name,data);

+				});				

+			}else{

+				_this.createFile(path+"/"+name);

+			}

+		}

+	};

+	/* Funciones Globales*/

+	styflux.createProject=function(routes,dir,source){ //Crea el proyecto en base a las rutas propocionadas

+		var _this=this;

+		if(typeof routes=="object"){

+			for(index in routes){

+				if(typeof routes[index]=="string"&&routes[index].split("@").length>1){

+					_this.dispatchCreate(dir,index,{"file":routes[index].split("@").join(""),"path":source});

+				}else{

+					_this.dispatchCreate(dir,index);

+				}				

+				if(typeof routes[index]=="object"){

+					_this.createProject(routes[index],dir+"/"+index,source);

+				}

+			}

+		}else{

+			_this.dispatchCreate(dir,routes);

+		}

+	};

+	styflux.compileProject=function(routes,vars,compile){ //Compila el proyecto

+		var _this=this;

+		for(var i in routes){

+			var dir=routes[i]["path"], //Ruta a recorre

+				ignore=routes[i]["ignore"], //Rutas a ignorar

+				imports=routes[i]["imports"]; //Rutas a importar

+			(function(dir,ignore,imports){

+				ignore.forEach(function(ign,index){ //Modifica el ignore, anadiendo su ruta base

+					ignore[index]=routes[i]["path"]+"/"+ign;

+				});

+

+				_this.mapFiles(dir,compile.ext,ignore,function(file,name){ //Devuelve rutas de archivos

+					_this.tmpFile(file,function(data,routeTmp,nameOrig){ //Devuelve la lectura del archivo y la ruta temporal

+						_this.appendFile(routeTmp,vars,imports,data,function(content){ //Agrega las variables al inicio o al final

+							//console.log(routeTmp);

+							compile["origName"]=nameOrig;

+							_this.compile(routeTmp,compile,function(){ //Compila

+								//_this.createFile(file,data,function(){ //Crea archivo

+									fs.unlink(routeTmp); //Borra temporal

+								//});

+							});

+						});

+					});

+				});

+

+			})(dir,ignore,imports);

+		}

+	};

+})(typeof exports === "undefined"? styflux={}:exports)
\ No newline at end of file
diff --git a/frontend/node_modules/styflux/package.json b/frontend/node_modules/styflux/package.json
new file mode 100755
index 0000000..bfe88d9
--- /dev/null
+++ b/frontend/node_modules/styflux/package.json
@@ -0,0 +1,27 @@
+{

+  "name": "styflux",

+  "version": "0.1.7",

+  "description": "Framework CSS basado en Stylus",

+  "author": {

+    "name": "EvangelizandoLaWeb"

+  },

+  "preferGlobal": "true",

+  "bin": {

+    "styflux": "./bin/styflux"

+  },

+  "main": "./lib/styflux",

+  "repository": {

+    "type": "git",

+    "url": "http://github.com/pinguxx/node-bowser.git"

+  },

+  "engines": {

+    "node": "> 0.2.0"

+  },

+  "keywords": [

+    "framework css stylus front"

+  ],

+  "readme": "# Styflux\r\n\r\nUn framework de desarrollo Frontend.",

+  "readmeFilename": "README.md",

+  "_id": "styflux@0.1.6",

+  "_from": "styflux@"

+}
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqDataTable.styl b/frontend/view-helpers/plugins/jqDataTable.styl
new file mode 100755
index 0000000..9d6680b
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqDataTable.styl
@@ -0,0 +1,186 @@
+/*
+*	jqDatable
+*/
+.dataTables_wrapper
+	*zoom 1
+	clear both
+	position relative
+	*zoom 1
+	&:before,&:after
+		display table
+		content ""
+		line-height 0
+	&:after
+		clear both
+.dataTables_length
+	display block
+	float right
+	padding 12px 10px
+	& > label > span
+		float left
+		margin-right 6px
+		margin-top 4px
+	select
+		border 1px solid #D7D7D7
+		padding 3px
+.dataTable
+	thead
+		tr
+			height 35px
+		th
+			border-bottom 1px solid #D5D5D5
+			color #878787
+			cursor pointer
+			line-height 20px
+			padding 3px 0 2px 0
+			text-align left
+			filter unquote("progid:DXImageTransform.Microsoft.gradient( startColorstr='#fafafa', endColorstr='#efefef',GradientType=0 )")
+			&:first-child
+				border-left 0
+			&.sorting_disabled
+				cursor default
+	tr
+		font-size 14px
+		max-height 24px
+	tfoot
+		tr:hover
+			background none
+	.dataTables_empty
+		background #EBEFEF
+		text-align center
+.dataTables_filter
+	display block
+	float left
+	padding 14px 12px
+	position relative
+	input[type="text"]
+		background #F9F9F9
+		border 1px solid #D7D7D7
+		box-shadow 0 1px 0 white
+		height auto
+		margin-left 15px
+		padding 5px 7px
+		width 180px
+.dataTables_filter > label, .dataTables_length > label
+	margin 0
+.dataTables_info
+	display block
+	float left
+	line-height 22px
+	padding 12px
+.dataTables_paginate
+	float right
+	margin 12px
+.datatable-header
+	background #fafafa
+	border-bottom 1px solid #ddd
+.datatable-footer
+	background #fcfcfc
+	background -moz-linear-gradient(top,  #fcfcfc 0%, #f5f5f5 100%)
+	background -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fcfcfc), color-stop(100%,#f5f5f5))
+	background -webkit-linear-gradient(top,  #fcfcfc 0%,#f5f5f5 100%)
+	background -o-linear-gradient(top,  #fcfcfc 0%,#f5f5f5 100%)
+	background -ms-linear-gradient(top,  #fcfcfc 0%,#f5f5f5 100%)
+	background linear-gradient(top,  #fcfcfc 0%,#f5f5f5 100%)
+	border-top 1px solid #ddd
+	padding 1px 0
+.datatable-header:after, .datatable-footer:after
+	clear both
+	content ""
+	display block
+.paging_full_numbers
+	height 22px
+	line-height 22px
+.paging_full_numbers .next:active, .paging_full_numbers .first:active, .paging_full_numbers .previous:active, .paging_full_numbers .last:active
+	font-weight normal !important
+.paging_full_numbers a:active
+	outline none
+.paging_full_numbers a:hover
+	text-decoration none
+.paging_full_numbers a.paginate_button, .paging_full_numbers a.paginate_active
+	border 1px solid #d3d3d3
+	border-radius 2px
+	box-shadow 0 1px 0 #fff inset, 0 1px 0px #eaeaea
+	color #919191
+	cursor pointer
+	*cursor hand
+	font-size 11px
+	margin 0 3px
+	padding 5px 8px
+.paging_full_numbers a.paginate_button
+	background #ffffff
+	background -moz-linear-gradient(top,  #ffffff 0%, #f5f5f5 100%)
+	background -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#f5f5f5))
+	background -webkit-linear-gradient(top,  #ffffff 0%,#f5f5f5 100%)
+	background -o-linear-gradient(top,  #ffffff 0%,#f5f5f5 100%)
+	background -ms-linear-gradient(top,  #ffffff 0%,#f5f5f5 100%)
+	background linear-gradient(top,  #ffffff 0%,#f5f5f5 100%)
+.paging_full_numbers a.paginate_button:hover
+	background #fcfcfc
+	color #FFEB00
+.paging_full_numbers a.paginate_active, .paging_full_numbers a.paginate_button:active
+	background #FFEB00
+	border-color #FFEB00
+	box-shadow 0 1px 2px #545454 inset, 0 1px 0 #fff
+	color #fff
+	font-weight bold
+.paginate_button_disabled, .paginate_button_disabled:active
+	background #F9F9F9!important
+	border 1px solid #E5E5E5!important
+	box-shadow none!important
+	color #CCC!important
+	font-weight normal!important
+.paginate_button_disabled:active
+	border-color #d3d3d3!important
+.dataTables_processing
+	background-color white
+	border 1px solid #ddd
+	color #999
+	font-size 14px
+	height 30px
+	left 50%
+	margin-left -125px
+	margin-top -15px
+	padding 14px 0 2px 0
+	position absolute
+	text-align center
+	top 50%
+	width 250px
+table.dataTable th:active
+	outline none
+.dataTables_scrollBody
+	*margin-top -1px
+	-webkit-overflow-scrolling touch
+table.display
+	border-collapse collapse
+	clear both
+	margin 0 auto
+	width 100%
+table.display tfoot th
+	font-weight bold
+	font-weight normal
+	padding 3px 0px 3px 10px
+table.display tr.heading2 td
+	border-bottom 1px solid #aaa
+table.display td
+	padding 8px 10px
+table.display td.center
+	text-align center
+table.display tr
+	border-top 1px solid #e7e7e7
+table.display tr:first-child
+	border-top 0
+table.display td
+	border-left 1px solid #e7e7e7
+table.display td:first-child
+	border-left none
+tr.odd
+	background-color #E2E4FF
+tr.even
+	background-color white
+table.display tr.even.row_selected td, table.display tr.odd.row_selected td
+	background-color #9FAFD1
+	color #FFF
+tfoot
+	tr:hover
+		background #FFF
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqDatepicker.styl b/frontend/view-helpers/plugins/jqDatepicker.styl
new file mode 100755
index 0000000..e194df0
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqDatepicker.styl
@@ -0,0 +1,126 @@
+/*
+*	jqDatepicker
+*/
+.ui-datepicker
+	width 17em
+	padding .2em .2em 0
+	display none
+.ui-datepicker .ui-datepicker-header
+	position relative
+	padding .2em 0
+.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next
+	height 1.8em
+	position absolute
+	top 2px
+	width 1.8em
+.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover
+	top 1px
+.ui-datepicker .ui-datepicker-prev
+	left 2px
+.ui-datepicker .ui-datepicker-next
+	right 2px
+.ui-datepicker .ui-datepicker-prev-hover
+	left 1px
+.ui-datepicker .ui-datepicker-next-hover
+	right 1px
+.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span
+	display block
+	left 50%
+	margin-left -8px
+	margin-top -8px
+	position absolute
+	top 50%
+.ui-datepicker .ui-datepicker-title
+	line-height 1.8em
+	margin 0 2.3em
+	text-align center
+.ui-datepicker .ui-datepicker-title select
+	font-size 1em
+	margin 1px 0
+.ui-datepicker select.ui-datepicker-month-year
+	width 100%
+.ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year
+	border none
+	color #000
+	padding 0
+	width 49%
+.ui-datepicker table
+	border-collapse collapse
+	font-size .9em
+	margin 0 0 .4em
+	width 100%
+.ui-datepicker th
+	padding .7em .3em
+	text-align center
+	font-weight bold
+	border 0
+.ui-datepicker td
+	border 0
+	padding 1px
+.ui-datepicker td span, .ui-datepicker td a
+	display block
+	padding .2em
+	text-align right
+	text-decoration none
+.ui-datepicker .ui-datepicker-buttonpane
+	background-image none
+	border-bottom 0
+	border-left 0
+	border-right 0
+	margin .7em 0 0 0
+	padding 0 .2em
+.ui-datepicker .ui-datepicker-buttonpane button
+	cursor pointer
+	float right
+	margin .5em .2em .4em
+	overflow visible
+	padding .2em .6em .3em .6em
+	width auto
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current
+	float left
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi
+	width auto
+.ui-datepicker-multi .ui-datepicker-group
+	float left
+.ui-datepicker-multi .ui-datepicker-group table
+	width 95%
+	margin 0 auto .4em
+.ui-datepicker-multi-2 .ui-datepicker-group
+	width 50%
+.ui-datepicker-multi-3 .ui-datepicker-group
+	width 33.3%
+.ui-datepicker-multi-4 .ui-datepicker-group
+	width 25%
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header 
+	border-left-width 0
+.ui-datepicker-multi .ui-datepicker-buttonpane
+	clear left
+.ui-datepicker-row-break
+	clear both
+	width 100%
+	font-size 0
+/* RTL support */
+.ui-datepicker-rtl
+	direction rtl
+.ui-datepicker-rtl .ui-datepicker-prev
+	left auto
+	right 2px
+.ui-datepicker-rtl .ui-datepicker-next
+	left 2px
+	right auto
+.ui-datepicker-rtl .ui-datepicker-prev:hover
+	left auto
+	right 1px
+.ui-datepicker-rtl .ui-datepicker-next:hover
+	left 1px
+	right auto
+.ui-datepicker-rtl .ui-datepicker-buttonpane
+	clear right
+.ui-datepicker-rtl .ui-datepicker-buttonpane button
+	float left
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group
+	float right
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header
+	border-right-width 0
+	border-left-width 1px
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqDraggable.styl b/frontend/view-helpers/plugins/jqDraggable.styl
new file mode 100755
index 0000000..1703436
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqDraggable.styl
@@ -0,0 +1,5 @@
+/**
+* Plugin jqDraggable
+* @class Plugin jqDraggable
+* @module helpers.css
+*/
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqFancybox.styl b/frontend/view-helpers/plugins/jqFancybox.styl
new file mode 100755
index 0000000..dc90246
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqFancybox.styl
@@ -0,0 +1,177 @@
+/**
+* Plugin jqFancybox - jqFancybox.js
+* @class Plugin jqFancybox
+* @module helpers.css
+*/
+.fancybox-wrap,.fancybox-skin,.fancybox-outer,.fancybox-inner,.fancybox-image,.fancybox-wrap iframe,.fancybox-wrap object,.fancybox-nav,.fancybox-nav span,.fancybox-tmp
+	border 0
+	margin 0
+	outline none
+	padding 0
+	vertical-align top
+.fancybox-wrap
+	left 0
+	position absolute
+	top 0
+	z-index 8020
+.fancybox-skin
+	background #f9f9f9
+	border-radius 4px
+	color #444
+	position relative
+	text-shadow none
+.fancybox-opened
+	z-index 8030
+.fancybox-opened .fancybox-skin
+	box-shadow 0 4px 8px rgba(0, 0, 0, 0.3)
+.fancybox-outer, .fancybox-inner
+	position relative
+.fancybox-inner
+	overflow hidden
+.fancybox-type-iframe .fancybox-inner
+	-webkit-overflow-scrolling touch
+.fancybox-error
+	color #444
+	font 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif
+	margin 0
+	padding 15px
+	white-space nowrap
+.fancybox-image, .fancybox-iframe
+	display block
+	width 100%
+	height 100%
+.fancybox-image
+	max-width 100%
+	max-height 100%
+#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span
+	background-image url(routImgFancybox+'fancybox_sprite.png')
+#fancybox-loading
+	position fixed
+	top 50%
+	left 50%
+	margin-top -22px
+	margin-left -22px
+	background-position 0 -108px
+	opacity 0.8
+	cursor pointer
+	z-index 8060
+#fancybox-loading div
+	width 44px
+	height 44px
+	background url(routImgFancybox+'fancybox_loading.gif') center center no-repeat
+.fancybox-close
+	cursor pointer
+	height 36px
+	position absolute
+	right -18px
+	top -18px
+	width 36px
+	z-index 8040
+.fancybox-nav
+	position absolute
+	top 0
+	width 40%
+	height 100%
+	cursor pointer
+	text-decoration none
+	background transparent url(routImgFancybox+'blank.gif')
+	-webkit-tap-highlight-color rgba(0,0,0,0)
+	z-index 8040
+.fancybox-prev
+	left 0
+.fancybox-next
+	right 0
+.fancybox-nav span
+	position absolute
+	top 50%
+	width 36px
+	height 34px
+	margin-top -18px
+	cursor pointer
+	z-index 8040
+	visibility hidden
+.fancybox-prev span
+	left 10px
+	background-position 0 -36px
+.fancybox-next span
+	right 10px
+	background-position 0 -72px
+.fancybox-navhover span
+	visibility visible
+.fancybox-tmp
+	position absolute
+	top -99999px
+	left -99999px
+	visibility hidden
+	max-width 99999px
+	max-height 99999px
+	overflow visible !important
+.fancybox-lock
+	overflow hidden !important
+	width auto
+.fancybox-lock body
+	overflow hidden !important
+.fancybox-lock-test
+	overflow-y hidden !important
+.fancybox-overlay
+	background url(routImgFancybox+'fancybox_overlay.png')
+	display none
+	left 0
+	overflow hidden
+	position absolute
+	top 0
+	z-index 8010
+.fancybox-overlay-fixed
+	position fixed
+	bottom 0
+	right 0
+.fancybox-lock .fancybox-overlay
+	overflow auto
+	overflow-y scroll
+.fancybox-title
+	visibility hidden
+	font normal 13px/20px Arial,sans-serif
+	position relative
+	text-shadow none
+	z-index 8050
+.fancybox-opened .fancybox-title
+	visibility visible
+.fancybox-title-float-wrap
+	position absolute
+	bottom 0
+	right 50%
+	margin-bottom -35px
+	z-index 8050
+	text-align center
+.fancybox-title-float-wrap .child
+	background rgba(0, 0, 0, 0.8)
+	background transparent
+	border-radius 15px
+	color #FFF
+	display inline-block
+	font-weight bold
+	line-height 24px
+	margin-right -100%
+	padding 2px 20px
+	text-shadow 0 1px 2px #222
+	white-space nowrap
+.fancybox-title-outside-wrap
+	position relative
+	margin-top 10px
+	color #fff
+.fancybox-title-inside-wrap
+	padding-top 10px
+.fancybox-title-over-wrap
+	position absolute
+	bottom 0
+	left 0
+	color #fff
+	padding 10px
+	background #000
+	background rgba(0, 0, 0, .8)
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),only screen and (min--moz-device-pixel-ratio: 1.5),only screen and (min-device-pixel-ratio: 1.5)
+	#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span
+		background-image url(routImgFancybox+'fancybox_sprite@2x.png')
+		background-size 44px 152px
+	#fancybox-loading div
+		background-image url(routImgFancybox+'fancybox_loading@2x.gif')
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqFullCalendar.styl b/frontend/view-helpers/plugins/jqFullCalendar.styl
new file mode 100755
index 0000000..1827a7b
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqFullCalendar.styl
@@ -0,0 +1,293 @@
+.fc
+	direction ltr
+	text-align left	
+.fc table
+	border-collapse collapse
+	border-spacing 0
+html .fc, .fc table
+	font-size 1em
+.fc td,.fc th
+	padding 0
+	vertical-align top
+.fc-header td
+	white-space nowrap
+.fc-header-left
+	width 25%
+	text-align left
+.fc-header-center
+	text-align center
+.fc-header-right
+	width:25%
+	text-align right
+.fc-header-title
+	display inline-block
+	vertical-align top
+.fc-header-title h2
+	margin-top 0
+	white-space nowrap
+.fc .fc-header-space
+	padding-left 10px
+.fc-header .fc-button
+	margin-bottom 1em
+	vertical-align top
+.fc-header .fc-button
+	margin-right -1px
+.fc-header .fc-corner-right,.fc-header .ui-corner-right
+	margin-right 0
+.fc-header .fc-state-hover,.fc-header .ui-state-hover
+	z-index 2
+.fc-header .fc-state-down
+	z-index 3
+.fc-header .fc-state-active,.fc-header .ui-state-active
+	z-index 4
+.fc-content
+	clear both
+	zoom 1
+.fc-view
+	width 100%
+	overflow hidden
+.fc-widget-header,.fc-widget-content
+	border 1px solid #ddd
+.fc-state-highlight
+	background #fcf8e3
+.fc-cell-overlay
+	background #bce8f1
+	opacity .3
+	filter unquote("alpha(opacity=30)")
+.fc-button
+	position relative
+	display inline-block
+	padding 0 .6em
+	overflow hidden
+	height 1.9em
+	line-height 1.9em
+	white-space nowrap
+	cursor pointer
+.fc-state-default
+	border 1px solid
+.fc-state-default.fc-corner-left
+	border-top-left-radius 4px
+	border-bottom-left-radius 4px
+.fc-state-default.fc-corner-right
+	border-top-right-radius 4px
+	border-bottom-right-radius 4px
+.fc-text-arrow
+	margin 0 .1em
+	font-size 2em
+	font-family "Courier New", Courier, monospace
+	vertical-align baseline
+.fc-button-prev .fc-text-arrow,.fc-button-next .fc-text-arrow
+	font-weight bold
+.fc-button .fc-icon-wrap
+	position relative
+	float left
+	top 50%
+.fc-button .ui-icon
+	position relative
+	float left
+	margin-top -50%
+	*margin-top 0
+	*top -50%
+.fc-state-default
+	background-color #f5f5f5
+	background-image -moz-linear-gradient(top, #ffffff, #e6e6e6)
+	background-image -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6))
+	background-image -webkit-linear-gradient(top, #ffffff, #e6e6e6)
+	background-image -o-linear-gradient(top, #ffffff, #e6e6e6)
+	background-image linear-gradient(to bottom, #ffffff, #e6e6e6)
+	background-repeat repeat-x
+	border-color #e6e6e6 #e6e6e6 #bfbfbf
+	border-color rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25)
+	color #333
+	text-shadow 0 1px 1px rgba(255, 255, 255, 0.75)
+	box-shadow inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05)
+.fc-state-hover,.fc-state-down,.fc-state-active,.fc-state-disabled
+	color #333
+	background-color #e6e6e6
+.fc-state-hover
+	color #333
+	text-decoration none
+	background-position 0 -15px
+	-webkit-transition background-position 0.1s linear
+	-moz-transition background-position 0.1s linear
+	-o-transition: background-position 0.1s linear
+	transition: background-position 0.1s linear
+.fc-state-down,.fc-state-active
+	background-color #ccc
+	background-image none
+	outline 0
+	box-shadow inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05)
+.fc-state-disabled
+	cursor default
+	background-image none
+	opacity 0.65
+	filter unquote("alpha(opacity=65)")
+	box-shadow none
+.fc-event-container > *
+	z-index 8
+.fc-event-container > .ui-draggable-dragging,.fc-event-container > .ui-resizable-resizing
+	z-index 9
+.fc-event
+	background-color #3a87ad
+	border 1px solid #3a87ad
+	color #fff
+	cursor default
+	font-size .85em
+a.fc-event
+	text-decoration none
+a.fc-event,.fc-event-draggable
+	cursor pointer
+.fc-rtl .fc-event
+	text-align right
+.fc-event-inner
+	width 100%
+	height 100%
+	overflow hidden
+.fc-event-time,.fc-event-title
+	padding 0 1px
+.fc .ui-resizable-handle
+	display block
+	position absolute
+	z-index 99999
+	overflow hidden
+	font-size 300%
+	line-height 50%
+.fc-event-hori
+	border-width 1px 0
+	margin-bottom 1px
+.fc-ltr .fc-event-hori.fc-event-start,.fc-rtl .fc-event-hori.fc-event-end
+	border-left-width 1px
+	border-top-left-radius 3px
+	border-bottom-left-radius 3px
+.fc-ltr .fc-event-hori.fc-event-end,.fc-rtl .fc-event-hori.fc-event-start
+	border-right-width 1px
+	border-top-right-radius 3px
+	border-bottom-right-radius 3px
+.fc-event-hori .ui-resizable-e
+	top 0 !important
+	right -3px !important
+	width 7px !important
+	height 100% !important
+	cursor e-resize
+.fc-event-hori .ui-resizable-w
+	top 0 !important
+	left -3px !important
+	width 7px !important
+	height 100% !important
+	cursor w-resize
+.fc-event-hori .ui-resizable-handle
+	_padding-bottom 14px
+table.fc-border-separate
+	border-collapse separate
+.fc-border-separate th,.fc-border-separate td
+	border-width 1px 0 0 1px
+.fc-border-separate th.fc-last,.fc-border-separate td.fc-last
+	border-right-width 1px
+.fc-border-separate tr.fc-last th,.fc-border-separate tr.fc-last td
+	border-bottom-width 1px
+.fc-border-separate tbody tr.fc-first td,.fc-border-separate tbody tr.fc-first th
+	border-top-width 0
+.fc-grid th
+	text-align center
+.fc .fc-week-number
+	width 22px
+	text-align center
+	div
+		padding 0 2px
+.fc-grid .fc-day-number
+	float right
+	padding 0 2px
+.fc-grid .fc-other-month .fc-day-number
+	opacity 0.3
+	filter unquote("alpha(opacity=30)")
+.fc-grid .fc-day-content
+	clear both
+	padding 2px 2px 1px
+.fc-grid .fc-event-time
+	font-weight bold
+.fc-rtl .fc-grid .fc-day-number
+	float left
+.fc-rtl .fc-grid .fc-event-time
+	float right
+.fc-agenda table
+	border-collapse separate
+.fc-agenda-days th
+	text-align center
+.fc-agenda .fc-agenda-axis
+	width 50px
+	padding 0 4px
+	vertical-align middle
+	text-align right
+	white-space nowrap
+	font-weight normal
+.fc-agenda .fc-week-number
+	font-weight bold
+.fc-agenda .fc-day-content
+	padding 2px 2px 1px
+.fc-agenda-days .fc-agenda-axis
+	border-right-width 1px
+.fc-agenda-days .fc-col0
+	border-left-width 0
+.fc-agenda-allday th
+	border-width 0 1px
+.fc-agenda-allday .fc-day-content
+	min-height 34px
+	_height 34px
+.fc-agenda-divider-inner
+	height 2px
+	overflow hidden
+.fc-widget-header .fc-agenda-divider-inner
+	background #eee
+.fc-agenda-slots th
+	border-width 1px 1px 0
+.fc-agenda-slots td
+	border-width 1px 0 0
+	background none
+.fc-agenda-slots td div
+	height 20px
+.fc-agenda-slots tr.fc-slot0 th,.fc-agenda-slots tr.fc-slot0 td
+	border-top-width 0
+.fc-agenda-slots tr.fc-minor th,.fc-agenda-slots tr.fc-minor td
+	border-top-style dotted
+.fc-agenda-slots tr.fc-minor th.ui-widget-header
+	*border-top-style solid
+.fc-event-vert
+	border-width 0 1px
+.fc-event-vert.fc-event-start
+	border-top-width 1px
+	border-top-left-radius 3px
+	border-top-right-radius 3px
+.fc-event-vert.fc-event-end
+	border-bottom-width 1px
+	border-bottom-left-radius 3px
+	border-bottom-right-radius 3px
+.fc-event-vert .fc-event-time
+	white-space nowrap
+	font-size 10px
+.fc-event-vert .fc-event-inner
+	position relative
+	z-index 2
+.fc-event-vert .fc-event-bg
+	position absolute
+	z-index 1
+	top 0
+	left 0
+	width 100%
+	height 100%
+	background #fff
+	opacity .25
+	filter unquote("alpha(opacity=25)")
+.fc .ui-draggable-dragging .fc-event-bg,.fc-select-helper .fc-event-bg
+	display none\9
+.fc-event-vert .ui-resizable-s
+	bottom 0 !important
+	width 100% !important
+	height 8px !important
+	overflow hidden !important
+	line-height 8px !important
+	font-size 11px !important
+	font-family monospace
+	text-align center
+	cursor s-resize
+.fc-agenda .ui-resizable-resizing
+	_overflow hidden
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqPlaceholder.styl b/frontend/view-helpers/plugins/jqPlaceholder.styl
new file mode 100755
index 0000000..a634d1d
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqPlaceholder.styl
@@ -0,0 +1,12 @@
+/**
+* Plugin jqPlaceholder - jqPlaceholder.js
+* @class Plugin jqPlaceholder
+* @module helpers.css
+*/
+.plc-label
+	color #999
+	font-size 12px
+	line-height 16px
+.lt-ie9
+	.plc-label
+		background url(routPlaceholder+"opacity.png")
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqTinyScroll.styl b/frontend/view-helpers/plugins/jqTinyScroll.styl
new file mode 100755
index 0000000..eaf5544
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqTinyScroll.styl
@@ -0,0 +1,45 @@
+/**
+* Plugin jqTinyScroll - jqTinyScroll.js
+* @class Plugin jqTinyScroll
+* @module helpers.css
+*/
+.viewport
+	overflow hidden
+	position relative
+.overview
+	left 0
+	list-style none
+	position absolute
+	top 0
+.thumb .end, .thumb
+	background-color #B1B1B1
+.scrollbar
+	border 1px solid #CBC8C8
+	float right
+	position relative
+	width 10px
+.track
+	background #FFF
+	box-shadow 1px 1px 6px rgba(211, 208, 208, 0.7) inset
+	height 100%
+	padding 0 1px
+	position relative
+	width 8px
+.thumb
+	border-radius 5px
+	cursor pointer
+	height 20px
+	overflow hidden
+	position absolute
+	top 0
+	width 8px
+.thumb .end
+	height 5px
+	overflow hidden
+	width 10px
+.noSelect
+	user-select none
+	-o-user-select none
+	-moz-user-select none
+	-khtml-user-select none
+	-webkit-user-select none
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/jqUI.styl b/frontend/view-helpers/plugins/jqUI.styl
new file mode 100755
index 0000000..abbeb4c
--- /dev/null
+++ b/frontend/view-helpers/plugins/jqUI.styl
@@ -0,0 +1,726 @@
+@css{
+	/*! jQuery UI - v1.10.4 - 2014-03-06
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.datepicker.css, jquery.ui.slider.css, jquery.ui.theme.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CHelvetica%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=glass&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=inset_soft&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=glass&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=inset_hard&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=flat&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=flat&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px
+* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */
+#ui-datepicker-div{font-size:12px}
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden {
+	display: none;
+}
+.ui-helper-hidden-accessible {
+	border: 0;
+	clip: rect(0 0 0 0);
+	height: 1px;
+	margin: -1px;
+	overflow: hidden;
+	padding: 0;
+	position: absolute;
+	width: 1px;
+}
+.ui-helper-reset {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	outline: 0;
+	line-height: 1.3;
+	text-decoration: none;
+	font-size: 100%;
+	list-style: none;
+}
+.ui-helper-clearfix:before,
+.ui-helper-clearfix:after {
+	content: "";
+	display: table;
+	border-collapse: collapse;
+}
+.ui-helper-clearfix:after {
+	clear: both;
+}
+.ui-helper-clearfix {
+	min-height: 0; /* support: IE7 */
+}
+.ui-helper-zfix {
+	width: 100%;
+	height: 100%;
+	top: 0;
+	left: 0;
+	position: absolute;
+	opacity: 0;
+	filter:Alpha(Opacity=0);
+}
+
+.ui-front {
+	z-index: 100;
+}
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled {
+	cursor: default !important;
+}
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	display: block;
+	text-indent: -99999px;
+	overflow: hidden;
+	background-repeat: no-repeat;
+}
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay {
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+.ui-datepicker {
+	width: 17em;
+	padding: .2em .2em 0;
+	display: none;
+}
+.ui-datepicker .ui-datepicker-header {
+	position: relative;
+	padding: .2em 0;
+}
+.ui-datepicker .ui-datepicker-prev,
+.ui-datepicker .ui-datepicker-next {
+	position: absolute;
+	top: 2px;
+	width: 1.8em;
+	height: 1.8em;
+}
+.ui-datepicker .ui-datepicker-prev-hover,
+.ui-datepicker .ui-datepicker-next-hover {
+	top: 1px;
+}
+.ui-datepicker .ui-datepicker-prev {
+	left: 2px;
+}
+.ui-datepicker .ui-datepicker-next {
+	right: 2px;
+}
+.ui-datepicker .ui-datepicker-prev-hover {
+	left: 1px;
+}
+.ui-datepicker .ui-datepicker-next-hover {
+	right: 1px;
+}
+.ui-datepicker .ui-datepicker-prev span,
+.ui-datepicker .ui-datepicker-next span {
+	display: block;
+	position: absolute;
+	left: 50%;
+	margin-left: -8px;
+	top: 50%;
+	margin-top: -8px;
+}
+.ui-datepicker .ui-datepicker-title {
+	margin: 0 2.3em;
+	line-height: 1.8em;
+	text-align: center;
+}
+.ui-datepicker .ui-datepicker-title select {
+	font-size: 1em;
+	margin: 1px 0;
+}
+.ui-datepicker select.ui-datepicker-month,
+.ui-datepicker select.ui-datepicker-year {
+	width: 49%;
+}
+.ui-datepicker table {
+	width: 100%;
+	font-size: .9em;
+	border-collapse: collapse;
+	margin: 0 0 .4em;
+}
+.ui-datepicker th {
+	padding: .7em .3em;
+	text-align: center;
+	font-weight: bold;
+	border: 0;
+}
+.ui-datepicker td {
+	border: 0;
+	padding: 1px;
+}
+.ui-datepicker td span,
+.ui-datepicker td a {
+	display: block;
+	padding: .2em;
+	text-align: right;
+	text-decoration: none;
+}
+.ui-datepicker .ui-datepicker-buttonpane {
+	background-image: none;
+	margin: .7em 0 0 0;
+	padding: 0 .2em;
+	border-left: 0;
+	border-right: 0;
+	border-bottom: 0;
+}
+.ui-datepicker .ui-datepicker-buttonpane button {
+	float: right;
+	margin: .5em .2em .4em;
+	cursor: pointer;
+	padding: .2em .6em .3em .6em;
+	width: auto;
+	overflow: visible;
+}
+.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
+	float: left;
+}
+
+/* with multiple calendars */
+.ui-datepicker.ui-datepicker-multi {
+	width: auto;
+}
+.ui-datepicker-multi .ui-datepicker-group {
+	float: left;
+}
+.ui-datepicker-multi .ui-datepicker-group table {
+	width: 95%;
+	margin: 0 auto .4em;
+}
+.ui-datepicker-multi-2 .ui-datepicker-group {
+	width: 50%;
+}
+.ui-datepicker-multi-3 .ui-datepicker-group {
+	width: 33.3%;
+}
+.ui-datepicker-multi-4 .ui-datepicker-group {
+	width: 25%;
+}
+.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
+	border-left-width: 0;
+}
+.ui-datepicker-multi .ui-datepicker-buttonpane {
+	clear: left;
+}
+.ui-datepicker-row-break {
+	clear: both;
+	width: 100%;
+	font-size: 0;
+}
+
+/* RTL support */
+.ui-datepicker-rtl {
+	direction: rtl;
+}
+.ui-datepicker-rtl .ui-datepicker-prev {
+	right: 2px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next {
+	left: 2px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-prev:hover {
+	right: 1px;
+	left: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-next:hover {
+	left: 1px;
+	right: auto;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane {
+	clear: right;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button {
+	float: left;
+}
+.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
+.ui-datepicker-rtl .ui-datepicker-group {
+	float: right;
+}
+.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
+.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
+	border-right-width: 0;
+	border-left-width: 1px;
+}
+.ui-slider {
+	position: relative;
+	text-align: left;
+}
+.ui-slider .ui-slider-handle {
+	position: absolute;
+	z-index: 2;
+	width: 1.2em;
+	height: 1.2em;
+	cursor: default;
+}
+.ui-slider .ui-slider-range {
+	position: absolute;
+	z-index: 1;
+	font-size: .7em;
+	display: block;
+	border: 0;
+	background-position: 0 0;
+}
+
+/* For IE8 - See #6727 */
+.ui-slider.ui-state-disabled .ui-slider-handle,
+.ui-slider.ui-state-disabled .ui-slider-range {
+	filter: inherit;
+}
+
+.ui-slider-horizontal {
+	height: .8em;
+}
+.ui-slider-horizontal .ui-slider-handle {
+	top: -.3em;
+	margin-left: -.6em;
+}
+.ui-slider-horizontal .ui-slider-range {
+	top: 0;
+	height: 100%;
+}
+.ui-slider-horizontal .ui-slider-range-min {
+	left: 0;
+}
+.ui-slider-horizontal .ui-slider-range-max {
+	right: 0;
+}
+
+.ui-slider-vertical {
+	width: .8em;
+	height: 100px;
+}
+.ui-slider-vertical .ui-slider-handle {
+	left: -.3em;
+	margin-left: 0;
+	margin-bottom: -.6em;
+}
+.ui-slider-vertical .ui-slider-range {
+	left: 0;
+	width: 100%;
+}
+.ui-slider-vertical .ui-slider-range-min {
+	bottom: 0;
+}
+.ui-slider-vertical .ui-slider-range-max {
+	top: 0;
+}
+
+/* Component containers
+----------------------------------*/
+.ui-widget {
+	font-family: Trebuchet MS,Helvetica,Arial,sans-serif;
+	font-size: 1.1em;
+}
+.ui-widget .ui-widget {
+	font-size: 1em;
+}
+.ui-widget input,
+.ui-widget select,
+.ui-widget textarea,
+.ui-widget button {
+	font-family: Trebuchet MS,Helvetica,Arial,sans-serif;
+	font-size: 1em;
+}
+.ui-widget-content {
+	border: 1px solid #aaaaaa;
+	background: #c9c9c9 url(../img/ui/ui-bg_inset-soft_50_c9c9c9_1x100.png) 50% bottom repeat-x;
+	color: #333333;
+}
+.ui-widget-content a {
+	color: #333333;
+}
+.ui-widget-header {
+	border: 1px solid #bbbbbb;
+	background: #dddddd url(../img/ui/ui-bg_glass_35_dddddd_1x400.png) 50% 50% repeat-x;
+	color: #444444;
+	font-weight: bold;
+}
+.ui-widget-header a {
+	color: #444444;
+}
+
+/* Interaction states
+----------------------------------*/
+.ui-state-default,
+.ui-widget-content .ui-state-default,
+.ui-widget-header .ui-state-default {
+	border: 1px solid #cccccc;
+	background: #eeeeee url(../img/ui/ui-bg_glass_60_eeeeee_1x400.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #3383bb;
+}
+.ui-state-default a,
+.ui-state-default a:link,
+.ui-state-default a:visited {
+	color: #3383bb;
+	text-decoration: none;
+}
+.ui-state-hover,
+.ui-widget-content .ui-state-hover,
+.ui-widget-header .ui-state-hover,
+.ui-state-focus,
+.ui-widget-content .ui-state-focus,
+.ui-widget-header .ui-state-focus {
+	border: 1px solid #bbbbbb;
+	background: #f8f8f8 url(../img/ui/ui-bg_glass_100_f8f8f8_1x400.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #599fcf;
+}
+.ui-state-hover a,
+.ui-state-hover a:hover,
+.ui-state-hover a:link,
+.ui-state-hover a:visited,
+.ui-state-focus a,
+.ui-state-focus a:hover,
+.ui-state-focus a:link,
+.ui-state-focus a:visited {
+	color: #599fcf;
+	text-decoration: none;
+}
+.ui-state-active,
+.ui-widget-content .ui-state-active,
+.ui-widget-header .ui-state-active {
+	border: 1px solid #999999;
+	background: #999999 url(../img/ui/ui-bg_inset-hard_75_999999_1x100.png) 50% 50% repeat-x;
+	font-weight: bold;
+	color: #ffffff;
+}
+.ui-state-active a,
+.ui-state-active a:link,
+.ui-state-active a:visited {
+	color: #ffffff;
+	text-decoration: none;
+}
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-highlight,
+.ui-widget-content .ui-state-highlight,
+.ui-widget-header .ui-state-highlight {
+	border: 1px solid #ffffff;
+	background: #eeeeee url(../img/ui/ui-bg_flat_55_eeeeee_40x100.png) 50% 50% repeat-x;
+	color: #444444;
+}
+.ui-state-highlight a,
+.ui-widget-content .ui-state-highlight a,
+.ui-widget-header .ui-state-highlight a {
+	color: #444444;
+}
+.ui-state-error,
+.ui-widget-content .ui-state-error,
+.ui-widget-header .ui-state-error {
+	border: 1px solid #c0402a;
+	background: #c0402a url(../img/ui/ui-bg_flat_55_c0402a_40x100.png) 50% 50% repeat-x;
+	color: #ffffff;
+}
+.ui-state-error a,
+.ui-widget-content .ui-state-error a,
+.ui-widget-header .ui-state-error a {
+	color: #ffffff;
+}
+.ui-state-error-text,
+.ui-widget-content .ui-state-error-text,
+.ui-widget-header .ui-state-error-text {
+	color: #ffffff;
+}
+.ui-priority-primary,
+.ui-widget-content .ui-priority-primary,
+.ui-widget-header .ui-priority-primary {
+	font-weight: bold;
+}
+.ui-priority-secondary,
+.ui-widget-content .ui-priority-secondary,
+.ui-widget-header .ui-priority-secondary {
+	opacity: .7;
+	filter:Alpha(Opacity=70);
+	font-weight: normal;
+}
+.ui-state-disabled,
+.ui-widget-content .ui-state-disabled,
+.ui-widget-header .ui-state-disabled {
+	opacity: .35;
+	filter:Alpha(Opacity=35);
+	background-image: none;
+}
+.ui-state-disabled .ui-icon {
+	filter:Alpha(Opacity=35); /* For IE8 - See #6059 */
+}
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon {
+	width: 16px;
+	height: 16px;
+}
+.ui-icon,
+.ui-widget-content .ui-icon {
+	background-image: url(../img/ui/ui-icons_999999_256x240.png);
+}
+.ui-widget-header .ui-icon {
+	background-image: url(../img/ui/ui-icons_999999_256x240.png);
+}
+.ui-state-default .ui-icon {
+	background-image: url(../img/ui/ui-icons_70b2e1_256x240.png);
+}
+.ui-state-hover .ui-icon,
+.ui-state-focus .ui-icon {
+	background-image: url(../img/ui/ui-icons_3383bb_256x240.png);
+}
+.ui-state-active .ui-icon {
+	background-image: url(../img/ui/ui-icons_454545_256x240.png);
+}
+.ui-state-highlight .ui-icon {
+	background-image: url(../img/ui/ui-icons_3383bb_256x240.png);
+}
+.ui-state-error .ui-icon,
+.ui-state-error-text .ui-icon {
+	background-image: url(../img/ui/ui-icons_fbc856_256x240.png);
+}
+
+/* positioning */
+.ui-icon-blank { background-position: 16px 16px; }
+.ui-icon-carat-1-n { background-position: 0 0; }
+.ui-icon-carat-1-ne { background-position: -16px 0; }
+.ui-icon-carat-1-e { background-position: -32px 0; }
+.ui-icon-carat-1-se { background-position: -48px 0; }
+.ui-icon-carat-1-s { background-position: -64px 0; }
+.ui-icon-carat-1-sw { background-position: -80px 0; }
+.ui-icon-carat-1-w { background-position: -96px 0; }
+.ui-icon-carat-1-nw { background-position: -112px 0; }
+.ui-icon-carat-2-n-s { background-position: -128px 0; }
+.ui-icon-carat-2-e-w { background-position: -144px 0; }
+.ui-icon-triangle-1-n { background-position: 0 -16px; }
+.ui-icon-triangle-1-ne { background-position: -16px -16px; }
+.ui-icon-triangle-1-e { background-position: -32px -16px; }
+.ui-icon-triangle-1-se { background-position: -48px -16px; }
+.ui-icon-triangle-1-s { background-position: -64px -16px; }
+.ui-icon-triangle-1-sw { background-position: -80px -16px; }
+.ui-icon-triangle-1-w { background-position: -96px -16px; }
+.ui-icon-triangle-1-nw { background-position: -112px -16px; }
+.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
+.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
+.ui-icon-arrow-1-n { background-position: 0 -32px; }
+.ui-icon-arrow-1-ne { background-position: -16px -32px; }
+.ui-icon-arrow-1-e { background-position: -32px -32px; }
+.ui-icon-arrow-1-se { background-position: -48px -32px; }
+.ui-icon-arrow-1-s { background-position: -64px -32px; }
+.ui-icon-arrow-1-sw { background-position: -80px -32px; }
+.ui-icon-arrow-1-w { background-position: -96px -32px; }
+.ui-icon-arrow-1-nw { background-position: -112px -32px; }
+.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
+.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
+.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
+.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
+.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
+.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
+.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
+.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
+.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
+.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
+.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
+.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
+.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
+.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
+.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
+.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
+.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
+.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
+.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
+.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
+.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
+.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
+.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
+.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
+.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
+.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
+.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
+.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
+.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
+.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
+.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
+.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
+.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
+.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
+.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
+.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
+.ui-icon-arrow-4 { background-position: 0 -80px; }
+.ui-icon-arrow-4-diag { background-position: -16px -80px; }
+.ui-icon-extlink { background-position: -32px -80px; }
+.ui-icon-newwin { background-position: -48px -80px; }
+.ui-icon-refresh { background-position: -64px -80px; }
+.ui-icon-shuffle { background-position: -80px -80px; }
+.ui-icon-transfer-e-w { background-position: -96px -80px; }
+.ui-icon-transferthick-e-w { background-position: -112px -80px; }
+.ui-icon-folder-collapsed { background-position: 0 -96px; }
+.ui-icon-folder-open { background-position: -16px -96px; }
+.ui-icon-document { background-position: -32px -96px; }
+.ui-icon-document-b { background-position: -48px -96px; }
+.ui-icon-note { background-position: -64px -96px; }
+.ui-icon-mail-closed { background-position: -80px -96px; }
+.ui-icon-mail-open { background-position: -96px -96px; }
+.ui-icon-suitcase { background-position: -112px -96px; }
+.ui-icon-comment { background-position: -128px -96px; }
+.ui-icon-person { background-position: -144px -96px; }
+.ui-icon-print { background-position: -160px -96px; }
+.ui-icon-trash { background-position: -176px -96px; }
+.ui-icon-locked { background-position: -192px -96px; }
+.ui-icon-unlocked { background-position: -208px -96px; }
+.ui-icon-bookmark { background-position: -224px -96px; }
+.ui-icon-tag { background-position: -240px -96px; }
+.ui-icon-home { background-position: 0 -112px; }
+.ui-icon-flag { background-position: -16px -112px; }
+.ui-icon-calendar { background-position: -32px -112px; }
+.ui-icon-cart { background-position: -48px -112px; }
+.ui-icon-pencil { background-position: -64px -112px; }
+.ui-icon-clock { background-position: -80px -112px; }
+.ui-icon-disk { background-position: -96px -112px; }
+.ui-icon-calculator { background-position: -112px -112px; }
+.ui-icon-zoomin { background-position: -128px -112px; }
+.ui-icon-zoomout { background-position: -144px -112px; }
+.ui-icon-search { background-position: -160px -112px; }
+.ui-icon-wrench { background-position: -176px -112px; }
+.ui-icon-gear { background-position: -192px -112px; }
+.ui-icon-heart { background-position: -208px -112px; }
+.ui-icon-star { background-position: -224px -112px; }
+.ui-icon-link { background-position: -240px -112px; }
+.ui-icon-cancel { background-position: 0 -128px; }
+.ui-icon-plus { background-position: -16px -128px; }
+.ui-icon-plusthick { background-position: -32px -128px; }
+.ui-icon-minus { background-position: -48px -128px; }
+.ui-icon-minusthick { background-position: -64px -128px; }
+.ui-icon-close { background-position: -80px -128px; }
+.ui-icon-closethick { background-position: -96px -128px; }
+.ui-icon-key { background-position: -112px -128px; }
+.ui-icon-lightbulb { background-position: -128px -128px; }
+.ui-icon-scissors { background-position: -144px -128px; }
+.ui-icon-clipboard { background-position: -160px -128px; }
+.ui-icon-copy { background-position: -176px -128px; }
+.ui-icon-contact { background-position: -192px -128px; }
+.ui-icon-image { background-position: -208px -128px; }
+.ui-icon-video { background-position: -224px -128px; }
+.ui-icon-script { background-position: -240px -128px; }
+.ui-icon-alert { background-position: 0 -144px; }
+.ui-icon-info { background-position: -16px -144px; }
+.ui-icon-notice { background-position: -32px -144px; }
+.ui-icon-help { background-position: -48px -144px; }
+.ui-icon-check { background-position: -64px -144px; }
+.ui-icon-bullet { background-position: -80px -144px; }
+.ui-icon-radio-on { background-position: -96px -144px; }
+.ui-icon-radio-off { background-position: -112px -144px; }
+.ui-icon-pin-w { background-position: -128px -144px; }
+.ui-icon-pin-s { background-position: -144px -144px; }
+.ui-icon-play { background-position: 0 -160px; }
+.ui-icon-pause { background-position: -16px -160px; }
+.ui-icon-seek-next { background-position: -32px -160px; }
+.ui-icon-seek-prev { background-position: -48px -160px; }
+.ui-icon-seek-end { background-position: -64px -160px; }
+.ui-icon-seek-start { background-position: -80px -160px; }
+/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
+.ui-icon-seek-first { background-position: -80px -160px; }
+.ui-icon-stop { background-position: -96px -160px; }
+.ui-icon-eject { background-position: -112px -160px; }
+.ui-icon-volume-off { background-position: -128px -160px; }
+.ui-icon-volume-on { background-position: -144px -160px; }
+.ui-icon-power { background-position: 0 -176px; }
+.ui-icon-signal-diag { background-position: -16px -176px; }
+.ui-icon-signal { background-position: -32px -176px; }
+.ui-icon-battery-0 { background-position: -48px -176px; }
+.ui-icon-battery-1 { background-position: -64px -176px; }
+.ui-icon-battery-2 { background-position: -80px -176px; }
+.ui-icon-battery-3 { background-position: -96px -176px; }
+.ui-icon-circle-plus { background-position: 0 -192px; }
+.ui-icon-circle-minus { background-position: -16px -192px; }
+.ui-icon-circle-close { background-position: -32px -192px; }
+.ui-icon-circle-triangle-e { background-position: -48px -192px; }
+.ui-icon-circle-triangle-s { background-position: -64px -192px; }
+.ui-icon-circle-triangle-w { background-position: -80px -192px; }
+.ui-icon-circle-triangle-n { background-position: -96px -192px; }
+.ui-icon-circle-arrow-e { background-position: -112px -192px; }
+.ui-icon-circle-arrow-s { background-position: -128px -192px; }
+.ui-icon-circle-arrow-w { background-position: -144px -192px; }
+.ui-icon-circle-arrow-n { background-position: -160px -192px; }
+.ui-icon-circle-zoomin { background-position: -176px -192px; }
+.ui-icon-circle-zoomout { background-position: -192px -192px; }
+.ui-icon-circle-check { background-position: -208px -192px; }
+.ui-icon-circlesmall-plus { background-position: 0 -208px; }
+.ui-icon-circlesmall-minus { background-position: -16px -208px; }
+.ui-icon-circlesmall-close { background-position: -32px -208px; }
+.ui-icon-squaresmall-plus { background-position: -48px -208px; }
+.ui-icon-squaresmall-minus { background-position: -64px -208px; }
+.ui-icon-squaresmall-close { background-position: -80px -208px; }
+.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
+.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
+.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
+.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
+.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
+.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Corner radius */
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-left,
+.ui-corner-tl {
+	border-top-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-top,
+.ui-corner-right,
+.ui-corner-tr {
+	border-top-right-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-left,
+.ui-corner-bl {
+	border-bottom-left-radius: 6px;
+}
+.ui-corner-all,
+.ui-corner-bottom,
+.ui-corner-right,
+.ui-corner-br {
+	border-bottom-right-radius: 6px;
+}
+
+/* Overlays */
+.ui-widget-overlay {
+	background: #eeeeee url(../img/ui/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x;
+	opacity: .8;
+	filter: Alpha(Opacity=80);
+}
+.ui-widget-shadow {
+	margin: -4px 0 0 -4px;
+	padding: 4px;
+	background: #aaaaaa url(../img/ui/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
+	opacity: .6;
+	filter: Alpha(Opacity=60);
+	border-radius: 0px;
+}
+.ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
+.ui-timepicker-div dl { text-align: left; }
+.ui-timepicker-div dl dt { float: left; clear:left; padding: 0 0 0 5px; }
+.ui-timepicker-div dl dd { margin: 0 10px 10px 45%; }
+.ui-timepicker-div td { font-size: 90%; }
+.ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
+
+.ui-timepicker-rtl{ direction: rtl; }
+.ui-timepicker-rtl dl { text-align: right; padding: 0 5px 0 0; }
+.ui-timepicker-rtl dl dt{ float: right; clear: right; }
+.ui-timepicker-rtl dl dd { margin: 0 45% 10px 10px; }
+}
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/uLoader.styl b/frontend/view-helpers/plugins/uLoader.styl
new file mode 100755
index 0000000..fd703f7
--- /dev/null
+++ b/frontend/view-helpers/plugins/uLoader.styl
@@ -0,0 +1,28 @@
+/**
+* Plugin Loader - Utils.js
+* @class Plugin Loader
+* @module helpers.css
+*/
+.loader
+	background url(routImgLoader+"opacity.png")
+	height 100%
+	left 0
+	position absolute
+	top 0
+	width 100%
+	z-index 999
+	span
+		background url(routImgLoader+"loader.gif")
+		height 30px
+		left 50%
+		margin -15px 0 0 -15px
+		position absolute
+		top 50%
+		width 30px
+.ublock
+	background url(routImgLoader+"opacity.png")
+	height 100%
+	left 0
+	position absolute
+	top 0
+	width 100%
\ No newline at end of file
diff --git a/frontend/view-helpers/plugins/uTipsy.styl b/frontend/view-helpers/plugins/uTipsy.styl
new file mode 100755
index 0000000..eb3848d
--- /dev/null
+++ b/frontend/view-helpers/plugins/uTipsy.styl
@@ -0,0 +1,23 @@
+/**
+* Plugin Tipsy - Framework.js
+* @class Plugin Tipsy
+* @module helpers.css
+*/
+.tipsy
+	background url(routImgTipsy+"tipsy.gif") no-repeat
+	font-size 10px
+	padding 5px
+.tipsy-inner
+	background-color #000
+	color #FFF
+	max-width 334px
+	padding 5px 8px 4px
+	text-align center
+.tipsy-north
+	background-position center top
+.tipsy-south
+	background-position center bottom
+.tipsy-east
+	background-position right center
+.tipsy-west
+	background-position left center
\ No newline at end of file
diff --git a/frontend/view-helpers/reset/reset.styl b/frontend/view-helpers/reset/reset.styl
new file mode 100755
index 0000000..d703f28
--- /dev/null
+++ b/frontend/view-helpers/reset/reset.styl
@@ -0,0 +1,62 @@
+/**

+* Reset CSS

+* @class reset

+* @module admin.css

+*/

+article,aside,footer,header,nav,section

+	display block

+html

+	height 100%

+	font-size: 100%

+	-webkit-text-size-adjust: 100%

+	-ms-text-size-adjust: 100%

+	padding 0

+	margin 0

+:focus

+	outline 0

+a:focus

+	outline thin dotted #333

+	outline 5px auto -webkit-focus-ring-color

+	outline-offset -2px

+a:hover,a:active

+	outline 0

+img

+	-ms-interpolation-mode bicubic

+	border 0

+	vertical-align middle

+button,input,select,textarea

+	margin 0

+	font-size 100%

+	vertical-align middle

+button,input

+	*overflow visible

+	line-height normal

+button::-moz-focus-inner,input::-moz-focus-inner

+	padding: 0

+	border: 0

+button

+	-webkit-appearance button

+	cursor pointer

+label,select,button,input[type="radio"],input[type="checkbox"]

+	cursor pointer

+textarea

+	overflow auto

+	vertical-align top

+form

+	padding 0

+	margin 0

+table

+	border-collapse collapse

+	border-spacing 0

+	width 100%

+input[type="radio"],input[type="checkbox"]

+	margin 0

+	padding 0

+::-webkit-input-placeholder

+	color #FFF

+::-moz-placeholder

+	color #FFF

+:-ms-input-placeholder

+	color #FFF

+input:-moz-placeholder

+	color #FFF
\ No newline at end of file
diff --git a/frontend/views/admin/admin.styl b/frontend/views/admin/admin.styl
new file mode 100755
index 0000000..c0a698d
--- /dev/null
+++ b/frontend/views/admin/admin.styl
@@ -0,0 +1,5 @@
+/**
+* Admin CSS
+* @class admin
+* @module admin.css
+*/
\ No newline at end of file
diff --git a/frontend/views/admin/imports/bundle.styl b/frontend/views/admin/imports/bundle.styl
new file mode 100755
index 0000000..cc70f67
--- /dev/null
+++ b/frontend/views/admin/imports/bundle.styl
@@ -0,0 +1,251 @@
+/**
+* Bundle CSS
+* @class Bundle
+* @module bundle.css
+*/
+.bundle
+	width 770px
+	font-family family2
+	margin-top 44px
+.appInfo
+	height 40px
+	margin-top 2px 
+	width 770px
+.infoCtn + .infoCtn
+	margin-left 4px
+	float left
+.infoCtn
+	float left
+	font-size 12px
+	position relative
+	div
+		float left
+	.logo
+		height 39px
+		width 39px
+		img
+			color #FFF
+			display block
+			font-size 0
+			height 39px
+			width 39px
+	.logoCo
+		background #1c9bf2
+		width 39px
+		height 39px
+		margin 0 auto
+	.logoAp
+		background #ffc932
+		width 39px
+		height 39px
+	.logoDe
+		background #ab2292
+		padding 10px 0 0 14px
+		width 25px
+		height 29px
+	.logoAd
+		background #fff
+		padding 12px 0 0 13px
+		width 26px
+		height 27px
+	.border
+		border 1px solid #d8dcdc
+		padding 14px 0 0 14px
+	.cboCompany
+		width 171px
+		height 23px
+	.slct-custom
+		left 39px
+	.cboApp
+		width 170px
+		height 23px
+	.cboDevice
+		width 94px
+		height 23px
+	.newApp
+		width 102px
+		height 23px
+		display inline-block
+		color #111
+		outline none
+	.newApp:hover
+		border 1px solid #1c9bf2
+	.newApp.fixFont
+		font-size 10px
+	span
+		float left
+.appTabs
+	margin-top 37px
+	width 767px
+	.action
+		width 95px
+		margin 0 auto
+		display block
+		div
+			float left
+		.icTabBundle
+			margin-top 2px
+		.icTabTest
+			margin-top 2px
+		.icTabConso
+			margin-top 7px
+		.icTabFeed
+			margin-top 3px
+	.iconClose
+		margin 0 auto
+		width 12px
+		height 10px
+		margin-top 8px
+		display block
+	.tab
+		width 120px
+		height 34px
+		border 1px solid #dcdfe0
+		border-right none
+		background #FFF
+		float left
+		outline none
+	.emptyTab
+		background #ebefef
+		width 116px
+		border-top 1px solid #EBEFEF
+	.tabClose
+		background #e81551
+		border 1px solid #DCDFE0
+		float left
+		padding 7px 12px
+		.isprites
+			vertical-align top
+	.icon
+		margin 11px 0 0 0
+	.title
+		font-size 10px
+		color #c3c5c7
+		margin-left 10px
+		margin-top 15px
+.tab:hover
+		color #959799
+		.title
+			color #959799
+.tab.active
+	.title
+		color #959799
+.appContent
+	min-height 426px
+	background #fbfbfb
+	.content
+		color #4f5259
+		margin 0 auto
+		padding 50px 0 16px
+		width 640px
+		.file
+			width 138px
+			float left
+			.fileUpload
+				width 138px
+				height 132px
+				.bgDashed
+					width 131px
+					height 131px
+					background url(routImg+'bgUpload.png') no-repeat
+					margin 0 auto
+					.title
+						font-size 20px
+						margin 0 auto
+						line-height 131px
+						text-align center
+			.slcVerCtn
+				margin-top 35px
+			.cboDownload
+				border 1px solid #c0c0c0
+				width 127px
+				height 23px
+				border-radius 3px
+				padding 10px 0 0 8px
+				&.hide
+					display none !important
+		.info
+			width 445px
+			float left
+			margin-left 55px
+			.title
+				border-bottom 1px solid #bfbfbf
+				margin-top 5px
+				padding-bottom 10px
+			.cgroup-inline
+				margin-top 30px
+				.control-group
+					float left
+				.control-group + .control-group
+					margin-left 47px
+				input
+					width 187px
+					height 34px
+					padding 0 0 0 10px
+			.desc
+				margin-top 25px
+			textarea
+				width 434px
+				height 216px
+				font-family family2
+				padding 10px 0 0 10px
+			.bgGrey
+				border 1px solid #c3c3c3
+span.cboDownload , span.cboCompany , span.cboApp , span.cboDevice
+	font 12px Arial,sans-serif
+	background #fff url('http://i48.tinypic.com/2u7rpec.png') right no-repeat
+.cboDownload.customSelectHover
+	border 1px solid #1c9bf2
+.cboCompany.customSelectHover
+	border 1px solid #1c9bf2
+.cboApp.customSelectHover
+	border 1px solid #1c9bf2
+.cboDevice.customSelectHover
+	border 1px solid #1c9bf2
+.alleft
+	float right
+.mt40
+	margin-top 40px
+.error
+	border-color red
+#newApp
+	margin-bottom 20px
+	.addLogoApp
+		visibility hidden
+		position absolute
+		z-index 5
+		width 1px
+	#btnFileLogo
+		margin-top 18px
+.bgDisabled
+	background #515151 !important
+	border-color #515151 !important
+.ctnBundleCrud
+	padding-top 8px
+	text-align center
+	.lnk-bdlcrud
+		border 1px solid #b3b3b3
+		border-radius 2px
+		display inline-block
+		*display inline
+		padding 6px 8px
+		vertical-align top
+		& + .lnk-bdlcrud
+			margin-left 4px
+		*zoom 1
+		.isprites
+			vertical-align top
+.error
+	border 1px solid red !important
+#frmBundle
+	display none
+.appTabs
+	.right
+		float right
+	.left
+		float left
+		border-right 1px solid #DCDFE0
+#ctnAddNewApp
+	cursor pointer
+	&:hover #btnAddNewApp
+		border-color #1C9BF2
\ No newline at end of file
diff --git a/frontend/views/admin/imports/console.styl b/frontend/views/admin/imports/console.styl
new file mode 100755
index 0000000..65cb719
--- /dev/null
+++ b/frontend/views/admin/imports/console.styl
@@ -0,0 +1,69 @@
+.people
+	float right !important
+	height 30px
+	width 125px
+	margin-left 22px
+	font-size 12px
+.cboPeople
+	border 1px solid #c6c6c6
+	border-radius 5px
+	width 120px
+	height 18px
+	padding 8px 0 0 8px
+.cboPeople.customSelectHover
+	border 1px solid #1c9bf2
+span.cboPeople
+	font 12px sans-serif
+	background #fff url('http://i48.tinypic.com/2u7rpec.png') right no-repeat
+.cbosContent
+	margin 0 0 0 310px
+.iRow
+	color #9a9a9a
+	.title
+		line-height 30px
+		height 30px
+		margin-top 0
+		position relative
+	.search
+		right 0
+		position absolute
+		.txtSearch
+			border-radius 15px
+			border 1px solid #bdbdbd
+			height 20px
+			padding 0 0 0 25px
+			font-size 12px
+		.searchIcon
+			background url(routImg+'icon-set.png') -192px -75px
+			width 11px
+			height 11px
+			left 0
+			margin 10px
+			position absolute
+.static
+	color #9a9a9a
+.buttonShow
+	float left
+	font-size 20px
+.information
+	float left
+	font-size 12px
+	margin-left 8px
+	.label
+		float left
+	.hours
+		float left
+		margin-left 25px
+.consoleCtn
+	padding 16px 20px 0 18px
+	height auto
+	background #e6e6e6
+	font-size 11px
+.hide
+	display none
+.highlight
+	background-color yellow
+.consoleCtn
+	height 250px
+.ace_gutter
+	z-index 1 !important
\ No newline at end of file
diff --git a/frontend/views/admin/imports/enterprise.styl b/frontend/views/admin/imports/enterprise.styl
new file mode 100755
index 0000000..f75de6d
--- /dev/null
+++ b/frontend/views/admin/imports/enterprise.styl
@@ -0,0 +1,46 @@
+/**
+* Company CSS
+* @class company
+* @module company.css
+*/
+.company
+	background #FFF
+	margin-top 44px
+	padding 12px 20px
+.listCompany
+	li
+		padding 4px 8px
+		*zoom 1
+		&:before,&:after
+			display table
+			content ""
+			line-height 0
+		&:after
+			clear both
+		padding-left 8px
+		&.odd
+			background #FFF
+		&.even
+			background #f8f9f9
+	img
+		border-radius 6px
+		float left
+	h3
+		color #4f5259
+		float left
+		font-family family2
+		font-size 12px
+		margin-left 18px
+		padding-top 18px
+		width 440px
+	.lnk-cruds
+		float right
+		padding-top 17px
+		a
+			color #2F323B
+			float left
+			font-family family2
+			text-decoration underline
+			font-size 12px
+			& + a
+				margin-left 6px
\ No newline at end of file
diff --git a/frontend/views/admin/imports/feedback.styl b/frontend/views/admin/imports/feedback.styl
new file mode 100755
index 0000000..d124d35
--- /dev/null
+++ b/frontend/views/admin/imports/feedback.styl
@@ -0,0 +1,57 @@
+.feedback
+	color #4f5259
+	padding 20px 0 0 40px
+	.topCrashes
+		margin-top 10px
+	.crashBox
+		height 75px
+		float left
+		width 170px
+		text-align center
+		background #b3b3b3
+		margin-right 2px
+		color #fff
+		.label
+			font-size 11px
+			margin-top 13px
+		.nameSO
+			font-size 24px
+			line-height 30px
+		.porcent
+			font-size 11px
+	.crashBox.active, .crashBox:hover
+			color #4f5259
+			background #FFF
+			.nameSO
+				color #f96b5b
+	.chartContainer
+		width 700px
+		height 250px
+		margin-top 60px
+	.sliderVersions
+		position relative
+		.buttons
+			position absolute
+			top 0
+			margin-top 40px
+			z-index 1
+			color #ff5a19
+		.prev
+			left 0
+			margin-left 10px
+		.next
+			right 0
+			margin-right 50px
+.sliderVersions
+	.viewport
+		overflow hidden
+		position relative
+		height 85px
+		width 688px
+		.overview
+			position absolute
+.feedText
+	.title
+		border-bottom 1px solid #BFBFBF
+		padding-bottom 10px
+		margin-bottom 10px
\ No newline at end of file
diff --git a/frontend/views/admin/imports/fly.styl b/frontend/views/admin/imports/fly.styl
new file mode 100755
index 0000000..7fa1b55
--- /dev/null
+++ b/frontend/views/admin/imports/fly.styl
@@ -0,0 +1,120 @@
+/**
+* Fly CSS
+* @class fly
+* @module fly.css
+*/
+.ctn-fly
+	padding-top 68px
+	position relative
+	z-index 1
+	.flyrl-target.dishover-drop
+		background #FFF
+	.ui-draggable-dragging
+		background #FFF
+.ctn-flyRole
+	margin 18px auto 0
+	width 180px
+	&:first-child
+		margin-top 0
+	h3
+		color #FFF
+		font-size 19px
+		font-family family1
+		text-align center
+.flyrl-target
+	background #FFF
+	border 1 solid #FFF
+	min-height 26px
+	padding 8px
+	transition background .4s ease
+	width 162px
+	&.hover-drop
+		background #D7D7D7
+.fly-person
+	padding-left 9px
+	position relative
+	*zoom 1
+	&:before,&:after
+		display table
+		content ""
+		line-height 0
+	&:after
+		clear both
+	.fperson-state
+		background #00b570
+		border-radius 6px
+		height 6px
+		left 0
+		margin-top -3px
+		position absolute
+		top 50%
+		width 6px
+	.fperson-img
+		border-radius 3px
+		float left
+	.fperson-name
+		color #2f323b
+		float left
+		font-family family1
+		font-size 11px
+		height 26px
+		line-height 13px
+		margin-left 4px
+		overflow hidden
+		position relative
+		width 110px
+		word-wrap break-word
+	.icDeletePlt
+		margin-top -6px
+		position absolute
+		right 0
+		top 50%
+.group-flyEngineer
+	margin 18px auto 0
+	width 560px
+	.ctn-flyRole
+		float left
+		& + .ctn-flyRole
+			margin-left 10px
+	.ctn-flyRole
+		margin-top 0
+.group-flyTester
+	margin 40px 0 0
+	*zoom 1
+	&:before,&:after
+		display table
+		content ""
+		line-height 0
+	&:after
+		clear both
+	.ctn-flyRole
+		float left
+		width 184px
+		margin-top 0
+		& + .ctn-flyRole
+			margin-left 10px
+	.flyrl-target
+		width auto
+	.fly-person
+		background #f8f9f9
+		padding 8px 6px 8px 15px
+		& + .fly-person
+			margin-top 6px
+		.fperson-state
+			left 6px
+	.icDeletePlt
+		right 6px
+	.fperson-name
+		width 104px
+.flytest1
+	h3
+		color #ff5a19
+.flytest2
+	h3
+		color #00b570
+.flytest3
+	h3
+		color #00ace4
+.flytest4
+	h3
+		color #7a6356
\ No newline at end of file
diff --git a/frontend/views/admin/imports/login.styl b/frontend/views/admin/imports/login.styl
new file mode 100755
index 0000000..0b2a60d
--- /dev/null
+++ b/frontend/views/admin/imports/login.styl
@@ -0,0 +1,80 @@
+/**
+* Login CSS
+* @class login
+* @module login.css
+*/
+.log-decorizq,.log-decorright
+	height 100%
+	position absolute
+	top 0
+	width 50%
+	z-index 1
+.log-decorizq
+	background #ffc932
+	left 0
+.log-decorright
+	background #b28c23
+	right 0
+.decor-login
+	background url(routImg+"decor-login.png")
+	height 441px
+	left 160px
+	position absolute
+	top 266px
+	width 349px
+	z-index 1
+/*
+* Forms
+*/
+.frm-login
+	position relative
+	width 198px
+	z-index 2
+	h2
+		color #FFF
+		font-family family1
+		font-size 19px
+		line-height 21px
+		margin-bottom 10px
+	input[type="text"], input[type="password"]
+		background #2F323B
+		color #FFF
+		height 22px
+		line-height 22px
+		&.error
+			background #FF2B01
+	input[type="text"]
+		width 182px
+	input[type="password"]
+		width 133px
+	.cgroup-inline
+		.control-group + .control-group
+			margin-left 3px
+/*
+* Contents Login
+*/
+.ctn-login
+	background #ffc932
+	float left
+	min-height 100%
+	overflow hidden
+	position relative
+	width 776px
+.logo-login
+	font-size 0
+	margin 0 auto
+	margin-bottom 140px
+	padding-top 130px
+	position relative
+	width 289px
+	z-index 2
+	img
+		display block
+.sidebar-login
+	background #b28c23
+	float left
+	min-height 100%
+	width 248px
+	.frm-login
+		margin 0 auto
+		padding-top 250px
\ No newline at end of file
diff --git a/frontend/views/admin/imports/people.styl b/frontend/views/admin/imports/people.styl
new file mode 100644
index 0000000..52c9eac
--- /dev/null
+++ b/frontend/views/admin/imports/people.styl
@@ -0,0 +1,104 @@
+/**
+* People CSS
+* @class People
+* @module people.css
+*/
+.ctn-people
+	float left
+	margin 6px 4px
+	width 111px
+	.peopl-img
+		height 46px
+		margin 0 auto 8px
+		position relative
+		width 46px
+		img
+			display block
+			height 46px
+			width 46px
+		.icCheckYe
+			position absolute
+			left -8px
+			bottom -4px
+		.icCancelYe
+			position absolute
+			right -8px
+			bottom -4px
+		.peopl-chck
+			background #ffc932
+			border-radius 17px
+			bottom -4px
+			height 17px
+			position absolute
+			right -8px
+			width 17px
+			&.active
+				span
+					display block
+			span
+				background #000
+				border-radius 8px
+				display none
+				height 8px
+				left 50%
+				margin -4px 0 0 -4px
+				position absolute
+				top 50%
+				width 8px
+	h3
+		color #999
+		font-family family2
+		font-size 12px
+		height 26px
+		line-height 13px
+		overflow hidden
+		position relative
+		text-align center
+#scrollPeople
+	height 633px
+	width 728px
+	.viewport
+		height 633px
+		overflow hidden
+		position relative
+		width 718px
+	.overview
+		left 0
+		list-style none
+		position absolute
+		top 0
+.ctrlAPeople
+	background #262930
+	padding 6px
+	text-align right
+	*zoom 1
+	&:before,&:after
+		display table
+		content ""
+		line-height 0
+	&:after
+		clear both
+	.btnAddPeople
+		float right
+		.sprites
+			vertical-align middle
+.popBlack
+	.fancybox-skin
+		background #262930
+#popInvitation
+	width 320px
+	h3
+		background #ffc932
+		color #4f5259
+		font-family family2
+		font-size 13px
+		line-height 34px
+		text-align center
+	.control
+		margin 0
+		padding 16px 0 8px
+		text-align center
+		& + .control
+			padding 8px 0 16px
+		a
+			width 128px
\ No newline at end of file
diff --git a/frontend/views/admin/imports/perfil.styl b/frontend/views/admin/imports/perfil.styl
new file mode 100755
index 0000000..613c2a7
--- /dev/null
+++ b/frontend/views/admin/imports/perfil.styl
@@ -0,0 +1,223 @@
+/**
+* Perfil CSS/Profile CSS
+* @class perfil
+* @module perfil.css
+*/
+/*
+* Menu Perfil/Profile
+*/
+.menu-perfil
+	a
+		color #f1f1f1
+		display block
+		font-family family1
+		text-align center
+		padding 58px 0
+		&:hover,&.active
+			background #3b3d44
+	.sprites
+		margin 0 auto 4px
+	.mprfl-descrp
+		font-size 11px
+		line-height 12px
+		display block
+/*
+* Container
+*/
+.profile
+	background #FFF
+	margin-top 44px
+.ctnProfileImg
+	width 100%
+	background #f5f8f8
+	padding 26px 0
+	margin-bottom 20px
+.fileProfile
+	margin 0 auto
+	width 135px
+	img
+		border 6px solid #FFF
+		border-radius 123px
+		display block
+		height 123px
+		margin-bottom 6px
+		width 123px
+		&.hover
+			border-color #CDCDCD
+	p
+		font-family family2
+		font-size 12px
+		line-height 14px
+		text-align center
+.ctnProfileForm
+	color #4f5259
+	font-family "helveticaNeueMedium", Arial, sans-serif
+	.profileForm
+		margin 0 auto
+		min-height 602px
+		width 380px
+		&.fix
+			min-height 360px
+	input[type="text"],input[type="password"]
+		border 1px solid #bbbbbb
+		border-radius 2px
+		display block
+		height 15px
+		margin-top 5px
+		width 159px
+	label
+		font-size 12px
+		margin-top 18px
+		display block
+	.cgroup-inline
+		.control-group + .control-group
+			margin-left 25px
+	.control
+		margin-top 25px
+		text-align right
+	.lInput
+		width 340px !important
+.control
+	margin-bottom 10px
+	a
+		text-decoration none
+		color #4F5259
+.isTester
+	margin-bottom 26px
+	.rbtn
+		background #000
+		border-radius 20px
+		color #FFFFFF
+		cursor pointer
+		float left
+		font-family family3
+		font-size 14px
+		height 32px
+		line-height 32px
+		margin-left 10px
+		margin-right 10px
+		margin-top 5px
+		text-align center
+		width 32px
+	.active, .rbtn:hover
+		background #ffc932
+	.someText
+		float right
+		font-size 12px
+		text-align right
+		width 250px
+		word-wrap break-word
+.ctn-chngepass
+	border 1px solid #d4d7d7
+	padding 10px
+.chngepass-head
+	color #4f5259
+	font-size 13px
+	font-family family2
+	*zoom 1
+	&:before,&:after
+		display table
+		content ""
+		line-height 0
+	&:after
+		clear both
+	h3
+		float left
+		padding-top 1px
+	.swtch-show
+		float right
+		height 18px
+		a
+			background #262930
+			border-radius 0 2px 2px 0
+			color #FFF
+			float left
+			font-family family2
+			font-size 10px
+			line-height 18px
+			padding 0 8px
+			text-align center
+			transition background .4s ease
+			&.active
+				background #ffc932
+				cursor default
+			&:first-child
+				border-radius 2px 0 0 2px
+.lnk-cruds
+	.btnCmp
+		display block
+		height 27px
+		outline none
+		width 27px
+	.btnCmp:hover
+		opacity 0.7
+/*ESTILOS DEVICES*/
+
+.ctnDevices
+	background #FFF
+	color #4F5259
+	font-family family2
+	margin-top 40px
+	min-height 550px
+	.content
+		margin-top 133px
+		margin-left 185px
+		height 220px
+		width 355px
+		font-family family2
+		.title
+			border-bottom 1px solid #C2C2C2
+			margin-bottom 5px
+			font-size 25px
+		.control-lbl
+			margin-bottom 10px
+		.control-input
+			margin-bottom 23px
+			input
+				border 1px solid #4F5259
+				width 70%
+				height 10px
+				padding 8px
+		.action-ctn
+			.control-lbl
+				margin-top 20px
+			.formTitle
+				border none
+		.control-button
+			float right
+			margin-top 3px
+	.myDevicesList
+		margin-left 40px
+		margin-top 30px
+		margin-right 40px
+		.dev
+			border 1px solid #E5E5E5
+			margin-left 10px
+			margin-right 50px
+			padding 10px
+			position relative
+			strong
+				width 100%
+				display block
+			code
+				width 100%
+				word-wrap break-word
+			span
+				background #FF0000
+				border 1px solid #999
+				color #FFF
+				display block
+				float right
+				height 25px
+				line-height 25px
+				opacity 0.6
+				position absolute
+				right 1px
+				text-align center
+				top 1px
+				width 25px
+			span:active
+				border-color #FFF
+				opacity 0.8
+		.dev:hover
+			border-color #FFC932
\ No newline at end of file
diff --git a/frontend/views/admin/imports/provisioning.styl b/frontend/views/admin/imports/provisioning.styl
new file mode 100755
index 0000000..34f11f4
--- /dev/null
+++ b/frontend/views/admin/imports/provisioning.styl
@@ -0,0 +1,44 @@
+/**
+* Provisioning CSS
+* @class Provisioning
+* @module provisioning.css
+*/
+.provisioning
+	margin 0 20px
+	.title
+		border-bottom 1px solid #bfbfbf
+		padding 15px 0 10px
+		.tDeta
+			font-size 15px
+			font-family family2
+	.reportQuads
+		padding 6px 0 1px
+		div
+			float left
+			width 80px
+		.quads.due
+			border 1px solid #e54c51
+		.quads
+			border 1px solid #c2c2c2
+			border-radius 5px
+			float left
+			height 80px
+			margin 10px
+			width 80px
+			div
+				text-align center
+				color #565960
+			.icon
+				width 6px
+				height 11px
+				margin 10px 0 0 37px
+			.num
+				font-size 25px
+				margin-top 9px
+			.date
+				font-size 10px
+		.addNew
+			border 1px dashed #C2C2C2
+			text-align center
+			line-height 80px
+			font-size 40px
\ No newline at end of file
diff --git a/frontend/views/admin/imports/tester.styl b/frontend/views/admin/imports/tester.styl
new file mode 100755
index 0000000..8dd85a8
--- /dev/null
+++ b/frontend/views/admin/imports/tester.styl
@@ -0,0 +1,144 @@
+/**
+* Tester CSS
+* @class Tester
+* @module tester.css
+*/
+.testers
+	color #696c71
+	margin 0 25px
+	.title
+		border-bottom 1px solid #bfbfbf
+		padding 15px 0 3px
+		.tdesc, .captions
+			float left
+		.tdesc
+			padding-top 6px
+		.captions
+			ul, li
+				float left
+		.captions
+			margin 9px 0 0 65px
+			ul
+				li
+					font-size 10px
+					margin-left 10px
+					span
+						display block
+						width 5px
+						height 5px
+						float left
+						margin-top 2px
+						margin-right 2px
+		.version
+			float right
+			width 128px
+			.hasCustomSelect
+				z-index 99
+			.customSelect
+				background #f8f9f9 url(routImg+"slct-custom.png") 116px 12px no-repeat
+				border 1px solid #bababa
+				border-radius 2px
+				color #4f5259
+				font-family family2
+				font-size 12px
+				line-height 14px
+				padding 6px 16px 6px 10px
+				width 100px
+				z-index 1
+				.customSelectInner
+					height 14px
+					overflow hidden
+					position relative
+					padding-left 1px
+					vertical-align top
+					width 99px !important
+.testerTable
+	thead
+		tr
+			th
+				height 30px
+				font-size 9px
+				line-height 30px
+				text-align center
+	td
+		font-size 10px
+		height 30px
+		line-height 30px
+		span.state
+			display block
+			width 5px
+			height 5px
+			float left
+			margin-top 13px
+			margin-right 2px
+		span.profilePhoto
+			width 23px
+			height 23px
+		.center
+			text-align center
+		.plane
+			margin-left 6px
+		.isprites
+			vertical-align middle
+		.crash
+			margin-left 11px
+		&.center
+			text-align center
+	.exportUDids
+		border 1px solid #ccc
+		border-radius 10px
+		color #96d6b7
+		display inline-block
+		float left
+		line-height 16px
+		margin-left 5px
+		margin-top 6px
+		width 82px
+		height 14px
+		outline none
+		span
+			float left
+		.icUDiDArrow
+			margin 3px 0 0 7px
+		.text
+			font-size 8px
+			line-height 14px
+	.UDiD
+		float left
+		margin-left 55px
+.testers
+	.dataTables_info
+		font-size 10px
+.testers
+	.paging_full_numbers a.paginate_button
+		font-size 10px
+.ctnDropTest
+	padding 10px 0
+	.dropTest
+		border 1px dashed #b8b8b8
+		border-radius 12px
+		margin 0 auto
+		padding 4px
+		width 159px
+		&.hover-drop
+			border-color #4F4646
+		img
+			border-radius 12px
+			display block
+			overflow hidden
+			position relative
+.errTester
+	color #4F5259
+	font-size 12px
+	line-height 14px
+	padding 26px 25px
+	text-align center
+	a
+		color #4F5259
+		text-decoration underline
+/* Lnks Delete */
+.lnkAction
+	.isprites
+		margin-right 3px
+.lnkDelete
+	color #e66569
\ No newline at end of file
diff --git a/frontend/views/admin/layout/footer.styl b/frontend/views/admin/layout/footer.styl
new file mode 100755
index 0000000..524e4df
--- /dev/null
+++ b/frontend/views/admin/layout/footer.styl
@@ -0,0 +1,5 @@
+/**

+* Footer Section

+* @class Footer

+* @module style.css

+*/

diff --git a/frontend/views/admin/layout/general.styl b/frontend/views/admin/layout/general.styl
new file mode 100755
index 0000000..2204d2f
--- /dev/null
+++ b/frontend/views/admin/layout/general.styl
@@ -0,0 +1,5 @@
+/**

+* General Section

+* @class General

+* @module style.css

+*/
\ No newline at end of file
diff --git a/frontend/views/admin/layout/header.styl b/frontend/views/admin/layout/header.styl
new file mode 100755
index 0000000..3d8160b
--- /dev/null
+++ b/frontend/views/admin/layout/header.styl
@@ -0,0 +1,5 @@
+/**

+* Header Section

+* @class Header

+* @module style.css

+*/
\ No newline at end of file
diff --git a/frontend/views/admin/vhelpers/forms.styl b/frontend/views/admin/vhelpers/forms.styl
new file mode 100755
index 0000000..93e7c62
--- /dev/null
+++ b/frontend/views/admin/vhelpers/forms.styl
@@ -0,0 +1,5 @@
+/**
+* Forms CSS
+* @class forms
+* @module forms.css
+*/
diff --git a/frontend/views/admin/vhelpers/resources.styl b/frontend/views/admin/vhelpers/resources.styl
new file mode 100755
index 0000000..ab8f893
--- /dev/null
+++ b/frontend/views/admin/vhelpers/resources.styl
@@ -0,0 +1,5 @@
+/**
+* Resource CSS
+* @class resource
+* @module content.css
+*/
\ No newline at end of file
diff --git a/frontend/views/admin/vhelpers/sprites.styl b/frontend/views/admin/vhelpers/sprites.styl
new file mode 100755
index 0000000..32fa1f6
--- /dev/null
+++ b/frontend/views/admin/vhelpers/sprites.styl
@@ -0,0 +1,5 @@
+/**
+* Sprites CSS
+* @class sprites
+* @module sprites.css
+*/
\ No newline at end of file
diff --git a/img/editables/icon-set.psd b/img/editables/icon-set.psd
new file mode 100755
index 0000000..9e67f61
--- /dev/null
+++ b/img/editables/icon-set.psd
Binary files differ
diff --git a/index.html b/index.html
new file mode 100755
index 0000000..524cd91
--- /dev/null
+++ b/index.html
@@ -0,0 +1,32 @@
+
+<!doctype html>
+<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7" lang="es"> <![endif]-->
+<!--[if IE 7]>    <html class="lt-ie9 lt-ie8" lang="es"> <![endif]-->
+<!--[if IE 8]>    <html class="lt-ie9" lang="es"> <![endif]-->
+<!--[if gt IE 8]> <html lang="es"> <![endif]-->
+<head>
+  <meta charset="utf-8"/>
+  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
+  <title></title>
+  <meta name="title" content=""/>
+  <meta name="description" content=""/>
+  <meta name="keywords" content=""/>
+  <meta name="author" content=""/>
+  <meta name="viewport" content="width=device-width"/>
+  <meta name="language" content="es"/>
+  <meta name="robots" content="index,follow"/>
+  <meta property="og:site_name" content=""/>
+  <meta property="og:type" content="website"/>
+  <meta property="og:title" content=""/>
+  <meta property="og:description" content=""/>
+  <meta property="og:url" content=""/>
+  <meta property="og:image" content=""/>
+  <link href="" rel="image_src" type="image/jpeg"/>
+  <link href="" rel="icon" type="image/vnd.microsoft.icon"/>
+  <link href="" rel="shortcut icon" type="image/x-icon"/>
+  <link type="text/css" rel="stylesheet" href="css/admin.css?v=6"/><!--[if lt IE 9]>
+  <script src="js/html5shiv.js"></script><![endif]-->
+</head>
+<body>
+  <script type="text/javascript" src="js/jquery.js"></script>
+</body>
\ No newline at end of file
diff --git a/index.jade b/index.jade
new file mode 100755
index 0000000..2c8c5fd
--- /dev/null
+++ b/index.jade
@@ -0,0 +1,4 @@
+include jade/vars.jade

+include jade/head.jade

+body

+	include jade/scripts.jade
\ No newline at end of file
diff --git a/jade/head.jade b/jade/head.jade
new file mode 100755
index 0000000..8b075db
--- /dev/null
+++ b/jade/head.jade
@@ -0,0 +1,29 @@
+<!doctype html>

+<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7" lang="es"> <![endif]-->

+<!--[if IE 7]>    <html class="lt-ie9 lt-ie8" lang="es"> <![endif]-->

+<!--[if IE 8]>    <html class="lt-ie9" lang="es"> <![endif]-->

+<!--[if gt IE 8]> <html lang="es"> <![endif]-->

+head

+	meta(charset="utf-8")

+	meta(http-equiv="X-UA-Compatible", content="IE=edge,chrome=1")

+	title #{page_title}

+	meta(name="title", content="#{page_title}")

+	meta(name="description", content="#{page_desc}")

+	meta(name="keywords", content="#{page_keywords}")

+	meta(name="author", content="#{page_name}")

+	meta(name="viewport", content="width=device-width")

+	meta(name="language", content="#{lang}")

+	meta(name="robots", content="index,follow")

+	meta(property="og:site_name",content="#{page_url}")

+	meta(property="og:type",content="website")

+	meta(property="og:title",content="#{page_title}")

+	meta(property="og:description",content="#{page_desc}")

+	meta(property="og:url",content="#{page_url}")

+	meta(property="og:image",content="#{page_img}")

+	link(href="#{page_img}", rel="image_src", type="image/jpeg")

+	link(href="#{page_fav}", rel="icon", type="image/vnd.microsoft.icon")

+	link(href="#{page_fav}", rel="shortcut icon", type="image/x-icon")

+	link(type="text/css", rel="stylesheet", href="css/admin.css?v=#{version}")

+	<!--[if lt IE 9]>

+	script(src="js/html5shiv.js")

+	<![endif]-->
\ No newline at end of file
diff --git a/jade/include/appInfo.jade b/jade/include/appInfo.jade
new file mode 100755
index 0000000..2777436
--- /dev/null
+++ b/jade/include/appInfo.jade
@@ -0,0 +1,26 @@
+.appInfo
+	.infoCtn
+		.logoCo.logo
+			img(src="img/logoCo.png", alt="Online Studio Productions")
+			//.isprites.icCboIconCo
+		select.border.cboCompany
+			option(value="1") Online Studio Productions
+			option(value="2") Online2 Studio Productions
+			option(value="3") Online24 Studio Productions
+	.infoCtn
+		.logoAp.logo
+			img(src="img/logoApp.png", alt="Aplicación Número 1")
+			//.isprites.icCboIconApp
+		select.border.cboApp
+			option(value="1") JOCKEY PLAZA
+			option(value="2") REAL PLAZA
+	.infoCtn
+		.logoDe.logo
+			.isprites.icCboIconDe
+		select.border.cboDevice
+			option(value="1") iOS
+			option(value="2") Android
+	.infoCtn
+		.logoAd.logo
+			.isprites.icCboIconPlus
+		a(href="javascript:;").border.newApp ADD NEW APP
\ No newline at end of file
diff --git a/jade/include/appTabs.html b/jade/include/appTabs.html
new file mode 100755
index 0000000..a6db58c
--- /dev/null
+++ b/jade/include/appTabs.html
@@ -0,0 +1,37 @@
+
+<div class="appTabs"><a href="javascript:;" class="tab active">
+    <div class="action">
+      <div class="icon">
+        <div class="isprites icTabBundle"></div>
+      </div>
+      <div class="title">BUNDLE</div>
+    </div></a><a href="/provisioning.html" class="tab">
+    <div class="action">
+      <div class="icon">
+        <div class="isprites icTabProv"></div>
+      </div>
+      <div class="title">PROVISIONING</div>
+    </div></a><a href="/tester.html" class="tab">
+    <div class="action">
+      <div class="icon">
+        <div class="isprites icTabTest"></div>
+      </div>
+      <div class="title">TESTER</div>
+    </div></a>
+  <div class="tab emptyTab"></div><a href="/console.html" class="tab">
+    <div class="action">
+      <div class="icon">
+        <div class="isprites icTabConso"></div>
+      </div>
+      <div class="title">CONSOLE</div>
+    </div></a><a href="/feedback.html" class="tab">
+    <div class="action">
+      <div class="icon">
+        <div class="isprites icTabFeed"></div>
+      </div>
+      <div class="title">FEEDBACK</div>
+    </div></a><a href="javascript:;" class="tabClose">
+    <div class="iconClose">
+      <div class="isprites icBtnClose"></div>
+    </div></a>
+</div>
\ No newline at end of file
diff --git a/jade/include/appTabs.jade b/jade/include/appTabs.jade
new file mode 100755
index 0000000..a426464
--- /dev/null
+++ b/jade/include/appTabs.jade
@@ -0,0 +1,30 @@
+.appTabs
+	a(href="javascript:;").tab.active
+		.action
+			.icon
+				.isprites.icTabBundle
+			.title BUNDLE
+	a(href="/provisioning.html").tab
+		.action
+			.icon
+				.isprites.icTabProv
+			.title PROVISIONING
+	a(href="/tester.html").tab
+		.action
+			.icon
+				.isprites.icTabTest
+			.title TESTER
+	.tab.emptyTab
+	a(href="/console.html").tab
+		.action
+			.icon
+				.isprites.icTabConso
+			.title CONSOLE
+	a(href="/feedback.html").tab
+		.action
+			.icon
+				.isprites.icTabFeed
+			.title FEEDBACK
+	a(href="javascript:;").tabClose
+		.iconClose
+			.isprites.icBtnClose
\ No newline at end of file
diff --git a/jade/include/appTabs2.html b/jade/include/appTabs2.html
new file mode 100755
index 0000000..048af9a
--- /dev/null
+++ b/jade/include/appTabs2.html
@@ -0,0 +1,8 @@
+
+<div class="appTabs"><a href="javascript:;" class="tab active">
+    <div class="action">
+      <div class="icon">
+        <div class="sprites icCompany"></div>
+      </div>
+      <div class="title">Company</div>
+    </div></a></div>
\ No newline at end of file
diff --git a/jade/include/appTabs2.jade b/jade/include/appTabs2.jade
new file mode 100755
index 0000000..1503089
--- /dev/null
+++ b/jade/include/appTabs2.jade
@@ -0,0 +1,6 @@
+.appTabs
+	a(href="javascript:;").tab.active
+		.action
+			.icon
+				.sprites.icCompany
+			.title COMPANY
\ No newline at end of file
diff --git a/jade/include/header.jade b/jade/include/header.jade
new file mode 100755
index 0000000..bd77bb8
--- /dev/null
+++ b/jade/include/header.jade
@@ -0,0 +1,11 @@
+header

+	.box-center

+		h1.logoClaveTres

+			a(href="index.html",title="Clave 3 - Central de Alarmas") Clave 3 - Central del Alarmas

+		.ctnPerfil

+			ul

+				li 

+					img(src="/img/usuario.jpg").img

+				li.userName 

+					.userName Marco Ayala

+					.triangle
\ No newline at end of file
diff --git a/jade/include/menu.jade b/jade/include/menu.jade
new file mode 100755
index 0000000..269416b
--- /dev/null
+++ b/jade/include/menu.jade
@@ -0,0 +1,21 @@
+ul.main-menu

+	li

+		a(href="javascript",title="Perfil",class="active")

+			span.sprites.icMPerfil

+			span.mmenu-overlay

+	li

+		a(href="javascript",title="Fly")

+			span.sprites.icMFly

+			span.mmenu-overlay

+	li

+		a(href="javascript",title="Cloud")

+			span.sprites.icMCloud

+			span.mmenu-overlay

+	li

+		a(href="javascript",title="World")

+			span.sprites.icMWorld

+			span.mmenu-overlay

+	li

+		a(href="javascript",title="Filter")

+			span.sprites.icMFilter

+			span.mmenu-overlay
\ No newline at end of file
diff --git a/jade/include/sidebar.jade b/jade/include/sidebar.jade
new file mode 100755
index 0000000..2b1710c
--- /dev/null
+++ b/jade/include/sidebar.jade
@@ -0,0 +1,21 @@
+ul.mainMenu
+	li
+		a(href="javascript:;",title="Técnicos").tech.active
+			span.sprites
+			span.tit-mmenu TÉCNICOS
+			span.pointerMM
+	li
+		a(href="javascript:;",title="Materiales").mate
+			span.sprites
+			span.tit-mmenu MATERIALES
+			span.pointerMM
+	li
+		a(href="javascript:;",title="Operaciones").oper
+			span.sprites
+			span.tit-mmenu OPERACIONES
+			span.pointerMM
+	li
+		a(href="javascript:;",title="Ventas").sale
+			span.sprites
+			span.tit-mmenu VENTAS
+			span.pointerMM
\ No newline at end of file
diff --git a/jade/include/top-menu.jade b/jade/include/top-menu.jade
new file mode 100755
index 0000000..42a0adc
--- /dev/null
+++ b/jade/include/top-menu.jade
@@ -0,0 +1,14 @@
+.head-ctn
+	.head-lastupdt
+		span.isprites.icAlert
+		p Last Update 29 min ago
+	.head-user
+		p You are using betaflight as: 
+			span Online Studio Productions
+	ul.head-login
+		li
+			a(href="javascript:;",title="Help")
+				span.isprites.icMHelp
+				| HELP
+		li
+			a(href="javascript:;",title="Singout") SINGOUT
\ No newline at end of file
diff --git a/jade/scripts.jade b/jade/scripts.jade
new file mode 100755
index 0000000..cdc137f
--- /dev/null
+++ b/jade/scripts.jade
@@ -0,0 +1 @@
+script(type="text/javascript", src="js/jquery.js")
\ No newline at end of file
diff --git a/jade/vars.jade b/jade/vars.jade
new file mode 100755
index 0000000..e98feb9
--- /dev/null
+++ b/jade/vars.jade
@@ -0,0 +1,29 @@
+- var page_title = ''

+- var page_desc = ''

+- var page_keywords = ''

+- var page_name = ''

+- var lang = 'es'

+- var page_img = ''

+- var page_fav = ''

+- var developed = ''

+- version = Math.floor((Math.random()*15)+1)

+

+- var page_url = ''

+- var ga_code= 'AB-CDFGHIJK-L'

+- var arr2 = [0,1]

+- var array2 = [1,2]

+- var array3= [1,2,3]

+- var arr4 = [0,1,2,3]

+- var array4 = [1,2,3,4]

+- var array5 = [1,2,3,4,5]

+- var array6 = [1,2,3,4,5,6]

+- var array7 = [1,2,3,4,5,6,7]

+- var arr7 = [0,1,2,3,4,5,6]

+- var array8 = [1,2,3,4,5,6,7,8]

+- var array9 = [1,2,3,4,5,6,7,8,9]

+- var array10 = [1,2,3,4,5,6,7,8,9,10]

+- var array12 = [1,2,3,4,5,6,7,8,9,10,11,12]

+- var array14 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]

+- var array15 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

+- var array16 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]

+- var array17 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
\ No newline at end of file
diff --git a/js/html5shiv.js b/js/html5shiv.js
new file mode 100755
index 0000000..e490122
--- /dev/null
+++ b/js/html5shiv.js
@@ -0,0 +1 @@
+(function(k,m){var g="3.6.2pre";var d=k.html5||{};var h=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;var c=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;var q;var i="_html5shiv";var a=0;var o={};var e;(function(){try{var t=m.createElement("a");t.innerHTML="<xyz></xyz>";q=("hidden" in t);e=t.childNodes.length==1||(function(){(m.createElement)("a");var v=m.createDocumentFragment();return(typeof v.cloneNode=="undefined"||typeof v.createDocumentFragment=="undefined"||typeof v.createElement=="undefined")}())}catch(u){q=true;e=true}}());function f(t,v){var w=t.createElement("p"),u=t.getElementsByTagName("head")[0]||t.documentElement;w.innerHTML="x<style>"+v+"</style>";return u.insertBefore(w.lastChild,u.firstChild)}function l(){var t=j.elements;return typeof t=="string"?t.split(" "):t}function p(t){var u=o[t[i]];if(!u){u={};a++;t[i]=a;o[a]=u}return u}function n(w,t,v){if(!t){t=m}if(e){return t.createElement(w)}if(!v){v=p(t)}var u;if(v.cache[w]){u=v.cache[w].cloneNode()}else{if(c.test(w)){u=(v.cache[w]=v.createElem(w)).cloneNode()}else{u=v.createElem(w)}}return u.canHaveChildren&&!h.test(w)?v.frag.appendChild(u):u}function r(v,x){if(!v){v=m}if(e){return v.createDocumentFragment()}x=x||p(v);var y=x.frag.cloneNode(),w=0,u=l(),t=u.length;for(;w<t;w++){y.createElement(u[w])}return y}function s(t,u){if(!u.cache){u.cache={};u.createElem=t.createElement;u.createFrag=t.createDocumentFragment;u.frag=u.createFrag()}t.createElement=function(v){if(!j.shivMethods){return u.createElem(v)}return n(v,t,u)};t.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(v){u.createElem(v);u.frag.createElement(v);return'c("'+v+'")'})+");return n}")(j,u.frag)}function b(t){if(!t){t=m}var u=p(t);if(j.shivCSS&&!q&&!u.hasCSS){u.hasCSS=!!f(t,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")}if(!e){s(t,u)}return t}var j={elements:d.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:g,shivCSS:(d.shivCSS!==false),supportsUnknownElements:e,shivMethods:(d.shivMethods!==false),type:"default",shivDocument:b,createElement:n,createDocumentFragment:r};k.html5=j;b(m)}(this,document));
\ No newline at end of file
diff --git a/js/jquery.js b/js/jquery.js
new file mode 100755
index 0000000..9316fc2
--- /dev/null
+++ b/js/jquery.js
@@ -0,0 +1,8 @@
+/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery-1.10.2.min.map
+*/
+(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window);
+/*Jquery Custom Select*/
+(function(a){a.fn.extend({customSelect:function(c){if(typeof document.body.style.maxHeight==="undefined"){return this}var e={customClass:"customSelect",mapClass:true,mapStyle:true},c=a.extend(e,c),d=c.customClass,f=function(h,k){var g=h.find(":selected"),j=k.children(":first"),i=g.html()||"&nbsp;";j.html(i);if(g.attr("disabled")){k.addClass(b("DisabledOption"))}else{k.removeClass(b("DisabledOption"))}setTimeout(function(){k.removeClass(b("Open"));a(document).off("mouseup.customSelect")},60)},b=function(g){return d+g};return this.each(function(){var g=a(this),i=a("<span />").addClass(b("Inner")),h=a("<span />");g.after(h.append(i));h.addClass(d);if(c.mapClass){h.addClass(g.attr("class"))}if(c.mapStyle){h.attr("style",g.attr("style"))}g.addClass("hasCustomSelect").on("render.customSelect",function(){f(g,h);g.css("width","");var k=parseInt(g.outerWidth(),10)-(parseInt(h.outerWidth(),10)-parseInt(h.width(),10));h.css({display:"inline-block"});var j=h.outerHeight();if(g.attr("disabled")){h.addClass(b("Disabled"))}else{h.removeClass(b("Disabled"))}i.css({width:k,display:"inline-block"});g.css({"-webkit-appearance":"menulist-button",width:h.outerWidth(),position:"absolute",opacity:0,height:j,fontSize:h.css("font-size")})}).on("change.customSelect",function(){h.addClass(b("Changed"));f(g,h)}).on("keyup.customSelect",function(j){if(!h.hasClass(b("Open"))){g.trigger("blur.customSelect");g.trigger("focus.customSelect")}else{if(j.which==13||j.which==27){f(g,h)}}}).on("mousedown.customSelect",function(){h.removeClass(b("Changed"))}).on("mouseup.customSelect",function(j){if(!h.hasClass(b("Open"))){if(a("."+b("Open")).not(h).length>0&&typeof InstallTrigger!=="undefined"){g.trigger("focus.customSelect")}else{h.addClass(b("Open"));j.stopPropagation();a(document).one("mouseup.customSelect",function(k){if(k.target!=g.get(0)&&a.inArray(k.target,g.find("*").get())<0){g.trigger("blur.customSelect")}else{f(g,h)}})}}}).on("focus.customSelect",function(){h.removeClass(b("Changed")).addClass(b("Focus"))}).on("blur.customSelect",function(){h.removeClass(b("Focus")+" "+b("Open"))}).on("mouseenter.customSelect",function(){h.addClass(b("Hover"))}).on("mouseleave.customSelect",function(){h.removeClass(b("Hover"))}).trigger("render.customSelect")})}})})(jQuery);