/*** File "libs.js" starts here. ***/ /*@cc_on _d=document;eval('var document=_d') var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','), i = e.length; while (i--) { document.createElement(e[i]) } @*/ $.fn.markCurrentLocation = function() { var path = window.location.href return this.each(function(){ var self = $(this); var href = self.attr('href'); if(path == href){ var linkLabel = self.text(); self .before(''+linkLabel+'') .remove() }else if(RegExp(href).test(path)){ self .wrap('') } }) }; $.fn.orderedFigure = function() { return this.each(function(){ var self = $(this); var cont = self.html(); var cont2 = cont.replace(/(\d)(st|nd|rd|th)/g,'$1$2') self.html(cont2); }) }; $.fn.notify = function(type) { var to = {backgroundColor: "white"}; var duration = 1000; switch(type){ case 'alert': var from = {backgroundColor:'#ff9797'}; break; default: var from = {backgroundColor:'#fef794'}; break; } return this.each(function(){ $(this).css(from).stop().animate(to,duration,function(){$(this).removeAttr('style')}); }); }; /** * @param query {RegExp} * @wrapElement wrapElement {jQuery} **/ $.fn.highlightText = function(query,wrapElement){ var REtag = '<\\/?[^>]+?\\/?>'; var REtagDivider = new RegExp(REtag+'|[^<>]*','gi'); return this.each(function(){ var elem = $(this); var srcs = elem.html().match(REtagDivider); for(var i=0,l=srcs.length;i').append(wrapElement.html(matched)).html(); }) } } elem.html(srcs.join('')); }) } /** * @example $('em.highlight').removeOuterTag() * @description will turn 'text1 text2 text3' into 'text1 text2 text3' **/ $.fn.removeOuterTag = function(){ return this.each(function(){ $(this).replaceWith($(this).html()) }) } var iaMobileNavInit = function(){ $('
') .appendTo('body') .css('height',$(document).height()+6) .click(function(){ $(this).toggle(); $('header nav').hide(); $('.forRMB').removeClass('focus') }) .hide(); $('#iMenu') .click(function(){ $('#shield').toggle(); $(this).toggleClass('focus') $('#iLang').removeClass('focus') $('.langSelector').hide() $('.mainNav').toggle() return false; }) $('#iLang') .click(function(){ $('#shield').toggle(); $(this).toggleClass('focus') $('#iMenu').removeClass('focus') $('.mainNav').hide() $('.langSelector').toggle() return false; }) }; /*** File "jquery.browser.addEnvClass.js" starts here. ***/ (function(){ var ua = navigator.userAgent; var b = jQuery.browser; b.engine = ''; b.mobile = false; if(/Windows/.test(ua)){ b.os = 'win'; b.win = true; }else if(/Mac/.test(ua)){ b.os = 'mac'; b.mac = true; }else if(/iPhone/.test(ua)){ b.os = 'iphone'; b.iphone = true; } if(/Chrome/.test(ua)){ b.safari = false; b.chrome = true; } if(/Gecko/.test(ua)){ b.gecko = true; b.engine = 'gecko' }if(/WebKit/.test(ua)){ b.gecko = false; b.webkit = true; b.engine = 'webkit' } if(/Mobile/i.test(ua)){ b.mobile = true; } if(b.msie){ b.name = 'msie'; }else if(b.opera){ b.name = 'opera'; }else if(b.safari){ b.name = 'safari'; }else if(b.chrome){ b.name = 'chrome'; }else if(b.mozilla){ b.name = 'mozilla'; } if(b.msie){ b.ver = /MSIE (\d(.\d+)?)/.exec(ua)[1]; }else if(b.mozilla){ b.ver = /Firefox\/(\d(.\d+)?)/.exec(ua)[1]; }else if(b.opera){ b.ver = /Opera\/? ?(\d(\.\d+)?)/.exec(ua)[1]; }else if(b.safari){ b.ver = /Version\/(\d(\.\d+)+)/.exec(ua)[1]; }else if(b.chrome){ b.ver = /Chrome\/(\d(\.\d+)+)/.exec(ua)[1]; } })() jQuery.fn.addEnvClass = function() { return this.each(function(){ var self = jQuery(this); var b = jQuery.browser; self .addClass('js') .addClass(b.os) .addClass(b.name) .addClass(b.engine) .addClass('ver'+b.ver); if(b.msie){ self.addClass('ie' + parseInt(b.ver)); } }) }; jQuery('html').addEnvClass(); /*** File "jquery.color.js" starts here. ***/ /* * jQuery Color Animations * Copyright 2007 John Resig * Released under the MIT and GPL licenses. */ (function(jQuery){ // We override the animation for all of these color styles jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ jQuery.fx.step[attr] = function(fx){ if ( fx.state == 0 ) { fx.start = getColor( fx.elem, attr ); fx.end = getRGB( fx.end ); } fx.elem.style[attr] = "rgb(" + [ Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0), Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0), Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0) ].join(",") + ")"; } }); // Color Conversion functions from highlightFade // By Blair Mitchelmore // http://jquery.offput.ca/highlightFade/ // Parse strings looking for color tuples [255,255,255] function getRGB(color) { var result; // Check if we're already dealing with an array of colors if ( color && color.constructor == Array && color.length == 3 ) return color; // Look for rgb(num,num,num) if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])]; // Look for rgb(num%,num%,num%) if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; // Look for #a0b1c2 if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; // Look for #fff if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; // Otherwise, we're most likely dealing with a named color return colors[jQuery.trim(color).toLowerCase()]; } function getColor(elem, attr) { var color; do { color = jQuery.curCSS(elem, attr); // Keep going until we find an element that has color, or we hit the body if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") ) break; attr = "backgroundColor"; } while ( elem = elem.parentNode ); return getRGB(color); }; // Some named colors to work with // From Interface by Stefan Petre // http://interface.eyecon.ro/ var colors = { aqua:[0,255,255], azure:[240,255,255], beige:[245,245,220], black:[0,0,0], blue:[0,0,255], brown:[165,42,42], cyan:[0,255,255], darkblue:[0,0,139], darkcyan:[0,139,139], darkgrey:[169,169,169], darkgreen:[0,100,0], darkkhaki:[189,183,107], darkmagenta:[139,0,139], darkolivegreen:[85,107,47], darkorange:[255,140,0], darkorchid:[153,50,204], darkred:[139,0,0], darksalmon:[233,150,122], darkviolet:[148,0,211], fuchsia:[255,0,255], gold:[255,215,0], green:[0,128,0], indigo:[75,0,130], khaki:[240,230,140], lightblue:[173,216,230], lightcyan:[224,255,255], lightgreen:[144,238,144], lightgrey:[211,211,211], lightpink:[255,182,193], lightyellow:[255,255,224], lime:[0,255,0], magenta:[255,0,255], maroon:[128,0,0], navy:[0,0,128], olive:[128,128,0], orange:[255,165,0], pink:[255,192,203], purple:[128,0,128], violet:[128,0,128], red:[255,0,0], silver:[192,192,192], white:[255,255,255], yellow:[255,255,0] }; })(jQuery); /*** File "jquery.initInput.js" starts here. ***/ (function($) { jQuery.initInput = { defaultValue: '', errorMessage: '', wdmClassName: 'with-default-message' } jQuery.fn.initInput = function(arg1,arg2) { return this.each(function(){ var elem = $(this); var form = elem.parents('form'); var wdm = $.initInput.wdmClassName; if(elem.attr('placeholder')){ var msg = elem.attr('placeholder'); var emsg = arg1 || $.initInput.errorMessage; }else{ var msg = arg1 || $.initInput.defaultValue; var emsg = arg2 || $.initInput.errorMessage; } //init var init = function(){ if(elem.val() == '' || elem.val() == msg){ elem.val(msg).addClass(wdm); } } //set event var setEvent = function(){ elem.focus(function(){ elem.removeClass(wdm); if(elem.val() == msg){ elem.val(''); } }).blur(init); form.submit(function(){ if(emsg == ''){ //Allaw empty if(elem.val() == msg){ elem.val(''); } }else{ //Disallow empty if(elem.val() == '' || elem.val() == msg){ alert(emsg); elem.notify('alert'); return false; } } return true; }); } //fire function init(); setEvent(); }); }; })(jQuery); /*** File "jquery.addFileInfo.js" starts here. ***/ (function($) { if(typeof ActiveXObject == "function" && typeof XMLHttpRequest == "undefined"){ XMLHttpRequest = function(){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { return new ActiveXObject('Microsoft.XMLHTTP'); } } } //Setting valiables var fileLinkClass = "file"; var fileTypeClass = "fileType"; var fileSizeClass = "fileSize"; var imageLinkClass = "imageLink"; var originalTextClass = "originalText"; var notFoundClass = 'notFound'; var notFoundText = 'Not Found'; var fileClasses = '(pdf|od[tspdgf]|xlsx?|docx?|pptx?|zip|tar(\.gz)?)'; var fileExtention = '\\.'+fileClasses+'$'; //Get path to phpfile var helperPHP = $('script[src]:last').attr('src').replace(/\.js/,'.php'); /** * @sample $('article a').addFileInfo() * @descriptoin If the elements have class or file extention defined as fileClasses and fileExtention, or have fileLinkClass class, it will automatically have fancy file type label before the original text, and the size after. This order is considederd from accessibility perspective. * * @sample $('a.pdf').addFileInfo() * @desctription 'A' elements which have fileTypeClass will be affected. This class decide displayed file type. * * @sample $('a.file').addFileInfo() * @desctription 'A' elements which have fileLinkClass will be affected. File type is detected automatically. * * @returns {jQuery} */ $.fn.addFileInfo = function(){ return this.each(function(){ var elem = $(this); var href = elem.get(0).href; var fileType = ''; var fileSize = 0; var fileMatch = RegExp(fileExtention).exec(href.replace(/#.+$/,'')); var classMatch = RegExp(fileClasses).exec(elem.attr('class')); if(fileMatch){ fileType = fileMatch[1]; }else if(classMatch){ fileType = classMatch[1]; }else if(!elem.is('.'+fileLinkClass)){ return; } var setFileInfo = function(json){ var contentLength = json['Content-Length']; if(!fileType){ fileType = (/(\/|-)([^-]+)$/.exec(json['Content-Type'])[2]); } if(String(contentLength-0) != 'NaN'){ fileSize = Math.round(contentLength / 1024); if(fileSize >= 1000){ fileSize = (Math.round(fileSize / 102.4) / 10) + 'MB'; }else{ fileSize = fileSize + 'KB'; } } elem .addClass(fileLinkClass) .addClass(fileType) if(elem.find('.'+originalTextClass).size() == 0){ elem.wrapInner('') } if(/404/.test(json[0])){ fileSize = notFoundText; elem.find('.'+originalTextClass).addClass(notFoundClass); }else{ elem.prepend(''+ fileType.toUpperCase() +' ') } if(elem.is('*:has(img)')){ elem.addClass(imageLinkClass) $('.'+fileTypeClass,elem).append(' ('+fileSize+')'); }else{ elem.append(' ('+fileSize+')'); } } var outset = function(){ var fte = $('.'+fileTypeClass,elem); if(fte.parents('ul').size()){ var ml = fte.width() + parseInt(fte.css('padding-left').replace(/px/,'')) + parseInt(fte.css('padding-right').replace(/px/,'')) fte.parents('li').css({ position: 'relative' }) fte.css({ position: 'absolute', marginTop: '.2em', marginLeft: -ml -4 + 'px' }); } } var main = function(){ if(/https?:\/\/(.+?)\//.exec(href)[1] == location.host){ var req = new XMLHttpRequest(); req.open('HEAD',href,true); req.onreadystatechange = function(){ if(req.readyState == 4){ if(req.getResponseHeader("Content-Length")){ setFileInfo({ "0": req.getResponseHeader("0"), "Content-Type": req.getResponseHeader("Content-Type"), "Content-Length": req.getResponseHeader("Content-Length") }); }else{ $.post(helperPHP,{url:href},setFileInfo,'json') } req.abort(); } } req.send(null); }else{ $.post(helperPHP,{url:href},setFileInfo,'json') } } main(); outset(); }); }; })(jQuery); /*** File "jquery.incrementalFilter.js" starts here. ***/ (function($) { var IncrementalFilter = function(params){ var setting = this.setting = { input: undefined, items: undefined, searchScope: '*', minChars: 2, useHighlight: true, foundCounter: undefined, totalCounter: undefined, highlightElem: $(''), foundClass: 'found', zeroClass: 'zero' } $.extend(setting,params) this.input = $(setting.input); this.items = $(setting.items); this.minChars = setting.minChars; if(setting.foundCounter){ this.totalCounter = setting.totalCounter; this.foundCounter = new IncrementalFilter.Counter(setting); } this.formerQuery = ''; this.itemData = []; this.init(); } IncrementalFilter.prototype = { makeData: function(){ var that = this; this.items.each(function(){ var obj = [$(this)] if($(this).is('dt')){ obj.push($(this).next()) } that.itemData.push(new IncrementalFilter.SearchedItem(obj,that.setting)); }) if(this.foundCounter){ this.foundCounter.refresh(this.itemData.length); if(this.totalCounter){ $(this.totalCounter).html(this.foundCounter.all) } } }, processQuery: function(query){ var tempq = this.escapeQuery(query) tempq = $.trim(tempq).split(/\s+/); var queries = [] for(var i=0,l=tempq.length;i= that.minChars){ that.processQuery(val) }else{ that.reset(); } }) }, init: function(){ this.makeData(); this.setEvent(); if(this.input.val().length >= this.minChars){ this.processQuery(this.input.val()) } } } /** *@param obj {array} **/ IncrementalFilter.SearchedItem = function(obj,setting){ this.useHighlight = (setting.useHighlight && $.fn.highlightText && $.fn.removeOuterTag) if(this.useHighlight){ this.highlightElem = setting.highlightElem || $(''); this.highlightExpr = /^<(\w+)/.exec($('
').append(this.highlightElem).html())[1] + '.'+this.highlightElem.attr('class').split(/\s/).join('.'); } this.text = ''; this.obj = []; for(var i=0,l=obj.length;i