
SK.UI.Progress=function(options){this.ie6=document.all&&navigator.appVersion.indexOf("MSIE 6")!=-1?true:false;this.ie7=document.all&&navigator.appVersion.indexOf("MSIE 7")!=-1?true:false;this.ff2=navigator.userAgent.toLowerCase().indexOf("firefox/2")!=-1?true:false;this.ff1=navigator.userAgent.toLowerCase().indexOf("firefox/1")!=-1?true:false;this.mac=navigator.userAgent.toLowerCase().indexOf("macintosh")!=-1?true:false;this.ff2mac=this.ff2&&this.mac;this.ff1mac=this.ff1&&this.mac;this.safari=navigator.appVersion.indexOf("Safari")!=-1?true:false;this.ANIMATION_INTERVAL=60;this.ANIMATION_STEPS=24;this.FRAME_HEIGHT=60;this.WRAPPER_OPACITY=1.0;this.BG_OPACITY=0.7;this.options={};if(typeof options!='undefined')this.options=options;if(typeof this.options.callbacks=='undefined'){this.options.callbacks={};}
if(typeof this.options.placeholder=='undefined'){this.options.placeholder=$(document);}
this.disturbing_elements=[];this.init=function(message){this.create();this.reset();this.message=message;var self=this;window.addEvent('scroll',function(){self.center();});window.addEvent('resize',function(){self.center();});}
this.create=function(){if(this.options.zindex){$('progress_ui_wrapper').setStyles({'z-index':this.options.zindex});}}
this.destroy=function(){if(this.options.zindex)
$('progress_ui_wrapper').setStyles({'z-index':''});}
this.reset=function(){this.disturbing_elements=[];}
this.display=function(){this.collectDisturbingElements();this.hideDisturbingElements();this.center();this.displayContents();}
this.hide=function(){this.hideContents();this.displayDisturbingElements();this.destroy();}
this.displayContents=function(){$('progress_ui_message').innerHTML=this.message;$('progress_ui_wrapper').setStyles({'opacity':'0.0','display':'block'});var self=this;var complete_f=function(){if(self.options.callbacks.onafterdisplay){self.options.callbacks.onafterdisplay();}};var wrapper_opacity=this.WRAPPER_OPACITY;var bg_opacity=this.BG_OPACITY;if(this.options.duration==0){$('progress_ui_wrapper').setStyle('opacity',wrapper_opacity);$('progress_ui_background').setStyle('opacity',bg_opacity);complete_f();}else{var anim=new Fx.Morph('progress_ui_wrapper',{duration:this.options.duration?this.options.duration:200,transition:Fx.Transitions.Sine.easeOut,onComplete:complete_f});anim.start({opacity:wrapper_opacity});$('progress_ui_background').setStyles({'opacity':'0.0','display':'block'});var self=this;var anim=new Fx.Morph('progress_ui_background',{duration:this.options.duration?this.options.duration:200,transition:Fx.Transitions.Sine.easeOut});anim.start({opacity:bg_opacity});}
this.startImagesAnimation();}
this.startImagesAnimation=function(){var self=this;$('skwaiting_stripe').setStyle('display','block');var frame_id=1;this.images_animation_timer=window.setInterval(function(){self.displayImagesAnimationFrame(frame_id++);if(frame_id>self.ANIMATION_STEPS){frame_id=1;}},this.ANIMATION_INTERVAL);}
this.displayImagesAnimationFrame=function(frame_id){var top=-(frame_id-1)*this.FRAME_HEIGHT;$('skwaiting_stripe').setStyle('top',top);}
this.stopImagesAnimation=function(){window.clearTimeout(this.images_animation_timer);}
this.hideContents=function(){$('progress_ui_wrapper').setStyle('display','none');this.stopImagesAnimation();}
this.isFullOfBugsIE=function(){return((document.compatMode=='BackCompat'&&Browser.Engine.trident)||(document.compatMode!='BackCompat'&&Browser.Engine.trident4==true));}
this.center=function(){var p=$(this.options.placeholder);var size=p.getSize();var scroll=p.getScroll();var pos=p.getCoordinates();if(this.isFullOfBugsIE()){$('progress_ui_wrapper').setStyles({'left':scroll.x+pos.left,'top':scroll.y+pos.top});}else{var position=!p.get||p.get('tag').toLowerCase()=='body'?'fixed':p.getStyle('position')=='fixed'?'fixed':'absolute';$('progress_ui_wrapper').setStyles({'position':position,'left':0+pos.left,'top':0+pos.top});}
var objs=['progress_ui_wrapper','progress_ui_background','progress_ui_foreground','progress_ui_content'];for(var i=0;i<objs.length;i++){$(objs[i]).setStyle('width',size.x);$(objs[i]).setStyle('height',size.y);}}
this.hideDisturbingElements=function(){for(var i=0;i<this.disturbing_elements.length;i++){if($(this.disturbing_elements[i])&&$(this.disturbing_elements[i]).setStyle){$(this.disturbing_elements[i]).setStyle('display','none');}}}
this.displayDisturbingElements=function(){for(var i=0;i<this.disturbing_elements.length;i++){if($(this.disturbing_elements[i])&&$(this.disturbing_elements[i]).setStyle){$(this.disturbing_elements[i]).setStyle('display','');}
if(this.safari){this.patchSafariFlashElements(this.disturbing_elements[i],false);}}}
this.collectDisturbingElements=function(){var target_tags=['object','embed','param'];if(this.ie6)target_tags.push('select');for(var j=0;j<target_tags.length;j++){var objs=document.getElementsByTagName(target_tags[j]);for(var i=0;i<objs.length;i++){this.disturbing_elements.push(objs[i]);if(this.safari){this.patchSafariFlashElements(objs[i],false);}}}}
this.patchSafariFlashElements=function(e,undo){if(undo){var old_wmode=e.getAttribute('old_wmode');if(old_wmode)e.setAttribute('wmode',old_wmode);else e.removeAttribute('wmode');}else{var old_wmode=e.getAttribute('wmode');e.setAttribute('wmode','opaque');if(old_wmode)e.setAttribute('old_wmode',old_wmode);}}};