InghamsUtils = {
    removeImages:function (imageset) {
        jQuery(imageset).children().each(function() {
            var imageURL = jQuery(this).css('background-image').replace("url(","").replace(")","");
            var self = this;
            var request = jQuery.ajax({ type: "HEAD", url: imageURL, 
                success: function () {
                    if( request.getResponseHeader("Content-Length") == 0){jQuery(self).remove();}
                }
            });   
        }).cycle({prev: '#imgprev',next: '#imgnext' });
    },

    sanitiseName:function(name) {
        var patternA = /[ÀÁÂÃÄÅàáâãäå]/g;
        var patternC = /[Çç]/g;
        var patternD = /[Ðð]/g;
        var patternE = /[ÈÉÊËèéêë]/g;
        var patternI = /[ÌÍÎÏìíîï]/g;
        var patternN = /[Ññ]/g;
        var patternO = /[ÒÓÔÕÖØòóôõöø]/g;
        var patternS = /[ŠŠšš]/g;
        var patternU = /[ÙÚÛÜùúûü]/g;
        var patternY = /[ŸÝŸýÿ]/g;
        var patternZ = /[Žž]/g;
        var patternAE = /[Ææ]/g;
        var patternSS = /[ß]/g;
        //var patternAmp = /&/g;
        var patternRemove = /[‘'`‚„’“”¡¨­´¿Þþ‘’‚“”„!#%()*+,.:;€¯Þþ?@]/g;
        var patternReplace = /[/ &]/g;
        var patternHyphen = /[–—]/g;
        var patternTruncate = /-{1,}/g;
        var santisedName = name.toLowerCase().replace(/^\s+|\s+$/g, '').replace(patternRemove,'').replace(patternReplace,'-').replace(patternHyphen,'-').replace(patternTruncate,'-').replace(patternA,'a').replace(patternC,'c').replace(patternD,'d').replace(patternE,'e').replace(patternI,'i').replace(patternN,'n').replace(patternO,'o').replace(patternS,'s').replace(patternU,'u').replace(patternY,'y').replace(patternZ,'z').replace(patternAE,'ae').replace(patternSS,'ss');
        return santisedName;
    },

    toggleWebDescription:function(){
        var self = jQuery(this);
        self.find('a.truncate_more_link').click(function(){at
            var description = jQuery(this);      
            self.find('.truncate_more, .truncate_less').toggle();   
            if (description.text() == "View more") { 
                description.text("View less");
            } else {
                description.text("View more");
            }
            return false;
        });
    },

    gotoPage:function(selectList, url) {

    if (typeof (selectList) === "string") {selectList = jQuery(selectList);}
    if (typeof (selectList) == "undefined" || selectList.length == 0 ) {return false;}
    if (typeof (url) == "undefined"  ) {var url = "";}
    var self =  this;
 
    selectList.change( function(){

        var option = jQuery(this).find(':selected');
        var itemId = option.val();
        var title = self.sanitiseName (option.text());
        var currentPath = jQuery("#currentPath").val() || location.pathname;
        var contextPath = currentPath.indexOf('/vyre4') !=0 ? "" : "/vyre4";
        var rootPath = currentPath.replace("/vyre4","").split("/")[1] || "";
        if (rootPath != "" && itemId !="") {
            var newLocation = contextPath ;
            if (url.indexOf("/") == 0) { // url is absolute path
                newLocation += url;
            } else { //url is relative path
                newLocation += "/"+rootPath+"/"+url+"/";
            }
            newLocation += "item"+itemId+"/"+title+"/";
            location.href = newLocation ;
        }
    });

    },

    whyeff:function (){
        jQuery(".picture").each(function() {
            var classInfo = jQuery(this).attr("class");
            var description = "";

            if (classInfo== "picture") { 
                /*ignore this thumbnail*/
            } else if (classInfo.indexOf("no-linked-image") != -1) { 
                description = "there is no linked images for this thumbnail";
            } else if (classInfo.indexOf("no-productimage") != -1) { 
                description = "the thumbnail does not belong to the current product";
            } else if (classInfo.indexOf("no-image") != -1) { 
                description = "the derived file for this thumbnail has not been generated...yet";
            }

            if (description !="") { jQuery(this).find('A').attr("title",description);}
        });
    }
};

if (typeof VYRE == "undefined"){
var VYRE = {};
}

if (typeof (VYRE.Utils) == "undefined"){
VYRE.Utils = {};
}


VYRE.Utils.Cookie = {
   create: function(name,value,days){
     if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
     }
     else var expires = "";
     document.cookie = name+"="+value+expires+"; path=/";
   },
   read: function(name) {
      var nameEQ = name + "=";
      var ca = document.cookie.split(';');
      for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
      }
      return null;
   },
   erase: function(name) {
     createCookie(name,"",-1);
   }
};




VYRE.CookieManager = function(setting) {
    this.cookieName = setting.name || "";
    this.days = setting.days || 30;
    this.cookieObject = {};
    this.itemPath=setting.itemPath|| "";
    this.itemName=setting.itemName || jQuery('HEAD title:first').text();
        this.itemName = this.itemName.replace(/(\’|\"|\')/g,'');

        var thumbnail = jQuery('#hiddenThumbnail div.picture').attr('style');
        if(thumbnail != null && thumbnail != 'undefined'){
           thumbnail = thumbnail.substring(thumbnail.indexOf('(')+1,thumbnail.indexOf(')'));
        }else{thumbnail = ""}
        this.itemThumbnail= thumbnail;
}

VYRE.CookieManager.prototype = {
        
    retrieveCookieSettings: function(name) {
        this.readCookie();
        
        return this.cookieObject[name] ? this.cookieObject[name] : false;
    },
    
    readCookie: function() {
        if ( VYRE.Utils.Cookie.read(this.cookieName) != null) {
          this.cookieObject = JSONstring.toObject( VYRE.Utils.Cookie.read(this.cookieName) );
        }
    },
    
    saveCookie: function(name, object) {
        this.cookieObject[name] = object;
        VYRE.Utils.Cookie.create( this.cookieName, JSONstring.make(this.cookieObject),this.days );
    },
    
        
    init:function() {
        if (this.itemPath== "") {return;}
                
        var cookie = this.retrieveCookieSettings(this.cookieName);
        if (cookie == false) { cookie = [];}
        var newLoaction = {itemPath:this.itemPath, itemName: this.itemName, location:location.pathname,itemThumbnail:this.itemThumbnail};
        for (var i=0;i<cookie.length;i++){
            if (cookie[i].itemPath == this.itemPath){
                cookie.splice(i,1);
                break;
            }
        }

        if (cookie.length >= 10) {
            cookie.pop();
        }
        cookie.push(newLoaction);   
        this.saveCookie(this.cookieName,cookie);
    }
    

};



/* SuperSleight jQuery Plugin Version */
jQuery.fn.supersleight = function(settings) {
    settings = jQuery.extend({
        imgs: true,
        backgrounds: true,
        shim: 'x.gif',
        apply_positioning: true
    }, settings);
    
    return this.each(function(){
        if (jQuery.browser.msie && parseInt(jQuery.browser.version) < 7 && parseInt(jQuery.browser.version) > 4) {
            jQuery(this).find('*').each(function(i,obj) {
                var self = jQuery(obj);
                // background pngs
                if (settings.backgrounds && self.css('background-image').match(/\.png/i) !== null) {
                    var bg = self.css('background-image');
                    var src = bg.substring(5,bg.length-2);
                    var mode = (self.css('background-repeat') == 'no-repeat' ? 'crop' : 'scale');
                    var styles = {
                        'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')",
                        'background-image': 'url('+settings.shim+')'
                    };
                    self.css(styles);
                };
                // image elements
                if (settings.imgs && self.is('img[src$=png]')){
                    var styles = {
                        'width': self.width() + 'px',
                        'height': self.height() + 'px',
                        'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + self.attr('src') + "', sizingMethod='scale')"
                    };
                    self.css(styles).attr('src', settings.shim);
                };
                // apply position to 'active' elements
                if (settings.applyPositioning && self.is('a, input') && self.css('position') === ''){
                    self.css('position', 'relative');
                };
            });
        };
    });
};
/**
 *  jquery.popupt IMGHover 1.1rc
 *  (c) 2008 Semooh (http://semooh.jp/)
 *
 *  Dual licensed under the MIT (MIT-LICENSE.txt)
 *  and GPL (GPL-LICENSE.txt) licenses.
 *
 **/
(function($){
    $.fn.extend({
        imghover: function(opt){
            return this.each(function() {
        opt = $.extend({
            prefix: '',
            suffix: '_o',
            src: '',
            btnOnly: true,
            fade: false,
            fadeSpeed: 500
          }, opt || {});

        var node = $(this);
                if(!node.is('img')&&!node.is(':image')){
          var sel = 'img,:image';
          if (opt.btnOnly) sel = 'a '+sel;
          node.find(sel).imghover(opt);
          return;
        }

        var orgImg = node.attr('src');

        var hoverImg;
        if(opt.src){
          hoverImg = opt.src;
        }else{
          hoverImg = orgImg;
          if(opt.prefix){
            var pos = hoverImg.lastIndexOf('/');
            if(pos>0){
              hoverImg = hoverImg.substr(0,pos-1)+opt.prefix+hoverImg.substr(pos-1);
            }else{
              hoverImg = opt.prefix+hoverImg;
            }
          }
          if(opt.suffix){
            var pos = hoverImg.lastIndexOf('.');
            if(pos>0){
              hoverImg = hoverImg.substr(0,pos)+opt.suffix+hoverImg.substr(pos);
            }else{
              hoverImg = hoverImg+opt.suffix;
            }
          }
        }

        if(opt.fade){
          var offset = node.offset();
          var hover = node.clone(true);
          hover.attr('src', hoverImg);
          hover.css({
            position: 'absolute',
            left: offset.left,
            top: offset.top,
            zIndex: 1000
          }).hide().insertAfter(node);
          node.mouseover(
            function(){
              var offset=node.offset();
              hover.css({left: offset.left, top: offset.top});
              hover.fadeIn(opt.fadeSpeed);
              node.fadeOut(opt.fadeSpeed,function(){node.show()});
            }
          );
          hover.mouseout(
            function(){
              node.fadeIn(opt.fadeSpeed);
              hover.fadeOut(opt.fadeSpeed);
            }
          );
        }else{
          node.hover(
            function(){node.attr('src', hoverImg)},
            function(){node.attr('src', orgImg)}
          );
        }
            });
        }
    });
})(jQuery);

/*
 * UPDATED: 25.09.08
 *
 * jqTransform
 * by mathieu vilaplana mvilaplana@dfc-e.com
 * Designer ghyslain armand garmand@dfc-e.com
 *
 *
 * Version 1.0
 *
 ******************************************** */
 
(function($){
    var defaultOptions = {preloadImg:true};
    var jqTransformImgPreloaded = false;

    var jqTransformPreloadHoverFocusImg = function(strImgUrl) {
        //guillemets to remove for ie
        strImgUrl = strImgUrl.replace(/^url\((.*)\)/,'$1').replace(/^\"(.*)\"$/,'$1');
        var imgHover = new Image();
        imgHover.src = strImgUrl.replace(/\.([a-zA-Z]*)$/,'-hover.$1');
        var imgFocus = new Image();
        imgFocus.src = strImgUrl.replace(/\.([a-zA-Z]*)$/,'-focus.$1');             
    };

    
    /***************************
      Labels
    ***************************/
    var jqTransformGetLabel = function(objfield){
        var selfForm = $(objfield.get(0).form);
        var oLabel = objfield.next();
        if(!oLabel.is('label')) {
            oLabel = objfield.prev();
            if(oLabel.is('label')){
                var inputname = objfield.attr('id');
                if(inputname){
                    oLabel = selfForm.find('label[for="'+inputname+'"]');
                } 
            }
        }
        if(oLabel.is('label')){return oLabel.css('cursor','pointer');}
        return false;
    };
    
    /* Hide all open selects */
    var jqTransformHideSelect = function(oTarget){
        var ulVisible = $('.jqTransformSelectWrapper ul:visible');
        ulVisible.each(function(){
            var $select = $(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);
            //do not hide if clicked on the label object associated to the select
            if( !(oTarget && $select.oLabel && $select.oLabel.get(0) == oTarget.get(0)) ){$(this).hide();}
        });
    };
    /* Check for an external click */
    var jqTransformCheckExternalClick = function(event) {
        if ($(event.target).parents('.jqTransformSelectWrapper').length === 0) { jqTransformHideSelect($(event.target)); }
    };

    /* Apply document listener */
    var jqTransformAddDocumentListener = function (){
        $(document).mousedown(jqTransformCheckExternalClick);
    };  
            
    /* Add a new handler for the reset action */
    var jqTransformReset = function(f){
        var sel;
        $('.jqTransformWWrapper select', f).each(function(){sel = (this.selectedIndex<0) ? 0 : this.selectedIndex; $('ul', $(this).parent()).each(function(){$('a:eq('+ sel +')', this).click();});});
        $('a.jqTransformCheckbox, a.jqTransformRadio', f).removeClass('jqTransformChecked');
        $('input:checkbox, input:radio', f).each(function(){if(this.checked){$('a', $(this).parent()).addClass('jqTransformChecked');}});
    };

    /***************************
      Buttons
     ***************************/
    $.fn.jqTransInputButton = function(){
        return this.each(function(){
            /*var $button = $(this);*/
            $(this).replaceWith('<button id="'+ this.id +'" name="'+ this.name +'" type="'+ this.type +'" class="'+ this.className +' jqTransformButton"><span><span>'+ $(this).attr('value') +'</span></span>');
            /*pvc added */
            $('.jqTransformButton')
                .focus(function(){$(this).addClass("jqTransformButton_focus");})
                .blur(function(){$(this).removeClass("jqTransformButton_focus");})
                .hover(function(){$(this).addClass("jqTransformButton_hover");},function(){$(this).removeClass("jqTransformButton_hover");})
            ;
        });
    };
    
    /***************************
      Text Fields 
     ***************************/
    $.fn.jqTransInputText = function(){
        return this.each(function(){
            var safari = $.browser.safari; /* We need to check for safari to fix the input:text problem */
            var $input = $(this);
    
            if($input.hasClass('jqtransformdone') || !$input.is('input')) {return;}
            $input.addClass('jqtransformdone');
    
            var oLabel = jqTransformGetLabel($(this));
            oLabel && oLabel.bind('click',function(){$input.focus();});
    
            var inputSize=$input.width();
            if($input.attr('size')){
                inputSize = $input.attr('size')*10;
                $input.css('width',inputSize);
            }
            
            $input.addClass("jqTransformInput").wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');
            var $wrapper = $input.parent().parent().parent();
            $wrapper.css("width", inputSize+10);
            $input
                /* .focus(function(){$wrapper.addClass("jqTransformInputWrapper_focus");}) */
                /* .blur(function(){$wrapper.removeClass("jqTransformInputWrapper_focus");}) */
                /* .hover(function(){$wrapper.addClass("jqTransformInputWrapper_hover");},function(){$wrapper.removeClass("jqTransformInputWrapper_hover");}) */
            ;
    
            /* If this is safari we need to add an extra class */
            safari && $wrapper.addClass('jqTransformSafari');
            safari && $input.css('width',$wrapper.width()/*+16*/);
            this.wrapper = $wrapper;
            
        });
    };
    
    /***************************
      Check Boxes 
     ***************************/   
    $.fn.jqTransCheckBox = function(){
        return this.each(function(){
            var $input = $(this);
            var inputSelf = this;
            
            if($input.hasClass('jqTransformHidden')) {return;}
    
            var oLabel=jqTransformGetLabel($input);
            $input.addClass('jqTransformHidden').wrap('<span class="jqTransformCheckboxWrapper"></span>');
            var $wrapper = $input.parent();
            var aLink = $('<a href="#" class="jqTransformCheckbox"></a>');
            $wrapper.prepend(aLink);
            // Click Handler
            aLink.click(function(){
                    var $a = $(this);
                    if (inputSelf.checked===true){
                        inputSelf.checked = false;
                        $a.removeClass('jqTransformChecked');
                    }
                    else {
                        inputSelf.checked = true;
                        $a.addClass('jqTransformChecked');
                    }
                    
                    inputSelf.onchange && inputSelf.onchange();
                    return false;
            });
            oLabel && oLabel.click(function(){aLink.trigger('click');});
            // set the default state
            this.checked && aLink.addClass('jqTransformChecked');       
        });
    };
    /***************************
      Radio Buttons 
     ***************************/   
    $.fn.jqTransRadio = function(){
        return this.each(function(){
            var $input = $(this);
            var inputSelf = this;
                
            if($input.hasClass('jqTransformHidden')) {return;}
    
            oLabel = jqTransformGetLabel($input);
            $input.addClass('jqTransformHidden').wrap('<span class="jqTransformRadioWrapper"></span>');
            var $wrapper = $input.parent();
            var aLink = $('<a href="#" class="jqTransformRadio" rel="'+ this.name +'"></a>');
            $wrapper.prepend(aLink);
            // Click Handler
            aLink
                .each(function(){
                    this.radioElem = inputSelf;
                    $(this).click(function(){
                        var $a = $(this).addClass('jqTransformChecked');
                        inputSelf.checked = true;

                        // uncheck all others of same name
                        $('a.jqTransformRadio[rel="'+ $a.attr('rel') +'"]',inputSelf.form).not($a).each(function(){
                            $(this).removeClass('jqTransformChecked');
                            this.radioElem.checked = false;
                        });
                        
                        inputSelf.onchange && inputSelf.onchange();
                        return false;                   
                    });
                });
            oLabel && oLabel.click(function(){aLink.trigger('click');});
            // set the default state
            inputSelf.checked && aLink.addClass('jqTransformChecked');
        });
    };
    
    /***************************
      TextArea 
     ***************************/   
    $.fn.jqTransTextarea = function(){
        return this.each(function(){
            var textarea = $(this);
    
            if(textarea.hasClass('jqtransformdone')) {return;}
            textarea.addClass('jqtransformdone');
    
            oLabel = jqTransformGetLabel(textarea);
            oLabel && oLabel.click(function(){textarea.focus();});
            
            var strTable = '<table cellspacing="0" cellpadding="0" border="0" class="jqTransformTextarea">';
            strTable +='<tr><td id="jqTransformTextarea-tl">&nbsp;</td><td id="jqTransformTextarea-tm">&nbsp;</td><td id="jqTransformTextarea-tr">&nbsp;</td></tr>';
            strTable +='<tr><td id="jqTransformTextarea-ml">&nbsp;</td><td id="jqTransformTextarea-mm"><div></div></td><td id="jqTransformTextarea-mr">&nbsp;</td></tr>';   
            strTable +='<tr><td id="jqTransformTextarea-bl">&nbsp;</td><td id="jqTransformTextarea-bm">&nbsp;</td><td id="jqTransformTextarea-br">&nbsp;</td></tr>';
            strTable +='</table>';                  
            var oTable = $(strTable)
                    .insertAfter(textarea)
                    .hover(function(){
                        !oTable.hasClass('jqTransformTextarea-focus') && oTable.addClass('jqTransformTextarea-hover');
                    },function(){
                        oTable.removeClass('jqTransformTextarea-hover');                    
                    })
                ;
                
            textarea
                .focus(function(){oTable.removeClass('jqTransformTextarea-hover').addClass('jqTransformTextarea-focus');})
                .blur(function(){oTable.removeClass('jqTransformTextarea-focus');})
                .appendTo($('#jqTransformTextarea-mm div',oTable))
            ;
            this.oTable = oTable;
            if($.browser.safari){
                $('#jqTransformTextarea-mm',oTable)
                    .addClass('jqTransformSafariTextarea')
                    .find('div')
                        .css('height',textarea.height())
                        .css('width',textarea.width())
                ;
            }
        });
    };
    
    /***************************
      Select 
     ***************************/   
    $.fn.jqTransSelect = function(){
        return this.each(function(index){
            var $select = $(this);
            if($select.hasClass('jqTransformHidden')) {return;}
            if($select.hasClass('jqtransformignore')) {return true;}
            var oLabel  =  jqTransformGetLabel($select);
            /* First thing we do is Wrap it */
            $select
                .addClass('jqTransformHidden')
                .wrap('<div class="jqTransformSelectWrapper"></div>')
            ;
            var $wrapper = $select.parent().css({zIndex: 10-index});
            
            /* Now add the html for the select */
            $wrapper.prepend('<div><span></span><a href="#" class="jqTransformSelectOpen"></a></div><ul></ul>');
            var $ul = $('ul', $wrapper).css('width',$select.width());

            /* Now we add the options */
            $('option', this).each(function(i){
                var oLi = $('<li><a href="#" index="'+ i +'">'+ $(this).html() +'</a></li>');
                $ul.append(oLi);
            });
            /* pvc added */
            $('li:first', $ul).addClass('first');
            $('li:last', $ul).addClass('last');

            /* Hide the ul and add click handler to the a */
            $ul.hide().find('a').click(function(){
                    $('a.selected', $wrapper).removeClass('selected');
                    $(this).addClass('selected');
                    if ($select[0].selectedIndex != $(this).attr('index') && $select[0].onchange) { $select[0].selectedIndex = $(this).attr('index'); $select[0].onchange(); }
                    $select[0].selectedIndex = $(this).attr('index');
                    /* Fire the onchange event */
                    jQuery($select).trigger('change');
                    $('span:eq(0)', $wrapper).html($(this).html());
                    $ul.hide();
                    return false;
            });
            /* Set the default */
            $('a:eq('+ this.selectedIndex +')', $ul).click();
            $('span:first', $wrapper).click(function(){$("a.jqTransformSelectOpen",$wrapper).trigger('click');});
            oLabel && oLabel.click(function(){$("a.jqTransformSelectOpen",$wrapper).trigger('click');});
            this.oLabel = oLabel;
            
            /* Apply the click handler to the Open */
            var oLinkOpen = $('a.jqTransformSelectOpen', $wrapper)
                .click(function(){
                    //Check if box is already open to still allow toggle, but close all other selects
                    if( $ul.css('display')=='none' ) {jqTransformHideSelect();} 
                    $ul.slideToggle('normal', function(){                   
                        var offSet = ($('a.selected', $ul).offset().top - $ul.offset().top);
                        $ul.animate({scrollTop: offSet});
                    });
                    return false;
                })
            ;
            //set the new width
            var iSelectWidth = $select.width();
            var oSpan = $('span:first',$wrapper);
            var newWidth = (iSelectWidth > oSpan.innerWidth())?iSelectWidth+oLinkOpen.outerWidth():$wrapper.width();
            /*$wrapper.css('width',"160px");    */      
            $wrapper.css('width',"100%");
            /*safari && $wrapper.css('width',newWidth-16);*/
            $wrapper.css('width',160); /* is this it*/
            /*$ul.css('width',newWidth-2); /*need full size for my use */
            $ul.css('width','100%');
            oSpan.css('width',iSelectWidth);
            
        });
    };
    $.fn.jqTransform = function(options){
        var self = this;
        var safari = $.browser.safari; /* We need to check for safari to fix the input:text problem */
        var opt = $.extend({},defaultOptions,options);
        
        /* each form */
         return this.each(function(){
            var selfForm = $(this);
            if(selfForm.hasClass('jqtransformdone')) {return;}
            selfForm.addClass('jqtransformdone');
            
            $('input:submit, input:reset, input[type="button"]', this).jqTransInputButton();            
            $('input:text, input:password', this).jqTransInputText();           
            $('input:checkbox', this).jqTransCheckBox();
            $('input:radio', this).jqTransRadio();
            $('textarea', this).jqTransTextarea();
            
            if( $('select', this).jqTransSelect().length > 0 ){jqTransformAddDocumentListener();}
            selfForm.bind('reset',function(){var action = function(){jqTransformReset(this);}; window.setTimeout(action, 10);});
            
            //preloading
            if(opt.preloadImg && !jqTransformImgPreloaded){
                jqTransformImgPreloaded = true;
                var oInputText = $('input:text:first', selfForm);
                if(oInputText.length > 0){
                    //pour ie on eleve les ""
                    var strWrapperImgUrl = oInputText.get(0).wrapper.css('background-image');
                    jqTransformPreloadHoverFocusImg(strWrapperImgUrl);                  
                    var strInnerImgUrl = $('div.jqTransformInputInner',$(oInputText.get(0).wrapper)).css('background-image');
                    jqTransformPreloadHoverFocusImg(strInnerImgUrl);
                }
                
                var oTextarea = $('textarea',selfForm);
                if(oTextarea.length > 0){
                    var oTable = oTextarea.get(0).oTable;
                    $('td',oTable).each(function(){
                        var strImgBack = $(this).css('background-image');
                        jqTransformPreloadHoverFocusImg(strImgBack);
                    });
                }
            }
            
            
        }); /* End Form each */
                
    };/* End the Plugin */
    
 
})(jQuery);
    
/*
 * jQuery Cycle Lite Plugin
 * http://malsup.com/jquery/cycle/lite/
 * Copyright (c) 2008 M. Alsup
 * Version: 1.0 (06/08/2008)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Requires: jQuery v1.2.3 or later
 */
;(function($) {

var ver = 'Lite-1.0';

$.fn.cycle = function(options) {
    return this.each(function() {
        options = options || {};
        
        if (this.cycleTimeout) clearTimeout(this.cycleTimeout);
        this.cycleTimeout = 0;
        this.cyclePause = 0;
        
        var $cont = $(this);
        var $slides = options.slideExpr ? $(options.slideExpr, this) : $cont.children();
        var els = $slides.get();
        if (els.length < 2) {
            if (window.console && window.console.log)
                window.console.log('terminating; too few slides: ' + els.length);
            return; // don't bother
        }

        // support metadata plugin (v1.0 and v2.0)
        var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});
            
        opts.before = opts.before ? [opts.before] : [];
        opts.after = opts.after ? [opts.after] : [];
        opts.after.unshift(function(){ opts.busy=0; });
            
        // allow shorthand overrides of width, height and timeout
        var cls = this.className;
        opts.width = parseInt((cls.match(/w:(\d+)/)||[])[1]) || opts.width;
        opts.height = parseInt((cls.match(/h:(\d+)/)||[])[1]) || opts.height;
        opts.timeout = parseInt((cls.match(/t:(\d+)/)||[])[1]) || opts.timeout;

        if ($cont.css('position') == 'static') 
            $cont.css('position', 'relative');
        if (opts.width) 
            $cont.width(opts.width);
        if (opts.height && opts.height != 'auto') 
            $cont.height(opts.height);

        var first = 0;
        $slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) { 
            $(this).css('z-index', els.length-i) 
        });
        
        $(els[first]).css('opacity',1).show(); // opacity bit needed to handle reinit case
        if ($.browser.msie) els[first].style.removeAttribute('filter');

        if (opts.fit && opts.width) 
            $slides.width(opts.width);
        if (opts.fit && opts.height && opts.height != 'auto') 
            $slides.height(opts.height);
        if (opts.pause) 
            $cont.hover(function(){this.cyclePause=1;}, function(){this.cyclePause=0;});

        $.fn.cycle.transitions.fade($cont, $slides, opts);
        
        $slides.each(function() {
            var $el = $(this);
            this.cycleH = (opts.fit && opts.height) ? opts.height : $el.height();
            this.cycleW = (opts.fit && opts.width) ? opts.width : $el.width();
        });

        $slides.not(':eq('+first+')').css({opacity:0});
        if (opts.cssFirst)
            $($slides[first]).css(opts.cssFirst);

        if (opts.timeout) {
            // ensure that timeout and speed settings are sane
            if (opts.speed.constructor == String)
                opts.speed = {slow: 600, fast: 200}[opts.speed] || 400;
            if (!opts.sync)
                opts.speed = opts.speed / 2;
            while((opts.timeout - opts.speed) < 250)
                opts.timeout += opts.speed;
        }
        opts.speedIn = opts.speed;
        opts.speedOut = opts.speed;

        opts.slideCount = els.length;
        opts.currSlide = first;
        opts.nextSlide = 1;

        // fire artificial events
        var e0 = $slides[first];
        if (opts.before.length)
            opts.before[0].apply(e0, [e0, e0, opts, true]);
        if (opts.after.length > 1)
            opts.after[1].apply(e0, [e0, e0, opts, true]);
        
        if (opts.click && !opts.next)
            opts.next = opts.click;
        if (opts.next)
            $(opts.next).bind('click', function(){return advance(els,opts,opts.rev?-1:1)});
        if (opts.prev)
            $(opts.prev).bind('click', function(){return advance(els,opts,opts.rev?1:-1)});

        if (opts.timeout)
            this.cycleTimeout = setTimeout(function() {
                go(els,opts,0,!opts.rev)
            }, opts.timeout + (opts.delay||0));
    });
};

function go(els, opts, manual, fwd) {
    if (opts.busy) return;
    var p = els[0].parentNode, curr = els[opts.currSlide], next = els[opts.nextSlide];
    if (p.cycleTimeout === 0 && !manual) 
        return;

    if (manual || !p.cyclePause) {
        if (opts.before.length)
            $.each(opts.before, function(i,o) { o.apply(next, [curr, next, opts, fwd]); });
        var after = function() {
            if ($.browser.msie)
                this.style.removeAttribute('filter');
            $.each(opts.after, function(i,o) { o.apply(next, [curr, next, opts, fwd]); });
        };

        if (opts.nextSlide != opts.currSlide) {
            opts.busy = 1;
            $.fn.cycle.custom(curr, next, opts, after);
        }
        var roll = (opts.nextSlide + 1) == els.length;
        opts.nextSlide = roll ? 0 : opts.nextSlide+1;
        opts.currSlide = roll ? els.length-1 : opts.nextSlide-1;
    }
    if (opts.timeout)
        p.cycleTimeout = setTimeout(function() { go(els,opts,0,!opts.rev) }, opts.timeout);
};

// advance slide forward or back
function advance(els, opts, val) {
    var p = els[0].parentNode, timeout = p.cycleTimeout;
    if (timeout) {
        clearTimeout(timeout);
        p.cycleTimeout = 0;
    }
    opts.nextSlide = opts.currSlide + val;
    if (opts.nextSlide < 0) {
        opts.nextSlide = els.length - 1;
    }
    else if (opts.nextSlide >= els.length) {
        opts.nextSlide = 0;
    }
    go(els, opts, 1, val>=0);
    return false;
};

$.fn.cycle.custom = function(curr, next, opts, cb) {
    var $l = $(curr), $n = $(next);
    $n.css({opacity:0});
    var fn = function() {$n.animate({opacity:1}, opts.speedIn, opts.easeIn, cb)};
    $l.animate({opacity:0}, opts.speedOut, opts.easeOut, function() {
        $l.css({display:'none'});
        if (!opts.sync) fn();
    });
    if (opts.sync) fn();
};

$.fn.cycle.transitions = {
    fade: function($cont, $slides, opts) {
        $slides.not(':eq(0)').css('opacity',0);
        opts.before.push(function() { $(this).show() });
    }
};

$.fn.cycle.ver = function() { return ver; };

// @see: http://malsup.com/jquery/cycle/lite/
$.fn.cycle.defaults = {
    timeout:       4000, 
    speed:         1000, 
    next:          null, 
    prev:          null, 
    before:        null, 
    after:         null, 
    height:       'auto',
    sync:          1,    
    fit:           0,    
    pause:         0,    
    delay:         0,    
    slideExpr:     null  
};



})(jQuery);
