/* time: 26ms */ /* file: jquery/jquery.debug.js (mtime: 2010-08-02 08:00:50) */ /* ** jquery.debug.js -- jQuery plugin for debugging ** Copyright (c) 2007 Ralf S. Engelschall ** Licensed under GPL ** ** $LastChangedDate$ ** $LastChangedRevision$ */ (function($) { /* jQuery class extension methods */ $.extend({ /* boolean status whether debugging is enabled */ _debug$: null, /* method for getting and setting debug status */ debug: function (onoff) { var old_value = ($._debug$ == true ? true : false); $._debug$ = (onoff ? true : false); return old_value; }, /* method for logging an object or message */ log: function (message) { if ($._debug$ == true) window.console.debug(message); } }); /* jQuery object extension methods */ $.fn.extend({ /* method for logging all jQuery items */ log: function (message) { if ($._debug$ == true) { return this.each(function () { if (typeof message !== "undefined") $.log(message); $.log(this); }); } } }); /* determine default enable status */ $(document).ready(function () { var req = $("html").attr("debug"); if (req == "true" || req == "false") $.debug(req == "true" ? true : false); }); /* minimum Firebug emulation (see http://getfirebug.com/firebug/firebugx.js) */ $(document).ready(function () { if (typeof window.console === "undefined") { /* minimum conversion of arbitrary object to text representation */ function object2text (obj) { var text = null; if (typeof obj === "undefined") text = "[undefined]"; else if (typeof obj === "boolean") text = (obj ? "true" : "false"); else if (typeof obj === "number") text = "" + obj; else if (typeof obj === "string") text = obj; else if (typeof obj === "function") text = obj; else if (typeof obj === "object") { if (typeof obj.nodeType !== "undefined") { if (obj.nodeType == 1) { /* W3C DOM element node */ text = '<'; text += obj.nodeName.toLowerCase(); for (var i = 0; i < obj.attributes.length; i++) text += ' ' + obj.attributes[i].nodeName.toLowerCase() + '="' + obj.attributes[i].nodeValue + '"'; text += '>'; } else if (obj.nodeType == 2) /* W3C DOM attribute node */ text = obj.nodeName + '="' + obj.nodeValue; else if (obj.nodeType == 3) /* W3C DOM text node */ text = obj.nodeValue; } else if (typeof obj.toJSONString !== "undefined") text = obj.toJSONString(); else if (typeof obj.toString !== "undefined") text = obj.toString(); } if (text == null) text = "[unknown]"; return text; }; /* create the custom console
node */ $(document).ready(function () { $("body") .append('
    '); $("#jQueryDebug") .css("display", "none") .css("fontFamily", "monospace") .css("backgroundColor", "#ffffff") .css("color", "#000000") .css("padding", "10px 0px 10px 0px") .css("border", "4px solid #666699") .css("margin", "4px 4px 4px 4px"); $("#jQueryDebug ol") .css("margin", "0px 0px 0px 0px") .css("paddingRight", "20px"); }); /* attach a logging function to each of the usual Firebug methods */ var names = [ "log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd" ]; var logfunc = function(msg) { $('#jQueryDebug') .css("display", $._debug$ == true ? "block" : "none"); $('#jQueryDebug ol') .append('
  1. ' + object2text(msg) + '
  2. ').css; $("#jQueryDebug ol li") .css("borderBottom", "1px solid #cccccc") .css("padding", "1px 10px 1px 10px"); }; window.console = {}; for (var i = 0; i < names.length; i++) window.console[names[i]] = logfunc; /* indicate that we are the one who is providing the Firebug interface */ window.console["jQueryDebug"] = true; } }); })(jQuery); /* file: jquery/thickbox.js (mtime: 2010-08-19 20:28:05) */ /* * Thickbox 2.1 - One Box To Rule Them All. * By Cody Lindley (http://www.codylindley.com) * Copyright (c) 2006 cody lindley * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php * Thickbox is built on top of the very light weight jQuery library. */ //on page load call TB_init //jQuery(document).ready(TB_init); //add thickbox to href elements that have a class of .thickbox function TB_init(){ jQuery("a.thickbox").click(function(){ var t = this.title || this.name || null; var g = this.rel || false; var showremember = jQuery(this).hasClass('thickbox-noremember') ? false : true; TB_show(t,this.href,g,showremember); this.blur(); return false; }); jQuery("a.thickbox").css({display:"inline"}); //jQuery.log("test"); } function TB_show(caption, url, imageGroup, showremember, src) {//function called when the user clicks on a thickbox link var images_location = '/minishowcase/extensions/thickbox_2' //alert("TB_show "+src); try { if (document.getElementById("TB_HideSelect") == null) { jQuery("body").append("" +"
    " +"
    " ); jQuery("#TB_overlay").click(TB_remove); } if(caption==null){caption=""}; jQuery(window).scroll(TB_position); TB_overlaySize(); jQuery("body").append("
    "); TB_load_position(); if(url.indexOf("?")!==-1){ //If there is a query string involved var baseURL = url.substr(0, url.indexOf("?")); }else{ var baseURL = url; } var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g; var urlType = baseURL.toLowerCase().match(urlString); if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp' ) {//code to show images TB_PrevCaption = ""; TB_PrevURL = ""; TB_PrevHTML = ""; TB_NextCaption = ""; TB_NextURL = ""; TB_NextHTML = ""; TB_imageCount = ""; TB_FoundURL = false; if(imageGroup){ TB_TempArray = jQuery("a[rel="+imageGroup+"]").get(); for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML == "")); TB_Counter++) { var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); if (!(TB_TempArray[TB_Counter].href == url)) { if (TB_FoundURL) { TB_NextCaption = TB_TempArray[TB_Counter].title; TB_NextURL = TB_TempArray[TB_Counter].href; TB_NextHTML = "  ► ►"; } else { TB_PrevCaption = TB_TempArray[TB_Counter].title; TB_PrevURL = TB_TempArray[TB_Counter].href; TB_PrevHTML = "  ◄ ◄"; } } else { TB_FoundURL = true; TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); } } } imgPreloader = new Image(); imgPreloader.onload = function(){ imgPreloader.onload = null; // Resizing large images - orginal by Christian Montoya edited by me. var pagesize = TB_getPageSize(); var x = pagesize[0] - 150; var y = pagesize[1] - 150; var imageWidth = imgPreloader.width; var imageHeight = imgPreloader.height; if (imageWidth > x) { imageHeight = imageHeight * (x / imageWidth); imageWidth = x; if (imageHeight > y) { imageWidth = imageWidth * (y / imageHeight); imageHeight = y; } } else if (imageHeight > y) { imageWidth = imageWidth * (y / imageHeight); imageHeight = y; if (imageWidth > x) { imageHeight = imageHeight * (x / imageWidth); imageWidth = x; } } // End Resizing TB_WIDTH = imageWidth + 30; TB_HEIGHT = imageHeight + 60; //jQuery.log("w="+TB_WIDTH+",h="+TB_HEIGHT); TB_membered_show = "jQuery(\'#TB_membered\').slideDown( 'slow', function() {" + "jQuery(this).css( 'backgroundColor', 'green' ).slideUp( 'slow' );" + "});"; //TB_membered_show = "jQuery(\'#TB_membered\').show(500).hide(2000);"; jQuery("#TB_window").append("" + ""+caption+"" + "
    " + "
    " + TB_PrevHTML + "
    " + (showremember ? "
    " + "merken
    " + "
    gemerkt!
    " + "
    " : "") + "
    " + TB_NextHTML + "
    " + "

    " + "
    " + "" + "" + "
    " + "Bild-URL: " + "" + url.replace(/\?rhflow_session\=[a-z0-9]+/,"") + "" + "
    " + "
    " + "no." + caption + "" + "
    " + TB_imageCount + "
    " + "
    " + "
    " + "schließen" + "
    " + "
    " + "" + "" + "
    " ); //rhShowWait("TB_preloadImgs"); /*jQuery("#TB_preloadImgs").load(function(){ rhHideWait("TB_preloadImgs"); });*/ rhUpdateTooltips(); jQuery("#TB_closeWindowButton").click(TB_remove); //console.log(caption); if (!(TB_PrevHTML == "")) { function goPrev(){ //if(jQuery(document).unclick(goPrev)){jQuery(document).unclick(goPrev)}; jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_PrevCaption, TB_PrevURL, imageGroup, showremember, 'e'); return false; } jQuery("#TB_prev").click(goPrev); /*jQuery("#TB_prev").click(function() { jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_PrevCaption, TB_PrevURL, imageGroup, showremember, 'e'); });*/ } if (!(TB_NextHTML == "")) { function goNext(){ jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_NextCaption, TB_NextURL, imageGroup, showremember, 'd'); return false; } jQuery("#TB_next").click(goNext); /*jQuery("#TB_next").click(function() { jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_NextCaption, TB_NextURL, imageGroup, showremember, 'd'); });*/ } document.onkeydown = function(e){ if (e == null) { // ie keycode = event.keyCode; } else { // mozilla keycode = e.which; } if(keycode == 27){ // close TB_remove(); } else if(keycode == 39){ // display previous image if(!(TB_NextHTML == "")){ document.onkeydown = ""; goNext(); } } else if(keycode == 37){ // display next image if(!(TB_PrevHTML == "")){ document.onkeydown = ""; goPrev(); } } else if(keycode == 32){ // merken.. e.preventDefault(); shopAddFoto(imageGroup,caption,"TB_Image"); jQuery("#TB_membered").slideDown( 'slow', function() { jQuery(this).css( 'backgroundColor', 'green' ).slideUp( 'slow' ); }); } } /* jQuery(document).shortkeys({ 'Esc': function() { TB_remove(); }, 'ArrowRight': function() { // xBE //alert("next1.."); if(!(TB_NextHTML == "")){ //document.onkeydown = ""; //goNext(); jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_NextCaption, TB_NextURL, imageGroup, showremember, 'a'); } }, 'Space': function() { //alert("next.."); if(!(TB_NextHTML == "")){ //document.onkeydown = ""; //goNext(); jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_NextCaption, TB_NextURL, imageGroup, showremember, 'b'); } }, 'ArrowLeft': function() { // xBC if(!(TB_PrevHTML == "")){ //document.onkeydown = ""; //goPrev(); jQuery("#TB_window").remove(); jQuery("body").append("
    "); TB_show(TB_PrevCaption, TB_PrevURL, imageGroup, showremember, 'c'); } }, }); */ TB_position(); jQuery("#TB_load").remove(); jQuery("#TB_ImageOff").click(TB_remove); jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show } imgPreloader.src = url; }else{//code to show html pages var queryString = url.replace(/^[^\?]+\??/,''); var params = TB_parseQuery( queryString ); TB_WIDTH = (params['width']*1) + 30; TB_HEIGHT = (params['height']*1) + 40; ajaxContentW = TB_WIDTH - 30; ajaxContentH = TB_HEIGHT - 45; if(url.indexOf('TB_iframe') != -1){ urlNoQuery = url.split('TB_'); jQuery("#TB_window").append("
    "+caption+"
    "); }else{ jQuery("#TB_window").append("
    "+caption+"
    "); } jQuery("#TB_closeWindowButton").click(TB_remove); if(url.indexOf('TB_inline') != -1){ jQuery("#TB_ajaxContent").html(jQuery('#' + params['inlineId']).html()); TB_position(); jQuery("#TB_load").remove(); jQuery("#TB_window").css({display:"block"}); }else if(url.indexOf('TB_iframe') != -1){ TB_position(); if(frames['TB_iframeContent'] == undefined){//be nice to safari jQuery("#TB_load").remove(); jQuery("#TB_window").css({display:"block"}); //jQuery(document).keyup( function(e){ var key = e.keyCode; if(key == 27){TB_remove()} }); } }else{ jQuery("#TB_ajaxContent").load(url, function(){ TB_position(); jQuery("#TB_load").remove(); jQuery("#TB_window").css({display:"block"}); }); } } jQuery(window).resize(TB_position); document.onkeyup = function(e){ if (e == null) { // ie keycode = event.keyCode; } else { // mozilla keycode = e.which; } if(keycode == 27){ // close TB_remove(); } } } catch(e) { alert( e ); } } //helper functions below function TB_showIframe(){ jQuery("#TB_load").remove(); jQuery("#TB_window").css({display:"block"}); } function TB_remove() { jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').remove();}); jQuery("#TB_load").remove(); document.onkeydown = function(e){ } document.onkeyup = function(e){ } return false; } function TB_position() { var pagesize = TB_getPageSize(); var arrayPageScroll = TB_getPageScrollTop(); jQuery("#TB_window").css({width:TB_WIDTH+"px",left: (arrayPageScroll[0] + (pagesize[0] - TB_WIDTH)/2)+"px", top: (arrayPageScroll[1] + (pagesize[1]-TB_HEIGHT)/2)+"px" }); } function TB_overlaySize(){ if (window.innerHeight && window.scrollMaxY || window.innerWidth && window.scrollMaxX) { yScroll = window.innerHeight + window.scrollMaxY; xScroll = window.innerWidth + window.scrollMaxX; var deff = document.documentElement; var wff = (deff&&deff.clientWidth) || document.body.clientWidth || window.innerWidth || self.innerWidth; var hff = (deff&&deff.clientHeight) || document.body.clientHeight || window.innerHeight || self.innerHeight; xScroll -= (window.innerWidth - wff); yScroll -= (window.innerHeight - hff); } else if (document.body.scrollHeight > document.body.offsetHeight || document.body.scrollWidth > document.body.offsetWidth){ // all but Explorer Mac yScroll = document.body.scrollHeight; xScroll = document.body.scrollWidth; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari yScroll = document.body.offsetHeight; xScroll = document.body.offsetWidth; } jQuery("#TB_overlay").css({"height":yScroll +"px", "width":xScroll +"px"}); jQuery("#TB_HideSelect").css({"height":yScroll +"px","width":xScroll +"px"}); } function TB_load_position() { var pagesize = TB_getPageSize(); var arrayPageScroll = TB_getPageScrollTop(); jQuery("#TB_load") .css({left: (arrayPageScroll[0] + (pagesize[0] - 100)/2)+"px", top: (arrayPageScroll[1] + ((pagesize[1]-100)/2))+"px" }) .css({display:"block"}); } function TB_parseQuery ( query ) { var Params = new Object (); if ( ! query ) return Params; // return empty object var Pairs = query.split(/[;&]/); for ( var i = 0; i < Pairs.length; i++ ) { var KeyVal = Pairs[i].split('='); if ( ! KeyVal || KeyVal.length != 2 ) continue; var key = unescape( KeyVal[0] ); var val = unescape( KeyVal[1] ); val = val.replace(/\+/g, ' '); Params[key] = val; } return Params; } function TB_getPageScrollTop(){ var yScrolltop; var xScrollleft; if (self.pageYOffset || self.pageXOffset) { yScrolltop = self.pageYOffset; xScrollleft = self.pageXOffset; } else if (document.documentElement && document.documentElement.scrollTop || document.documentElement.scrollLeft ){ // Explorer 6 Strict yScrolltop = document.documentElement.scrollTop; xScrollleft = document.documentElement.scrollLeft; } else if (document.body) {// all other Explorers yScrolltop = document.body.scrollTop; xScrollleft = document.body.scrollLeft; } arrayPageScroll = new Array(xScrollleft,yScrolltop) return arrayPageScroll; } function TB_getPageSize(){ var de = document.documentElement; var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight arrayPageSize = new Array(w,h) return arrayPageSize; } /* file: jquery/tooltip.js (mtime: 2010-08-02 08:01:02) */ function rh_tooltip(target_items, name){ //jQuery.log("tooltip " + target_items); //console.log("tooltip " + target_items); jQuery(target_items+"."+name).each(function(i){ if(jQuery(this).attr("title") != "" && jQuery(this).attr("title") != "undefined" ){ jQuery(this) .mouseover(function(){ jQuery("#"+name+target_items+i).remove(); if (!jQuery(this).attr("tooltip")) { jQuery(this).attr("tooltip", jQuery(this).attr("title")); jQuery(this).removeAttr("title"); } var $title = jQuery(this).attr("tooltip"); var base64 = /^base64-(.+)$/; if (base64.test($title)) { var $erg = base64.exec($title); $title = jQuery.base64Decode($erg[1]); } jQuery("body").append( "
    " +"
    " +"

    " +"
    " +$title +"

    " +"
    " +"" +"
    " +"
    " ); jQuery("#"+name+target_items+i).css({opacity:1, display:"none"}).fadeIn(300); }) .mousemove(function(kmouse){ var border_top = jQuery(window).scrollTop(); var border_right = jQuery(window).width(); var left_pos; var top_pos; var offset = 0; var my_tooltip = jQuery("#"+name+target_items+i); //if(border_right - (offset * 2) >= my_tooltip.width() + kmouse.pageX){ //console.log("lp1:"+left_pos+"/"+border_right+"/"+my_tooltip.width()+"/"+offset); left_pos = kmouse.pageX + offset - 5; //console.log("lp1:"+kmouse.pageX+"+"+offset+"="+left_pos); //} else{ // left_pos = border_right - my_tooltip.width() - offset - 20; //console.log("lp2:"+border_right+"-"+my_tooltip.width()+"-"+offset+"="+left_pos); //} var intH = my_tooltip.height(); //if(border_top + (offset *2)>= kmouse.pageY - my_tooltip.height()){ // top_pos = border_top +offset; //} else{ top_pos = kmouse.pageY+offset+15; //} //console.log(left_pos+":"+top_pos); my_tooltip.css({left:left_pos, top:top_pos}); }) .mouseout(function(){ jQuery("#"+name+target_items+i).remove(); }); } }); } jQuery(document).ready(function(){ rh_tooltip("img","rh_tooltip"); rh_tooltip("span","rh_tooltip"); rh_tooltip("a","rh_tooltip"); }); /* file: jquery/jquery.toggleval.js (mtime: 2010-08-02 08:01:01) */ /* -------------------------------------------------- * * ToggleVal 3.0 * Updated: 01/15/2010 * -------------------------------------------------- * * Author: Aaron Kuzemchak * URL: http://aaronkuzemchak.com/ * Copyright: 2008-2010 Aaron Kuzemchak * License: MIT License ** -------------------------------------------------- */ (function($) { // main plugin function $.fn.toggleVal = function(theOptions) { // check whether we want real options, or to destroy functionality if(!theOptions || typeof theOptions == 'object') { theOptions = $.extend({}, $.fn.toggleVal.defaults, theOptions); } else if(typeof theOptions == 'string' && theOptions.toLowerCase() == 'destroy') { var destroy = true; } return this.each(function() { // unbind everything if we're destroying, and stop executing the script if(destroy) { $(this).unbind('focus.toggleval').unbind('blur.toggleval').removeData('defText'); return false; } // define our variables var defText = ''; // let's populate the field, if not default switch(theOptions.populateFrom) { case 'title': if($(this).attr('title')) { defText = $(this).attr('title'); $(this).val(defText); } break; case 'label': if($(this).attr('id')) { defText = $('label[for="' + $(this).attr('id') + '"]').text(); $(this).val(defText); } break; case 'custom': defText = theOptions.text; $(this).val(defText); break; default: defText = $(this).val(); } // let's give this field a special class, so we can identify it later // also, we'll give it a data attribute, which will help jQuery remember what the default value is $(this).addClass('toggleval').data('defText', defText); // now that fields are populated, let's remove the labels if applicable if(theOptions.removeLabels == true && $(this).attr('id')) { $('label[for="' + $(this).attr('id') + '"]').remove(); } // on to the good stuff... the focus and blur actions $(this).bind('focus.toggleval', function() { if($(this).val() == $(this).data('defText')) { $(this).val(''); } // add the focusClass, remove changedClass $(this).addClass(theOptions.focusClass); }).bind('blur.toggleval', function() { if($(this).val() == '' && !theOptions.sticky) { $(this).val($(this).data('defText')); } // remove focusClass, add changedClass if, well, different $(this).removeClass(theOptions.focusClass); if($(this).val() != '' && $(this).val() != $(this).data('defText')) { $(this).addClass(theOptions.changedClass); } else { $(this).removeClass(theOptions.changedClass); } }); }); }; // default options $.fn.toggleVal.defaults = { focusClass: 'tv-focused', // class during focus changedClass: 'tv-changed', // class after focus populateFrom: 'default', // choose from: default, label, custom, or title text: null, // text to use in conjunction with populateFrom: custom removeLabels: false, // remove labels associated with the fields sticky: false // if true, default text won't reappear }; // create custom selectors // :toggleval for affected elements // :changed for changed elements $.extend($.expr[':'], { toggleval: function(elem) { return $(elem).data('defText') || false; }, changed: function(elem) { if($(elem).data('defText') && $(elem).val() != $(elem).data('defText')) { return true; } return false; } }); })(jQuery); /* file: jquery/jquery.selectbox-0.5.js (mtime: 2010-08-02 08:01:01) */ /* * jQuery selectbox plugin * * Copyright (c) 2007 Sadri Sahraoui (brainfault.com) * Licensed under the GPL license and MIT: * http://www.opensource.org/licenses/GPL-license.php * http://www.opensource.org/licenses/mit-license.php * * The code is inspired from Autocomplete plugin (http://www.dyve.net/jquery/?autocomplete) * * Revision: $Id$ * Version: 0.5 * * Changelog : * Version 0.5 * - separate css style for current selected element and hover element which solve the highlight issue * Version 0.4 * - Fix width when the select is in a hidden div @Pawel Maziarz * - Add a unique id for generated li to avoid conflict with other selects and empty values @Pawel Maziarz */ jQuery.fn.extend({ selectbox: function(options) { return this.each(function() { new jQuery.SelectBox(this, options); }); } }); /* pawel maziarz: work around for ie logging */ if (!window.console) { var console = { log: function(msg) { } } } /* */ jQuery.SelectBox = function(selectobj, options) { var opt = options || {}; opt.inputClass = opt.inputClass || "selectbox"; opt.containerClass = opt.containerClass || "selectbox-wrapper"; opt.hoverClass = opt.hoverClass || "current"; opt.currentClass = opt.selectedClass || "selected" opt.debug = opt.debug || false; var elm_id = selectobj.id; var active = -1; var inFocus = false; var hasfocus = 0; //jquery object for select element var $select = $(selectobj); // jquery container object var $container = setupContainer(opt); //jquery input object var $input = setupInput(opt); // hide select and append newly created elements $select.hide().before($input).before($container); init(); $input .click(function(){ if (!inFocus) { $container.toggle(); } }) .focus(function(){ if ($container.not(':visible')) { inFocus = true; $container.show(); } }) .keydown(function(event) { switch(event.keyCode) { case 38: // up event.preventDefault(); moveSelect(-1); break; case 40: // down event.preventDefault(); moveSelect(1); break; //case 9: // tab case 13: // return event.preventDefault(); // seems not working in mac ! $('li.'+opt.hoverClass).trigger('click'); break; case 27: //escape hideMe(); break; } }) .blur(function() { if ($container.is(':visible') && hasfocus > 0 ) { if(opt.debug) console.log('container visible and has focus') } else { hideMe(); } }); function hideMe() { hasfocus = 0; $container.hide(); } function init() { $container.append(getSelectOptions($input.attr('id'))).hide(); //var width = $input.css('width'); //$container.width(width); $input.css("width", $select.css("width")); $container.css("top", "-" + ($container.height() - 20) + "px"); } function setupContainer(options) { var container = document.createElement("div"); $container = $(container); $container.attr('id', elm_id+'_container'); $container.addClass(options.containerClass); return $container; } function setupInput(options) { var input = document.createElement("input"); var $input = $(input); $input.attr("id", elm_id+"_input"); $input.attr("type", "text"); $input.addClass(options.inputClass); $input.attr("autocomplete", "off"); $input.attr("readonly", "readonly"); $input.attr("tabIndex", $select.attr("tabindex")); // "I" capital is important for ie return $input; } function moveSelect(step) { var lis = $("li", $container); if (!lis) return; active += step; if (active < 0) { active = 0; } else if (active >= lis.size()) { active = lis.size() - 1; } lis.removeClass(opt.hoverClass); $(lis[active]).addClass(opt.hoverClass); } function setCurrent() { var li = $("li."+opt.currentClass, $container).get(0); var ar = (''+li.id).split('_'); var el = ar[ar.length-1]; $select.val(el); $input.val($(li).html()); $input.trigger("onchange"); return true; } // select value function getCurrentSelected() { return $select.val(); } // input value function getCurrentValue() { return $input.val(); } function getSelectOptions(parentid) { var select_options = new Array(); var ul = document.createElement('ul'); $select.children('option').each(function() { var li = document.createElement('li'); li.setAttribute('id', parentid + '_' + $(this).val()); li.innerHTML = $(this).html(); if ($(this).is(':selected')) { $input.val($(this).html()); $(li).addClass(opt.currentClass); } ul.appendChild(li); $(li) .mouseover(function(event) { hasfocus = 1; if (opt.debug) console.log('over on : '+this.id); jQuery(event.target, $container).addClass(opt.hoverClass); }) .mouseout(function(event) { hasfocus = -1; if (opt.debug) console.log('out on : '+this.id); jQuery(event.target, $container).removeClass(opt.hoverClass); }) .click(function(event) { var fl = $('li.'+opt.hoverClass, $container).get(0); if (opt.debug) console.log('click on :'+this.id); $('li.'+opt.currentClass).removeClass(opt.currentClass); $(this).addClass(opt.currentClass); setCurrent(); hideMe(); }); }); return ul; } }; /* file: jquery/jquery.scrollTo-min.js (mtime: 2010-08-02 08:01:01) */ /** * jQuery.ScrollTo - Easy element scrolling using jQuery. * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com * Dual licensed under MIT and GPL. * Date: 5/25/2009 * @author Ariel Flesler * @version 1.4.2 * * http://flesler.blogspot.com/2007/10/jqueryscrollto.html */ ;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); /* file: jquery/jquery.equalcols.js (mtime: 2010-08-02 08:00:51) */ /** * @projectDescription Simple Equal Columns * @author Matt Hobbs * @version 0.01 */ jQuery.fn.equalCols = function(){ //Array Sorter var sortNumber = function(a,b){return b - a;}; var heights = []; //Push each height into an array $(this).each(function(){ heights.push($(this).height()); }); heights.sort(sortNumber); var maxHeight = heights[0]; return this.each(function(){ //Set each column to the max height $(this).css({'height': maxHeight}); }); }; /* file: jquery/jquery.jcarousel.js (mtime: 2010-08-02 08:00:53) */ /*! * jCarousel - Riding carousels with jQuery * http://sorgalla.com/jcarousel/ * * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. * * Built on top of the jQuery library * http://jquery.com * * Inspired by the "Carousel Component" by Bill Scott * http://billwscott.com/carousel/ */ (function($) { /** * Creates a carousel for all matched elements. * * @example $("#mycarousel").jcarousel(); * @before
    • First item
    • Second item
    * @result * *
    *
    *
    *
      *
    • First item
    • *
    • Second item
    • *
    *
    *
    *
    *
    *
    * * @method jcarousel * @return jQuery * @param o {Hash|String} A set of key/value pairs to set as configuration properties or a method name to call on a formerly created instance. */ $.fn.jcarousel = function(o) { if (typeof o == 'string') { var instance = $(this).data('jcarousel'), args = Array.prototype.slice.call(arguments, 1); return instance[o].apply(instance, args); } else return this.each(function() { $(this).data('jcarousel', new $jc(this, o)); }); }; // Default configuration properties. var defaults = { vertical: false, start: 1, offset: 1, size: null, scroll: 3, visible: null, animation: 'normal', easing: 'swing', auto: 0, wrap: null, initCallback: null, reloadCallback: null, itemLoadCallback: null, itemFirstInCallback: null, itemFirstOutCallback: null, itemLastInCallback: null, itemLastOutCallback: null, itemVisibleInCallback: null, itemVisibleOutCallback: null, buttonNextHTML: '
    ', buttonPrevHTML: '
    ', buttonNextEvent: 'click', buttonPrevEvent: 'click', buttonNextCallback: null, buttonPrevCallback: null }; /** * The jCarousel object. * * @constructor * @class jcarousel * @param e {HTMLElement} The element to create the carousel for. * @param o {Object} A set of key/value pairs to set as configuration properties. * @cat Plugins/jCarousel */ $.jcarousel = function(e, o) { this.options = $.extend({}, defaults, o || {}); this.locked = false; this.container = null; this.clip = null; this.list = null; this.buttonNext = null; this.buttonPrev = null; this.wh = !this.options.vertical ? 'width' : 'height'; this.lt = !this.options.vertical ? 'left' : 'top'; // Extract skin class var skin = '', split = e.className.split(' '); for (var i = 0; i < split.length; i++) { if (split[i].indexOf('jcarousel-skin') != -1) { $(e).removeClass(split[i]); skin = split[i]; break; } } if (e.nodeName == 'UL' || e.nodeName == 'OL') { this.list = $(e); this.container = this.list.parent(); if (this.container.hasClass('jcarousel-clip')) { if (!this.container.parent().hasClass('jcarousel-container')) this.container = this.container.wrap('
    '); this.container = this.container.parent(); } else if (!this.container.hasClass('jcarousel-container')) this.container = this.list.wrap('
    ').parent(); } else { this.container = $(e); this.list = this.container.find('ul,ol').eq(0); } if (skin != '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1) this.container.wrap('
    '); this.clip = this.list.parent(); if (!this.clip.length || !this.clip.hasClass('jcarousel-clip')) this.clip = this.list.wrap('
    ').parent(); this.buttonNext = $('.jcarousel-next', this.container); if (this.buttonNext.size() == 0 && this.options.buttonNextHTML != null) this.buttonNext = this.clip.after(this.options.buttonNextHTML).next(); this.buttonNext.addClass(this.className('jcarousel-next')); this.buttonPrev = $('.jcarousel-prev', this.container); if (this.buttonPrev.size() == 0 && this.options.buttonPrevHTML != null) this.buttonPrev = this.clip.after(this.options.buttonPrevHTML).next(); this.buttonPrev.addClass(this.className('jcarousel-prev')); this.clip.addClass(this.className('jcarousel-clip')).css({ overflow: 'hidden', position: 'relative' }); this.list.addClass(this.className('jcarousel-list')).css({ overflow: 'hidden', position: 'relative', top: 0, left: 0, margin: 0, padding: 0 }); this.container.addClass(this.className('jcarousel-container')).css({ position: 'relative' }); var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null; var li = this.list.children('li'); var self = this; if (li.size() > 0) { var wh = 0, i = this.options.offset; li.each(function() { self.format(this, i++); wh += self.dimension(this, di); }); this.list.css(this.wh, wh + 'px'); // Only set if not explicitly passed as option if (!o || o.size === undefined) this.options.size = li.size(); } // For whatever reason, .show() does not work in Safari... this.container.css('display', 'block'); this.buttonNext.css('display', 'block'); this.buttonPrev.css('display', 'block'); this.funcNext = function() { self.next(); }; this.funcPrev = function() { self.prev(); }; this.funcResize = function() { self.reload(); }; if (this.options.initCallback != null) this.options.initCallback(this, 'init'); if ($.browser.safari) { this.buttons(false, false); $(window).bind('load.jcarousel', function() { self.setup(); }); } else this.setup(); }; // Create shortcut for internal use var $jc = $.jcarousel; $jc.fn = $jc.prototype = { jcarousel: '0.2.4' }; $jc.fn.extend = $jc.extend = $.extend; $jc.fn.extend({ /** * Setups the carousel. * * @method setup * @return undefined */ setup: function() { this.first = null; this.last = null; this.prevFirst = null; this.prevLast = null; this.animating = false; this.timer = null; this.tail = null; this.inTail = false; if (this.locked) return; this.list.css(this.lt, this.pos(this.options.offset) + 'px'); var p = this.pos(this.options.start); this.prevFirst = this.prevLast = null; this.animate(p, false); $(window).unbind('resize.jcarousel', this.funcResize).bind('resize.jcarousel', this.funcResize); }, /** * Clears the list and resets the carousel. * * @method reset * @return undefined */ reset: function() { this.list.empty(); this.list.css(this.lt, '0px'); this.list.css(this.wh, '10px'); if (this.options.initCallback != null) this.options.initCallback(this, 'reset'); this.setup(); }, /** * Reloads the carousel and adjusts positions. * * @method reload * @return undefined */ reload: function() { if (this.tail != null && this.inTail) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail); this.tail = null; this.inTail = false; if (this.options.reloadCallback != null) this.options.reloadCallback(this); if (this.options.visible != null) { var self = this; var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0; $('li', this.list).each(function(i) { wh += self.dimension(this, di); if (i + 1 < self.first) lt = wh; }); this.list.css(this.wh, wh + 'px'); this.list.css(this.lt, -lt + 'px'); } this.scroll(this.first, false); }, /** * Locks the carousel. * * @method lock * @return undefined */ lock: function() { this.locked = true; this.buttons(); }, /** * Unlocks the carousel. * * @method unlock * @return undefined */ unlock: function() { this.locked = false; this.buttons(); }, /** * Sets the size of the carousel. * * @method size * @return undefined * @param s {Number} The size of the carousel. */ size: function(s) { if (s != undefined) { this.options.size = s; if (!this.locked) this.buttons(); } return this.options.size; }, /** * Checks whether a list element exists for the given index (or index range). * * @method get * @return bool * @param i {Number} The index of the (first) element. * @param i2 {Number} The index of the last element. */ has: function(i, i2) { if (i2 == undefined || !i2) i2 = i; if (this.options.size !== null && i2 > this.options.size) i2 = this.options.size; for (var j = i; j <= i2; j++) { var e = this.get(j); if (!e.length || e.hasClass('jcarousel-item-placeholder')) return false; } return true; }, /** * Returns a jQuery object with list element for the given index. * * @method get * @return jQuery * @param i {Number} The index of the element. */ get: function(i) { return $('.jcarousel-item-' + i, this.list); }, /** * Adds an element for the given index to the list. * If the element already exists, it updates the inner html. * Returns the created element as jQuery object. * * @method add * @return jQuery * @param i {Number} The index of the element. * @param s {String} The innerHTML of the element. */ add: function(i, s) { var e = this.get(i), old = 0, add = 0; if (e.length == 0) { var c, e = this.create(i), j = $jc.intval(i); while (c = this.get(--j)) { if (j <= 0 || c.length) { j <= 0 ? this.list.prepend(e) : c.after(e); break; } } } else old = this.dimension(e); e.removeClass(this.className('jcarousel-item-placeholder')); typeof s == 'string' ? e.html(s) : e.empty().append(s); var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null; var wh = this.dimension(e, di) - old; if (i > 0 && i < this.first) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px'); this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px'); return e; }, /** * Removes an element for the given index from the list. * * @method remove * @return undefined * @param i {Number} The index of the element. */ remove: function(i) { var e = this.get(i); // Check if item exists and is not currently visible if (!e.length || (i >= this.first && i <= this.last)) return; var d = this.dimension(e); if (i < this.first) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px'); e.remove(); this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px'); }, /** * Moves the carousel forwards. * * @method next * @return undefined */ next: function() { this.stopAuto(); if (this.tail != null && !this.inTail) this.scrollTail(false); else this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size != null && this.last == this.options.size) ? 1 : this.first + this.options.scroll); }, /** * Moves the carousel backwards. * * @method prev * @return undefined */ prev: function() { this.stopAuto(); if (this.tail != null && this.inTail) this.scrollTail(true); else this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size != null && this.first == 1) ? this.options.size : this.first - this.options.scroll); }, /** * Scrolls the tail of the carousel. * * @method scrollTail * @return undefined * @param b {Boolean} Whether scroll the tail back or forward. */ scrollTail: function(b) { if (this.locked || this.animating || !this.tail) return; var pos = $jc.intval(this.list.css(this.lt)); !b ? pos -= this.tail : pos += this.tail; this.inTail = !b; // Save for callbacks this.prevFirst = this.first; this.prevLast = this.last; this.animate(pos); }, /** * Scrolls the carousel to a certain position. * * @method scroll * @return undefined * @param i {Number} The index of the element to scoll to. * @param a {Boolean} Flag indicating whether to perform animation. */ scroll: function(i, a) { if (this.locked || this.animating) return; this.animate(this.pos(i), a); }, /** * Prepares the carousel and return the position for a certian index. * * @method pos * @return {Number} * @param i {Number} The index of the element to scoll to. */ pos: function(i) { var pos = $jc.intval(this.list.css(this.lt)); if (this.locked || this.animating) return pos; if (this.options.wrap != 'circular') i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i); var back = this.first > i; // Create placeholders, new list width/height // and new list position var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first; var c = back ? this.get(f) : this.get(this.last); var j = back ? f : f - 1; var e = null, l = 0, p = false, d = 0, g; while (back ? --j >= i : ++j < i) { e = this.get(j); p = !e.length; if (e.length == 0) { e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); c[back ? 'before' : 'after' ](e); if (this.first != null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { g = this.get(this.index(j)); if (g.length) this.add(j, g.children().clone(true)); } } c = e; d = this.dimension(e); if (p) l += d; if (this.first != null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size == null || j <= this.options.size)))) pos = back ? pos + d : pos - d; } // Calculate visible items var clipping = this.clipping(); var cache = []; var visible = 0, j = i, v = 0; var c = this.get(i - 1); while (++visible) { e = this.get(j); p = !e.length; if (e.length == 0) { e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); // This should only happen on a next scroll c.length == 0 ? this.list.prepend(e) : c[back ? 'before' : 'after' ](e); if (this.first != null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { g = this.get(this.index(j)); if (g.length) this.add(j, g.find('>*').clone(true)); } } c = e; var d = this.dimension(e); if (d == 0) { alert('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...'); return 0; } if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size) cache.push(e); else if (p) l += d; v += d; if (v >= clipping) break; j++; } // Remove out-of-range placeholders for (var x = 0; x < cache.length; x++) cache[x].remove(); // Resize list if (l > 0) { this.list.css(this.wh, this.dimension(this.list) + l + 'px'); if (back) { pos -= l; this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px'); } } // Calculate first and last item var last = i + visible - 1; if (this.options.wrap != 'circular' && this.options.size && last > this.options.size) last = this.options.size; if (j > last) { visible = 0, j = last, v = 0; while (++visible) { var e = this.get(j--); if (!e.length) break; v += this.dimension(e); if (v >= clipping) break; } } var first = last - visible + 1; if (this.options.wrap != 'circular' && first < 1) first = 1; if (this.inTail && back) { pos += this.tail; this.inTail = false; } this.tail = null; if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) { var m = $jc.margin(this.get(last), !this.options.vertical ? 'marginRight' : 'marginBottom'); if ((v - m) > clipping) this.tail = v - clipping - m; } // Adjust position while (i-- > first) pos += this.dimension(this.get(i)); // Save visible item range this.prevFirst = this.first; this.prevLast = this.last; this.first = first; this.last = last; return pos; }, /** * Animates the carousel to a certain position. * * @method animate * @return undefined * @param p {Number} Position to scroll to. * @param a {Boolean} Flag indicating whether to perform animation. */ animate: function(p, a) { if (this.locked || this.animating) return; this.animating = true; var self = this; var scrolled = function() { self.animating = false; if (p == 0) self.list.css(self.lt, 0); if (self.options.wrap == 'circular' || self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size == null || self.last < self.options.size) self.startAuto(); self.buttons(); self.notify('onAfterAnimation'); }; this.notify('onBeforeAnimation'); // Animate if (!this.options.animation || a == false) { this.list.css(this.lt, p + 'px'); scrolled(); } else { var o = !this.options.vertical ? {'left': p} : {'top': p}; this.list.animate(o, this.options.animation, this.options.easing, scrolled); } }, /** * Starts autoscrolling. * * @method auto * @return undefined * @param s {Number} Seconds to periodically autoscroll the content. */ startAuto: function(s) { if (s != undefined) this.options.auto = s; if (this.options.auto == 0) return this.stopAuto(); if (this.timer != null) return; var self = this; this.timer = setTimeout(function() { self.next(); }, this.options.auto * 1000); }, /** * Stops autoscrolling. * * @method stopAuto * @return undefined */ stopAuto: function() { if (this.timer == null) return; clearTimeout(this.timer); this.timer = null; }, /** * Sets the states of the prev/next buttons. * * @method buttons * @return undefined */ buttons: function(n, p) { if (n == undefined || n == null) { var n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size == null || this.last < this.options.size); if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size != null && this.last >= this.options.size) n = this.tail != null && !this.inTail; } if (p == undefined || p == null) { var p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1); if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size != null && this.first == 1) p = this.tail != null && this.inTail; } var self = this; this.buttonNext[n ? 'bind' : 'unbind'](this.options.buttonNextEvent + '.jcarousel', this.funcNext)[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true); this.buttonPrev[p ? 'bind' : 'unbind'](this.options.buttonPrevEvent + '.jcarousel', this.funcPrev)[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true); if (this.buttonNext.length > 0 && (this.buttonNext[0].jcarouselstate == undefined || this.buttonNext[0].jcarouselstate != n) && this.options.buttonNextCallback != null) { this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n); }); this.buttonNext[0].jcarouselstate = n; } if (this.buttonPrev.length > 0 && (this.buttonPrev[0].jcarouselstate == undefined || this.buttonPrev[0].jcarouselstate != p) && this.options.buttonPrevCallback != null) { this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p); }); this.buttonPrev[0].jcarouselstate = p; } }, /** * Notify callback of a specified event. * * @method notify * @return undefined * @param evt {String} The event name */ notify: function(evt) { var state = this.prevFirst == null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev'); // Load items this.callback('itemLoadCallback', evt, state); if (this.prevFirst !== this.first) { this.callback('itemFirstInCallback', evt, state, this.first); this.callback('itemFirstOutCallback', evt, state, this.prevFirst); } if (this.prevLast !== this.last) { this.callback('itemLastInCallback', evt, state, this.last); this.callback('itemLastOutCallback', evt, state, this.prevLast); } this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast); this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last); }, callback: function(cb, evt, state, i1, i2, i3, i4) { if (this.options[cb] == undefined || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation')) return; var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb]; if (!$.isFunction(callback)) return; var self = this; if (i1 === undefined) callback(self, state, evt); else if (i2 === undefined) this.get(i1).each(function() { callback(self, this, i1, state, evt); }); else { for (var i = i1; i <= i2; i++) if (i !== null && !(i >= i3 && i <= i4)) this.get(i).each(function() { callback(self, this, i, state, evt); }); } }, create: function(i) { return this.format('
  3. ', i); }, format: function(e, i) { var $e = $(e).addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i)).css({ 'float': 'left', 'list-style': 'none' }); $e.attr('jcarouselindex', i); return $e; }, className: function(c) { return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical'); }, dimension: function(e, d) { var el = e.jquery != undefined ? e[0] : e; var old = !this.options.vertical ? el.offsetWidth + $jc.margin(el, 'marginLeft') + $jc.margin(el, 'marginRight') : el.offsetHeight + $jc.margin(el, 'marginTop') + $jc.margin(el, 'marginBottom'); if (d == undefined || old == d) return old; var w = !this.options.vertical ? d - $jc.margin(el, 'marginLeft') - $jc.margin(el, 'marginRight') : d - $jc.margin(el, 'marginTop') - $jc.margin(el, 'marginBottom'); $(el).css(this.wh, w + 'px'); return this.dimension(el); }, clipping: function() { return !this.options.vertical ? this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) : this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth')); }, index: function(i, s) { if (s == undefined) s = this.options.size; return Math.round((((i-1) / s) - Math.floor((i-1) / s)) * s) + 1; } }); $jc.extend({ /** * Gets/Sets the global default configuration properties. * * @method defaults * @return {Object} * @param d {Object} A set of key/value pairs to set as configuration properties. */ defaults: function(d) { return $.extend(defaults, d || {}); }, margin: function(e, p) { if (!e) return 0; var el = e.jquery != undefined ? e[0] : e; if (p == 'marginRight' && $.browser.safari) { var old = {'display': 'block', 'float': 'none', 'width': 'auto'}, oWidth, oWidth2; $.swap(el, old, function() { oWidth = el.offsetWidth; }); old['marginRight'] = 0; $.swap(el, old, function() { oWidth2 = el.offsetWidth; }); return oWidth2 - oWidth; } return $jc.intval($.css(el, p)); }, intval: function(v) { v = parseInt(v); return isNaN(v) ? 0 : v; } }); })(jQuery); /* file: jquery/jquery.base64.js (mtime: 2010-08-02 08:00:48) */ /** * jQuery BASE64 functions * * * Encodes the given data with base64. * String $.base64Encode ( String str ) *
    * Decodes a base64 encoded data. * String $.base64Decode ( String str ) *
    * * Encodes and Decodes the given data in base64. * This encoding is designed to make binary data survive transport through transport layers that are not 8-bit clean, such as mail bodies. * Base64-encoded data takes about 33% more space than the original data. * This javascript code is used to encode / decode data using base64 (this encoding is designed to make binary data survive transport through transport layers that are not 8-bit clean). Script is fully compatible with UTF-8 encoding. You can use base64 encoded data as simple encryption mechanism. * If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag). * This function orginally get from the WebToolkit and rewrite for using as the jQuery plugin. * * Example * Code * * $.base64Encode("I'm Persian."); * * Result * * "SSdtIFBlcnNpYW4u" * * Code * * $.base64Decode("SSdtIFBlcnNpYW4u"); * * Result * * "I'm Persian." * * * @alias Muhammad Hussein Fattahizadeh < muhammad [AT] semnanweb [DOT] com > * @link http://www.semnanweb.com/jquery-plugin/base64.html * @see http://www.webtoolkit.info/ * @license http://www.gnu.org/licenses/gpl.html [GNU General Public License] * @param {jQuery} {base64Encode:function(input)) * @param {jQuery} {base64Decode:function(input)) * @return string */ (function($){ var keyString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var uTF8Encode = function(string) { string = string.replace(/\x0d\x0a/g, "\x0a"); var output = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { output += String.fromCharCode(c); } else if ((c > 127) && (c < 2048)) { output += String.fromCharCode((c >> 6) | 192); output += String.fromCharCode((c & 63) | 128); } else { output += String.fromCharCode((c >> 12) | 224); output += String.fromCharCode(((c >> 6) & 63) | 128); output += String.fromCharCode((c & 63) | 128); } } return output; }; var uTF8Decode = function(input) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < input.length ) { c = input.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if ((c > 191) && (c < 224)) { c2 = input.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = input.charCodeAt(i+1); c3 = input.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } $.extend({ base64Encode: function(input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = uTF8Encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + keyString.charAt(enc1) + keyString.charAt(enc2) + keyString.charAt(enc3) + keyString.charAt(enc4); } return output; }, base64Decode: function(input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = keyString.indexOf(input.charAt(i++)); enc2 = keyString.indexOf(input.charAt(i++)); enc3 = keyString.indexOf(input.charAt(i++)); enc4 = keyString.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = uTF8Decode(output); return output; } }); })(jQuery); /* file: jquery/jquery.cookies.2.2.0.js (mtime: 2010-08-02 08:00:49) */ /** * Copyright (c) 2005 - 2010, James Auldridge * All rights reserved. * * Licensed under the BSD, MIT, and GPL (your choice!) Licenses: * http://code.google.com/p/cookies/wiki/License * */ var jaaulde = window.jaaulde || {}; jaaulde.utils = jaaulde.utils || {}; jaaulde.utils.cookies = ( function() { var resolveOptions, assembleOptionsString, parseCookies, constructor, defaultOptions = { expiresAt: null, path: '/', domain: null, secure: false }; /** * resolveOptions - receive an options object and ensure all options are present and valid, replacing with defaults where necessary * * @access private * @static * @parameter Object options - optional options to start with * @return Object complete and valid options object */ resolveOptions = function( options ) { var returnValue, expireDate; if( typeof options !== 'object' || options === null ) { returnValue = defaultOptions; } else { returnValue = { expiresAt: defaultOptions.expiresAt, path: defaultOptions.path, domain: defaultOptions.domain, secure: defaultOptions.secure }; if( typeof options.expiresAt === 'object' && options.expiresAt instanceof Date ) { returnValue.expiresAt = options.expiresAt; } else if( typeof options.hoursToLive === 'number' && options.hoursToLive !== 0 ) { expireDate = new Date(); expireDate.setTime( expireDate.getTime() + ( options.hoursToLive * 60 * 60 * 1000 ) ); returnValue.expiresAt = expireDate; } if( typeof options.path === 'string' && options.path !== '' ) { returnValue.path = options.path; } if( typeof options.domain === 'string' && options.domain !== '' ) { returnValue.domain = options.domain; } if( options.secure === true ) { returnValue.secure = options.secure; } } return returnValue; }; /** * assembleOptionsString - analyze options and assemble appropriate string for setting a cookie with those options * * @access private * @static * @parameter options OBJECT - optional options to start with * @return STRING - complete and valid cookie setting options */ assembleOptionsString = function( options ) { options = resolveOptions( options ); return ( ( typeof options.expiresAt === 'object' && options.expiresAt instanceof Date ? '; expires=' + options.expiresAt.toGMTString() : '' ) + '; path=' + options.path + ( typeof options.domain === 'string' ? '; domain=' + options.domain : '' ) + ( options.secure === true ? '; secure' : '' ) ); }; /** * parseCookies - retrieve document.cookie string and break it into a hash with values decoded and unserialized * * @access private * @static * @return OBJECT - hash of cookies from document.cookie */ parseCookies = function() { var cookies = {}, i, pair, name, value, separated = document.cookie.split( ';' ), unparsedValue; for( i = 0; i < separated.length; i = i + 1 ) { pair = separated[i].split( '=' ); name = pair[0].replace( /^\s*/, '' ).replace( /\s*$/, '' ); try { value = decodeURIComponent( pair[1] ); } catch( e1 ) { value = pair[1]; } if( typeof JSON === 'object' && JSON !== null && typeof JSON.parse === 'function' ) { try { unparsedValue = value; value = JSON.parse( value ); } catch( e2 ) { value = unparsedValue; } } cookies[name] = value; } return cookies; }; constructor = function(){}; /** * get - get one, several, or all cookies * * @access public * @paramater Mixed cookieName - String:name of single cookie; Array:list of multiple cookie names; Void (no param):if you want all cookies * @return Mixed - Value of cookie as set; Null:if only one cookie is requested and is not found; Object:hash of multiple or all cookies (if multiple or all requested); */ constructor.prototype.get = function( cookieName ) { var returnValue, item, cookies = parseCookies(); if( typeof cookieName === 'string' ) { returnValue = ( typeof cookies[cookieName] !== 'undefined' ) ? cookies[cookieName] : null; } else if( typeof cookieName === 'object' && cookieName !== null ) { returnValue = {}; for( item in cookieName ) { if( typeof cookies[cookieName[item]] !== 'undefined' ) { returnValue[cookieName[item]] = cookies[cookieName[item]]; } else { returnValue[cookieName[item]] = null; } } } else { returnValue = cookies; } return returnValue; }; /** * filter - get array of cookies whose names match the provided RegExp * * @access public * @paramater Object RegExp - The regular expression to match against cookie names * @return Mixed - Object:hash of cookies whose names match the RegExp */ constructor.prototype.filter = function( cookieNameRegExp ) { var cookieName, returnValue = {}, cookies = parseCookies(); if( typeof cookieNameRegExp === 'string' ) { cookieNameRegExp = new RegExp( cookieNameRegExp ); } for( cookieName in cookies ) { if( cookieName.match( cookieNameRegExp ) ) { returnValue[cookieName] = cookies[cookieName]; } } return returnValue; }; /** * set - set or delete a cookie with desired options * * @access public * @paramater String cookieName - name of cookie to set * @paramater Mixed value - Any JS value. If not a string, will be JSON encoded; NULL to delete * @paramater Object options - optional list of cookie options to specify * @return void */ constructor.prototype.set = function( cookieName, value, options ) { if( typeof options !== 'object' || options === null ) { options = {}; } if( typeof value === 'undefined' || value === null ) { value = ''; options.hoursToLive = -8760; } else if( typeof value !== 'string' ) { if( typeof JSON === 'object' && JSON !== null && typeof JSON.stringify === 'function' ) { value = JSON.stringify( value ); } else { throw new Error( 'cookies.set() received non-string value and could not serialize.' ); } } var optionsString = assembleOptionsString( options ); document.cookie = cookieName + '=' + encodeURIComponent( value ) + optionsString; }; /** * del - delete a cookie (domain and path options must match those with which the cookie was set; this is really an alias for set() with parameters simplified for this use) * * @access public * @paramater MIxed cookieName - String name of cookie to delete, or Bool true to delete all * @paramater Object options - optional list of cookie options to specify ( path, domain ) * @return void */ constructor.prototype.del = function( cookieName, options ) { var allCookies = {}, name; if( typeof options !== 'object' || options === null ) { options = {}; } if( typeof cookieName === 'boolean' && cookieName === true ) { allCookies = this.get(); } else if( typeof cookieName === 'string' ) { allCookies[cookieName] = true; } for( name in allCookies ) { if( typeof name === 'string' && name !== '' ) { this.set( name, null, options ); } } }; /** * test - test whether the browser is accepting cookies * * @access public * @return Boolean */ constructor.prototype.test = function() { var returnValue = false, testName = 'cT', testValue = 'data'; this.set( testName, testValue ); if( this.get( testName ) === testValue ) { this.del( testName ); returnValue = true; } return returnValue; }; /** * setOptions - set default options for calls to cookie methods * * @access public * @param Object options - list of cookie options to specify * @return void */ constructor.prototype.setOptions = function( options ) { if( typeof options !== 'object' ) { options = null; } defaultOptions = resolveOptions( options ); }; return new constructor(); } )(); ( function() { if( window.jQuery ) { ( function( $ ) { $.cookies = jaaulde.utils.cookies; var extensions = { /** * $( 'selector' ).cookify - set the value of an input field, or the innerHTML of an element, to a cookie by the name or id of the field or element * (field or element MUST have name or id attribute) * * @access public * @param options OBJECT - list of cookie options to specify * @return jQuery */ cookify: function( options ) { return this.each( function() { var i, nameAttrs = ['name', 'id'], name, $this = $( this ), value; for( i in nameAttrs ) { if( ! isNaN( i ) ) { name = $this.attr( nameAttrs[ i ] ); if( typeof name === 'string' && name !== '' ) { if( $this.is( ':checkbox, :radio' ) ) { if( $this.attr( 'checked' ) ) { value = $this.val(); } } else if( $this.is( ':input' ) ) { value = $this.val(); } else { value = $this.html(); } if( typeof value !== 'string' || value === '' ) { value = null; } $.cookies.set( name, value, options ); break; } } } } ); }, /** * $( 'selector' ).cookieFill - set the value of an input field or the innerHTML of an element from a cookie by the name or id of the field or element * * @access public * @return jQuery */ cookieFill: function() { return this.each( function() { var n, getN, nameAttrs = ['name', 'id'], name, $this = $( this ), value; getN = function() { n = nameAttrs.pop(); return !! n; }; while( getN() ) { name = $this.attr( n ); if( typeof name === 'string' && name !== '' ) { value = $.cookies.get( name ); if( value !== null ) { if( $this.is( ':checkbox, :radio' ) ) { if( $this.val() === value ) { $this.attr( 'checked', 'checked' ); } else { $this.removeAttr( 'checked' ); } } else if( $this.is( ':input' ) ) { $this.val( value ); } else { $this.html( value ); } } break; } } } ); }, /** * $( 'selector' ).cookieBind - call cookie fill on matching elements, and bind their change events to cookify() * * @access public * @param options OBJECT - list of cookie options to specify * @return jQuery */ cookieBind: function( options ) { return this.each( function() { var $this = $( this ); $this.cookieFill().change( function() { $this.cookify( options ); } ); } ); } }; $.each( extensions, function( i ) { $.fn[i] = this; } ); } )( window.jQuery ); } } )(); /* file: rhflow/ui.js.php (mtime: 2010-08-02 20:06:42) */ function rhInitPortlets() { jQuery(".rh-portlet") .addClass("ui-widget-content ui-corner-all") .find(".rh-portlet-header") //.addClass("ui-widget-header ui-corner-all"); .addClass("rh-portlet-graybg-vert ui-corner-all") .css({"margin":"0px", "padding":"0px 8px"}); // toggable jQuery(".rh-portlet-header.rh-toggable") .prepend('') .end(); jQuery(".rh-portlet-header.rh-toggable .ui-icon").click(function() { jQuery(this).toggleClass("ui-icon-triangle-1-s"); jQuery(this).parents(".rh-portlet:first").find(".rh-portlet-content").toggle(200); }); } function rhUpdateTooltips() { rh_tooltip("img","rh_tooltip"); rh_tooltip("span","rh_tooltip"); rh_tooltip("a","rh_tooltip"); rh_tooltip("div", "rh_tooltip"); //rh_tooltip("select", "rh_tooltip"); //rh_tooltip("input", "rh_tooltip"); } function rhShowWait(id, text) { rhHideWait(id); var elem = jQuery("#"+id); if (!elem.hasClass("rh_waitable")) { elem.addClass("rh_waitable"); } if (text) { elem.prepend("
    " + text + "
    "); } else { elem.prepend("
    "); } } function rhHideWait(id) { jQuery("#"+id).removeClass("rh_waitable"); jQuery("#"+id+" .rh_wait").remove(); jQuery("#"+id+" .rh_wait_text").remove(); } /* function rhInitHelpLinks() { jQuery(".rh-page-help").each(function() { var $link = jQuery(this); $link.click(function() { var $dialog = jQuery("
    ") .load("/cms/getDialog/?page=" + escape($link.attr("href"))) .dialog({ title: $link.attr("title"), width: 500, height: 300 }); return false; }); }); } */ function rhShowDialogCmsPage(title, page) { jQuery("#rh-dialog-modal").remove(); var url = "/cms/getDialog?page=" + escape(page); var dialogopts = { width: 600, height: 400, modal: true, //autoOpen: false, title: title }; jQuery("
    ").dialog(dialogopts); rhShowWait("rh-dialog-modal"); jQuery.get(url, function (data) { rhHideWait("rh-dialog-modal"); jQuery("#rh-dialog-modal").html(data); }); } /* file: rhflow/shop.js.php (mtime: 2010-08-02 08:01:05) */ function shoplistRemoveItem(item) { var url = "/shop/removeitm/item/" + item; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); rhShowWait("itm_" + item); jQuery.get(url, function (data) { jQuery("#itm_" + item).remove(); shoplistUpdatePrice(); }); } function shoplistUpdateItem(item, type) { var val = jQuery("#itm_" + type + "_" + item).val(); //jQuery.log("type "+type+", val: "+val + " jq("+"#itm_" + type + "_" + item); var url = "/shop/updateitm/item/" + item + "/" + type + "/" + val; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); rhShowWait("itm_" + item); jQuery.get(url, function (data) { jQuery("#itm_" + item).html(data); rhUpdateTooltips(); rhHideWait("itm_" + item); shoplistUpdatePrice(); }); } function shoplistUpdatePrice() { var url = "/shop/getpricesum"; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); rhShowWait("shoppricesum"); jQuery.get(url, function (data) { jQuery("#shoppricesum").html(data); rhInitPortlets(); rhHideWait("shoppricesum"); }); } function shopRemoveAllFotos() { chk = confirm("Wollen Sie wirklich alle Einträge in der Fotobox löschen?"); if (chk) { var url = "/shop/removeAll"; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery.get(url, function (data) { jQuery("#shopout").html(data); shoplistUpdatePrice(); }); } } /* file: rhflow/maps.js.php (mtime: 2010-08-02 08:01:04) */ function rhLoadGoogleMapAddress(strElementId, strAdresse) { if (typeof GBrowserIsCompatible != "undefined" && GBrowserIsCompatible() ) { var objMap = new GMap2(document.getElementById(strElementId)); if (objMap) { objMap.addControl(new GSmallMapControl()); objMap.enableScrollWheelZoom(); var objGeoCoder = new GClientGeocoder(); if (objGeoCoder) { objGeoCoder.getLatLng(strAdresse, function (_objLatLng) { objMap.setCenter(_objLatLng, 13); var objMarker = new GMarker(_objLatLng); if (objMarker) { objMap.addOverlay(objMarker); } } ); } } } } function rhLoadGoogleMapKml(strElementId, strKml, intCenterLat, intCenterLng) { if (typeof GBrowserIsCompatible != "undefined" && GBrowserIsCompatible() ) { var objMap = new GMap2(document.getElementById(strElementId)); if (objMap) { objMap.addControl(new GSmallMapControl()); objMap.enableScrollWheelZoom(); geoXml = new GGeoXml(strKml); objMap.setCenter(new GLatLng(intCenterLat,intCenterLng), 8); objMap.addOverlay(geoXml); } } } /* file: rhflow/foto.js.php (mtime: 2010-09-01 20:39:33) */ function rhMessageHide(id) { jQuery("#"+id).animate({ "height": "toggle", "opacity": "toggle" }, "slow"); } function rhMessageShow(id) { jQuery("#"+id).animate({ "height": "toggle", "opacity": "toggle" }, "slow"); } function shopInitFotoTeaser() { var box = jQuery("div.fotobox-teaser") var ul = jQuery("div.fotobox-teaser ul"); jQuery('li > div > div.data', ul).hide(); var itemsWidth = 50; jQuery("li > div", ul).each(function() { itemsWidth+= jQuery(this).outerWidth(); }); itemsWidth-= box.outerWidth(); jQuery("li > div", ul).each(function() { var data = jQuery("div.data", this); jQuery("div.pic", this).click(function() { if (data.css("display") == "none") { jQuery("div.data", ul).hide(200); jQuery("li > div", ul).removeClass("selected ui-corner-all"); data.parent().addClass("selected ui-corner-all"); data.show(200); } else { data.hide(200); } shopFotoTeaserUpdateSlider(); }); }); jQuery("div.fotobox-teaser-slider").slider({ min: 0, max: 100, slide: function (ev, ui) { ul.css("left", "-" + ui.value + "px"); }, stop: function (ev, ui) { ul.animate({"left" : "-" + ui.value + "px"}, 500); } }); shopFotoTeaserUpdateSlider(); TB_init(); } function shopFotoTeaserUpdateSlider() { var itemsWidth = 50; jQuery("div.fotobox-teaser ul li > div").each(function() { itemsWidth+= jQuery(this).outerWidth(); }); itemsWidth-= jQuery("div.fotobox-teaser").outerWidth(); jQuery("div.fotobox-teaser-slider").slider('option','max',itemsWidth); } function shopAddFoto(album, foto, id) { album = album.replace(/\//g,"---"); foto = foto.replace(/\s/g,"_"); var url = "/shop/add/album/" + (album != "" ? album : "unknown") + "/foto/" + foto; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); if (jQuery("#shopout").css("display") == "none") { jQuery("#shopout").show(200); } rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function shopAddFotoMinishowcase(inum) { var album = active_id.replace(/\//g,"---"); var foto = image_list[inum]["image"].replace(/\.jpg/i,""); var id = "thimg_" + inum; var url = "/shop/add/album/" + (album != "" ? album : "unknown") + "/foto/" + foto; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); if (jQuery("#shopout").css("display") == "none") { jQuery("#shopout").show(); } rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function shopAddEvent(event, album, foto, id, size) { event = event.replace(/\//g,"---"); album = album.replace(/\//g,"---"); foto = foto.replace(/\//g,"---"); size = size ? size : "dvd" var url = "/shop/add/event/" + event + "/album/" + album + "/foto/" + foto + "/size/" + size; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery.scrollTo("#shopout", 300); if (jQuery("#shopout").css("display") == "none") { jQuery("#shopout").show(); } jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function shopRemoveFoto(album, foto, id) { album = album.replace(/\//g,"---"); foto = foto.replace(/\s/g,"_"); var url = "/shop/remove/album/" + (album != "" ? album : "unknown") + "/foto/" + foto; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function shopRemoveFotoMinishowcase(inum) { var album = active_id.replace(/\//g,"---"); var foto = image_list[inum]["image"].replace(/\.jpg/i,""); var id = "thimg_" + inum; var url = "/shop/remove/album/" + (album != "" ? album : "unknown") + "/foto/" + foto; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function shopRemoveEvent(event, id) { var url = "/shop/remove/event/" + event; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function shopRemoveFotoFotobox(id) { var url = "/shop/remove/item/" + id; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#" + id).effect("transfer", { to: jQuery("#shop_items_count") }, 800); rhShowWait("shopout"); jQuery.get(url, function (data) { jQuery("#shopout").html(data); rhHideWait("shopout"); }); } function rhFotoLoadAlbum(album) { album = album.replace(/\//g,"---"); var url = "/foto/getAlbumNew/album/" + album; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery.scrollTo("#fotoalbumout", 300); jQuery("#fotoalbumout").slideUp(300, function() { jQuery(this).html("


    ").slideDown(); rhShowWait("fotoalbumout","Lade Album " + album + ""); jQuery("#articletext").hide(300); jQuery("#articletext_show").show(300); jQuery.get(url, function (data) { jQuery("#fotoalbumout").html(data); rhHideWait("fotoalbumout"); }); }); } function rhRatePicture(opts) { album = opts.album || ""; file = opts.file || ""; rate = opts.rate || 0; output = opts.output || ""; album = album.replace(/\//g,"---"); var url = "/rating/foto/album/" + album + "/file/" + file + "/rating/" + rate; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery.get(url, function (data) { if (output) { jQuery(output).html(data); } else { alert(data); } }); } function rhFotoInitRating(div, albumid) { var $div = div; var $albumid = albumid; jQuery($div).unbind("mouseover"); var $formid = jQuery($div).attr("formid"); var $rel = jQuery($div).attr("rel"); var $rating = jQuery($div).attr("rating"); var $html = "
    "; $html += "\n" + ""; $html += "\n" + ""; $html += "\n" + ""; $html += "\n" + ""; $html += "\n" + ""; $html += "\n" + ""; $html+= "
    "; jQuery($div).css("background","url(/app/images/layout/no.gif)"); jQuery($div).html($html); // enable rating form var $ratingform = jQuery("#rh-rating-" + $formid); jQuery(":radio", $ratingform).rating({ callback: function(value, link){ rhRatePicture({ album: $albumid, file: jQuery($div).attr("rel"), rate: value, output: "#rate-out-" + jQuery(this).attr("rel").replace(/\./,"-") }); }, required: false, }); jQuery(".rating-cancel",$ratingform).remove(); jQuery($ratingform).show(); } /* file: rhflow/newsletter.js.php (mtime: 2010-08-02 08:01:05) */ function rhNewsletterAdd() { rhShowWait("rh-newsletter-add-box"); jQuery("#rh-newsletter-add-form input[type=\"text\"]").each(function() { if(jQuery(this).val() == jQuery(this).data("defText")) { jQuery(this).val(""); } }); var emailval = jQuery("#rh-newsletter-add-form input[name=\"mail\"]").val(); var nameval = jQuery("#rh-newsletter-add-form input[name=\"name\"]").val(); var hsvval = jQuery("#rh-newsletter-add-form input[name=\"hsv\"]").val(); var url = "/newsletter/add"; url+= "?rhflow_session="+jQuery("#rhflow_session").html(); jQuery("#rh-newsletter-add-mail-result").hide(); jQuery.get( url, { email: emailval, name: nameval, hsv: hsvval }, function(data) { rhHideWait("rh-newsletter-add-box"); jQuery("#rh-newsletter-add-mail-result").html(data).show(200); if (data.match(/Vielen Dank/)) { jQuery("#rh-newsletter-add-form").hide(200); } } ) } /* file: rhflow/comment.js.php (mtime: 2010-08-02 08:01:04) */ function rhShowFotoCommentsDialog(album, file) { jQuery("#rh-dialog-modal").remove(); var url = "/comment/getFotoComments?album=" + escape(album) + "&file=" + escape(file); url+= "&rhflow_session="+jQuery("#rhflow_session").html(); var dialogopts = { width: 600, height: 500, modal: true, title: "Kommentare zu " + file }; jQuery("
    ").dialog(dialogopts); rhShowWait("rh-dialog-modal"); jQuery.get(url, function (data) { rhHideWait("rh-dialog-modal"); jQuery("#rh-dialog-modal").html(data); }); } function rhSubmitFotoCommentsDialog(info_out,form_cont) { rhShowWait(form_cont); var $url = "/comment/addFotoComment"; var $data = "album=" + escape(jQuery("input#album").val()) + "&file=" + escape(jQuery("input#file").val()) + "&comment=" + escape(jQuery("textarea#comment").val()) + "&name=" + escape(jQuery("input#name").val()) + "&email=" + escape(jQuery("input#email").val()) $data+= "&rhflow_session="+jQuery("#rhflow_session").html(); jQuery.ajax({ type: "POST", url: $url, data: $data, success: function(data) { if (data.match(/successfull/i)) { jQuery("#" + form_cont).remove(); jQuery("#" + info_out).html(data); } else { rhHideWait(form_cont); jQuery("#" + info_out).html(data); } } }); } /* file: rhflow/widget.js.php (mtime: 2010-08-02 20:05:06) */ var rhflow_styles_loaded = false; function rhflow_widget(pictures) { if (!rhflow_styles_loaded) { document.write(""); rhflow_styles_loaded = true; } var width = rhflow_config.width || 0; var height = rhflow_config.height || 0; var pic_width = rhflow_config.pic_width || 108; var pic_height = rhflow_config.pic_height || 108; var theme = rhflow_config.theme || {}; var features = rhflow_config.features || { scrollbar: true, rating: false, comments: false, tooltips: true }; var output = rhflow_config.output || "rhflow_output"; if (jQuery("#" + output).length == 0) { document.write("
    "); } if (theme.body) { if (theme.body.background) { jQuery("#" + output).css("background-color", theme.body.background); } if (theme.body.color) { jQuery("#" + output).css("color", theme.body.color); } if (theme.body.border) { jQuery("#" + output).css({ "border": "1px solid " + theme.body.border, "borderRadius": "5px", "-moz-border-radius": "5px", "-webkit-border-radius": "5px" }); } } if (height > 0) { jQuery("#" + output).css("height", height + "px"); } if (width > 0) { jQuery("#" + output).css("width", width + "px"); } if (features.scrollbar && height > 0) { jQuery("#" + output).css("overflow", "auto"); } rhShowWait(output, "lade Bilder..."); var requestdata = { 'config': { 'width': pic_width, 'height': pic_height }, 'pictures': pictures, 'serverurl': window.location.host }; jQuery.ajax({ dataType: 'jsonp', jsonp: 'jsonp_callback', data: requestdata, url: 'http://www.rh-flow.de/widget/getAlbumJson', success: rhflow_response }); } function rhflow_response(data) { var version = rhflow_config.version || 1; var pic_width = rhflow_config.pic_width || 108; var pic_height = rhflow_config.pic_height || 108; var theme = rhflow_config.theme || {}; var imgtype = (theme.picture && theme.picture.type ? theme.picture.type : "cutted"); var features = rhflow_config.features || { scrollbar: true, rating: false, comments: false, tooltips: true }; //var pictures = rhflow_config.pictures || {}; var output = rhflow_config.output || "rhflow_output"; var title = rhflow_config.title || ""; //console.log(data.pictures); rhHideWait(output); var out = jQuery("#" + output); jQuery(out).html(""); jQuery(out).append('
    ' + '
    ' + title + '
    ' + '
    powered by rh-flow.de
    ' + '

    ' + '
    '); var albums = []; for (var num in data.pictures) { var pic = data.pictures[num]; //console.log(pic); var html = ''; jQuery(out).append(html); } // jQuery(out).append('zum Album ' + pic.album + ' bei rh-flow.de'); jQuery(out).append('

    '); rhUpdateTooltips(); } /* file: superfish/hoverIntent.js (mtime: 2010-08-02 08:01:06) */ (function($){ /* hoverIntent by Brian Cherne */ $.fn.hoverIntent = function(f,g) { // default configuration options var cfg = { sensitivity: 7, interval: 100, timeout: 0 }; // override configuration options with user supplied object cfg = $.extend(cfg, g ? { over: f, out: g } : f ); // instantiate variables // cX, cY = current X and Y position of mouse, updated by mousemove event // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval var cX, cY, pX, pY; // A private function for getting mouse position var track = function(ev) { cX = ev.pageX; cY = ev.pageY; }; // A private function for comparing current and previous mouse position var compare = function(ev,ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); // compare mouse positions to see if they've crossed the threshold if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { $(ob).unbind("mousemove",track); // set hoverIntent state to true (so mouseOut can be called) ob.hoverIntent_s = 1; return cfg.over.apply(ob,[ev]); } else { // set previous coordinates for next time pX = cX; pY = cY; // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); } }; // A private function for delaying the mouseOut function var delay = function(ev,ob) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); ob.hoverIntent_s = 0; return cfg.out.apply(ob,[ev]); }; // A private function for handling mouse 'hovering' var handleHover = function(e) { // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget; while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } } if ( p == this ) { return false; } // copy objects to be passed into t (required for event object to be passed in IE) var ev = jQuery.extend({},e); var ob = this; // cancel hoverIntent timer if it exists if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } // else e.type == "onmouseover" if (e.type == "mouseover") { // set "previous" X and Y position based on initial entry point pX = ev.pageX; pY = ev.pageY; // update "current" X and Y position based on mousemove $(ob).bind("mousemove",track); // start polling interval (self-calling timeout) to compare mouse coordinates over time if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} // else e.type == "onmouseout" } else { // unbind expensive mousemove event $(ob).unbind("mousemove",track); // if hoverIntent state is true, then call the mouseOut function after the specified delay if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} } }; // bind the function to the two event listeners return this.mouseover(handleHover).mouseout(handleHover); }; })(jQuery); /* file: superfish/superfish.js (mtime: 2010-08-02 08:01:07) */ /* * Superfish v1.4.8 - jQuery menu widget * Copyright (c) 2008 Joel Birch * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt */ ;(function($){ $.fn.superfish = function(op){ var sf = $.fn.superfish, c = sf.c, $arrow = $([' »'].join('')), over = function(){ var $$ = $(this), menu = getMenu($$); clearTimeout(menu.sfTimer); $$.showSuperfishUl().siblings().hideSuperfishUl(); }, out = function(){ var $$ = $(this), menu = getMenu($$), o = sf.op; clearTimeout(menu.sfTimer); menu.sfTimer=setTimeout(function(){ o.retainPath=($.inArray($$[0],o.$path)>-1); $$.hideSuperfishUl(); if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);} },o.delay); }, getMenu = function($menu){ var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0]; sf.op = sf.o[menu.serial]; return menu; }, addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); }; return this.each(function() { var s = this.serial = sf.o.length; var o = $.extend({},sf.defaults,op); o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){ $(this).addClass([o.hoverClass,c.bcClass].join(' ')) .filter('li:has(ul)').removeClass(o.pathClass); }); sf.o[s] = sf.op = o; $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() { if (o.autoArrows) addArrow( $('>a:first-child',this) ); }) .not('.'+c.bcClass) .hideSuperfishUl(); var $a = $('a',this); $a.each(function(i){ var $li = $a.eq(i).parents('li'); $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);}); }); o.onInit.call(this); }).each(function() { var menuClasses = [c.menuClass]; if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass); $(this).addClass(menuClasses.join(' ')); }); }; var sf = $.fn.superfish; sf.o = []; sf.op = {}; sf.IE7fix = function(){ var o = sf.op; if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined) this.toggleClass(sf.c.shadowClass+'-off'); }; sf.c = { bcClass : 'sf-breadcrumb', menuClass : 'sf-js-enabled', anchorClass : 'sf-with-ul', arrowClass : 'sf-sub-indicator', shadowClass : 'sf-shadow' }; sf.defaults = { hoverClass : 'sfHover', pathClass : 'overideThisToUse', pathLevels : 1, delay : 800, animation : {opacity:'show'}, speed : 'normal', autoArrows : true, dropShadows : true, disableHI : false, // true disables hoverIntent detection onInit : function(){}, // callback functions onBeforeShow: function(){}, onShow : function(){}, onHide : function(){} }; $.fn.extend({ hideSuperfishUl : function(){ var o = sf.op, not = (o.retainPath===true) ? o.$path : ''; o.retainPath = false; var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass) .find('>ul').hide().css('visibility','hidden'); o.onHide.call($ul); return this; }, showSuperfishUl : function(){ var o = sf.op, sh = sf.c.shadowClass+'-off', $ul = this.addClass(o.hoverClass) .find('>ul:hidden').css('visibility','visible'); sf.IE7fix.call($ul); o.onBeforeShow.call($ul); $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); }); return this; } }); })(jQuery); /* file: jquery/jquery.MetaData.js (mtime: 2010-08-02 08:00:57) */ /* * Metadata - jQuery plugin for parsing metadata from elements * * Copyright (c) 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Revision: $Id$ * */ /** * Sets the type of metadata to use. Metadata is encoded in JSON, and each property * in the JSON will become a property of the element itself. * * There are three supported types of metadata storage: * * attr: Inside an attribute. The name parameter indicates *which* attribute. * * class: Inside the class attribute, wrapped in curly braces: { } * * elem: Inside a child element (e.g. a script tag). The * name parameter indicates *which* element. * * The metadata for an element is loaded the first time the element is accessed via jQuery. * * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements * matched by expr, then redefine the metadata type and run another $(expr) for other elements. * * @name $.metadata.setType * * @example

    This is a p

    * @before $.metadata.setType("class") * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" * @desc Reads metadata from the class attribute * * @example

    This is a p

    * @before $.metadata.setType("attr", "data") * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" * @desc Reads metadata from a "data" attribute * * @example

    This is a p

    * @before $.metadata.setType("elem", "script") * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label" * @desc Reads metadata from a nested script element * * @param String type The encoding type * @param String name The name of the attribute to be used to get metadata (optional) * @cat Plugins/Metadata * @descr Sets the type of encoding to be used when loading metadata for the first time * @type undefined * @see metadata() */ (function($) { $.extend({ metadata : { defaults : { type: 'class', name: 'metadata', cre: /({.*})/, single: 'metadata' }, setType: function( type, name ){ this.defaults.type = type; this.defaults.name = name; }, get: function( elem, opts ){ var settings = $.extend({},this.defaults,opts); // check for empty string in single property if ( !settings.single.length ) settings.single = 'metadata'; var data = $.data(elem, settings.single); // returned cached data if it already exists if ( data ) return data; data = "{}"; if ( settings.type == "class" ) { var m = settings.cre.exec( elem.className ); if ( m ) data = m[1]; } else if ( settings.type == "elem" ) { if( !elem.getElementsByTagName ) return; var e = elem.getElementsByTagName(settings.name); if ( e.length ) data = $.trim(e[0].innerHTML); } else if ( elem.getAttribute != undefined ) { var attr = elem.getAttribute( settings.name ); if ( attr ) data = attr; } if ( data.indexOf( '{' ) <0 ) data = "{" + data + "}"; data = eval("(" + data + ")"); $.data( elem, settings.single, data ); return data; } } }); /** * Returns the metadata object for the first member of the jQuery object. * * @name metadata * @descr Returns element's metadata object * @param Object opts An object contianing settings to override the defaults * @type jQuery * @cat Plugins/Metadata */ $.fn.metadata = function( opts ){ return $.metadata.get( this[0], opts ); }; })(jQuery); /* file: jquery/jquery.rating.pack.js (mtime: 2010-08-02 08:01:01) */ /* ### jQuery Star Rating Plugin v3.13 - 2009-03-26 ### * Home: http://www.fyneworks.com/jquery/star-rating/ * Code: http://code.google.com/p/jquery-star-rating-plugin/ * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html ### */ eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';5(29.1j)(7($){5($.1L.1J)1I{1t.1H("1K",J,H)}1M(e){};$.n.3=7(i){5(4.Q==0)k 4;5(A I[0]==\'1h\'){5(4.Q>1){8 j=I;k 4.W(7(){$.n.3.y($(4),j)})};$.n.3[I[0]].y(4,$.1T(I).1U(1)||[]);k 4};8 i=$.12({},$.n.3.1s,i||{});$.n.3.K++;4.2a(\'.9-3-1f\').o(\'9-3-1f\').W(7(){8 a,l=$(4);8 b=(4.23||\'21-3\').1v(/\\[|\\]/g,\'Z\').1v(/^\\Z+|\\Z+$/g,\'\');8 c=$(4.1X||1t.1W);8 d=c.6(\'3\');5(!d||d.18!=$.n.3.K)d={z:0,18:$.n.3.K};8 e=d[b];5(e)a=e.6(\'3\');5(e&&a)a.z++;x{a=$.12({},i||{},($.1b?l.1b():($.1S?l.6():s))||{},{z:0,F:[],v:[]});a.w=d.z++;e=$(\'<1R V="9-3-1Q"/>\');l.1P(e);e.o(\'3-15-T-17\');5(l.S(\'R\'))a.m=H;e.1c(a.E=$(\'

    \'+a.1d+\'

    \').1g(7(){$(4).3(\'O\');$(4).o(\'9-3-N\')}).1i(7(){$(4).3(\'u\');$(4).G(\'9-3-N\')}).1l(7(){$(4).3(\'r\')}).6(\'3\',a))};8 f=$(\'

    \'+4.1p+\'

    \');e.1c(f);5(4.11)f.S(\'11\',4.11);5(4.1r)f.o(4.1r);5(a.1F)a.t=2;5(A a.t==\'1u\'&&a.t>0){8 g=($.n.10?f.10():0)||a.1w;8 h=(a.z%a.t),Y=1y.1z(g/a.t);f.10(Y).1A(\'a\').1B({\'1C-1D\':\'-\'+(h*Y)+\'1E\'})};5(a.m)f.o(\'9-3-1o\');x f.o(\'9-3-1G\').1g(7(){$(4).3(\'1n\');$(4).3(\'D\')}).1i(7(){$(4).3(\'u\');$(4).3(\'C\')}).1l(7(){$(4).3(\'r\')});5(4.L)a.p=f;l.1q();l.1N(7(){$(4).3(\'r\')});f.6(\'3.l\',l.6(\'3.9\',f));a.F[a.F.Q]=f[0];a.v[a.v.Q]=l[0];a.q=d[b]=e;a.1O=c;l.6(\'3\',a);e.6(\'3\',a);f.6(\'3\',a);c.6(\'3\',d)});$(\'.3-15-T-17\').3(\'u\').G(\'3-15-T-17\');k 4};$.12($.n.3,{K:0,D:7(){8 a=4.6(\'3\');5(!a)k 4;5(!a.D)k 4;8 b=$(4).6(\'3.l\')||$(4.U==\'13\'?4:s);5(a.D)a.D.y(b[0],[b.M(),$(\'a\',b.6(\'3.9\'))[0]])},C:7(){8 a=4.6(\'3\');5(!a)k 4;5(!a.C)k 4;8 b=$(4).6(\'3.l\')||$(4.U==\'13\'?4:s);5(a.C)a.C.y(b[0],[b.M(),$(\'a\',b.6(\'3.9\'))[0]])},1n:7(){8 a=4.6(\'3\');5(!a)k 4;5(a.m)k;4.3(\'O\');4.1a().19().X(\'.q-\'+a.w).o(\'9-3-N\')},O:7(){8 a=4.6(\'3\');5(!a)k 4;5(a.m)k;a.q.1V().X(\'.q-\'+a.w).G(\'9-3-1k\').G(\'9-3-N\')},u:7(){8 a=4.6(\'3\');5(!a)k 4;4.3(\'O\');5(a.p){a.p.6(\'3.l\').S(\'L\',\'L\');a.p.1a().19().X(\'.q-\'+a.w).o(\'9-3-1k\')}x $(a.v).1m(\'L\');a.E[a.m||a.1Y?\'1q\':\'1Z\']();4.20()[a.m?\'o\':\'G\'](\'9-3-1o\')},r:7(a,b){8 c=4.6(\'3\');5(!c)k 4;5(c.m)k;c.p=s;5(A a!=\'B\'){5(A a==\'1u\')k $(c.F[a]).3(\'r\',B,b);5(A a==\'1h\')$.W(c.F,7(){5($(4).6(\'3.l\').M()==a)$(4).3(\'r\',B,b)})}x c.p=4[0].U==\'13\'?4.6(\'3.9\'):(4.22(\'.q-\'+c.w)?4:s);4.6(\'3\',c);4.3(\'u\');8 d=$(c.p?c.p.6(\'3.l\'):s);5((b||b==B)&&c.1e)c.1e.y(d[0],[d.M(),$(\'a\',c.p)[0]])},m:7(a,b){8 c=4.6(\'3\');5(!c)k 4;c.m=a||a==B?H:J;5(b)$(c.v).S("R","R");x $(c.v).1m("R");4.6(\'3\',c);4.3(\'u\')},1x:7(){4.3(\'m\',H,H)},24:7(){4.3(\'m\',J,J)}});$.n.3.1s={E:\'25 26\',1d:\'\',t:0,1w:16};$(7(){$(\'l[27=28].9\').3()})})(1j);',62,135,'|||rating|this|if|data|function|var|star|||||||||||return|input|readOnly|fn|addClass|current|rater|select|null|split|draw|inputs|serial|else|apply|count|typeof|undefined|blur|focus|cancel|stars|removeClass|true|arguments|false|calls|checked|val|hover|drain|div|length|disabled|attr|be|tagName|class|each|filter|spw|_|width|id|extend|INPUT|title|to||drawn|call|andSelf|prevAll|metadata|append|cancelValue|callback|applied|mouseover|string|mouseout|jQuery|on|click|removeAttr|fill|readonly|value|hide|className|options|document|number|replace|starWidth|disable|Math|floor|find|css|margin|left|px|half|live|execCommand|try|msie|BackgroundImageCache|browser|catch|change|context|before|control|span|meta|makeArray|slice|children|body|form|required|show|siblings|unnamed|is|name|enable|Cancel|Rating|type|radio|window|not'.split('|'),0,{})) /* file: colorpicker/colorpicker.js (mtime: 2010-08-02 07:59:12) */ /** * * Color picker * Author: Stefan Petre www.eyecon.ro * * Dual licensed under the MIT and GPL licenses * */ ;(function ($) { var ColorPicker = function () { var ids = {}, inAction, charMin = 65, visible, tpl = '
    ', defaults = { eventName: 'click', onShow: function () {}, onBeforeShow: function(){}, onHide: function () {}, onChange: function () {}, onSubmit: function () {}, color: 'ff0000', livePreview: true, flat: false }, fillRGBFields = function (hsb, cal) { var rgb = HSBToRGB(hsb); $(cal).data('colorpicker').fields .eq(1).val(rgb.r).end() .eq(2).val(rgb.g).end() .eq(3).val(rgb.b).end(); }, fillHSBFields = function (hsb, cal) { $(cal).data('colorpicker').fields .eq(4).val(hsb.h).end() .eq(5).val(hsb.s).end() .eq(6).val(hsb.b).end(); }, fillHexFields = function (hsb, cal) { $(cal).data('colorpicker').fields .eq(0).val(HSBToHex(hsb)).end(); }, setSelector = function (hsb, cal) { $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); $(cal).data('colorpicker').selectorIndic.css({ left: parseInt(150 * hsb.s/100, 10), top: parseInt(150 * (100-hsb.b)/100, 10) }); }, setHue = function (hsb, cal) { $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); }, setCurrentColor = function (hsb, cal) { $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); }, setNewColor = function (hsb, cal) { $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); }, keyDown = function (ev) { var pressedKey = ev.charCode || ev.keyCode || -1; if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { return false; } var cal = $(this).parent().parent(); if (cal.data('colorpicker').livePreview === true) { change.apply(this); } }, change = function (ev) { var cal = $(this).parent().parent(), col; if (this.parentNode.className.indexOf('_hex') > 0) { cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); } else if (this.parentNode.className.indexOf('_hsb') > 0) { cal.data('colorpicker').color = col = fixHSB({ h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) }); } else { cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) })); } if (ev) { fillRGBFields(col, cal.get(0)); fillHexFields(col, cal.get(0)); fillHSBFields(col, cal.get(0)); } setSelector(col, cal.get(0)); setHue(col, cal.get(0)); setNewColor(col, cal.get(0)); cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); }, blur = function (ev) { var cal = $(this).parent().parent(); cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); }, focus = function () { charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); $(this).parent().addClass('colorpicker_focus'); }, downIncrement = function (ev) { var field = $(this).parent().find('input').focus(); var current = { el: $(this).parent().addClass('colorpicker_slider'), max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), y: ev.pageY, field: field, val: parseInt(field.val(), 10), preview: $(this).parent().parent().data('colorpicker').livePreview }; $(document).bind('mouseup', current, upIncrement); $(document).bind('mousemove', current, moveIncrement); }, moveIncrement = function (ev) { ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); if (ev.data.preview) { change.apply(ev.data.field.get(0), [true]); } return false; }, upIncrement = function (ev) { change.apply(ev.data.field.get(0), [true]); ev.data.el.removeClass('colorpicker_slider').find('input').focus(); $(document).unbind('mouseup', upIncrement); $(document).unbind('mousemove', moveIncrement); return false; }, downHue = function (ev) { var current = { cal: $(this).parent(), y: $(this).offset().top }; current.preview = current.cal.data('colorpicker').livePreview; $(document).bind('mouseup', current, upHue); $(document).bind('mousemove', current, moveHue); }, moveHue = function (ev) { change.apply( ev.data.cal.data('colorpicker') .fields .eq(4) .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) .get(0), [ev.data.preview] ); return false; }, upHue = function (ev) { fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); $(document).unbind('mouseup', upHue); $(document).unbind('mousemove', moveHue); return false; }, downSelector = function (ev) { var current = { cal: $(this).parent(), pos: $(this).offset() }; current.preview = current.cal.data('colorpicker').livePreview; $(document).bind('mouseup', current, upSelector); $(document).bind('mousemove', current, moveSelector); }, moveSelector = function (ev) { change.apply( ev.data.cal.data('colorpicker') .fields .eq(6) .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) .end() .eq(5) .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) .get(0), [ev.data.preview] ); return false; }, upSelector = function (ev) { fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); $(document).unbind('mouseup', upSelector); $(document).unbind('mousemove', moveSelector); return false; }, enterSubmit = function (ev) { $(this).addClass('colorpicker_focus'); }, leaveSubmit = function (ev) { $(this).removeClass('colorpicker_focus'); }, clickSubmit = function (ev) { var cal = $(this).parent(); var col = cal.data('colorpicker').color; cal.data('colorpicker').origColor = col; setCurrentColor(col, cal.get(0)); cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); }, show = function (ev) { var cal = $('#' + $(this).data('colorpickerId')); cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); var pos = $(this).offset(); var viewPort = getViewport(); var top = pos.top + this.offsetHeight; var left = pos.left; if (top + 176 > viewPort.t + viewPort.h) { top -= this.offsetHeight + 176; } if (left + 356 > viewPort.l + viewPort.w) { left -= 356; } cal.css({left: left + 'px', top: top + 'px'}); if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { cal.show(); } $(document).bind('mousedown', {cal: cal}, hide); return false; }, hide = function (ev) { if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { ev.data.cal.hide(); } $(document).unbind('mousedown', hide); } }, isChildOf = function(parentEl, el, container) { if (parentEl == el) { return true; } if (parentEl.contains) { return parentEl.contains(el); } if ( parentEl.compareDocumentPosition ) { return !!(parentEl.compareDocumentPosition(el) & 16); } var prEl = el.parentNode; while(prEl && prEl != container) { if (prEl == parentEl) return true; prEl = prEl.parentNode; } return false; }, getViewport = function () { var m = document.compatMode == 'CSS1Compat'; return { l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) }; }, fixHSB = function (hsb) { return { h: Math.min(360, Math.max(0, hsb.h)), s: Math.min(100, Math.max(0, hsb.s)), b: Math.min(100, Math.max(0, hsb.b)) }; }, fixRGB = function (rgb) { return { r: Math.min(255, Math.max(0, rgb.r)), g: Math.min(255, Math.max(0, rgb.g)), b: Math.min(255, Math.max(0, rgb.b)) }; }, fixHex = function (hex) { var len = 6 - hex.length; if (len > 0) { var o = []; for (var i=0; i -1) ? hex.substring(1) : hex), 16); return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; }, HexToHSB = function (hex) { return RGBToHSB(HexToRGB(hex)); }, RGBToHSB = function (rgb) { var hsb = { h: 0, s: 0, b: 0 }; var min = Math.min(rgb.r, rgb.g, rgb.b); var max = Math.max(rgb.r, rgb.g, rgb.b); var delta = max - min; hsb.b = max; if (max != 0) { } hsb.s = max != 0 ? 255 * delta / max : 0; if (hsb.s != 0) { if (rgb.r == max) { hsb.h = (rgb.g - rgb.b) / delta; } else if (rgb.g == max) { hsb.h = 2 + (rgb.b - rgb.r) / delta; } else { hsb.h = 4 + (rgb.r - rgb.g) / delta; } } else { hsb.h = -1; } hsb.h *= 60; if (hsb.h < 0) { hsb.h += 360; } hsb.s *= 100/255; hsb.b *= 100/255; return hsb; }, HSBToRGB = function (hsb) { var rgb = {}; var h = Math.round(hsb.h); var s = Math.round(hsb.s*255/100); var v = Math.round(hsb.b*255/100); if(s == 0) { rgb.r = rgb.g = rgb.b = v; } else { var t1 = v; var t2 = (255-s)*v/255; var t3 = (t1-t2)*(h%60)/60; if(h==360) h = 0; if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} else {rgb.r=0; rgb.g=0; rgb.b=0} } return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; }, RGBToHex = function (rgb) { var hex = [ rgb.r.toString(16), rgb.g.toString(16), rgb.b.toString(16) ]; $.each(hex, function (nr, val) { if (val.length == 1) { hex[nr] = '0' + val; } }); return hex.join(''); }, HSBToHex = function (hsb) { return RGBToHex(HSBToRGB(hsb)); }, restoreOriginal = function () { var cal = $(this).parent(); var col = cal.data('colorpicker').origColor; cal.data('colorpicker').color = col; fillRGBFields(col, cal.get(0)); fillHexFields(col, cal.get(0)); fillHSBFields(col, cal.get(0)); setSelector(col, cal.get(0)); setHue(col, cal.get(0)); setNewColor(col, cal.get(0)); }; return { init: function (opt) { opt = $.extend({}, defaults, opt||{}); if (typeof opt.color == 'string') { opt.color = HexToHSB(opt.color); } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { opt.color = RGBToHSB(opt.color); } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { opt.color = fixHSB(opt.color); } else { return this; } return this.each(function () { if (!$(this).data('colorpickerId')) { var options = $.extend({}, opt); options.origColor = opt.color; var id = 'collorpicker_' + parseInt(Math.random() * 1000); $(this).data('colorpickerId', id); var cal = $(tpl).attr('id', id); if (options.flat) { cal.appendTo(this).show(); } else { cal.appendTo(document.body); } options.fields = cal .find('input') .bind('keyup', keyDown) .bind('change', change) .bind('blur', blur) .bind('focus', focus); cal .find('span').bind('mousedown', downIncrement).end() .find('>div.colorpicker_current_color').bind('click', restoreOriginal); options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); options.selectorIndic = options.selector.find('div div'); options.el = this; options.hue = cal.find('div.colorpicker_hue div'); cal.find('div.colorpicker_hue').bind('mousedown', downHue); options.newColor = cal.find('div.colorpicker_new_color'); options.currentColor = cal.find('div.colorpicker_current_color'); cal.data('colorpicker', options); cal.find('div.colorpicker_submit') .bind('mouseenter', enterSubmit) .bind('mouseleave', leaveSubmit) .bind('click', clickSubmit); fillRGBFields(options.color, cal.get(0)); fillHSBFields(options.color, cal.get(0)); fillHexFields(options.color, cal.get(0)); setHue(options.color, cal.get(0)); setSelector(options.color, cal.get(0)); setCurrentColor(options.color, cal.get(0)); setNewColor(options.color, cal.get(0)); if (options.flat) { cal.css({ position: 'relative', display: 'block' }); } else { $(this).bind(options.eventName, show); } } }); }, showPicker: function() { return this.each( function () { if ($(this).data('colorpickerId')) { show.apply(this); } }); }, hidePicker: function() { return this.each( function () { if ($(this).data('colorpickerId')) { $('#' + $(this).data('colorpickerId')).hide(); } }); }, setColor: function(col) { if (typeof col == 'string') { col = HexToHSB(col); } else if (col.r != undefined && col.g != undefined && col.b != undefined) { col = RGBToHSB(col); } else if (col.h != undefined && col.s != undefined && col.b != undefined) { col = fixHSB(col); } else { return this; } return this.each(function(){ if ($(this).data('colorpickerId')) { var cal = $('#' + $(this).data('colorpickerId')); cal.data('colorpicker').color = col; cal.data('colorpicker').origColor = col; fillRGBFields(col, cal.get(0)); fillHSBFields(col, cal.get(0)); fillHexFields(col, cal.get(0)); setHue(col, cal.get(0)); setSelector(col, cal.get(0)); setCurrentColor(col, cal.get(0)); setNewColor(col, cal.get(0)); } }); } }; }(); $.fn.extend({ ColorPicker: ColorPicker.init, ColorPickerHide: ColorPicker.hidePicker, ColorPickerShow: ColorPicker.showPicker, ColorPickerSetColor: ColorPicker.setColor }); })(jQuery); /* file: colorpicker/eye.js (mtime: 2010-08-02 07:59:12) */ /** * * Zoomimage * Author: Stefan Petre www.eyecon.ro * */ ;(function($){ var EYE = window.EYE = function() { var _registered = { init: [] }; return { init: function() { $.each(_registered.init, function(nr, fn){ fn.call(); }); }, extend: function(prop) { for (var i in prop) { if (prop[i] != undefined) { this[i] = prop[i]; } } }, register: function(fn, type) { if (!_registered[type]) { _registered[type] = []; } _registered[type].push(fn); } }; }(); $(EYE.init); })(jQuery); /* file: colorpicker/layout.js (mtime: 2010-08-02 07:59:13) */ ;(function($){ var initLayout = function() { var hash = window.location.hash.replace('#', ''); var currentTab = $('ul.navigationTabs a') .bind('click', showTab) .filter('a[rel=' + hash + ']'); if (currentTab.size() == 0) { currentTab = $('ul.navigationTabs a:first'); } showTab.apply(currentTab.get(0)); $('#colorpickerHolder').ColorPicker({flat: true}); $('#colorpickerHolder2').ColorPicker({ flat: true, color: '#00ff00', onSubmit: function(hsb, hex, rgb) { $('#colorSelector2 div').css('backgroundColor', '#' + hex); } }); $('#colorpickerHolder2>div').css('position', 'absolute'); var widt = false; $('#colorSelector2').bind('click', function() { $('#colorpickerHolder2').stop().animate({height: widt ? 0 : 173}, 500); widt = !widt; }); $('#colorpickerField1, #colorpickerField2, #colorpickerField3').ColorPicker({ onSubmit: function(hsb, hex, rgb, el) { $(el).val(hex); $(el).ColorPickerHide(); }, onBeforeShow: function () { $(this).ColorPickerSetColor(this.value); } }) .bind('keyup', function(){ $(this).ColorPickerSetColor(this.value); }); $('#colorSelector').ColorPicker({ color: '#0000ff', onShow: function (colpkr) { $(colpkr).fadeIn(500); return false; }, onHide: function (colpkr) { $(colpkr).fadeOut(500); return false; }, onChange: function (hsb, hex, rgb) { $('#colorSelector div').css('backgroundColor', '#' + hex); } }); }; var showTab = function(e) { var tabIndex = $('ul.navigationTabs a') .removeClass('active') .index(this); $(this) .addClass('active') .blur(); $('div.tab') .hide() .eq(tabIndex) .show(); }; EYE.register(initLayout, 'init'); })(jQuery); /* file: colorpicker/utils.js (mtime: 2010-08-02 07:59:13) */ /** * * Utilities * Author: Stefan Petre www.eyecon.ro * */ ;(function($) { EYE.extend({ getPosition : function(e, forceIt) { var x = 0; var y = 0; var es = e.style; var restoreStyles = false; if (forceIt && jQuery.curCSS(e,'display') == 'none') { var oldVisibility = es.visibility; var oldPosition = es.position; restoreStyles = true; es.visibility = 'hidden'; es.display = 'block'; es.position = 'absolute'; } var el = e; if (el.getBoundingClientRect) { // IE var box = el.getBoundingClientRect(); x = box.left + Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) - 2; y = box.top + Math.max(document.documentElement.scrollTop, document.body.scrollTop) - 2; } else { x = el.offsetLeft; y = el.offsetTop; el = el.offsetParent; if (e != el) { while (el) { x += el.offsetLeft; y += el.offsetTop; el = el.offsetParent; } } if (jQuery.browser.safari && jQuery.curCSS(e, 'position') == 'absolute' ) { x -= document.body.offsetLeft; y -= document.body.offsetTop; } el = e.parentNode; while (el && el.tagName.toUpperCase() != 'BODY' && el.tagName.toUpperCase() != 'HTML') { if (jQuery.curCSS(el, 'display') != 'inline') { x -= el.scrollLeft; y -= el.scrollTop; } el = el.parentNode; } } if (restoreStyles == true) { es.display = 'none'; es.position = oldPosition; es.visibility = oldVisibility; } return {x:x, y:y}; }, getSize : function(e) { var w = parseInt(jQuery.curCSS(e,'width'), 10); var h = parseInt(jQuery.curCSS(e,'height'), 10); var wb = 0; var hb = 0; if (jQuery.curCSS(e, 'display') != 'none') { wb = e.offsetWidth; hb = e.offsetHeight; } else { var es = e.style; var oldVisibility = es.visibility; var oldPosition = es.position; es.visibility = 'hidden'; es.display = 'block'; es.position = 'absolute'; wb = e.offsetWidth; hb = e.offsetHeight; es.display = 'none'; es.position = oldPosition; es.visibility = oldVisibility; } return {w:w, h:h, wb:wb, hb:hb}; }, getClient : function(e) { var h, w; if (e) { w = e.clientWidth; h = e.clientHeight; } else { var de = document.documentElement; w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; } return {w:w,h:h}; }, getScroll : function (e) { var t=0, l=0, w=0, h=0, iw=0, ih=0; if (e && e.nodeName.toLowerCase() != 'body') { t = e.scrollTop; l = e.scrollLeft; w = e.scrollWidth; h = e.scrollHeight; } else { if (document.documentElement) { t = document.documentElement.scrollTop; l = document.documentElement.scrollLeft; w = document.documentElement.scrollWidth; h = document.documentElement.scrollHeight; } else if (document.body) { t = document.body.scrollTop; l = document.body.scrollLeft; w = document.body.scrollWidth; h = document.body.scrollHeight; } if (typeof pageYOffset != 'undefined') { t = pageYOffset; l = pageXOffset; } iw = self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth||0; ih = self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight||0; } return { t: t, l: l, w: w, h: h, iw: iw, ih: ih }; }, getMargins : function(e, toInteger) { var t = jQuery.curCSS(e,'marginTop') || ''; var r = jQuery.curCSS(e,'marginRight') || ''; var b = jQuery.curCSS(e,'marginBottom') || ''; var l = jQuery.curCSS(e,'marginLeft') || ''; if (toInteger) return { t: parseInt(t, 10)||0, r: parseInt(r, 10)||0, b: parseInt(b, 10)||0, l: parseInt(l, 10) }; else return {t: t, r: r, b: b, l: l}; }, getPadding : function(e, toInteger) { var t = jQuery.curCSS(e,'paddingTop') || ''; var r = jQuery.curCSS(e,'paddingRight') || ''; var b = jQuery.curCSS(e,'paddingBottom') || ''; var l = jQuery.curCSS(e,'paddingLeft') || ''; if (toInteger) return { t: parseInt(t, 10)||0, r: parseInt(r, 10)||0, b: parseInt(b, 10)||0, l: parseInt(l, 10) }; else return {t: t, r: r, b: b, l: l}; }, getBorder : function(e, toInteger) { var t = jQuery.curCSS(e,'borderTopWidth') || ''; var r = jQuery.curCSS(e,'borderRightWidth') || ''; var b = jQuery.curCSS(e,'borderBottomWidth') || ''; var l = jQuery.curCSS(e,'borderLeftWidth') || ''; if (toInteger) return { t: parseInt(t, 10)||0, r: parseInt(r, 10)||0, b: parseInt(b, 10)||0, l: parseInt(l, 10)||0 }; else return {t: t, r: r, b: b, l: l}; }, traverseDOM : function(nodeEl, func) { func(nodeEl); nodeEl = nodeEl.firstChild; while(nodeEl){ EYE.traverseDOM(nodeEl, func); nodeEl = nodeEl.nextSibling; } }, getInnerWidth : function(el, scroll) { var offsetW = el.offsetWidth; return scroll ? Math.max(el.scrollWidth,offsetW) - offsetW + el.clientWidth:el.clientWidth; }, getInnerHeight : function(el, scroll) { var offsetH = el.offsetHeight; return scroll ? Math.max(el.scrollHeight,offsetH) - offsetH + el.clientHeight:el.clientHeight; }, getExtraWidth : function(el) { if($.boxModel) return (parseInt($.curCSS(el, 'paddingLeft'))||0) + (parseInt($.curCSS(el, 'paddingRight'))||0) + (parseInt($.curCSS(el, 'borderLeftWidth'))||0) + (parseInt($.curCSS(el, 'borderRightWidth'))||0); return 0; }, getExtraHeight : function(el) { if($.boxModel) return (parseInt($.curCSS(el, 'paddingTop'))||0) + (parseInt($.curCSS(el, 'paddingBottom'))||0) + (parseInt($.curCSS(el, 'borderTopWidth'))||0) + (parseInt($.curCSS(el, 'borderBottomWidth'))||0); return 0; }, isChildOf: function(parentEl, el, container) { if (parentEl == el) { return true; } if (!el || !el.nodeType || el.nodeType != 1) { return false; } if (parentEl.contains && !$.browser.safari) { return parentEl.contains(el); } if ( parentEl.compareDocumentPosition ) { return !!(parentEl.compareDocumentPosition(el) & 16); } var prEl = el.parentNode; while(prEl && prEl != container) { if (prEl == parentEl) return true; prEl = prEl.parentNode; } return false; }, centerEl : function(el, axis) { var clientScroll = EYE.getScroll(); var size = EYE.getSize(el); if (!axis || axis == 'vertically') $(el).css( { top: clientScroll.t + ((Math.min(clientScroll.h,clientScroll.ih) - size.hb)/2) + 'px' } ); if (!axis || axis == 'horizontally') $(el).css( { left: clientScroll.l + ((Math.min(clientScroll.w,clientScroll.iw) - size.wb)/2) + 'px' } ); } }); if (!$.easing.easeout) { $.easing.easeout = function(p, n, firstNum, delta, duration) { return -delta * ((n=n/duration-1)*n*n*n - 1) + firstNum; }; } })(jQuery);