var ffunction=ffunction||{}
var self=ffunction
ffunction.ASYNC_CHANNEL=new channels.SyncChannel()
ffunction.Spotlight=extend.Class({name:'ffunction.Spotlight',parent:undefined,shared:{SELECTOR:'#Spotlight'},properties:{ui:undefined,uis:undefined,data:undefined,illustrations:undefined,currentIllustration:undefined,hasMouseOver:undefined,isRunning:undefined,firstRun:undefined},initialize:function(data){var self=this
self.uis={'illustrations':undefined,'datasheet':undefined,'illustrationTmpl':undefined,'datasheetTmpl':undefined}
self.illustrations=[]
self.currentIllustration=-1
self.hasMouseOver=false
self.isRunning=true
self.firstRun=true
self.ui=$(self.getClass().SELECTOR);self.uis.illustrations=$('.illustrations',self.ui);self.uis.datasheet=$('.DataSheet',self.ui);self.uis.illustrationTmpl=$('.Illustration.TEMPLATE',self.ui);self.uis.datasheetTmpl=$('.DataSheet.TEMPLATE',self.ui);self.setData(data)
$(document).mousemove(function(e){var offset=self.ui.offset();var w=self.ui.width();var h=self.ui.height();var in_x=((e.pageX>=offset.left)&&(e.pageX<=(offset.left+w)));var in_y=((e.pageY>=offset.top)&&(e.pageY<=(offset.top+h)));self.hasMouseOver=(in_x&&in_y);})
self.nextIllustration()
window.setTimeout(function(){self.run()},(1000*7))},methods:{run:function(){var self=this
self.isRunning=true;self._runIteration()},_runIteration:function(){var self=this
if(self.isRunning)
{if((!self.hasMouseOver))
{self.nextIllustration()
window.setTimeout(function(){self._runIteration()},(1000*4))}
else if(true)
{window.setTimeout(function(){self._runIteration()},(1000*2.0))}}},nextIllustration:function(){var self=this
self.showIllustration(((self.currentIllustration+1)%self.illustrations.length))},showIllustration:function(index){var self=this
var current_ui=$('.current',self.uis.illustrations);self.currentIllustration=(index%self.illustrations.length);var iui=$($('.Illustration.actual',self.uis.illustrations)[self.currentIllustration]);var illustration=self.illustrations[self.currentIllustration];extend.iterate(['type','client','year','period','title'],function(k){$(('.out-'+k),self.uis.datasheet).html(illustration[k])},self)
if(illustration.parent)
{$('a.out-parent',self.uis.datasheet).removeClass('hidden').attr('href',illustration.parent.href).html(illustration.parent.title)}
else if(true)
{$('a.out-parent',self.uis.datasheet).addClass('hidden')}
if(illustration.next)
{$('a.out-next',self.uis.datasheet).removeClass('hidden').attr('href',illustration.next.href).html(illustration.next.title)}
else if(true)
{$('a.out-next',self.uis.datasheet).addClass('hidden')}
Cufon.replace('#Spotlight .cufon-dr',{'fontFamily':'DIN-Regular'})
Cufon.replace('#Spotlight .cufon-ol',{'fontFamily':'Olsen-Light'})
Cufon.replace('#Spotlight .cufon-or',{'fontFamily':'Olsen-Light'})
var left_offset=(self.currentIllustration*iui.width());if($.browser.msie)
{if(($.browser.version=='7.0'))
{if(self.firstRun)
{self.uis.illustrations.css('left',-900)}
left_offset=(left_offset+900);}}
self.uis.illustrations.animate({'left':(0-left_offset)},1000,'swing')
self.firstRun=false;$($('.IllustrationSelector ul li.actual',self.uis.datasheet).removeClass('current')[self.currentIllustration]).addClass('current')},setData:function(data){var self=this
self.data=data;self.illustrations=[];$('.actual',self.ui).remove()
extend.iterate(data,function(i){self._addIllustration(i)},self)},_addIllustration:function(illustration){var self=this
var iui=self.uis.illustrationTmpl.clone().removeClass('TEMPLATE').removeClass('hidden').addClass('actual');var page=self.illustrations.length;$(iui).attr({'page':(''+page)})
$('img',iui).attr({'title':illustration.title,'src':('/lib/images/portfolio/'+illustration.image)})
if(illustration.feature)
{$('.out-feature',iui).html(illustration.feature)
$('.out-featureTitle',iui).html(illustration.featureTitle)
var f_ui=$('.Features',iui);$('.body',f_ui).hover(function(){f_ui.animate({'opacity':0.05})},function(){f_ui.animate({'opacity':1.0})})}
else if(true)
{$('.Features',iui).remove()}
ill_selector=html.li({'page':(''+page),'class':'actual'});$('.IllustrationSelector ul',self.uis.datasheet).append(ill_selector)
$(ill_selector).click(function(){if((self.currentIllustration==page))
{if((!self.isRunning))
{self.run()}}
else if(true)
{self.isRunning=false;self.showIllustration(page)}})
self.uis.illustrations.append(iui)
self.illustrations.push(illustration)
return iui}}})
ffunction.ContactForm=extend.Class({name:'ffunction.ContactForm',parent:undefined,properties:{ui:undefined},initialize:function(){var self=this
self.ui=$('#ContactForm');$('form',self.ui).submit(function(){if(self.validateForm())
{self.sendEmail()}
return false})
$('button.submit',self.ui).click(function(){if(self.validateForm())
{self.sendEmail()}
return false})
$('.do-reset',self.ui).click(function(){self.reset()})
$('.w-field .value',self.ui).change(function(){self.validateField(this)
return true})},methods:{validateField:function(field){var self=this
var f=$(field);if((f.attr('name')=='company'))
{return true}
else if((!$.trim(f.val())))
{f.addClass('has-error')
return false}
else if(true)
{f.removeClass('has-error')
return true}},validateForm:function(){var self=this
var valid=true;extend.iterate($('.w-field .value',self.ui),function(field){if((!self.validateField(field)))
{valid=false;}},self)
return valid},getFormData:function(){var self=this
var result={};extend.iterate($('.w-field .value',self.ui),function(field){var f=$(field);result[f.attr('name')]=f.val();},self)
return result},sendEmail:function(){var self=this
ffunction.ASYNC_CHANNEL.post('/api/contact',self.getFormData()).onSucceed(function(){$.scrollTo($('#ContactForm .when-sent').removeClass('hidden').fadeIn())}).onFail(function(){$.scrollTo($('#ContactForm .when-error').removeClass('hidden').fadeIn())})},reset:function(){var self=this
$('#ContactForm .when-sent').addClass('hidden')
$('#ContactForm .when-error').addClass('hidden')}}})
ffunction.init=function(){var self=ffunction;}
ffunction.init()