var stk = (function() { var that = {}; var errorlist = []; that.inc = function(key) { return true }; that.register = function(ns, maker) { if (!ns || !maker) { return false } var nslist = ns.split("."); var step = that; var k = null; while (k = nslist.shift()) { if (nslist.length) { if (step[k] === undefined) { step[k] = {} } step = step[k] } else { if (step[k] === undefined) { try { step[k] = maker(that) } catch(exp) {} } } } }; that.ie = /msie/i.test(navigator.useragent); that.ie6 = /msie 6/i.test(navigator.useragent); that.e = function(id) { if (typeof id === "string") { return document.getelementbyid(id) } else { return id } }; that.c = function(tagname) { var dom; tagname = tagname.touppercase(); if (tagname == "text") { dom = document.createtextnode("") } else { if (tagname == "buffer") { dom = document.createdocumentfragment() } else { dom = document.createelement(tagname) } } return dom }; that.log = function(str) { errorlist.push("[" + (new date()).tostring() + "]: " + str) }; that.getlogs = function() { return errorlist }; return that })(); $import = stk.inc; stk.register("core.evt.eventutil", function() { return { addevent: function(el, type, ofunc, sta) { if (el.attachevent) { el.attachevent("on" + type, ofunc) } else { if (el.addeventlistener) { el.addeventlistener(type, ofunc, sta || false) } else { el["on" + type] = ofunc } } }, removeevent: function(el, type, func, usecapture) { if (el.removeeventlistener) { el.removeeventlistener(type, func, usecapture) } else { if (el.detachevent) { el.detachevent("on" + type, func) } else { el["on" + type] = null } } } } }); stk.register("core.pagem", function() { var evt = stk.core.evt.eventutil; var that = {}; var nscache = {}; var nslist = []; that.add = function(ns) { if (!nscache[ns]) { var t = ns.split("."); var fn = stk, i = 0; do { fn = fn[t[i]]; i++ } while ( i < t . length ); nslist.push(ns); nscache[ns] = fn } }; that.start = function() { var d; for (var i = 0; i < nslist.length; i++) { try { d = nslist[i]; if (d) { nscache[d] = nscache[d]() } else { stk.log("start:ns=" + i + " ,have not been registed") } } catch(e) { stk.log(e) } } }; that.destroy = function() { var d; while (nslist.length) { try { d = nslist.shift(); nscache[d].destroy(); nscache[d] = null } catch(e) {} } }; if (!window.jquery) { document.addeventlistener && evt.addevent(document, "domcontentloaded", that.start); document.attachevent && evt.addevent(document, "onreadystatechange", that.start); evt.addevent(window, "unload", that.destroy) } else { jquery(document).ready(that.start); jquery(window).unload(that.destroy) } return that }); stk.register("core.arr.isarray", function() { return function(o) { return object.prototype.tostring.call(o) === "[object array]" } }); stk.register("core.dom.getelementsbyattr", function() { return function(node, attrk, attrv) { if (!node) { return } var dom = []; if (document.createnodeiterator) { var iterator = document.createnodeiterator(node, nodefilter.show_element, null, false); var nd = iterator.nextnode(); while (nd != null) { if (nd.hasattribute(attrk)) { if (attrv) { nd.getattribute(attrk) == attrv && dom.push(nd) } else { dom.push(nd) } } nd = iterator.nextnode() } } else { for (var i = 0, l = node.childnodes.length; i < l; i++) { if (node.childnodes[i].nodetype == 1) { if (typeof node.childnodes[i].getattribute(attrk) == "string") { if (attrv) { node.childnodes[i].getattribute(attrk) == attrv && dom.push(node.childnodes[i]) } else { dom.push(node.childnodes[i]) } } if (node.childnodes[i].childnodes.length > 0) { dom = dom.concat(arguments.callee.call(null, node.childnodes[i], attrk, attrv)) } } } } return dom } }); stk.register("core.dom.builddom", function() { var getbyattr = stk.core.dom.getelementsbyattr; return function(node) { var ls = getbyattr(node, "node-type"); var d, dom = {}; var len = ls.length; var item; for (var i = 0; i < len; i++) { item = ls[i]; d = item.getattribute("node-type"); if (!dom[d]) { dom[d] = item } else { if (stk.core.arr.isarray(dom[d])) { dom[d].push(item) } else { dom[d] = [dom[d]]; dom[d].push(item) } } } dom.parentnode = node; return dom } }); stk.register("core.evt.getevent", function() { return function() { if (stk.ie) { return window.event } else { if (window.event) { return window.event } var o = arguments.callee.caller; var e; var n = 0; while (o != null && n < 40) { e = o.arguments[0]; if (e && (e.constructor == event || e.constructor == mouseevent || e.constructor == keyboardevent)) { return e } n++; o = o.caller } return e } } }); stk.register("core.evt.fixevent", function() { return function(e) { e = e || stk.core.evt.getevent(); if (!e.target) { e.target = e.srcelement; e.pagex = e.x; e.pagey = e.y } if (/mouseover/.test(e.type) && !e.relatedtarget) { e.relatedtarget = e.fromelement } else { if (/mouseout/.test(e.type) && !e.relatedtarget) { e.relatedtarget = e.toelement } } if (typeof e.layerx == "undefined") { e.layerx = e.offsetx } if (typeof e.layery == "undefined") { e.layery = e.offsety } if (stk.ie) { var ver = /msie\s+\d+/i.exec(navigator.useragent); ver && (ver = parseint(/\d+/.exec(ver[0]))); if (ver && ver < 9) { if (e.button == 1) { e.button = 0; e.which = 1 } else { if (e.button == 4) { e.button = 1; e.which = 2 } else { if (e.button == 2) { e.button = 2; e.which = 3 } } } } } return e } }); stk.register("core.arr.indexof", function() { return function(oelement, asource) { if (asource.indexof) { return asource.indexof(oelement) } for (var i = 0, len = asource.length; i < len; i++) { if (asource[i] === oelement) { return i } } return - 1 } }); stk.register("core.arr.inarray", function() { return function(oelement, asource) { return stk.core.arr.indexof(oelement, asource) > -1 } }); stk.register("core.str.trim", function() { return function(_str, loc) { var str = _str || ""; var rnotwhite = /\s/, l = /^\s+/, r = /\s+$/; if (rnotwhite.test("\xa0")) { l = /^[\s\xa0]+/; r = /[\s\xa0]+$/ } str = str.tostring(); return loc == "left" ? str.replace(l, "") : (loc == "right" ? str.replace(r, "") : str.replace(l, "").replace(r, "")) } }); stk.register("core.json.querytojson", function() { return function(qs, isdecode) { var _qlist = stk.core.str.trim(qs).split("&"); var _json = {}; var _fdata = function(data) { if (isdecode) { return decodeuricomponent(data) } else { return data } }; for (var i = 0, len = _qlist.length; i < len; i++) { if (_qlist[i]) { var _hsh = _qlist[i].split("="); var _key = _hsh[0]; var _value = _hsh[1]; if (_hsh.length < 2) { _value = _key; _key = "$nullname" } if (!_json[_key]) { _json[_key] = _fdata(_value) } else { if (stk.core.arr.isarray(_json[_key]) != true) { _json[_key] = [_json[_key]] } _json[_key].push(_fdata(_value)) } } } return _json } }); stk.register("core.evt.delegatedevent", function() { var eventutil = stk.core.evt.eventutil; var indexof = stk.core.arr.indexof; var actels = [], actelsevtlist = []; return function(actel) { var that = {}, evtlist; if (!actel) { return } var idx = indexof(actel, actels); if (idx == -1) { actels.push(actel); idx = actels.length - 1; actelsevtlist[idx] = {} } evtlist = actelsevtlist[idx]; var bindevent = function(e) { var evt = stk.core.evt.fixevent(e); var el = evt.target; var type = e.type; var checkbuble = function() { if (evtlist[type] && evtlist[type][actiontype]) { return evtlist[type][actiontype]({ evt: evt, el: el, box: actel, data: stk.core.json.querytojson(el.getattribute("action-data") || "", 1) }) } else { return true } }; var actiontype = null; while (el && el !== actel) { actiontype = el.getattribute("action-type"); if (actiontype && checkbuble() === false) { break } el = el.parentnode } }; that.add = function(funcname, evttype, process) { if (!evtlist[evttype]) { evtlist[evttype] = {}; eventutil.addevent(actel, evttype, bindevent) } var ns = evtlist[evttype]; ns[funcname] = process }; that.remove = function(funcname, evttype) { if (evtlist[evttype]) { delete evtlist[evttype][funcname]; if (stk.core.obj.isempty(evtlist[evttype])) { delete evtlist[evttype]; eventutil.removeevent(actel, evttype, bindevent) } } }; that.destroy = function() { if (actel) { evtlist = actelsevtlist[indexof(actel, actels)]; for (k in evtlist) { for (l in evtlist[k]) { delete evtlist[k][l] } delete evtlist[k]; eventutil.removeevent(actel, k, bindevent) } return } for (var i in actelsevtlist) { evtlist = actelsevtlist[i]; for (k in evtlist) { for (l in evtlist[k]) { delete evtlist[k][l] } delete evtlist[k]; eventutil.removeevent(actel, k, bindevent) } } }; return that } }); stk.register("jobs.home.homeview", function() { return function() { var builddom = stk.core.dom.builddom; var delegate = stk.core.evt.delegatedevent; var handle; var node; var that = { dom: {}, current: 0, bodywidth: 0, imgwidth: 0, maxwidth: 2232, initleft: "", max: 5, interval: null, isanimate: 0, imgloader: "" }; var c = { initstate: function() { var bwidth = $("body").width(); if (bwidth > that.maxwidth) { that.bodywidth = that.maxwidth } else { if (bwidth < 960) { that.bodywidth = 960 } else { that.bodywidth = bwidth } } $(that.dom.picturebox).css("width", that.bodywidth + "px"); that.imgwidth = $(that.dom.picitem).width() + 24; that.initleft = -(that.imgwidth - (that.bodywidth - that.imgwidth) / 2); var tempwidth = that.initleft + 12; $(that.dom.pictures).css("left", that.initleft + "px"); $(that.dom.maskleft).css("left", tempwidth + "px"); $(that.dom.maskright).css("right", tempwidth + "px") }, slide: function(state) { if (that.isanimate) { return } that.isanimate = 1; var left = 0; $(that.dom.smallpic[that.current]).removeclass("currentimg"); that.current = that.current + state; c.move(500) }, move: function(speed) { var left = 0; if (that.current >= that.max) { that.current = 0 } else { if (that.current < 0) { that.current = that.max - 1 } } left = that.initleft - that.current * that.imgwidth; $(that.dom.pictures).animate({ left: left + "px" }, speed, function() { that.isanimate = 0 }); $(that.dom.smallpic[that.current]).addclass("currentimg"); binddomfuns.auto() } }; var _trans = {}; var binddomfuns = { prev: function(args) { c.slide( - 1) }, next: function(args) { c.slide(1) }, resize: function(e) { c.initstate() }, auto: function() { that.interval && cleartimeout(that.interval); that.interval = settimeout(function() { c.slide(1) }, 6000) }, over: function(e) { that.interval && cleartimeout(that.interval); that.interval = settimeout(function() { if (that.isanimate) { return } that.isanimate = 1; var el = e.target || e.srcelement; if ($(el).attr("data-index") == undefined) { el = $(el).parent() } var index = parseint($(el).attr("data-index"), 10); $(that.dom.smallpic[that.current]).removeclass("currentimg"); that.current = index - 1; c.move(200) }, 500) } }; var gls = ["prev", "next"]; var binddom = function() { var d; handle = delegate(node); for (var i = 0; i < gls.length; i++) { d = gls[i]; handle.add(d, "click", binddomfuns[d]) } $(window).bind("resize", binddomfuns.resize); $(node).delegate('[node-type="smallpic"]', "mouseover", binddomfuns.over) }; var parsedom = function() { that.dom = builddom(node) }; var checkparent = function() { return node }; var destroy = function() { handle.destroy(); $(window).unbind("resize", binddomfuns.resize); $(node).undelegate('[node-type="smallpic"]', "mouseover", binddomfuns.over) }; var init = function() { node = stk.e("jobs_home_homeview"); if (!checkparent()) { return } parsedom(); binddom(); c.initstate(); binddomfuns.auto(); that.imgloader = stk.common.imgloader(node) }; that.destroy = destroy; init(); return that } }); stk.core.pagem.add("jobs.home.homeview");