wn.dom = { id_count: 0, // sets a unique id to an element set_unique_id: function(ele) { var id = 'unique-' + wn.dom.id_count; ele.setAttribute('id', id); wn.dom.id_count++; return id; } } // short hand functions for setting up // rich text editor tinymce wn.tinymce = { add_simple: function(ele, height) { if(ele.myid) { tinyMCE.execCommand( 'mceAddControl', true, ele.myid); return; } // no create ele.myid = wn.dom.set_unique_id(ele); $(ele).tinymce({ // Location of TinyMCE script script_url : 'js/tiny_mce_33/tiny_mce.js', height: height ? height : '200px', // General options theme : "advanced", theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,outdent,indent,link,unlink,forecolor,backcolor,code,", theme_advanced_buttons2 : "", theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_path : false, theme_advanced_resizing : false }); }, remove: function(ele) { tinyMCE.execCommand( 'mceRemoveControl', true, ele.myid); }, get_value: function(ele) { return tinymce.get(ele.myid).getContent(); } } wn.ele = { link: function(args) { var span = $a(args.parent, 'span', 'link_type', args.style); span.loading_img = $a(args.parent,'img','',{margin:'0px 4px -2px 4px', display:'none'}); span.loading_img.src= 'images/ui/button-load.gif'; span.innerHTML = args.label; span.user_onclick = args.onclick; span.onclick = function() { if(!this.disabled) this.user_onclick(this); } // working span.set_working = function() { this.disabled = 1; $di(this.loading_img); } span.done_working = function() { this.disabled = 0; $dh(this.loading_img); } return span; }, button: function(args) { var btn = $a(args.parent, 'button'); btn.loading_img = $a(args.parent,'img','',{margin:'0px 4px -2px 4px', display:'none'}); btn.loading_img.src= 'images/ui/button-load.gif'; $wid_make(btn,color); if(args.is_ajax) $y(btn,{marginRight:'24px'}); // click btn.innerHTML = args.label; btn.user_onclick = args.onclick; btn.color = args.color; btn.onclick = function() { if(!this.disabled) this.user_onclick(this); } // color $(btn).hover( function() { $wid_active(this); }, function() { $wid_normal(this); } ) btn.onmousedown = function() { $wid_pressed(this); } btn.onmouseup = function() { $wid_active(this); } // disabled btn.set_disabled = function() { $wid_disabled(this); } btn.set_enabled = function() { this.disabled = 0; $wid_normal(this); } // working btn.set_working = function() { this.set_disabled(); $di(this.loading_img); if(args.is_ajax) $y(btn,{marginRight:'0px'}); } btn.done_working = function() { this.set_enabled(); $dh(this.loading_img); if(args.is_ajax) $y(btn,{marginRight:'24px'}); } if(args.style) $y(btn, args.style); return btn; } } function $ln(parent, label, onclick, style) { return wn.ele.link({parent:parent, label:label, onclick:onclick, style:style}) } function $btn(parent, label, onclick, style, color, is_ajax) { return wn.ele.button({parent:parent, label:label, onclick:onclick, style:style, is_ajax: is_ajax}) } function addEvent(ev, fn) { if(isIE) { document.attachEvent('on'+ev, function() { fn(window.event, window.event.srcElement); }); } else { document.addEventListener(ev, function(e) { fn(e, e.target); }, true); } } // widget styles // ==================================== // normal // -------------------- $wid_normal = function(ele) { if(ele.disabled) return; $y(ele, {border:'1px solid #AAC', color:'#446'}); $gr(ele,'#FFF','#D8D8E2'); if(ele.no_left_border) $y(ele, {borderLeft:'0px'}) if(ele.wid_color=='green') { $y(ele, {color:'#FFF', border:'1px solid #4B4'}); $gr(ele,'#9C9','#4A4'); } } $wid_make = function(ele,color) { if(ele.disabled) return; fsize = ele.style.fontSize ? ele.style.fontSize : '11px'; $y(ele, {padding:'2px 8px', cursor:'pointer',fontSize:fsize}); $br(ele,'2px'); $bs(ele, '0.5px 0.5px 2px #EEE'); ele.wid_color = color ? color : 'normal'; $wid_normal(ele); } // disabled // -------------------- $wid_disabled = function(ele) { ele.disabled = 1; $y(ele, {border:'1px solid #AAA'}); $bg(ele,'#E8E8EA'); $fg(ele,'#AAA'); } // active (mouseover) // -------------------- $wid_active = function(ele) { if(ele.disabled) return; $y(ele, {border:'1px solid #446', color:'#446'}); $gr(ele,'#FFF','#EEF'); if(ele.no_left_border) $y(ele, {borderLeft:'0px'}) if(ele.wid_color=='green') { $y(ele, {color:'#FFF', border:'1px solid #292'}); $gr(ele,'#AFA','#7C7'); } } // pressed // -------------------- $wid_pressed = function(ele) { if(ele.disabled) return; $y(ele, {border:'1px solid #444'}); $gr(ele,'#EEF','#DDF'); if(ele.wid_color=='green') { $y(ele, {color:'#FFF', border:'1px solid #292'}); $gr(ele,'#7C7','#2A2'); } } // item (for tabs and triggers) // ==================================== $item_normal = function(ele) { $y(ele, {padding:'6px 8px',cursor:'pointer',marginRight:'8px', whiteSpace:'nowrap',overflow:'hidden',borderBottom:'1px solid #DDD'}); $bg(ele,'#FFF'); $fg(ele,'#000'); } $item_active = function(ele) { $bg(ele,'#FE8'); $fg(ele,'#000'); } $item_selected = function(ele) { $bg(ele,'#777'); $fg(ele,'#FFF'); } $item_pressed = function(ele) { $bg(ele,'#F90'); $fg(ele,'#FFF'); } $item_set_working = function(ele) { if(ele.loading_img) { $di(ele.loading_img) } else { ele.disabled = 1; ele.loading_img = $a(ele.parentNode,'img','',{marginLeft:'4px',marginBottom:'-2px',display:'inline'}); ele.loading_img.src = 'images/ui/button-load.gif'; } } $item_done_working = function(ele) { ele.disabled = 0; if(ele.loading_img) { $dh(ele.loading_img) }; } // set out of 100 function set_opacity(ele, ieop) { var op = ieop / 100; if (ele.filters) { // internet explorer try { ele.filters.item("DXImageTransform.Microsoft.Alpha").opacity = ieop; } catch (e) { ele.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity='+ieop+')'; } } else { // other browsers ele.style.opacity = op; } } // join buttons // ------------------------------------ function $btn_join(btn1, btn2) { $br(btn1, '0px', [0,1,1,0]); $br(btn2, '0px', [1,0,0,1]); $y(btn1, {marginRight:'0px'}); $y(btn2, {marginLeft:'0px', borderLeft:'0px'}); btn2.no_left_border = 1; } // set gradient // ==================================== function set_gradient(ele, from, to) { // gradient var no_gradient=0; if(isIE)no_gradient=1; if(isFF && ffversion < 3.6)no_gradient=1; if(no_gradient) { var rgb_from = get_rgb(from.substr(1)); var rgb_to = get_rgb(to.substr(1)); $y(ele, {backgroundColor: '#' + d2h(rgb_to[0] + (rgb_from[0]-rgb_to[0])/2) + d2h(rgb_to[1] + (rgb_from[1]-rgb_to[1])/2) + d2h(rgb_to[2] + (rgb_from[2]-rgb_to[2])/2)}); } else { $y(ele, {background: '-webkit-gradient(linear, left top, left bottom, from('+from+'), to('+to+'))'}); $y(ele, {background: '-moz-linear-gradient(top, '+from+', '+to+')'}); } } $gr = set_gradient; // border radius // ==================================== $br = function(ele, r, corners) { if(corners) { var cl = ['top-left', 'top-right', 'bottom-right' , 'bottom-left']; for(var i=0; i<4; i++) { if(corners[i]) { $(ele).css('-moz-border-radius-'+cl[i].replace('-',''),r).css('-webkit-'+cl[i]+'-border-radius',r); } } } else { $(ele).css('-moz-border-radius',r).css('-webkit-border-radius',r).css('border-radius',r); } } $bs = function(ele, r) { $(ele).css('-moz-box-shadow',r).css('-webkit-box-shadow',r).css('box-shadow',r); } // Button // ==================================== function $btn(parent, label, onclick, style, color, ajax) { var btn = $a(parent, 'button'); btn.loading_img = $a(parent,'img','',{margin:'0px 4px -2px 4px', display:'none'}); btn.loading_img.src= 'images/ui/button-load.gif'; $wid_make(btn,color); if(ajax) $y(btn,{marginRight:'24px'}); // click btn.innerHTML = label; btn.user_onclick = onclick; btn.color = color; btn.onclick = function() { if(!this.disabled) this.user_onclick(this); } // color $(btn).hover( function() { $wid_active(this); }, function() { $wid_normal(this); } ) btn.onmousedown = function() { $wid_pressed(this); } btn.onmouseup = function() { $wid_active(this); } // disabled btn.set_disabled = function() { $wid_disabled(this); } btn.set_enabled = function() { this.disabled = 0; $wid_normal(this); } // working btn.set_working = function() { this.set_disabled(); $di(this.loading_img); if(ajax) $y(btn,{marginRight:'0px'}); } btn.done_working = function() { this.set_enabled(); $dh(this.loading_img); if(ajax) $y(btn,{marginRight:'24px'}); } if(style) $y(btn, style); return btn; } // standard input pattern // has a standard text that clears on change // and if onchange the value is empty, shows the text (function($) { $.fn.add_default_text = function(txt) { return this.each(function() { $(this).attr('default_text', txt).bind('focus', function() { if(this.value==$(this).attr('default_text')) { $(this).val('').css('color', '#000'); } }).bind('blur', function() { if(!this.value) { $(this).val($(this).attr('default_text')).css('color', '#888'); } }).blur(); }); }; })(jQuery); // Select // ==================================== function empty_select(s) { if(s.custom_select) { s.empty(); return; } if(s.inp)s = s.inp; if(s) { var tmplen = s.length; for(var i=0;i1) { for(var i=0;i document.body.offsetHeight){ // all but Explorer Mac yh = document.body.scrollHeight; xh = document.body.scrollWidth; } else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari yh = document.body.offsetHeight; xh = document.body.offsetWidth; } r = [xh, yh]; //alert( 'The height is ' + yh + ' and the width is ' + xh ); return r; } // get scroll top function get_scroll_top() { var st = 0; if(document.documentElement && document.documentElement.scrollTop) st = document.documentElement.scrollTop; else if(document.body && document.body.scrollTop) st = document.body.scrollTop; return st; } function get_cookie(c) { var t=""+document.cookie; var ind=t.indexOf(c); if (ind==-1 || c=="") return ""; var ind1=t.indexOf(';',ind); if (ind1==-1) ind1=t.length; return unescape(t.substring(ind+c.length+1,ind1)); } // add space holder add_space_holder = function(parent,cs){ if(!cs) cs = {margin:'170px 0px'} $y(space_holder_div,cs); parent.appendChild(space_holder_div); } // remove space holder remove_space_holder = function(){ if(space_holder_div.parentNode) space_holder_div.parentNode.removeChild(space_holder_div); }; // URL utilities wn.urllib = { // get argument from url get_arg: function(name) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return decodeURIComponent(results[1]); }, // returns url dictionary get_dict: function() { var d = {} var t = window.location.href.split('?')[1]; if(!t) return d; if(t.indexOf('#')!=-1) t = t.split('#')[0]; if(!t) return d; t = t.split('&'); for(var i=0; i