├── CryptoFramework
├── CommonCrypto
│ ├── CommonCrypto.xcconfig
│ ├── Info.plist
│ ├── iphoneos.modulemap
│ └── iphonesimulator.modulemap
├── Crypto.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcuserdata
│ │ │ └── macsjh.xcuserdatad
│ │ │ └── UserInterfaceState.xcuserstate
│ └── xcuserdata
│ │ └── macsjh.xcuserdatad
│ │ └── xcschemes
│ │ ├── CommonCrypto.xcscheme
│ │ ├── Crypto.xcscheme
│ │ └── xcschememanagement.plist
└── Crypto
│ ├── Algorithm
│ ├── AES_256_ECB
│ │ ├── AES_API.swift
│ │ ├── NSAESData.swift
│ │ └── NSAESString.swift
│ ├── DictionaryEncryption.swift
│ ├── ENCDictionary.swift
│ ├── LowLevelEncryption.swift
│ └── MessageDigest.swift
│ ├── Crypto.h
│ ├── Info.plist
│ ├── NSDataExtension.swift
│ └── StringExtension.swift
├── Dictionary
├── holeworddict.txt
└── singlechar.txt
├── Licence
├── README.md
└── Server
├── contact
├── config.php
└── contact.php
├── css
├── animate.css
├── bootstrap-theme.css
├── bootstrap.css
├── font-awesome.css
├── isotope.css
├── overwrite.css
└── style.css
├── fonts
├── fontawesome
│ ├── FontAwesome.otf
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ └── fontawesome-webfont.woff
├── glyphicons-halflings-regular.eot
├── glyphicons-halflings-regular.eot@
├── glyphicons-halflings-regular.svg
├── glyphicons-halflings-regular.ttf
└── glyphicons-halflings-regular.woff
├── img
├── parallax
│ ├── img1.jpg
│ ├── img2.jpg
│ └── img3.jpg
├── portfolio
│ ├── img1.jpg
│ ├── img10.jpg
│ ├── img11.jpg
│ ├── img12.jpg
│ ├── img2.jpg
│ ├── img3.jpg
│ ├── img4.jpg
│ ├── img5.jpg
│ ├── img6.jpg
│ ├── img7.jpg
│ ├── img8.jpg
│ └── img9.jpg
├── slides
│ ├── slide1.png
│ ├── slide2.png
│ └── slide3.png
└── team
│ ├── member1.jpg
│ ├── member2.jpg
│ ├── member2.png
│ ├── member3.jpg
│ ├── member3.png
│ └── member4.jpg
├── index.html
├── js
├── bootstrap.min.js
├── fancybox
│ ├── Descr.WD3
│ ├── blank.gif
│ ├── fancybox_loading.gif
│ ├── fancybox_loading_402x.gif
│ ├── fancybox_overlay.png
│ ├── fancybox_sprite.png
│ ├── fancybox_sprite_402x.png
│ ├── jquery.fancybox.css
│ └── jquery.fancybox.pack.js
├── jquery.appear.js
├── jquery.easing.1.3.js
├── jquery.isotope.min.js
├── jquery.js
├── jquery.localscroll-1.2.7-min.js
├── jquery.nicescroll.min.js
├── jquery.scrollTo-1.4.3.1-min.js
├── main.js
├── modernizr-2.6.2-respond-1.1.0.min.js
├── skrollr.min.js
├── stellar.js
└── validate.js
└── skin
└── default.css
/CryptoFramework/CommonCrypto/CommonCrypto.xcconfig:
--------------------------------------------------------------------------------
1 | //
2 | // CommonCrypto.xcconfig
3 | // Heimdall
4 | //
5 | // Created by Henri Normak on 09/05/15.
6 | // Copyright (c) 2015 Henri Normak. All rights reserved.
7 | //
8 |
9 | MODULEMAP_FILE[sdk=iphoneos*] = $(SRCROOT)/CommonCrypto/iphoneos.modulemap
10 | MODULEMAP_FILE[sdk=iphonesimulator*] = $(SRCROOT)/CommonCrypto/iphonesimulator.modulemap
--------------------------------------------------------------------------------
/CryptoFramework/CommonCrypto/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/CryptoFramework/CommonCrypto/iphoneos.modulemap:
--------------------------------------------------------------------------------
1 | module CommonCrypto [system] {
2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/CommonCrypto/CommonCrypto.h"
3 | export *
4 | }
5 |
--------------------------------------------------------------------------------
/CryptoFramework/CommonCrypto/iphonesimulator.modulemap:
--------------------------------------------------------------------------------
1 | module CommonCrypto [system] {
2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/include/CommonCrypto/CommonCrypto.h"
3 | export *
4 | }
5 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto.xcodeproj/project.xcworkspace/xcuserdata/macsjh.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoManTeam/Hole/2976bcb13716a4ccc8dba17ffae72cd29515d79d/CryptoFramework/Crypto.xcodeproj/project.xcworkspace/xcuserdata/macsjh.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/CryptoFramework/Crypto.xcodeproj/xcuserdata/macsjh.xcuserdatad/xcschemes/CommonCrypto.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
34 |
35 |
45 |
46 |
52 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
70 |
71 |
72 |
73 |
75 |
76 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto.xcodeproj/xcuserdata/macsjh.xcuserdatad/xcschemes/Crypto.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
34 |
35 |
45 |
46 |
52 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
70 |
71 |
72 |
73 |
75 |
76 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto.xcodeproj/xcuserdata/macsjh.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | CommonCrypto.xcscheme
8 |
9 | orderHint
10 | 1
11 |
12 | Crypto.xcscheme
13 |
14 | orderHint
15 | 0
16 |
17 |
18 | SuppressBuildableAutocreation
19 |
20 | 93BCC3621BD28126003F6ECE
21 |
22 | primary
23 |
24 |
25 | 93BCC3871BD282A6003F6ECE
26 |
27 | primary
28 |
29 |
30 | 93BCC3951BD282C4003F6ECE
31 |
32 | primary
33 |
34 |
35 | 93BCC3A21BD282E9003F6ECE
36 |
37 | primary
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/AES_256_ECB/AES_API.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AES.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/9/24.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 |
12 | /**
13 | AES_256_ECB加密API
14 |
15 | - Parameter plainText: 要加密的明文
16 | - Parameter key: 密码(长度任意,会转换为MD5值)
17 | - Returns: 加密后的密文(base64编码字符串)
18 | */
19 | func aesEncrypt(plainText:NSString, var key:String) -> NSString?
20 | {
21 | key = MessageDigest.md5(key)
22 | let base64PlainText = LowLevelEncryption.base64Encode(plainText)
23 | if(base64PlainText != nil)
24 | {
25 | let cipherText = NSAESString.aes256_encrypt(base64PlainText!, Key: key)
26 | if(cipherText != nil)
27 | {
28 | return LowLevelEncryption.base64Encode(cipherText!)
29 | }
30 | }
31 | return nil
32 | }
33 |
34 | /**
35 | AES_256_ECB解密API
36 |
37 | - Parameter plainText: 要解密的密文
38 | - Parameter key: 密码(长度任意,会转换为MD5值)
39 | - Returns: 明文(base64编码字符串)
40 | */
41 | func aesDecrypt(cipherText:NSString, var key:String) -> NSString?
42 | {
43 | key = MessageDigest.md5(key)
44 | let originCipherText = LowLevelEncryption.base64Decode(cipherText)
45 | if(originCipherText != nil)
46 | {
47 | let base64CipherText = NSAESString.aes256_decrypt(originCipherText!, key: key)
48 | if (base64CipherText != nil)
49 | {
50 | return LowLevelEncryption.base64Decode(base64CipherText!)
51 | }
52 | }
53 | return nil
54 | }
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/AES_256_ECB/NSAESData.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSAESData.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/10/17.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import CommonCrypto
11 |
12 | extension NSData
13 | {
14 | func aes256_encrypt(key:NSString) -> NSData? //加密
15 | {
16 | let keyPtr:UnsafeMutablePointer = UnsafeMutablePointer.alloc(kCCKeySizeAES256+1)
17 | bzero(keyPtr, kCCKeySizeAES256+1)
18 | key.getCString(keyPtr, maxLength: kCCKeySizeAES256+1, encoding: NSUTF8StringEncoding)
19 | let dataLength:Int = self.length
20 | let bufferSize:size_t = dataLength + kCCBlockSizeAES128
21 | let buffer:UnsafeMutablePointer = malloc(bufferSize)
22 | var numBytesEncrypted:size_t = 0
23 | let cryptStatus:CCCryptorStatus = CCCrypt(CCOperation(kCCEncrypt), CCAlgorithm(kCCAlgorithmAES128),
24 | CCOptions(kCCOptionPKCS7Padding | kCCOptionECBMode),
25 | keyPtr, kCCBlockSizeAES128,
26 | nil,
27 | self.bytes, dataLength,
28 | buffer, bufferSize,
29 | &numBytesEncrypted)
30 | if (UInt32(cryptStatus) == UInt32(kCCSuccess)) {
31 | return NSData(bytesNoCopy:buffer, length:numBytesEncrypted);
32 | }
33 | free(buffer)
34 | return nil;
35 | }
36 |
37 | func aes256_decrypt(key:NSString) -> NSData? //解密
38 | {
39 | let keyPtr:UnsafeMutablePointer = UnsafeMutablePointer.alloc(kCCKeySizeAES256+1)
40 | bzero(keyPtr, kCCKeySizeAES256+1)
41 | key.getCString(keyPtr, maxLength: kCCKeySizeAES256+1, encoding: NSUTF8StringEncoding)
42 | let dataLength:Int = self.length
43 | let bufferSize:size_t = dataLength + kCCBlockSizeAES128
44 | let buffer:UnsafeMutablePointer = malloc(bufferSize)
45 | var numBytesDecrypted:size_t = 0
46 | let cryptStatus:CCCryptorStatus = CCCrypt(CCOperation(kCCDecrypt), CCAlgorithm(kCCAlgorithmAES128),
47 | CCOptions(kCCOptionPKCS7Padding | kCCOptionECBMode),
48 | keyPtr, kCCBlockSizeAES128,
49 | nil,
50 | self.bytes, dataLength,
51 | buffer, bufferSize,
52 | &numBytesDecrypted)
53 | if (UInt32(cryptStatus) == UInt32(kCCSuccess)) {
54 | return NSData(bytesNoCopy: buffer, length:numBytesDecrypted);
55 | }
56 | free(buffer);
57 | return nil;
58 | }
59 | }
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/AES_256_ECB/NSAESString.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NSAESString.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/10/17.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | class NSAESString:NSObject
11 | {
12 | internal static func aes256_encrypt(PlainText:NSString, Key:NSString) -> NSString?
13 | {
14 | let cstr:UnsafePointer = PlainText.cStringUsingEncoding(NSUTF8StringEncoding)
15 | let data = NSData(bytes: cstr, length:PlainText.length)
16 | //对数据进行加密
17 | let result = data.aes256_encrypt(Key)
18 | if (result != nil && result!.length > 0 ) {
19 | return result!.toHexString()
20 | }
21 | return nil
22 | }
23 |
24 | internal static func aes256_decrypt(CipherText:String, key:NSString) -> NSString?
25 | {
26 | //转换为2进制Data
27 | guard let data = CipherText.hexStringToData() else {return nil}
28 | //对数据进行解密
29 | let result = data.aes256_decrypt(key)
30 | if (result != nil && result!.length > 0) {
31 | return NSString(data:result!, encoding:NSUTF8StringEncoding)
32 | }
33 | return nil
34 | }
35 | }
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/DictionaryEncryption.swift:
--------------------------------------------------------------------------------
1 | //
2 | // DictionaryEncryption.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/9/28.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | ///字典加密算法
12 | public class DictionaryEncryption {
13 |
14 |
15 | ///将明文按照字典映射为密文
16 | ///
17 | ///- Parameter plainText: 待加密的明文
18 | ///- Parameter encDictionary: 映射用的字典
19 | ///- Returns: 加密后的密文(均为可打印字符)
20 | public static func dictionaryEncrypt(plainText: String, encDictionary: Dictionary) -> String
21 | {
22 | var cipherText: String = ""
23 | for char in plainText.characters
24 | {
25 | let encChar = encDictionary[String(char)]
26 | if(encChar != nil)
27 | {
28 | cipherText += encChar!
29 | }
30 | else
31 | {
32 | cipherText += String(char)
33 | }
34 | }
35 | return cipherText
36 | }
37 |
38 |
39 | ///将密文按照字典反映射为明文
40 | ///
41 | ///- Parameter plainText: 待加密的明文
42 | ///- Parameter encDictionary: 映射用的字典(与加密用的字典相同)
43 | ///- Returns: 解密后的明文
44 | public static func dictionaryDecrypt(cipherText: String, encDictionary: Dictionary) -> String
45 | {
46 | var plainText: String = ""
47 | for char in cipherText.characters
48 | {
49 | var HasKey = false
50 | for (key, value) in encDictionary
51 | {
52 | if(String(char) == value)
53 | {
54 | plainText += key
55 | HasKey = true
56 | break
57 | }
58 | }
59 | if(!HasKey)
60 | {
61 | plainText += String(char)
62 | }
63 | }
64 | return plainText
65 | }
66 |
67 | ///读取Json文件为Dictionary变量
68 | ///
69 | ///- Parameter plainText: Json文件绝对路径名
70 | ///- Returns: 读出的Dictionary
71 | public static func dictionaryDecrypt(cipherText: String, encDictionary: Dictionary) -> String
72 | {
73 | if (encDictionary == morseDictionary){
74 | var temp: String = cipherText
75 | for (key, value) in encDictionary{
76 | guard let range = temp.rangeOfString(value) else {continue}
77 | if range.startIndex == value.startIndex{
78 | temp.replaceRange(range, with: " " + key + " ")
79 | }
80 | var srange = temp.rangeOfString(" " + value)
81 | while srange != nil{
82 | temp.replaceRange(srange!, with: " " + key + " ")
83 | srange = temp.rangeOfString(" " + value)
84 | }
85 | }
86 | var plainText = ""
87 | for char in temp.characters{
88 | if(char != " "){
89 | plainText.append(char)
90 | }
91 | }
92 | return plainText
93 | }
94 | else{
95 | var plainText: String = ""
96 | for char in cipherText.characters
97 | {
98 | var HasKey = false
99 | for (key, value) in encDictionary
100 | {
101 | if(String(char) == value)
102 | {
103 | plainText += key
104 | HasKey = true
105 | break
106 | }
107 | }
108 | if(!HasKey)
109 | {
110 | plainText += String(char)
111 | }
112 | }
113 | return plainText
114 | }
115 | }
116 |
117 | }
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/ENCDictionary.swift:
--------------------------------------------------------------------------------
1 | //
2 | // EmojiDictionary.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/10/1.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | /// 英文字符Emoji字典(含英文半角符号)
12 | let englishEmojiDictionary:Dictionary =
13 | [
14 | "a": "😄", "b": "😁", "c": "😂", "d": "😃", "e": "😄", "f": "😅", "g": "😆", "h": "😇",
15 | "i": "😈", "j": "👿", "k": "😉", "l": "😊", "m": "☺️", "n": "😋", "o": "😌", "p": "😍",
16 | "q": "😎", "r": "😏", "s": "😐", "t": "😑", "u": "😒", "v": "😓", "w": "😔", "x": "😕",
17 | "y": "😖", "z": "😗",
18 |
19 | "~": "😘", "!": "😙", "@": "😚", "#": "😛", "$": "😜", "%": "😝", "^": "😞", "&": "😟",
20 | "*": "😠", "(": "😡", ")": "😢", "_": "😣", "+": "😤", "`": "😥", "-": "😦", "=": "😧",
21 | "{": "😨", "}": "😩", "|": "😪", "[": "😫", "]": "😬", "\\": "😭", ":": "😮", "\"": "😯",
22 | ";": "😰", "'": "😱", "<": "😲", ">": "😳", "?": "😴", ",": "😵", ".": "😶", "/": "😷",
23 | " ": "😸",
24 |
25 | "A": "😸", "B": "😹", "C": "😻", "D": "😼", "E": "😽", "F": "🙀", "G": "😿", "H": "😾",
26 | "I": "🙌", "J": "👏", "K": "👋", "L": "👍", "M": "👊", "N": "✊", "O": "✌️", "P": "👌",
27 | "Q": "✋", "R": "👐", "S": "💪", "T": "🙏", "U": "☝️", "V": "👆", "W": "👇", "X": "👈",
28 | "Y": "👉", "Z": "🖕"
29 | ]
30 |
31 | let morseDictionary:Dictionary =
32 | [
33 | "A" : ".━ ",
34 | "E" : ". ",
35 | "I" : ".. ",
36 | "M" : "━━ ",
37 | "Q" : "━━.━ ",
38 | "U" : "..━ ",
39 | "Y" : "━.━━ ",
40 | "0" : "━━━━━ ",
41 | "4" : "....━ ",
42 | "8" : "━━━.. ",
43 | "." : ".━.━.━ ",
44 | "?" : "..━━.. ",
45 | "!" : "━.━.━━ ",
46 | "(" : "━.━━. ",
47 | "@" : ".━━.━. ",
48 | "B" : "━... ",
49 | "F" : "..━. ",
50 | "J" : ".━━━ ",
51 | "N" : "━. ",
52 | "R" : ".━. ",
53 | "V" : "...━ ",
54 | "Z" : "━━.. ",
55 | "1" : ".━━━━ ",
56 | "5" : "..... ",
57 | "9" : "━━━━. ",
58 | ":" : "━━━... ",
59 | "=" : "━...━ ",
60 | "━" : "━....━ ",
61 | ")" : "━.━━.━ ",
62 | "C" : "━.━. ",
63 | "G" : "━━. ",
64 | "K" : "━.━ ",
65 | "O" : "━━━ ",
66 | "S" : "... ",
67 | "W" : ".━━ ",
68 | "2" : "..━━━ ",
69 | "6" : "━.... ",
70 | "," : "━━..━━ ",
71 | "'" : ".━━━━. ",
72 | "_" : "..━━.━ ",
73 | "$" : "...━..━ ",
74 | "D" : "━.. ",
75 | "H" : ".... ",
76 | "L" : ".━.. ",
77 | "P" : ".━━. ",
78 | "T" : "━ ",
79 | "X" : "━..━ ",
80 | "3" : "...━━ ",
81 | "7" : "━━... ",
82 | ";" : "━.━.━. ",
83 | "/" : "━..━. ",
84 | "\"" : ".━..━. ",
85 | "&" : ".━... "
86 | ]
87 |
88 | // TODO: 更改Emoji字典存取方式
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/LowLevelEncryption.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RandomText.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/9/28.
6 | // Copyright © 2015年 Marcin Krzyzanowski. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | ///低级加密算法
12 | public class LowLevelEncryption {
13 |
14 | ///符号集
15 | public static let symbols = ".,!?/\\+=-_;:\"'#$%^&*~∙<>(){}[]|®©™℠×÷。,!?、\\;:♬—“”‘’#¥%^&*~•《》(){}【】…→←↑↓✓✕ "
16 |
17 | ///英文小写字母集
18 | public static let englishCharacter:String = "abcdefghijklmnopqrstuvwxyz"
19 |
20 | ///英文大写字母集
21 | public static let bigEnglishCharacter:String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
22 |
23 | ///将明文按一定分隔符分隔成多个单元,并按照随机顺序重组的算法
24 | ///- 明文需要一定长度,打乱才有意义
25 | ///- 无解密算法(需要正常成年人水平的语义分析才有可能解密)
26 | ///
27 | ///- Parameter plainText: 待加密的明文
28 | ///- Parameter splitChars: 分隔字符集,决定明文以何种方式分隔,留空则以1个NSString单位长度分割
29 | ///- Returns: 加密后的密文(均为可打印字符)
30 | public static func randomText(plainText:NSString, splitChars:String?) -> String
31 | {
32 | var charSet:[String] = []
33 | for (var i = 0; i < plainText.length; ++i)
34 | {
35 | if(splitChars == nil)
36 | {
37 | let temp = plainText.substringFromIndex(i)
38 | charSet.append(NSString(string: temp).substringToIndex(1))
39 | }
40 | else
41 | {
42 | var j:Int
43 | var word:String = ""
44 | for(j = i; j < plainText.length; ++j)
45 | {
46 | let temp = plainText.substringFromIndex(j)
47 | let char = NSString(string: temp).substringToIndex(1)
48 | var isEqualToUnit = false
49 | for unit in splitChars!.characters
50 | {
51 | if (char == String(unit))
52 | {
53 | isEqualToUnit = true
54 | break
55 | }
56 | }
57 | if isEqualToUnit == true
58 | {
59 | break
60 | }
61 | }
62 | if(j > plainText.length)
63 | {
64 | word = plainText.substringFromIndex(i)
65 | break
66 | }
67 | else
68 | {
69 | var temp = plainText.substringFromIndex(i)
70 | word = NSString(string: temp).substringToIndex(j-i)
71 | temp = plainText.substringFromIndex(j)
72 | if(temp != "")
73 | {
74 | charSet.append(NSString(string: temp).substringToIndex(1))
75 | }
76 | i = j
77 | }
78 | charSet.append(word)
79 | }
80 | }
81 |
82 | var RandomString:String = ""
83 | while(charSet.count != 0)
84 | {
85 | let randNum = Int(arc4random_uniform(UInt32(charSet.count)))
86 | RandomString += charSet[randNum]
87 | charSet.removeAtIndex(randNum)
88 | }
89 | return RandomString
90 | }
91 |
92 | ///将英文按照字母表的顺序、中文按照密语输入法汉字字库中的顺序,偏移指定的量
93 | ///
94 | ///- Parameter plainText: 待加密的明文
95 | ///- Parameter Shift: 偏移量,不应为零,加解密时的偏移量应互为相反数
96 | ///- Returns: 加密后的密文(均为可打印字符)
97 | public static func caesarCode(plainText: String, shift:Int) -> String
98 | {
99 | var cipherText = ""
100 | for(var i = 0; i < plainText.characters.count; ++i)
101 | {
102 | var isEChar = false
103 | for(var j = 0; j < englishCharacter.characters.count; ++j)
104 | {
105 | if englishCharacter[englishCharacter.startIndex.advancedBy(j)] == plainText[plainText.startIndex.advancedBy(i)]
106 | {
107 | var shiftIndex = (shift + j) % 26
108 | if(shiftIndex < 0)
109 | {
110 | shiftIndex += 26
111 | }
112 | cipherText.append(englishCharacter[englishCharacter.startIndex.advancedBy(shiftIndex)]) //.appendFormat("%c", eChar[shiftIndex])
113 | isEChar = true
114 | break
115 | }
116 | else if bigEnglishCharacter[bigEnglishCharacter.startIndex.advancedBy(j)] == plainText[plainText.startIndex.advancedBy(i)]
117 | {
118 | var shiftIndex = (shift + j) % 26
119 | if(shiftIndex < 0)
120 | {
121 | shiftIndex += 26
122 | }
123 | cipherText.append(bigEnglishCharacter[bigEnglishCharacter.startIndex.advancedBy(shiftIndex)]) //Format("%c", bEChar[shiftIndex])
124 | isEChar = true
125 | break
126 | }
127 | }
128 | if(isEChar == false)
129 | {
130 | cipherText.append(plainText[plainText.startIndex.advancedBy(i)])
131 | }
132 | }
133 | return cipherText
134 | // TODO: 增加中文凯撒加密算法
135 | }
136 |
137 | ///将明文转换为base64编码的字符串
138 | ///
139 | ///- Parameter plainText: 待编码的明文
140 | ///- Returns: base64编码的字符串(均为可打印字符)
141 | public static func base64Encode(plainText:NSString) -> String?
142 | {
143 | let sourceData = plainText.dataUsingEncoding(NSUTF8StringEncoding)
144 | if(sourceData != nil){
145 | return sourceData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
146 | }
147 | else {
148 | return nil
149 | }
150 | }
151 |
152 | ///对base64编码的字符串进行解码
153 | ///
154 | ///- Parameter plainText: 待编码的明文
155 | ///- Returns: 解码后的字符串(均为可打印字符)
156 | public static func base64Decode(cipherText:NSString) -> String?
157 | {
158 | let sourceData = NSData(base64EncodedString: cipherText as String, options: NSDataBase64DecodingOptions(rawValue: 0))
159 | if(sourceData != nil)
160 | {
161 | return String(data: sourceData!, encoding: NSUTF8StringEncoding)
162 | }
163 | return nil
164 | }
165 | }
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Algorithm/MessageDigest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MD5.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/9/30.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | import CommonCrypto
11 |
12 | ///信息摘要算法集,用于验证数据完整性、变长字符串转换为定长、数字签名等
13 | class MessageDigest
14 | {
15 | internal static func md5(str:String) -> String{
16 | let cStr = (str as NSString).UTF8String
17 | let buffer = UnsafeMutablePointer.alloc(16)
18 | CC_MD4(cStr,(CC_LONG)(strlen(cStr)), buffer)
19 | let md5String = NSMutableString()
20 | for var i = 0; i < 8; ++i
21 | {
22 | md5String.appendFormat("%02x", buffer [i])
23 | }
24 | free(buffer)
25 | return md5String as String
26 | }
27 | // TODO: Add more algorithm such as sha1、sha256
28 | }
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Crypto.h:
--------------------------------------------------------------------------------
1 | //
2 | // Crypto.h
3 | // Crypto
4 | //
5 | // Created by macsjh on 15/10/17.
6 | // Copyright © 2015年 TurboExtension. All rights reserved.
7 | //
8 |
9 | @import Foundation;
10 |
11 | //! Project version number for Crypto.
12 | FOUNDATION_EXPORT double CryptoVersionNumber;
13 |
14 | //! Project version string for Crypto.
15 | FOUNDATION_EXPORT const unsigned char CryptoVersionString[];
16 |
17 | // In this header, you should import all the public headers of your framework using statements like #import
18 |
19 |
20 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSPrincipalClass
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/NSDataExtension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PGPDataExtension.swift
3 | // SwiftPGP
4 | //
5 | // Created by Marcin Krzyzanowski on 05/07/14.
6 | // Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension NSMutableData {
12 | /** Convenient way to append bytes */
13 | internal func appendBytes(arrayOfBytes: [UInt8]) {
14 | self.appendBytes(arrayOfBytes, length: arrayOfBytes.count)
15 | }
16 | }
17 |
18 | extension NSData {
19 |
20 | public func checksum() -> UInt16 {
21 | var s:UInt32 = 0;
22 |
23 | var bytesArray = self.arrayOfBytes()
24 |
25 | for (var i = 0; i < bytesArray.count; i++) {
26 | _ = bytesArray[i]
27 | s = s + UInt32(bytesArray[i])
28 | }
29 | s = s % 65536;
30 | return UInt16(s);
31 | }
32 |
33 | public func toHexString() -> String {
34 | let count = self.length / sizeof(UInt8)
35 | var bytesArray = [UInt8](count: count, repeatedValue: 0)
36 | self.getBytes(&bytesArray, length:count * sizeof(UInt8))
37 |
38 | var s:String = "";
39 | for byte in bytesArray {
40 | s = s + String(format:"%02x", byte)
41 | }
42 | return s
43 | }
44 |
45 | public func arrayOfBytes() -> [UInt8] {
46 | let count = self.length / sizeof(UInt8)
47 | var bytesArray = [UInt8](count: count, repeatedValue: 0)
48 | self.getBytes(&bytesArray, length:count * sizeof(UInt8))
49 | return bytesArray
50 | }
51 |
52 | class public func withBytes(bytes: [UInt8]) -> NSData {
53 | return NSData(bytes: bytes, length: bytes.count)
54 | }
55 | }
56 |
57 |
--------------------------------------------------------------------------------
/CryptoFramework/Crypto/StringExtension.swift:
--------------------------------------------------------------------------------
1 | //
2 | // StringExtension.swift
3 | // 密语输入法
4 | //
5 | // Created by macsjh on 15/12/2.
6 | // Copyright © 2015年 macsjh. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension String
12 | {
13 | func subString(fromIndex:Int, length:Int) -> String
14 | {
15 | let temp = NSString(string: self)
16 | let tempFrom = NSString(string: temp.substringFromIndex(fromIndex))
17 | return tempFrom.substringToIndex(length)
18 | }
19 |
20 | ///返回给定字符串在本串中的位置,不存在返回-1
21 | func indexOf(string: String) -> Int
22 | {
23 | let range = NSString(string: self).rangeOfString(string)
24 | if(range.length < 1)
25 | {
26 | return -1
27 | }
28 | return range.location
29 | }
30 |
31 | var intValue:Int?
32 | {
33 | get{
34 | return NSNumberFormatter().numberFromString(self)?.integerValue
35 | }
36 | }
37 |
38 | ///将表示十六进制数据的字符串转换为对应的二进制数据
39 | ///
40 | ///- Parameter string:形如“6E7C2F”的字符串
41 | ///- Returns: 对应的二进制数据
42 | public func hexStringToData() ->NSData?
43 | {
44 | let hexString:NSString = self.uppercaseString.stringByReplacingOccurrencesOfString(" ", withString:"")
45 | if (hexString.length % 2 != 0) {
46 | return nil
47 | }
48 | var tempbyt:[UInt8] = [0]
49 | let bytes = NSMutableData(capacity: hexString.length / 2)
50 | for(var i = 0; i < hexString.length; ++i)
51 | {
52 | let hex_char1:unichar = hexString.characterAtIndex(i)
53 | var int_ch1:Int
54 | if(hex_char1 >= 48 && hex_char1 <= 57)
55 | {
56 | int_ch1 = (Int(hex_char1) - 48) * 16
57 | }
58 | else if(hex_char1 >= 65 && hex_char1 <= 70)
59 | {
60 | int_ch1 = (Int(hex_char1) - 55) * 16
61 | }
62 | else
63 | {
64 | return nil;
65 | }
66 | i++;
67 | let hex_char2:unichar = hexString.characterAtIndex(i)
68 | var int_ch2:Int
69 | if(hex_char2 >= 48 && hex_char2 <= 57)
70 | {
71 | int_ch2 = (Int(hex_char2) - 48)
72 | }
73 | else if(hex_char2 >= 65 && hex_char2 <= 70)
74 | {
75 | int_ch2 = Int(hex_char2) - 55;
76 | }
77 | else
78 | {
79 | return nil;
80 | }
81 |
82 | tempbyt[0] = UInt8(int_ch1 + int_ch2)
83 | bytes!.appendBytes(tempbyt, length:1)
84 | }
85 | return bytes;
86 | }
87 | }
--------------------------------------------------------------------------------
/Licence:
--------------------------------------------------------------------------------
1 | This is free and unencumbered software released into the public domain.
2 |
3 | Anyone is free to copy, modify, publish, use, compile, sell, or
4 | distribute this software, either in source code form or as a compiled
5 | binary, for any purpose, commercial or non-commercial, and by any
6 | means.
7 |
8 | In jurisdictions that recognize copyright laws, the author or authors
9 | of this software dedicate any and all copyright interest in the
10 | software to the public domain. We make this dedication for the benefit
11 | of the public at large and to the detriment of our heirs and
12 | successors. We intend this dedication to be an overt act of
13 | relinquishment in perpetuity of all present and future rights to this
14 | software under copyright law.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22 | OTHER DEALINGS IN THE SOFTWARE.
23 |
24 | For more information, please refer to
25 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Hole——密语输入法,从源头保障您的隐私安全
2 | ⚠️ 此项目已中止
3 | ###### 本项目仅为密语输入法的开源部分,由于某些原因,密语输入法暂时不能全部开源,若造成不便,请谅解。
4 |
5 | ### 密语输入法版本
6 | 当前在售:Discontinued
7 | 主要内容:新增高度调节,优化键盘按钮布局,修复大量重要bug,确保所有功能正常。
8 | ~~详见[App Store](https://appsto.re/cn/RzEw_.i)~~
9 |
10 | ### 密语 web 服务
11 | 无需安装,免费使用的加解密服务
12 | ~~[点此立刻使用](https://extens10n.github.io/hole-for-web/)~~
13 |
14 | ### 开发计划
15 | 正在开发:密语输入法 v2.0
16 |
17 | 新功能预告:
18 | 1. 界面彻底美化;
19 | 2. 增加英文词典;
20 | 3. 英文本地化;
21 | 4. 调整销售策略,下调中国区售价;
22 | 5. 修复bug;
23 |
24 | ### 开源内容摘要
25 | 1. 服务器端实现代码(限于团队实力,为了保障安全,需借助公共集体智慧)
26 | 2. 部分加密算法实现细节(以使有需要的人,在不使用本输入法时,只要有密钥,也能正常解密本输入法加密的内容)
27 | 3. 输入法所用词库(文件格式仅因开源方便而制成文本)
28 |
29 | ### 加密算法
30 | 1. 随机打乱(不适用于文件)
31 | 2. 凯撒密码(仅适用于英文字母,文件转换为十六进制数,对其中的字母移位)
32 | 3. Base 64
33 | 4. 字典加密(目前涵盖Emoji字典、摩尔斯摩尔斯码表,加密能力以字典为限)
34 | 5. AES-256-ECB(加密后的数据使用Base 64输出)
35 |
36 | ### Licence
37 |
38 | Unlicence
39 |
40 | 词库部分:
41 |
42 | 词库词汇来源:CC-CEDICT,License: http://creativecommons.org/licenses/by-sa/3.0/
43 |
44 | 词频信息来源:https://github.com/ling0322/webdict
45 |
--------------------------------------------------------------------------------
/Server/contact/config.php:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/Server/contact/contact.php:
--------------------------------------------------------------------------------
1 | \r\n"
30 | ."Reply-To: ".$email."\r\n"
31 | ."X-Mailer: PHP/" . phpversion());
32 |
33 |
34 | if($mail)
35 | {
36 | echo 'OK';
37 | }
38 |
39 | }
40 |
41 |
42 | }
43 | ?>
--------------------------------------------------------------------------------
/Server/css/bootstrap-theme.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.1.0 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | .btn-default,
8 | .btn-primary,
9 | .btn-success,
10 | .btn-info,
11 | .btn-warning,
12 | .btn-danger {
13 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
14 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
15 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
16 | }
17 | .btn-default:active,
18 | .btn-primary:active,
19 | .btn-success:active,
20 | .btn-info:active,
21 | .btn-warning:active,
22 | .btn-danger:active,
23 | .btn-default.active,
24 | .btn-primary.active,
25 | .btn-success.active,
26 | .btn-info.active,
27 | .btn-warning.active,
28 | .btn-danger.active {
29 | -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
30 | box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
31 | }
32 | .btn:active,
33 | .btn.active {
34 | background-image: none;
35 | }
36 | .btn-default {
37 | text-shadow: 0 1px 0 #fff;
38 | background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
39 | background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
40 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
41 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
42 | background-repeat: repeat-x;
43 | border-color: #dbdbdb;
44 | border-color: #ccc;
45 | }
46 | .btn-default:hover,
47 | .btn-default:focus {
48 | background-color: #e0e0e0;
49 | background-position: 0 -15px;
50 | }
51 | .btn-default:active,
52 | .btn-default.active {
53 | background-color: #e0e0e0;
54 | border-color: #dbdbdb;
55 | }
56 | .btn-primary {
57 | background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
58 | background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
59 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
60 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
61 | background-repeat: repeat-x;
62 | border-color: #2b669a;
63 | }
64 | .btn-primary:hover,
65 | .btn-primary:focus {
66 | background-color: #2d6ca2;
67 | background-position: 0 -15px;
68 | }
69 | .btn-primary:active,
70 | .btn-primary.active {
71 | background-color: #2d6ca2;
72 | border-color: #2b669a;
73 | }
74 | .btn-success {
75 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
76 | background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
77 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
78 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
79 | background-repeat: repeat-x;
80 | border-color: #3e8f3e;
81 | }
82 | .btn-success:hover,
83 | .btn-success:focus {
84 | background-color: #419641;
85 | background-position: 0 -15px;
86 | }
87 | .btn-success:active,
88 | .btn-success.active {
89 | background-color: #419641;
90 | border-color: #3e8f3e;
91 | }
92 | .btn-info {
93 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
94 | background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
95 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
96 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
97 | background-repeat: repeat-x;
98 | border-color: #28a4c9;
99 | }
100 | .btn-info:hover,
101 | .btn-info:focus {
102 | background-color: #2aabd2;
103 | background-position: 0 -15px;
104 | }
105 | .btn-info:active,
106 | .btn-info.active {
107 | background-color: #2aabd2;
108 | border-color: #28a4c9;
109 | }
110 | .btn-warning {
111 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
112 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
113 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
114 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
115 | background-repeat: repeat-x;
116 | border-color: #e38d13;
117 | }
118 | .btn-warning:hover,
119 | .btn-warning:focus {
120 | background-color: #eb9316;
121 | background-position: 0 -15px;
122 | }
123 | .btn-warning:active,
124 | .btn-warning.active {
125 | background-color: #eb9316;
126 | border-color: #e38d13;
127 | }
128 | .btn-danger {
129 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
130 | background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
131 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
132 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
133 | background-repeat: repeat-x;
134 | border-color: #b92c28;
135 | }
136 | .btn-danger:hover,
137 | .btn-danger:focus {
138 | background-color: #c12e2a;
139 | background-position: 0 -15px;
140 | }
141 | .btn-danger:active,
142 | .btn-danger.active {
143 | background-color: #c12e2a;
144 | border-color: #b92c28;
145 | }
146 | .thumbnail,
147 | .img-thumbnail {
148 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
149 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
150 | }
151 | .dropdown-menu > li > a:hover,
152 | .dropdown-menu > li > a:focus {
153 | background-color: #e8e8e8;
154 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
155 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
156 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
157 | background-repeat: repeat-x;
158 | }
159 | .dropdown-menu > .active > a,
160 | .dropdown-menu > .active > a:hover,
161 | .dropdown-menu > .active > a:focus {
162 | background-color: #357ebd;
163 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
164 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
165 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
166 | background-repeat: repeat-x;
167 | }
168 | .navbar-default {
169 | background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
170 | background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
171 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
172 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
173 | background-repeat: repeat-x;
174 | border-radius: 4px;
175 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
176 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
177 | }
178 | .navbar-default .navbar-nav > .active > a {
179 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
180 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
181 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
182 | background-repeat: repeat-x;
183 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
184 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
185 | }
186 | .navbar-brand,
187 | .navbar-nav > li > a {
188 | text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
189 | }
190 | .navbar-inverse {
191 | background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
192 | background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
193 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
194 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
195 | background-repeat: repeat-x;
196 | }
197 | .navbar-inverse .navbar-nav > .active > a {
198 | background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
199 | background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
200 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
201 | background-repeat: repeat-x;
202 | -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
203 | box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
204 | }
205 | .navbar-inverse .navbar-brand,
206 | .navbar-inverse .navbar-nav > li > a {
207 | text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
208 | }
209 | .navbar-static-top,
210 | .navbar-fixed-top,
211 | .navbar-fixed-bottom {
212 | border-radius: 0;
213 | }
214 | .alert {
215 | text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
216 | -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
217 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
218 | }
219 | .alert-success {
220 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
221 | background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
222 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
223 | background-repeat: repeat-x;
224 | border-color: #b2dba1;
225 | }
226 | .alert-info {
227 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
228 | background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
229 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
230 | background-repeat: repeat-x;
231 | border-color: #9acfea;
232 | }
233 | .alert-warning {
234 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
235 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
236 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
237 | background-repeat: repeat-x;
238 | border-color: #f5e79e;
239 | }
240 | .alert-danger {
241 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
242 | background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
243 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
244 | background-repeat: repeat-x;
245 | border-color: #dca7a7;
246 | }
247 | .progress {
248 | background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
249 | background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
250 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
251 | background-repeat: repeat-x;
252 | }
253 | .progress-bar {
254 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
255 | background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
256 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
257 | background-repeat: repeat-x;
258 | }
259 | .progress-bar-success {
260 | background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
261 | background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
262 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
263 | background-repeat: repeat-x;
264 | }
265 | .progress-bar-info {
266 | background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
267 | background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
268 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
269 | background-repeat: repeat-x;
270 | }
271 | .progress-bar-warning {
272 | background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
273 | background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
274 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
275 | background-repeat: repeat-x;
276 | }
277 | .progress-bar-danger {
278 | background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
279 | background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
280 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
281 | background-repeat: repeat-x;
282 | }
283 | .list-group {
284 | border-radius: 4px;
285 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
286 | box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
287 | }
288 | .list-group-item.active,
289 | .list-group-item.active:hover,
290 | .list-group-item.active:focus {
291 | text-shadow: 0 -1px 0 #3071a9;
292 | background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
293 | background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
294 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
295 | background-repeat: repeat-x;
296 | border-color: #3278b3;
297 | }
298 | .panel {
299 | -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
300 | box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
301 | }
302 | .panel-default > .panel-heading {
303 | background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
304 | background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
305 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
306 | background-repeat: repeat-x;
307 | }
308 | .panel-primary > .panel-heading {
309 | background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
310 | background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
311 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
312 | background-repeat: repeat-x;
313 | }
314 | .panel-success > .panel-heading {
315 | background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
316 | background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
317 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
318 | background-repeat: repeat-x;
319 | }
320 | .panel-info > .panel-heading {
321 | background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
322 | background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
323 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
324 | background-repeat: repeat-x;
325 | }
326 | .panel-warning > .panel-heading {
327 | background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
328 | background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
329 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
330 | background-repeat: repeat-x;
331 | }
332 | .panel-danger > .panel-heading {
333 | background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
334 | background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
335 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
336 | background-repeat: repeat-x;
337 | }
338 | .well {
339 | background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
340 | background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
341 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
342 | background-repeat: repeat-x;
343 | border-color: #dcdcdc;
344 | -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
345 | box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
346 | }
347 | /*# sourceMappingURL=bootstrap-theme.css.map */
348 |
--------------------------------------------------------------------------------
/Server/css/isotope.css:
--------------------------------------------------------------------------------
1 | /* Start: Recommended Isotope styles */
2 |
3 | /**** Isotope Filtering ****/
4 |
5 | .isotope-item {
6 | z-index: 2;
7 | }
8 |
9 | .isotope-hidden.isotope-item {
10 | pointer-events: none;
11 | z-index: 1;
12 | }
13 |
14 | /**** Isotope CSS3 transitions ****/
15 |
16 | .isotope,
17 | .isotope .isotope-item {
18 | -webkit-transition-duration: 0.8s;
19 | -moz-transition-duration: 0.8s;
20 | -ms-transition-duration: 0.8s;
21 | -o-transition-duration: 0.8s;
22 | transition-duration: 0.8s;
23 | }
24 |
25 | .isotope {
26 | -webkit-transition-property: height, width;
27 | -moz-transition-property: height, width;
28 | -ms-transition-property: height, width;
29 | -o-transition-property: height, width;
30 | transition-property: height, width;
31 | }
32 |
33 | .isotope .isotope-item {
34 | -webkit-transition-property: -webkit-transform, opacity;
35 | -moz-transition-property: -moz-transform, opacity;
36 | -ms-transition-property: -ms-transform, opacity;
37 | -o-transition-property: top, left, opacity;
38 | transition-property: transform, opacity;
39 | }
40 |
41 | /**** disabling Isotope CSS3 transitions ****/
42 |
43 | .isotope.no-transition,
44 | .isotope.no-transition .isotope-item,
45 | .isotope .isotope-item.no-transition {
46 | -webkit-transition-duration: 0s;
47 | -moz-transition-duration: 0s;
48 | -ms-transition-duration: 0s;
49 | -o-transition-duration: 0s;
50 | transition-duration: 0s;
51 | }
52 |
53 | /* End: Recommended Isotope styles */
54 |
55 |
56 |
57 | /* disable CSS transitions for containers with infinite scrolling*/
58 | .isotope.infinite-scrolling {
59 | -webkit-transition: none;
60 | -moz-transition: none;
61 | -ms-transition: none;
62 | -o-transition: none;
63 | transition: none;
64 | }
65 |
66 |
67 |
68 | /**** Isotope styles ****/
69 |
70 | /* required for containers to inherit vertical size from window */
71 | /*html,
72 | body {
73 | height: 100%;
74 | }*/
75 |
76 | #container {
77 | border: 1px solid #666;
78 | padding: 5px;
79 | margin-bottom: 20px;
80 | }
81 |
82 | .element {
83 | width: 110px;
84 | height: 110px;
85 | margin: 5px;
86 | float: left;
87 | overflow: hidden;
88 | position: relative;
89 | background: #888;
90 | color: #222;
91 | -webkit-border-top-right-radius: 1.2em;
92 | -moz-border-radius-topright: 1.2em;
93 | border-top-right-radius: 1.2em;
94 | }
95 |
96 | .element.alkali { background: #F00; background: hsl( 0, 100%, 50%); }
97 | .element.alkaline-earth { background: #F80; background: hsl( 36, 100%, 50%); }
98 | .element.lanthanoid { background: #FF0; background: hsl( 72, 100%, 50%); }
99 | .element.actinoid { background: #0F0; background: hsl( 108, 100%, 50%); }
100 | .element.transition { background: #0F8; background: hsl( 144, 100%, 50%); }
101 | .element.post-transition { background: #0FF; background: hsl( 180, 100%, 50%); }
102 | .element.metalloid { background: #08F; background: hsl( 216, 100%, 50%); }
103 | .element.other.nonmetal { background: #00F; background: hsl( 252, 100%, 50%); }
104 | .element.halogen { background: #F0F; background: hsl( 288, 100%, 50%); }
105 | .element.noble-gas { background: #F08; background: hsl( 324, 100%, 50%); }
106 |
107 |
108 | .element * {
109 | position: absolute;
110 | margin: 0;
111 | }
112 |
113 | .element .symbol {
114 | left: 0.2em;
115 | top: 0.4em;
116 | font-size: 3.8em;
117 | line-height: 1.0em;
118 | color: #FFF;
119 | }
120 | .element.large .symbol {
121 | font-size: 4.5em;
122 | }
123 |
124 | .element.fake .symbol {
125 | color: #000;
126 | }
127 |
128 | .element .name {
129 | left: 0.5em;
130 | bottom: 1.6em;
131 | font-size: 1.05em;
132 | }
133 |
134 | .element .weight {
135 | font-size: 0.9em;
136 | left: 0.5em;
137 | bottom: 0.5em;
138 | }
139 |
140 | .element .number {
141 | font-size: 1.25em;
142 | font-weight: bold;
143 | color: hsla(0,0%,0%,.5);
144 | right: 0.5em;
145 | top: 0.5em;
146 | }
147 |
148 | .variable-sizes .element.width2 { width: 230px; }
149 |
150 | .variable-sizes .element.height2 { height: 230px; }
151 |
152 | .variable-sizes .element.width2.height2 {
153 | font-size: 2.0em;
154 | }
155 |
156 | .element.large,
157 | .variable-sizes .element.large,
158 | .variable-sizes .element.large.width2.height2 {
159 | font-size: 3.0em;
160 | width: 350px;
161 | height: 350px;
162 | z-index: 100;
163 | }
164 |
165 | .clickable .element:hover {
166 | cursor: pointer;
167 | }
168 |
169 | .clickable .element:hover h3 {
170 | text-shadow:
171 | 0 0 10px white,
172 | 0 0 10px white
173 | ;
174 | }
175 |
176 | .clickable .element:hover h2 {
177 | color: white;
178 | }
179 |
180 |
--------------------------------------------------------------------------------
/Server/css/overwrite.css:
--------------------------------------------------------------------------------
1 | select,
2 | textarea,
3 | input[type="text"],
4 | input[type="password"],
5 | input[type="datetime"],
6 | input[type="datetime-local"],
7 | input[type="date"],
8 | input[type="month"],
9 | input[type="time"],
10 | input[type="week"],
11 | input[type="number"],
12 | input[type="email"],
13 | input[type="url"],
14 | input[type="search"],
15 | input[type="tel"],
16 | input[type="color"],
17 | .uneditable-input {
18 | -webkit-border-radius: 0;
19 | -moz-border-radius: 0;
20 | border-radius: 0;
21 | }
22 |
23 |
24 | input.input-block-level{
25 | padding:20px;
26 | }
27 |
28 | .input-append input,
29 | .input-prepend input,
30 | .input-append select,
31 | .input-prepend select,
32 | .input-append .uneditable-input,
33 | .input-prepend .uneditable-input {
34 | -webkit-border-radius: 0 0 0 0;
35 | -moz-border-radius: 0 0 0 0;
36 | border-radius: 0 0 0 0;
37 | }
38 |
39 | .input-prepend .add-on:first-child,
40 | .input-prepend .btn:first-child {
41 | -webkit-border-radius: 0 0 0 0;
42 | -moz-border-radius: 0 0 0 0;
43 | border-radius: 0 0 0 0;
44 | }
45 |
46 | .input-append input,
47 | .input-append select,
48 | .input-append .uneditable-input {
49 | -webkit-border-radius: 0 0 0 0;
50 | -moz-border-radius: 0 0 0 0;
51 | border-radius: 0 0 0 0;
52 | }
53 |
54 | .input-append input + .btn-group .btn:last-child,
55 | .input-append select + .btn-group .btn:last-child,
56 | .input-append .uneditable-input + .btn-group .btn:last-child {
57 | -webkit-border-radius: 0 0 0 0;
58 | -moz-border-radius: 0 0 0 0;
59 | border-radius: 0 0 0 0;
60 | }
61 |
62 |
63 | .input-append .add-on:last-child,
64 | .input-append .btn:last-child,
65 | .input-append .btn-group:last-child > .dropdown-toggle {
66 | -webkit-border-radius: 0 0 0 0;
67 | -moz-border-radius: 0 0 0 0;
68 | border-radius: 0 0 0 0;
69 | }
70 |
71 | .input-prepend.input-append input,
72 | .input-prepend.input-append select,
73 | .input-prepend.input-append .uneditable-input {
74 | -webkit-border-radius: 0;
75 | -moz-border-radius: 0;
76 | border-radius: 0;
77 | }
78 |
79 | .input-prepend.input-append input + .btn-group .btn,
80 | .input-prepend.input-append select + .btn-group .btn,
81 | .input-prepend.input-append .uneditable-input + .btn-group .btn {
82 | -webkit-border-radius: 0 0 0 0;
83 | -moz-border-radius: 0 0 0 0;
84 | border-radius: 0 0 0 0;
85 | }
86 |
87 | .input-prepend.input-append .add-on:first-child,
88 | .input-prepend.input-append .btn:first-child {
89 | margin-right: -1px;
90 | -webkit-border-radius: 0 0 0 0;
91 | -moz-border-radius: 0 0 0 0;
92 | border-radius: 0 0 0 0;
93 | }
94 |
95 | .input-prepend.input-append .add-on:last-child,
96 | .input-prepend.input-append .btn:last-child {
97 | margin-left: -1px;
98 | -webkit-border-radius: 0 0 0 0;
99 | -moz-border-radius: 0 0 0 0;
100 | border-radius: 0 0 0 0;
101 | }
102 |
103 | textarea:focus,
104 | input[type="text"]:focus,
105 | input[type="password"]:focus,
106 | input[type="datetime"]:focus,
107 | input[type="datetime-local"]:focus,
108 | input[type="date"]:focus,
109 | input[type="month"]:focus,
110 | input[type="time"]:focus,
111 | input[type="week"]:focus,
112 | input[type="number"]:focus,
113 | input[type="email"]:focus,
114 | input[type="url"]:focus,
115 | input[type="search"]:focus,
116 | input[type="tel"]:focus,
117 | input[type="color"]:focus,
118 | .uneditable-input:focus {
119 | outline: 0;
120 | outline: thin dotted \9;
121 | /* IE6-9 */
122 |
123 | }
124 |
125 | input.search-query {
126 | margin-bottom: 0;
127 | -webkit-border-radius: 0 0 0 0;
128 | -moz-border-radius: 0 0 0 0;
129 | border-radius: 0 0 0 0;
130 | }
131 |
132 | .form-search .input-append .search-query {
133 | -webkit-border-radius: 0 0 0 0;
134 | -moz-border-radius: 0 0 0 0;
135 | border-radius: 0 0 0 0;
136 | }
137 |
138 | .form-search .input-append .btn {
139 | -webkit-border-radius: 0 0 0 0;
140 | -moz-border-radius: 0 0 0 0;
141 | border-radius: 0 0 0 0;
142 | }
143 |
144 | .form-search .input-prepend .search-query {
145 | -webkit-border-radius: 0 0 0 0;
146 | -moz-border-radius: 0 0 0 0;
147 | border-radius: 0 0 0 0;
148 | }
149 |
150 | .form-search .input-prepend .btn {
151 | -webkit-border-radius: 0 0 0 0;
152 | -moz-border-radius: 0 0 0 0;
153 | border-radius: 0 0 0 0;
154 | }
155 |
156 | .table-bordered {
157 | -webkit-border-radius: 0 0 0 0;
158 | -moz-border-radius: 0 0 0 0;
159 | border-radius: 0 0 0 0;
160 | }
161 |
162 |
163 | .dropdown-menu {
164 | *border-right-width: 0;
165 | *border-bottom-width: 0;
166 | -webkit-border-radius: 0;
167 | -moz-border-radius: 0;
168 | border-radius: 0;
169 |
170 | }
171 |
172 | .dropdown-submenu > .dropdown-menu {
173 | -webkit-border-radius: 0 0 0 0;
174 | -moz-border-radius: 0 0 0 0;
175 | border-radius: 0 0 0 0;
176 | }
177 |
178 | .dropup .dropdown-submenu > .dropdown-menu {
179 | -webkit-border-radius: 0 0 0 0;
180 | -moz-border-radius: 0 0 0 0;
181 | border-radius: 0 0 0 0;
182 | }
183 |
184 |
185 | /* === bootstrap button === */
186 |
187 |
188 | .btn {
189 | text-shadow: none;
190 | background-image:none;
191 | border-color: none;
192 | border-bottom-color: none;
193 | -webkit-box-shadow: none;
194 | -moz-box-shadow: none;
195 | box-shadow: none;
196 | }
197 |
198 | .btn {
199 | outline:0;
200 | -webkit-border-radius: 0;
201 | -moz-border-radius: 0;
202 | border-radius: 0;
203 | }
204 |
205 |
206 | a.btn,.btn:focus {
207 | outline:0;
208 |
209 | }
210 |
211 | .btn-medium {
212 | -webkit-border-radius: 0;
213 | -moz-border-radius: 0;
214 | border-radius: 0;
215 | }
216 |
217 | .btn-lg {
218 | -webkit-border-radius: 0;
219 | -moz-border-radius: 0;
220 | border-radius: 0;
221 | }
222 |
223 | .btn-sm {
224 | -webkit-border-radius: 0;
225 | -moz-border-radius: 0;
226 | border-radius: 0;
227 | }
228 |
229 | .btn-xs {
230 | -webkit-border-radius: 0;
231 | -moz-border-radius: 0;
232 | border-radius: 0;
233 | }
234 |
235 |
236 | .btn-default {
237 | color: #333333;
238 | background-color: #f8f8f8;
239 | }
240 |
241 |
242 | .btn-theme {
243 | color:#fff;
244 | }
245 |
246 | .btn-theme:hover,.btn-theme:focus,.btn-theme:active{
247 | color:#fff;
248 | }
249 |
250 |
251 |
--------------------------------------------------------------------------------
/Server/fonts/fontawesome/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoManTeam/Hole/2976bcb13716a4ccc8dba17ffae72cd29515d79d/Server/fonts/fontawesome/FontAwesome.otf
--------------------------------------------------------------------------------
/Server/fonts/fontawesome/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoManTeam/Hole/2976bcb13716a4ccc8dba17ffae72cd29515d79d/Server/fonts/fontawesome/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/Server/fonts/fontawesome/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoManTeam/Hole/2976bcb13716a4ccc8dba17ffae72cd29515d79d/Server/fonts/fontawesome/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/Server/fonts/fontawesome/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/NoManTeam/Hole/2976bcb13716a4ccc8dba17ffae72cd29515d79d/Server/fonts/fontawesome/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/Server/fonts/glyphicons-halflings-regular.eot:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Nothing found for Demo Starallax Starallax Fonts Glyphicons-halflings-regular Eot
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
126 |
127 |
128 |
129 |
132 |
137 |
140 |
141 |
148 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
2 |
3 |
4 |
5 | Nothing found for Demo Starallax Starallax Fonts Glyphicons-halflings-regular Eot?
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
126 |
127 |
128 |
129 |
132 |
137 |
140 |
141 |
148 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
2 |
3 |
4 |
5 | Nothing found for Demo Starallax Starallax Fonts Glyphicons-halflings-regular Svg
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
126 |
127 |
128 |
129 |
132 |
137 |
140 |
141 |
148 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
2 |
3 |
4 |
5 | Nothing found for Demo Starallax Starallax Fonts Glyphicons-halflings-regular Ttf
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
126 |
127 |
128 |
129 |
132 |
137 |
140 |
141 |
148 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
2 |
3 |
4 |
5 | Nothing found for Demo Starallax Starallax Fonts Glyphicons-halflings-regular Woff
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
126 |
127 |
128 |
129 |
132 |
137 |
140 |
141 |
148 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
= window_top &&
55 | top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() &&
56 | left + $element.width() >= window_left &&
57 | left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) {
58 | return true;
59 | } else {
60 | return false;
61 | }
62 | }
63 |
64 | $.fn.extend({
65 | // watching for element's appearance in browser viewport
66 | appear: function(options) {
67 | var opts = $.extend({}, defaults, options || {});
68 | var selector = this.selector || this;
69 | if (!check_binded) {
70 | var on_check = function() {
71 | if (check_lock) {
72 | return;
73 | }
74 | check_lock = true;
75 |
76 | setTimeout(process, opts.interval);
77 | };
78 |
79 | $(window).scroll(on_check).resize(on_check);
80 | check_binded = true;
81 | }
82 |
83 | if (opts.force_process) {
84 | setTimeout(process, opts.interval);
85 | }
86 | selectors.push(selector);
87 | return $(selector);
88 | }
89 | });
90 |
91 | $.extend({
92 | // force elements's appearance check
93 | force_appear: function() {
94 | if (check_binded) {
95 | process();
96 | return true;
97 | };
98 | return false;
99 | }
100 | });
101 | })(jQuery);
102 |
--------------------------------------------------------------------------------
/Server/js/jquery.easing.1.3.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
3 | *
4 | * Uses the built in easing capabilities added In jQuery 1.1
5 | * to offer multiple easing options
6 | *
7 | * TERMS OF USE - jQuery Easing
8 | *
9 | * Open source under the BSD License.
10 | *
11 | * Copyright © 2008 George McGinley Smith
12 | * All rights reserved.
13 | *
14 | * Redistribution and use in source and binary forms, with or without modification,
15 | * are permitted provided that the following conditions are met:
16 | *
17 | * Redistributions of source code must retain the above copyright notice, this list of
18 | * conditions and the following disclaimer.
19 | * Redistributions in binary form must reproduce the above copyright notice, this list
20 | * of conditions and the following disclaimer in the documentation and/or other materials
21 | * provided with the distribution.
22 | *
23 | * Neither the name of the author nor the names of contributors may be used to endorse
24 | * or promote products derived from this software without specific prior written permission.
25 | *
26 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
27 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
28 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
29 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
31 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
32 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
33 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
34 | * OF THE POSSIBILITY OF SUCH DAMAGE.
35 | *
36 | */
37 |
38 | // t: current time, b: begInnIng value, c: change In value, d: duration
39 | jQuery.easing['jswing'] = jQuery.easing['swing'];
40 |
41 | jQuery.extend( jQuery.easing,
42 | {
43 | def: 'easeOutQuad',
44 | swing: function (x, t, b, c, d) {
45 | //alert(jQuery.easing.default);
46 | return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
47 | },
48 | easeInQuad: function (x, t, b, c, d) {
49 | return c*(t/=d)*t + b;
50 | },
51 | easeOutQuad: function (x, t, b, c, d) {
52 | return -c *(t/=d)*(t-2) + b;
53 | },
54 | easeInOutQuad: function (x, t, b, c, d) {
55 | if ((t/=d/2) < 1) return c/2*t*t + b;
56 | return -c/2 * ((--t)*(t-2) - 1) + b;
57 | },
58 | easeInCubic: function (x, t, b, c, d) {
59 | return c*(t/=d)*t*t + b;
60 | },
61 | easeOutCubic: function (x, t, b, c, d) {
62 | return c*((t=t/d-1)*t*t + 1) + b;
63 | },
64 | easeInOutCubic: function (x, t, b, c, d) {
65 | if ((t/=d/2) < 1) return c/2*t*t*t + b;
66 | return c/2*((t-=2)*t*t + 2) + b;
67 | },
68 | easeInQuart: function (x, t, b, c, d) {
69 | return c*(t/=d)*t*t*t + b;
70 | },
71 | easeOutQuart: function (x, t, b, c, d) {
72 | return -c * ((t=t/d-1)*t*t*t - 1) + b;
73 | },
74 | easeInOutQuart: function (x, t, b, c, d) {
75 | if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
76 | return -c/2 * ((t-=2)*t*t*t - 2) + b;
77 | },
78 | easeInQuint: function (x, t, b, c, d) {
79 | return c*(t/=d)*t*t*t*t + b;
80 | },
81 | easeOutQuint: function (x, t, b, c, d) {
82 | return c*((t=t/d-1)*t*t*t*t + 1) + b;
83 | },
84 | easeInOutQuint: function (x, t, b, c, d) {
85 | if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
86 | return c/2*((t-=2)*t*t*t*t + 2) + b;
87 | },
88 | easeInSine: function (x, t, b, c, d) {
89 | return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
90 | },
91 | easeOutSine: function (x, t, b, c, d) {
92 | return c * Math.sin(t/d * (Math.PI/2)) + b;
93 | },
94 | easeInOutSine: function (x, t, b, c, d) {
95 | return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
96 | },
97 | easeInExpo: function (x, t, b, c, d) {
98 | return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
99 | },
100 | easeOutExpo: function (x, t, b, c, d) {
101 | return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
102 | },
103 | easeInOutExpo: function (x, t, b, c, d) {
104 | if (t==0) return b;
105 | if (t==d) return b+c;
106 | if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
107 | return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
108 | },
109 | easeInCirc: function (x, t, b, c, d) {
110 | return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
111 | },
112 | easeOutCirc: function (x, t, b, c, d) {
113 | return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
114 | },
115 | easeInOutCirc: function (x, t, b, c, d) {
116 | if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
117 | return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
118 | },
119 | easeInElastic: function (x, t, b, c, d) {
120 | var s=1.70158;var p=0;var a=c;
121 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
122 | if (a < Math.abs(c)) { a=c; var s=p/4; }
123 | else var s = p/(2*Math.PI) * Math.asin (c/a);
124 | return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
125 | },
126 | easeOutElastic: function (x, t, b, c, d) {
127 | var s=1.70158;var p=0;var a=c;
128 | if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
129 | if (a < Math.abs(c)) { a=c; var s=p/4; }
130 | else var s = p/(2*Math.PI) * Math.asin (c/a);
131 | return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
132 | },
133 | easeInOutElastic: function (x, t, b, c, d) {
134 | var s=1.70158;var p=0;var a=c;
135 | if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
136 | if (a < Math.abs(c)) { a=c; var s=p/4; }
137 | else var s = p/(2*Math.PI) * Math.asin (c/a);
138 | if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
139 | return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
140 | },
141 | easeInBack: function (x, t, b, c, d, s) {
142 | if (s == undefined) s = 1.70158;
143 | return c*(t/=d)*t*((s+1)*t - s) + b;
144 | },
145 | easeOutBack: function (x, t, b, c, d, s) {
146 | if (s == undefined) s = 1.70158;
147 | return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
148 | },
149 | easeInOutBack: function (x, t, b, c, d, s) {
150 | if (s == undefined) s = 1.70158;
151 | if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
152 | return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
153 | },
154 | easeInBounce: function (x, t, b, c, d) {
155 | return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
156 | },
157 | easeOutBounce: function (x, t, b, c, d) {
158 | if ((t/=d) < (1/2.75)) {
159 | return c*(7.5625*t*t) + b;
160 | } else if (t < (2/2.75)) {
161 | return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
162 | } else if (t < (2.5/2.75)) {
163 | return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
164 | } else {
165 | return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
166 | }
167 | },
168 | easeInOutBounce: function (x, t, b, c, d) {
169 | if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
170 | return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
171 | }
172 | });
173 |
174 | /*
175 | *
176 | * TERMS OF USE - EASING EQUATIONS
177 | *
178 | * Open source under the BSD License.
179 | *
180 | * Copyright © 2001 Robert Penner
181 | * All rights reserved.
182 | *
183 | * Redistribution and use in source and binary forms, with or without modification,
184 | * are permitted provided that the following conditions are met:
185 | *
186 | * Redistributions of source code must retain the above copyright notice, this list of
187 | * conditions and the following disclaimer.
188 | * Redistributions in binary form must reproduce the above copyright notice, this list
189 | * of conditions and the following disclaimer in the documentation and/or other materials
190 | * provided with the distribution.
191 | *
192 | * Neither the name of the author nor the names of contributors may be used to endorse
193 | * or promote products derived from this software without specific prior written permission.
194 | *
195 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
196 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
197 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
198 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
199 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
200 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
201 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
202 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
203 | * OF THE POSSIBILITY OF SUCH DAMAGE.
204 | *
205 | */
--------------------------------------------------------------------------------
/Server/js/jquery.isotope.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Isotope v1.5.25
3 | * An exquisite jQuery plugin for magical layouts
4 | * http://isotope.metafizzy.co
5 | *
6 | * Commercial use requires one-time purchase of a commercial license
7 | * http://isotope.metafizzy.co/docs/license.html
8 | *
9 | * Non-commercial use is licensed under the MIT License
10 | *
11 | * Copyright 2013 Metafizzy
12 | */
13 | (function(a,b,c){"use strict";var d=a.document,e=a.Modernizr,f=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},g="Moz Webkit O Ms".split(" "),h=function(a){var b=d.documentElement.style,c;if(typeof b[a]=="string")return a;a=f(a);for(var e=0,h=g.length;e"+d+"{#modernizr{height:3px}}"+"").appendTo("head"),f=b('').appendTo("html");a=f.height()===3,f.remove(),e.remove()}return a},csstransitions:function(){return!!j}},l;if(e)for(l in k)e.hasOwnProperty(l)||e.addTest(l,k[l]);else{e=a.Modernizr={_version:"1.6ish: miniModernizr for Isotope"};var m=" ",n;for(l in k)n=k[l](),e[l]=n,m+=" "+(n?"":"no-")+l;b("html").addClass(m)}if(e.csstransforms){var o=e.csstransforms3d?{translate:function(a){return"translate3d("+a[0]+"px, "+a[1]+"px, 0) "},scale:function(a){return"scale3d("+a+", "+a+", 1) "}}:{translate:function(a){return"translate("+a[0]+"px, "+a[1]+"px) "},scale:function(a){return"scale("+a+") "}},p=function(a,c,d){var e=b.data(a,"isoTransform")||{},f={},g,h={},j;f[c]=d,b.extend(e,f);for(g in e)j=e[g],h[g]=o[g](j);var k=h.translate||"",l=h.scale||"",m=k+l;b.data(a,"isoTransform",e),a.style[i]=m};b.cssNumber.scale=!0,b.cssHooks.scale={set:function(a,b){p(a,"scale",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.scale?d.scale:1}},b.fx.step.scale=function(a){b.cssHooks.scale.set(a.elem,a.now+a.unit)},b.cssNumber.translate=!0,b.cssHooks.translate={set:function(a,b){p(a,"translate",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.translate?d.translate:[0,0]}}}var q,r;e.csstransitions&&(q={WebkitTransitionProperty:"webkitTransitionEnd",MozTransitionProperty:"transitionend",OTransitionProperty:"oTransitionEnd otransitionend",transitionProperty:"transitionend"}[j],r=h("transitionDuration"));var s=b.event,t=b.event.handle?"handle":"dispatch",u;s.special.smartresize={setup:function(){b(this).bind("resize",s.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",s.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize",u&&clearTimeout(u),u=setTimeout(function(){s[t].apply(c,d)},b==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Isotope=function(a,c,d){this.element=b(c),this._create(a),this._init(d)};var v=["width","height"],w=b(a);b.Isotope.settings={resizable:!0,layoutMode:"masonry",containerClass:"isotope",itemClass:"isotope-item",hiddenClass:"isotope-hidden",hiddenStyle:{opacity:0,scale:.001},visibleStyle:{opacity:1,scale:1},containerStyle:{position:"relative",overflow:"hidden"},animationEngine:"best-available",animationOptions:{queue:!1,duration:800},sortBy:"original-order",sortAscending:!0,resizesContainer:!0,transformsEnabled:!0,itemPositionDataEnabled:!1},b.Isotope.prototype={_create:function(a){this.options=b.extend({},b.Isotope.settings,a),this.styleQueue=[],this.elemCount=0;var c=this.element[0].style;this.originalStyle={};var d=v.slice(0);for(var e in this.options.containerStyle)d.push(e);for(var f=0,g=d.length;fg?1:f0&&(i=function(a,b){b.$el[d](b.style,f).one(q,k)},j=!1)}}b.each(this.styleQueue,i),j&&k(),this.styleQueue=[]},resize:function(){this["_"+this.options.layoutMode+"ResizeChanged"]()&&this.reLayout()},reLayout:function(a){this["_"+this.options.layoutMode+"Reset"](),this.layout(this.$filteredAtoms,a)},addItems:function(a,b){var c=this._getAtoms(a);this.$allAtoms=this.$allAtoms.add(c),b&&b(c)},insert:function(a,b){this.element.append(a);var c=this;this.addItems(a,function(a){var d=c._filter(a);c._addHideAppended(d),c._sort(),c.reLayout(),c._revealAppended(d,b)})},appended:function(a,b){var c=this;this.addItems(a,function(a){c._addHideAppended(a),c.layout(a),c._revealAppended(a,b)})},_addHideAppended:function(a){this.$filteredAtoms=this.$filteredAtoms.add(a),a.addClass("no-transition"),this._isInserting=!0,this.styleQueue.push({$el:a,style:this.options.hiddenStyle})},_revealAppended:function(a,b){var c=this;setTimeout(function(){a.removeClass("no-transition"),c.styleQueue.push({$el:a,style:c.options.visibleStyle}),c._isInserting=!1,c._processStyleQueue(a,b)},10)},reloadItems:function(){this.$allAtoms=this._getAtoms(this.element.children())},remove:function(a,b){this.$allAtoms=this.$allAtoms.not(a),this.$filteredAtoms=this.$filteredAtoms.not(a);var c=this,d=function(){a.remove(),b&&b.call(c.element)};a.filter(":not(."+this.options.hiddenClass+")").length?(this.styleQueue.push({$el:a,style:this.options.hiddenStyle}),this._sort(),this.reLayout(d)):d()},shuffle:function(a){this.updateSortData(this.$allAtoms),this.options.sortBy="random",this._sort(),this.reLayout(a)},destroy:function(){var a=this.usingTransforms,b=this.options;this.$allAtoms.removeClass(b.hiddenClass+" "+b.itemClass).each(function(){var b=this.style;b.position="",b.top="",b.left="",b.opacity="",a&&(b[i]="")});var c=this.element[0].style;for(var d in this.originalStyle)c[d]=this.originalStyle[d];this.element.unbind(".isotope").undelegate("."+b.hiddenClass,"click").removeClass(b.containerClass).removeData("isotope"),w.unbind(".isotope")},_getSegments:function(a){var b=this.options.layoutMode,c=a?"rowHeight":"columnWidth",d=a?"height":"width",e=a?"rows":"cols",g=this.element[d](),h,i=this.options[b]&&this.options[b][c]||this.$filteredAtoms["outer"+f(d)](!0)||g;h=Math.floor(g/i),h=Math.max(h,1),this[b][e]=h,this[b][c]=i},_checkIfSegmentsChanged:function(a){var b=this.options.layoutMode,c=a?"rows":"cols",d=this[b][c];return this._getSegments(a),this[b][c]!==d},_masonryReset:function(){this.masonry={},this._getSegments();var a=this.masonry.cols;this.masonry.colYs=[];while(a--)this.masonry.colYs.push(0)},_masonryLayout:function(a){var c=this,d=c.masonry;a.each(function(){var a=b(this),e=Math.ceil(a.outerWidth(!0)/d.columnWidth);e=Math.min(e,d.cols);if(e===1)c._masonryPlaceBrick(a,d.colYs);else{var f=d.cols+1-e,g=[],h,i;for(i=0;id&&(e.x=0,e.y=e.height),c._pushPosition(a,e.x,e.y),e.height=Math.max(e.y+g,e.height),e.x+=f})},_fitRowsGetContainerSize:function(){return{height:this.fitRows.height}},_fitRowsResizeChanged:function(){return!0},_cellsByRowReset:function(){this.cellsByRow={index:0},this._getSegments(),this._getSegments(!0)},_cellsByRowLayout:function(a){var c=this,d=this.cellsByRow;a.each(function(){var a=b(this),e=d.index%d.cols,f=Math.floor(d.index/d.cols),g=(e+.5)*d.columnWidth-a.outerWidth(!0)/2,h=(f+.5)*d.rowHeight-a.outerHeight(!0)/2;c._pushPosition(a,g,h),d.index++})},_cellsByRowGetContainerSize:function(){return{height:Math.ceil(this.$filteredAtoms.length/this.cellsByRow.cols)*this.cellsByRow.rowHeight+this.offset.top}},_cellsByRowResizeChanged:function(){return this._checkIfSegmentsChanged()},_straightDownReset:function(){this.straightDown={y:0}},_straightDownLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,0,c.straightDown.y),c.straightDown.y+=d.outerHeight(!0)})},_straightDownGetContainerSize:function(){return{height:this.straightDown.y}},_straightDownResizeChanged:function(){return!0},_masonryHorizontalReset:function(){this.masonryHorizontal={},this._getSegments(!0);var a=this.masonryHorizontal.rows;this.masonryHorizontal.rowXs=[];while(a--)this.masonryHorizontal.rowXs.push(0)},_masonryHorizontalLayout:function(a){var c=this,d=c.masonryHorizontal;a.each(function(){var a=b(this),e=Math.ceil(a.outerHeight(!0)/d.rowHeight);e=Math.min(e,d.rows);if(e===1)c._masonryHorizontalPlaceBrick(a,d.rowXs);else{var f=d.rows+1-e,g=[],h,i;for(i=0;id&&(e.x=e.width,e.y=0),c._pushPosition(a,e.x,e.y),e.width=Math.max(e.x+f,e.width),e.y+=g})},_fitColumnsGetContainerSize:function(){return{width:this.fitColumns.width}},_fitColumnsResizeChanged:function(){return!0},_cellsByColumnReset:function(){this.cellsByColumn={index:0},this._getSegments(),this._getSegments(!0)},_cellsByColumnLayout:function(a){var c=this,d=this.cellsByColumn;a.each(function(){var a=b(this),e=Math.floor(d.index/d.rows),f=d.index%d.rows,g=(e+.5)*d.columnWidth-a.outerWidth(!0)/2,h=(f+.5)*d.rowHeight-a.outerHeight(!0)/2;c._pushPosition(a,g,h),d.index++})},_cellsByColumnGetContainerSize:function(){return{width:Math.ceil(this.$filteredAtoms.length/this.cellsByColumn.rows)*this.cellsByColumn.columnWidth}},_cellsByColumnResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_straightAcrossReset:function(){this.straightAcross={x:0}},_straightAcrossLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,c.straightAcross.x,0),c.straightAcross.x+=d.outerWidth(!0)})},_straightAcrossGetContainerSize:function(){return{width:this.straightAcross.x}},_straightAcrossResizeChanged:function(){return!0}},b.fn.imagesLoaded=function(a){function h(){a.call(c,d)}function i(a){var c=a.target;c.src!==f&&b.inArray(c,g)===-1&&(g.push(c),--e<=0&&(setTimeout(h),d.unbind(".imagesLoaded",i)))}var c=this,d=c.find("img").add(c.filter("img")),e=d.length,f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",g=[];return e||h(),d.bind("load.imagesLoaded error.imagesLoaded",i).each(function(){var a=this.src;this.src=f,this.src=a}),c};var x=function(b){a.console&&a.console.error(b)};b.fn.isotope=function(a,c){if(typeof a=="string"){var d=Array.prototype.slice.call(arguments,1);this.each(function(){var c=b.data(this,"isotope");if(!c){x("cannot call methods on isotope prior to initialization; attempted to call method '"+a+"'");return}if(!b.isFunction(c[a])||a.charAt(0)==="_"){x("no such method '"+a+"' for isotope instance");return}c[a].apply(c,d)})}else this.each(function(){var d=b.data(this,"isotope");d?(d.option(a),d._init(c)):b.data(this,"isotope",new b.Isotope(a,this,c))});return this}})(window,jQuery);
--------------------------------------------------------------------------------
/Server/js/jquery.localscroll-1.2.7-min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * jQuery.LocalScroll - Animated scrolling navigation, using anchors.
3 | * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
4 | * Dual licensed under MIT and GPL.
5 | * Date: 3/11/2009
6 | * @author Ariel Flesler
7 | * @version 1.2.7
8 | **/
9 | ;(function($){var l=location.href.replace(/#.*/,'');var g=$.localScroll=function(a){$('body').localScroll(a)};g.defaults={duration:1e3,axis:'y',event:'click',stop:true,target:window,reset:true};g.hash=function(a){if(location.hash){a=$.extend({},g.defaults,a);a.hash=false;if(a.reset){var e=a.duration;delete a.duration;$(a.target).scrollTo(0,a);a.duration=e}i(0,location,a)}};$.fn.localScroll=function(b){b=$.extend({},g.defaults,b);return b.lazy?this.bind(b.event,function(a){var e=$([a.target,a.target.parentNode]).filter(d)[0];if(e)i(a,e,b)}):this.find('a,area').filter(d).bind(b.event,function(a){i(a,this,b)}).end().end();function d(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==l&&(!b.filter||$(this).is(b.filter))}};function i(a,e,b){var d=e.hash.slice(1),f=document.getElementById(d)||document.getElementsByName(d)[0];if(!f)return;if(a)a.preventDefault();var h=$(b.target);if(b.lock&&h.is(':animated')||b.onBefore&&b.onBefore.call(b,a,f,h)===false)return;if(b.stop)h.stop(true);if(b.hash){var j=f.id==d?'id':'name',k=$(' ').attr(j,d).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});f[j]='';$('body').prepend(k);location=e.hash;k.remove();f[j]=d}h.scrollTo(f,b).trigger('notify.serialScroll',[f])}})(jQuery);
--------------------------------------------------------------------------------
/Server/js/jquery.scrollTo-1.4.3.1-min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2007-2012 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
3 | * Dual licensed under MIT and GPL.
4 | * @author Ariel Flesler
5 | * @version 1.4.3.1
6 | */
7 | ;(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
--------------------------------------------------------------------------------
/Server/js/main.js:
--------------------------------------------------------------------------------
1 | (function ($) {
2 |
3 | $(window).scroll(function(){
4 | if ($(this).scrollTop() > 100) {
5 | $('.scrollup').fadeIn();
6 | } else {
7 | $('.scrollup').fadeOut();
8 | }
9 | });
10 | $('.scrollup').click(function(){
11 | $("html, body").animate({ scrollTop: 0 }, 1000);
12 | return false;
13 | });
14 |
15 | // local scroll
16 | jQuery('.navbar').localScroll({hash:true, offset: {top: 0},duration: 800, easing:'easeInOutExpo'});
17 |
18 |
19 | // portfolio
20 | if($('.isotopeWrapper').length){
21 |
22 | var $container = $('.isotopeWrapper');
23 | var $resize = $('.isotopeWrapper').attr('id');
24 | // initialize isotope
25 |
26 | $container.isotope({
27 | itemSelector: '.isotopeItem',
28 | resizable: false, // disable normal resizing
29 | masonry: {
30 | columnWidth: $container.width() / $resize
31 | }
32 |
33 |
34 |
35 | });
36 |
37 | $('#filter a').click(function(){
38 |
39 |
40 |
41 | $('#filter a').removeClass('current');
42 | $(this).addClass('current');
43 | var selector = $(this).attr('data-filter');
44 | $container.isotope({
45 | filter: selector,
46 | animationOptions: {
47 | duration: 1000,
48 | easing: 'easeOutQuart',
49 | queue: false
50 | }
51 | });
52 | return false;
53 | });
54 |
55 |
56 | $(window).smartresize(function(){
57 | $container.isotope({
58 | // update columnWidth to a percentage of container width
59 | masonry: {
60 | columnWidth: $container.width() / $resize
61 | }
62 | });
63 | });
64 |
65 |
66 | }
67 |
68 |
69 | // fancybox
70 | jQuery(".fancybox").fancybox();
71 |
72 |
73 | if (Modernizr.mq("screen and (max-width:1024px)")) {
74 | jQuery("body").toggleClass("body");
75 |
76 | } else {
77 | var s = skrollr.init({
78 | mobileDeceleration: 1,
79 | edgeStrategy: 'set',
80 | forceHeight: true,
81 | smoothScrolling: true,
82 | smoothScrollingDuration: 300,
83 | easing: {
84 | WTF: Math.random,
85 | inverted: function(p) {
86 | return 1-p;
87 | }
88 | }
89 | });
90 | }
91 |
92 |
93 |
94 | //scroll menu
95 | jQuery('.appear').appear();
96 | jQuery(".appear").on("appear", function(data) {
97 | var id = $(this).attr("id");
98 | jQuery('.nav li').removeClass('active');
99 | jQuery(".nav a[href='#" + id + "']").parent().addClass("active");
100 | });
101 |
102 |
103 | //parallax
104 | var isMobile = false;
105 |
106 | if(Modernizr.mq('only all and (max-width: 1024px)') ) {
107 | isMobile = true;
108 | }
109 |
110 |
111 | if (isMobile == false && ($('#parallax1').length ||isMobile == false && $('#parallax2').length ||isMobile == false && $('#testimonials').length))
112 | {
113 |
114 |
115 | $(window).stellar({
116 | responsive:true,
117 | scrollProperty: 'scroll',
118 | parallaxElements: false,
119 | horizontalScrolling: false,
120 | horizontalOffset: 0,
121 | verticalOffset: 0
122 | });
123 |
124 | }
125 |
126 | //nicescroll
127 | $("html").niceScroll({zindex:999,cursorborder:"",cursorborderradius:"2px",cursorcolor:"#191919",cursoropacitymin:.5});
128 | function initNice() {
129 | if($(window).innerWidth() <= 960) {
130 | $('html').niceScroll().remove();
131 | } else {
132 | $("html").niceScroll({zindex:999,cursorborder:"",cursorborderradius:"2px",cursorcolor:"#191919",cursoropacitymin:.5});
133 | }
134 | }
135 | $(window).load(initNice);
136 | $(window).resize(initNice);
137 |
138 | })(jQuery);
--------------------------------------------------------------------------------
/Server/js/modernizr-2.6.2-respond-1.1.0.min.js:
--------------------------------------------------------------------------------
1 | /* Modernizr 2.6.2 (Custom Build) | MIT & BSD
2 | * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
3 | */
4 | ;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(../../../../https@/),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f #mq-test-1 { width: 42px; }';a.insertBefore(d,b);c=g.offsetWidth==42;a.removeChild(d);return{matches:c,media:h}}})(document);
9 |
10 | /*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
11 | (function(e){e.respond={};respond.update=function(){};respond.mediaQueriesSupported=e.matchMedia&&e.matchMedia("only all").matches;if(respond.mediaQueriesSupported){return}var w=e.document,s=w.documentElement,i=[],k=[],q=[],o={},h=30,f=w.getElementsByTagName("head")[0]||s,g=w.getElementsByTagName("base")[0],b=f.getElementsByTagName("link"),d=[],a=function(){var D=b,y=D.length,B=0,A,z,C,x;for(;B-1,minw:F.match(/\(min\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:F.match(/\(max\-width:[\s]*([\s]*[0-9\.]+)(px|em)[\s]*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}}j()},l,r,v=function(){var z,A=w.createElement("div"),x=w.body,y=false;A.style.cssText="position:absolute;font-size:1em;width:1em";if(!x){x=y=w.createElement("body");x.style.background="none"}x.appendChild(A);s.insertBefore(x,s.firstChild);z=A.offsetWidth;if(y){s.removeChild(x)}else{x.removeChild(A)}z=p=parseFloat(z);return z},p,j=function(I){var x="clientWidth",B=s[x],H=w.compatMode==="CSS1Compat"&&B||w.body[x]||B,D={},G=b[b.length-1],z=(new Date()).getTime();if(I&&l&&z-l-1?(p||v()):1)}if(!!J){J=parseFloat(J)*(J.indexOf(y)>-1?(p||v()):1)}if(!K.hasquery||(!A||!L)&&(A||H>=C)&&(L||H<=J)){if(!D[K.media]){D[K.media]=[]}D[K.media].push(k[K.rules])}}for(var E in q){if(q[E]&&q[E].parentNode===f){f.removeChild(q[E])}}for(var E in D){var M=w.createElement("style"),F=D[E].join("\n");M.type="text/css";M.media=E;f.insertBefore(M,G.nextSibling);if(M.styleSheet){M.styleSheet.cssText=F}else{M.appendChild(w.createTextNode(F))}q.push(M)}},n=function(x,z){var y=c();if(!y){return}y.open("GET",x,true);y.onreadystatechange=function(){if(y.readyState!=4||y.status!=200&&y.status!=304){return}z(y.responseText)};if(y.readyState==4){return}y.send(null)},c=(function(){var x=false;try{x=new XMLHttpRequest()}catch(y){x=new ActiveXObject("Microsoft.XMLHTTP")}return function(){return x}})();a();respond.update=a;function t(){j(true)}if(e.addEventListener){e.addEventListener("resize",t,false)}else{if(e.attachEvent){e.attachEvent("onresize",t)}}})(this);
--------------------------------------------------------------------------------
/Server/js/skrollr.min.js:
--------------------------------------------------------------------------------
1 | /*! skrollr 0.6.13 (2013-09-29) | Alexander Prinzhorn - https://github.com/Prinzhorn/skrollr | Free to use under terms of MIT license */
2 | (function(e,t,r){"use strict";function n(r){if(o=t.documentElement,a=t.body,M(),at=this,r=r||{},ft=r.constants||{},r.easing)for(var n in r.easing)j[n]=r.easing[n];ht=r.edgeStrategy||"set",st={beforerender:r.beforerender,render:r.render},ct=r.forceHeight!==!1,ct&&(Vt=r.scale||1),ut=r.mobileDeceleration||A,mt=r.smoothScrolling!==!1,gt=r.smoothScrollingDuration||E,dt={targetTop:at.getScrollTop()},_t=(r.mobileCheck||function(){return/Android|iPhone|iPad|iPod|BlackBerry|Windows Phone/i.test(navigator.userAgent||navigator.vendor||e.opera)})(),_t?(lt=t.getElementById("skrollr-body"),lt&&ot(),W(),xt(o,[y,S],[T])):xt(o,[y,b],[T]),at.refresh(),bt(e,"resize orientationchange",function(){var e=o.clientWidth,t=o.clientHeight;(t!==Lt||e!==It)&&(Lt=t,It=e,Bt=!0)});var i=R();return function l(){Z(),Tt=i(l)}(),at}var o,a,i=e.skrollr={get:function(){return at},init:function(e){return at||new n(e)},VERSION:"0.6.13"},l=Object.prototype.hasOwnProperty,s=e.Math,c=e.getComputedStyle,f="touchstart",u="touchmove",p="touchcancel",m="touchend",g="skrollable",d=g+"-before",v=g+"-between",h=g+"-after",y="skrollr",T="no-"+y,b=y+"-desktop",S=y+"-mobile",w="linear",k=1e3,A=.004,E=200,x="start",F="end",C="center",D="bottom",H="___skrollable_id",P=/^\s+|\s+$/g,V=/^data(?:-(_\w+))?(?:-?(-?\d*\.?\d+p?))?(?:-?(start|end|top|center|bottom))?(?:-?(top|center|bottom))?$/,z=/\s*([\w\-\[\]]+)\s*:\s*(.+?)\s*(?:;|$)/gi,O=/^([a-z\-]+)\[(\w+)\]$/,q=/-([a-z])/g,I=function(e,t){return t.toUpperCase()},L=/[\-+]?[\d]*\.?[\d]+/g,B=/\{\?\}/g,$=/rgba?\(\s*-?\d+\s*,\s*-?\d+\s*,\s*-?\d+/g,_=/[a-z\-]+-gradient/g,G="",N="",M=function(){var e=/^(?:O|Moz|webkit|ms)|(?:-(?:o|moz|webkit|ms)-)/;if(c){var t=c(a,null);for(var n in t)if(G=n.match(e)||+n==n&&t[n].match(e))break;if(!G)return G=N="",r;G=G[0],"-"===G.slice(0,1)?(N=G,G={"-webkit-":"webkit","-moz-":"Moz","-ms-":"ms","-o-":"O"}[G]):N="-"+G.toLowerCase()+"-"}},R=function(){var t=e.requestAnimationFrame||e[G.toLowerCase()+"RequestAnimationFrame"],r=Dt();return(_t||!t)&&(t=function(t){var n=Dt()-r,o=s.max(0,1e3/60-n);return e.setTimeout(function(){r=Dt(),t()},o)}),t},U=function(){var t=e.cancelAnimationFrame||e[G.toLowerCase()+"CancelAnimationFrame"];return(_t||!t)&&(t=function(t){return e.clearTimeout(t)}),t},j={begin:function(){return 0},end:function(){return 1},linear:function(e){return e},quadratic:function(e){return e*e},cubic:function(e){return e*e*e},swing:function(e){return-s.cos(e*s.PI)/2+.5},sqrt:function(e){return s.sqrt(e)},outCubic:function(e){return s.pow(e-1,3)+1},bounce:function(e){var t;if(.5083>=e)t=3;else if(.8489>=e)t=9;else if(.96208>=e)t=27;else{if(!(.99981>=e))return 1;t=91}return 1-s.abs(3*s.cos(1.028*e*t)/t)}};n.prototype.refresh=function(e){var n,o,a=!1;for(e===r?(a=!0,it=[],$t=0,e=t.getElementsByTagName("*")):e=[].concat(e),n=0,o=e.length;o>n;n++){var i=e[n],l=i,s=[],c=mt,f=ht;if(i.attributes){for(var u=0,p=i.attributes.length;p>u;u++){var m=i.attributes[u];if("data-anchor-target"!==m.name)if("data-smooth-scrolling"!==m.name)if("data-edge-strategy"!==m.name){var d=m.name.match(V);if(null!==d){var v={props:m.value,element:i};s.push(v);var h=d[1];h=h&&ft[h.substr(1)]||0;var y=d[2];/p$/.test(y)?(v.isPercentage=!0,v.offset=((0|y.slice(0,-1))+h)/100):v.offset=(0|y)+h;var T=d[3],b=d[4]||T;T&&T!==x&&T!==F?(v.mode="relative",v.anchors=[T,b]):(v.mode="absolute",T===F?v.isEnd=!0:v.isPercentage||(v.frame=v.offset*Vt,delete v.offset))}}else f=m.value;else c="off"!==m.value;else if(l=t.querySelector(m.value),null===l)throw'Unable to find anchor target "'+m.value+'"'}if(s.length){var S,w,k;!a&&H in i?(k=i[H],S=it[k].styleAttr,w=it[k].classAttr):(k=i[H]=$t++,S=i.style.cssText,w=Et(i)),it[k]={element:i,styleAttr:S,classAttr:w,anchorTarget:l,keyFrames:s,smoothScrolling:c,edgeStrategy:f},xt(i,[g],[])}}}for(kt(),n=0,o=e.length;o>n;n++){var A=it[e[n][H]];A!==r&&(J(A),Q(A))}return at},n.prototype.relativeToAbsolute=function(e,t,r){var n=o.clientHeight,a=e.getBoundingClientRect(),i=a.top,l=a.bottom-a.top;return t===D?i-=n:t===C&&(i-=n/2),r===D?i+=l:r===C&&(i+=l/2),i+=at.getScrollTop(),0|i+.5},n.prototype.animateTo=function(e,t){t=t||{};var n=Dt(),o=at.getScrollTop();return pt={startTop:o,topDiff:e-o,targetTop:e,duration:t.duration||k,startTime:n,endTime:n+(t.duration||k),easing:j[t.easing||w],done:t.done},pt.topDiff||(pt.done&&pt.done.call(at,!1),pt=r),at},n.prototype.stopAnimateTo=function(){pt&&pt.done&&pt.done.call(at,!0),pt=r},n.prototype.isAnimatingTo=function(){return!!pt},n.prototype.setScrollTop=function(t,r){return r===!0&&(Ot=t,vt=!0),_t?Gt=s.min(s.max(t,0),Pt):e.scrollTo(0,t),at},n.prototype.getScrollTop=function(){return _t?Gt:e.pageYOffset||o.scrollTop||a.scrollTop||0},n.prototype.on=function(e,t){return st[e]=t,at},n.prototype.off=function(e){return delete st[e],at},n.prototype.destroy=function(){var e=U();e(Tt),wt(),xt(o,[T],[y,b,S]);for(var t=0,n=it.length;n>t;t++)nt(it[t].element);o.style.overflow=a.style.overflow="auto",o.style.height=a.style.height="auto",lt&&i.setStyle(lt,"transform","none"),at=r,lt=r,st=r,ct=r,Pt=0,Vt=1,ft=r,ut=r,zt="down",Ot=-1,It=0,Lt=0,Bt=!1,pt=r,mt=r,gt=r,dt=r,vt=r,$t=0,ht=r,_t=!1,Gt=0,yt=r};var W=function(){var t,n,i,l,c,g,d,v,h,y,T;bt(o,[f,u,p,m].join(" "),function(e){e.preventDefault();var o=e.changedTouches[0];switch(l=o.clientY,c=o.clientX,h=e.timeStamp,e.type){case f:t&&t.blur(),at.stopAnimateTo(),t=e.target,n=g=l,i=c,v=h;break;case u:d=l-g,T=h-y,at.setScrollTop(Gt-d,!0),g=l,y=h;break;default:case p:case m:var a=n-l,b=i-c,S=b*b+a*a;if(49>S)return t.focus(),t.click(),r;t=r;var w=d/T;w=s.max(s.min(w,3),-3);var k=s.abs(w/ut),A=w*k+.5*ut*k*k,E=at.getScrollTop()-A,x=0;E>Pt?(x=(Pt-E)/A,E=Pt):0>E&&(x=-E/A,E=0),k*=1-x,at.animateTo(E,{easing:"outCubic",duration:k})}}),e.scrollTo(0,0),o.style.overflow=a.style.overflow="hidden"},Y=function(){var e,t,r,n,a,i,l,c,f;for(c=0,f=it.length;f>c;c++)for(e=it[c],t=e.element,r=e.anchorTarget,n=e.keyFrames,a=0,i=n.length;i>a;a++){l=n[a];var u=l.offset;l.isPercentage&&(u*=o.clientHeight,l.frame=u),"relative"===l.mode&&(nt(t),l.frame=at.relativeToAbsolute(r,l.anchors[0],l.anchors[1])-u,nt(t,!0)),ct&&!l.isEnd&&l.frame>Pt&&(Pt=l.frame)}for(Pt=s.max(Pt,At()),c=0,f=it.length;f>c;c++){for(e=it[c],n=e.keyFrames,a=0,i=n.length;i>a;a++)l=n[a],l.isEnd&&(l.frame=Pt-l.offset);e.keyFrames.sort(Ht)}},X=function(e,t){for(var r=0,n=it.length;n>r;r++){var o,a,s=it[r],c=s.element,f=s.smoothScrolling?e:t,u=s.keyFrames,p=u[0].frame,m=u[u.length-1].frame,y=p>f,T=f>m,b=u[y?0:u.length-1];if(y||T){if(y&&-1===s.edge||T&&1===s.edge)continue;switch(xt(c,[y?d:h],[d,v,h]),s.edge=y?-1:1,s.edgeStrategy){case"reset":nt(c);continue;case"ease":f=b.frame;break;default:case"set":var S=b.props;for(o in S)l.call(S,o)&&(a=rt(S[o].value),i.setStyle(c,o,a));continue}}else 0!==s.edge&&(xt(c,[g,v],[d,h]),s.edge=0);for(var w=0,k=u.length-1;k>w;w++)if(f>=u[w].frame&&u[w+1].frame>=f){var A=u[w],E=u[w+1];for(o in A.props)if(l.call(A.props,o)){var x=(f-A.frame)/(E.frame-A.frame);x=A.props[o].easing(x),a=tt(A.props[o].value,E.props[o].value,x),a=rt(a),i.setStyle(c,o,a)}break}}},Z=function(){Bt&&(Bt=!1,kt());var e,t,n=at.getScrollTop(),o=Dt();if(pt)o>=pt.endTime?(n=pt.targetTop,e=pt.done,pt=r):(t=pt.easing((o-pt.startTime)/pt.duration),n=0|pt.startTop+t*pt.topDiff),at.setScrollTop(n,!0);else if(!_t){var a=dt.targetTop-n;a&&(dt={startTop:Ot,topDiff:n-Ot,targetTop:n,startTime:qt,endTime:qt+gt}),dt.endTime>=o&&(t=j.sqrt((o-dt.startTime)/gt),n=0|dt.startTop+t*dt.topDiff)}if(_t&<&&i.setStyle(lt,"transform","translate(0, "+-Gt+"px) "+yt),vt||Ot!==n){zt=n>=Ot?"down":"up",vt=!1;var l={curTop:n,lastTop:Ot,maxTop:Pt,direction:zt},s=st.beforerender&&st.beforerender.call(at,l);s!==!1&&(X(n,at.getScrollTop()),Ot=n,st.render&&st.render.call(at,l)),e&&e.call(at,!1)}qt=o},J=function(e){for(var t=0,r=e.keyFrames.length;r>t;t++){for(var n,o,a,i,l=e.keyFrames[t],s={};null!==(i=z.exec(l.props));)a=i[1],o=i[2],n=a.match(O),null!==n?(a=n[1],n=n[2]):n=w,o=o.indexOf("!")?K(o):[o.slice(1)],s[a]={value:o,easing:j[n]};l.props=s}},K=function(e){var t=[];return $.lastIndex=0,e=e.replace($,function(e){return e.replace(L,function(e){return 100*(e/255)+"%"})}),N&&(_.lastIndex=0,e=e.replace(_,function(e){return N+e})),e=e.replace(L,function(e){return t.push(+e),"{?}"}),t.unshift(e),t},Q=function(e){var t,r,n={};for(t=0,r=e.keyFrames.length;r>t;t++)et(e.keyFrames[t],n);for(n={},t=e.keyFrames.length-1;t>=0;t--)et(e.keyFrames[t],n)},et=function(e,t){var r;for(r in t)l.call(e.props,r)||(e.props[r]=t[r]);for(r in e.props)t[r]=e.props[r]},tt=function(e,t,r){var n,o=e.length;if(o!==t.length)throw"Can't interpolate between \""+e[0]+'" and "'+t[0]+'"';var a=[e[0]];for(n=1;o>n;n++)a[n]=e[n]+(t[n]-e[n])*r;return a},rt=function(e){var t=1;return B.lastIndex=0,e[0].replace(B,function(){return e[t++]})},nt=function(e,t){e=[].concat(e);for(var r,n,o=0,a=e.length;a>o;o++)n=e[o],r=it[n[H]],r&&(t?(n.style.cssText=r.dirtyStyleAttr,xt(n,r.dirtyClassAttr)):(r.dirtyStyleAttr=n.style.cssText,r.dirtyClassAttr=Et(n),n.style.cssText=r.styleAttr,xt(n,r.classAttr)))},ot=function(){yt="translateZ(0)",i.setStyle(lt,"transform",yt);var e=c(lt),t=e.getPropertyValue("transform"),r=e.getPropertyValue(N+"transform"),n=t&&"none"!==t||r&&"none"!==r;n||(yt="")};i.setStyle=function(e,t,r){var n=e.style;if(t=t.replace(q,I).replace("-",""),"zIndex"===t)n[t]=""+(0|r);else if("float"===t)n.styleFloat=n.cssFloat=r;else try{G&&(n[G+t.slice(0,1).toUpperCase()+t.slice(1)]=r),n[t]=r}catch(o){}};var at,it,lt,st,ct,ft,ut,pt,mt,gt,dt,vt,ht,yt,Tt,bt=i.addEvent=function(t,r,n){var o=function(t){return t=t||e.event,t.target||(t.target=t.srcElement),t.preventDefault||(t.preventDefault=function(){t.returnValue=!1}),n.call(this,t)};r=r.split(" ");for(var a,i=0,l=r.length;l>i;i++)a=r[i],t.addEventListener?t.addEventListener(a,n,!1):t.attachEvent("on"+a,o),Nt.push({element:t,name:a,listener:n})},St=i.removeEvent=function(e,t,r){t=t.split(" ");for(var n=0,o=t.length;o>n;n++)e.removeEventListener?e.removeEventListener(t[n],r,!1):e.detachEvent("on"+t[n],r)},wt=function(){for(var e,t=0,r=Nt.length;r>t;t++)e=Nt[t],St(e.element,e.name,e.listener);Nt=[]},kt=function(){var e=at.getScrollTop();Pt=0,ct&&!_t&&(a.style.height="auto"),Y(),ct&&!_t&&(a.style.height=Pt+o.clientHeight+"px"),_t?at.setScrollTop(s.min(at.getScrollTop(),Pt)):at.setScrollTop(e,!0),vt=!0},At=function(){var e=lt&<.offsetHeight||0,t=s.max(e,a.scrollHeight,a.offsetHeight,o.scrollHeight,o.offsetHeight,o.clientHeight);return t-o.clientHeight},Et=function(t){var r="className";return e.SVGElement&&t instanceof e.SVGElement&&(t=t[r],r="baseVal"),t[r]},xt=function(t,n,o){var a="className";if(e.SVGElement&&t instanceof e.SVGElement&&(t=t[a],a="baseVal"),o===r)return t[a]=n,r;for(var i=t[a],l=0,s=o.length;s>l;l++)i=Ct(i).replace(Ct(o[l])," ");i=Ft(i);for(var c=0,f=n.length;f>c;c++)-1===Ct(i).indexOf(Ct(n[c]))&&(i+=" "+n[c]);t[a]=Ft(i)},Ft=function(e){return e.replace(P,"")},Ct=function(e){return" "+e+" "},Dt=Date.now||function(){return+new Date},Ht=function(e,t){return e.frame-t.frame},Pt=0,Vt=1,zt="down",Ot=-1,qt=Dt(),It=0,Lt=0,Bt=!1,$t=0,_t=!1,Gt=0,Nt=[]})(window,document);
--------------------------------------------------------------------------------
/Server/js/validate.js:
--------------------------------------------------------------------------------
1 | /*global jQuery:false */
2 | jQuery(document).ready(function($) {
3 | "use strict";
4 |
5 | //Contact
6 | $('form.contactForm').submit(function(){
7 |
8 | var f = $(this).find('.form-group'),
9 | ferror = false,
10 | emailExp = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i;
11 |
12 | f.children('input').each(function(){ // run all inputs
13 |
14 | var i = $(this); // current input
15 | var rule = i.attr('data-rule');
16 |
17 | if( rule !== undefined ){
18 | var ierror=false; // error flag for current input
19 | var pos = rule.indexOf( ':', 0 );
20 | if( pos >= 0 ){
21 | var exp = rule.substr( pos+1, rule.length );
22 | rule = rule.substr(0, pos);
23 | }else{
24 | rule = rule.substr( pos+1, rule.length );
25 | }
26 |
27 | switch( rule ){
28 | case 'required':
29 | if( i.val()==='' ){ ferror=ierror=true; }
30 | break;
31 |
32 | case 'maxlen':
33 | if( i.val().length= 0 ){
61 | var exp = rule.substr( pos+1, rule.length );
62 | rule = rule.substr(0, pos);
63 | }else{
64 | rule = rule.substr( pos+1, rule.length );
65 | }
66 |
67 | switch( rule ){
68 | case 'required':
69 | if( i.val()==='' ){ ferror=ierror=true; }
70 | break;
71 |
72 | case 'maxlen':
73 | if( i.val().lengthli>a:hover {
14 | color: #79CDC0;
15 | }
16 |
17 | .navbar .navbar-nav > .active > a {
18 | color: #79CDC0;
19 | }
20 |
21 | /* flexslider */
22 | .flex-control-paging li a {
23 | background: #35A49C;
24 | }
25 |
26 | .flex-direction-nav a:hover{
27 | background-color:#35A49C;
28 | }
29 |
30 | .testimonial span.author a {
31 | color: #79CDC0;
32 | }
33 |
34 | /* --- icon box hover --- */
35 | .hi-icon-effect-5 .hi-icon {
36 | color: #35A49C;
37 | box-shadow: 0 0 0 4px #35A49C;
38 | }
39 | .no-touch .hi-icon-effect-5 .hi-icon:hover {
40 | background: #35A49C;
41 | box-shadow: 0 0 0 8px #79CDC0;
42 | }
43 |
44 |
45 | /* portfolio */
46 | .portfolio-item .portfolio-desc {
47 | background: #35A49C;
48 | }
49 |
50 | /* btn */
51 | .btn-theme {
52 | background: #79CDC0;
53 | }
54 | .btn-theme:hover,.btn-theme:focus,.btn-theme:active{
55 | background: #35A49C;
56 | }
57 | .btn-cta,.btn-cta.btn-lg {
58 | background: #35A49C;
59 | border-color: #79CDC0;
60 | }
61 |
62 | .btn-cta:focus,.btn-cta:active{
63 | border-color: #35A49C;
64 | }
65 |
66 | /* contact */
67 | .validation {
68 | color:#35A49C;
69 | }
70 |
71 | /* footer */
72 | .social-circle li a {
73 | background:#35A49C;
74 | }
75 |
76 | a.scrollup{
77 | background:#35A49C;
78 | }
--------------------------------------------------------------------------------