/**
 * Main Script for SoundArt.
 *
 * @author		Michael Gilley
 * @version		$Id: v.1.1$
 * @copyright		180byDesign, 10 May, 2010
 * @link			www.soundartla.org
 * @package		default
 **/
var Page={modalOpts:{autoOpen:false,height:570,width:813,modal:true,resize:false,show:'fade',hide:'fade',open:function(){Page.listen('unbind')},close:function(){$(this).children().remove();Page.listen('bind')}},modal:null,fx:'easeOutExpo',easing:{pageOut:'easeInExpo',pageIn:'easeOutExpo',pageTime:450},pages:[],loadQueue:[],paginationLimit:5,loadedPage:true,msie:$.browser.msie,mailReg:/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i};Page.init=function(){$.address.init(Page.preload).internalChange(Page.history).externalChange(Page.history);Page.resources();Page.locations();Page.events();Page.container();Page.modalSetup()};Page.preload=function(e){window.path=window.path.replace(/\/$/,'');$('#menu li[class*="nav_"] > a').each(function(){Page.get($(this).attr('href'))}).click(function(){if(!$(this).parent().is('.here')){var r=$(this).attr('href').replace(window.path,''),i=$.address.baseURL().replace(window.path,'')!=='';$.address.value((r=='/'?(i?'home':''):r))}return false});Page.pages[e.path]=$('#content').clone();$('#menu .p').click(Page.prevPage);$('#menu .n').click(Page.nextPage)};Page.resources=function(){$(window).load(function(){$('#top, #main').css('visibility','visible');$.preloadImages()})};Page.get=function(d,e,f){e=e||$.noop;f=f||null;var g=d.replace(window.path,'');$.ajax({url:d,beforeSend:function(){Page.loadQueue.push(g)},error:function(a,b,c){},complete:function(a,b){Page.loadQueue.splice($.inArray(g,Page.loadQueue),1);if(b=='success'||b=='notmodified'){var c=$('<div/>').append(a.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find('#content');Page.pages[g]=c;e(c,f)}}})};Page.prevPage=function(){var a=$('#menu .here');if(a.index()>1){a.prev().find('a').click()}return false};Page.nextPage=function(){var a=$('#menu .here');if(a.index()<($('#menu li').length-2)){a.next().find('a').click()}return false};Page.history=function(e){if(Page.loadedPage){return Page.loadedPage=false}var a=e.path,base=window.path,index=$('#menu .here').index(),rew,nundex;if(a=='/'&&e.type=='externalChange'){a=$.address.baseURL().replace(window.path,'')+'/'}else if(a=='/home'){a='/'}$('#menu li[class*="nav_"] > a').each(function(){$(this).parent().toggleClass('here',$(this).attr('href').replace(base,'')==a)});nundex=$('#menu .here').index();if(typeof pageTracker!=='undefined'){pageTracker._trackPageview(a)}if(typeof Page.pages[a]!=='undefined'){Page.loadPage(Page.pages[a],Page.getDirection(index,nundex))}else{Page.get(base+a,Page.loadPage,Page.getDirection(index,nundex))}};Page.loadPage=function(o,a){var b=o.clone(),t=o.find('#int-title h1').text()||'Home';$.address.title($.address.title().replace(/.+(?=\s\|)/i,t));$('#footer').fadeOut(250);$('#badge').animate({top:'-=5px'},150,Page.fx).delay(450).animate({top:'+=5px'},150,Page.fx);if(Page.msie){$('#content').css('position','relative')}$('#content').animate({left:2000*a,opacity:0},Page.easing.pageTime,Page.easing.pageOut,function(){$(this).remove();b.hide().insertAfter('#badge').css({opacity:0,right:2000*a}).show();b.animate({opacity:1,right:0},Page.easing.pageTime,Page.easing.pageIn,function(){$('#footer').fadeIn(250);Page.events();if(Page.msie){$('#content').css('position','static')}})})};Page.getDirection=function(i,n){if((i<0||n<0)||(i<n)){return-1}else{return 1}};Page.locations=function(){var a=$('#loc_txt');$('#loc_btn a').click(function(){a.fadeIn();return false});a.find('.exit a').click(function(){a.fadeOut();return false})};Page.events=function(){$('#hm-news .exit, #hm-news h3 a').click(function(){if($('#hm-news').hasClass('open')){$('#hm-news').removeClass('open').find('.more').fadeOut(100).end().animate({backgroundPosition:'0px -70px'},450,Page.fx)}else{$('#hm-news').addClass('open').animate({backgroundPosition:'0px -25px'},450,Page.fx,function(){$(this).find('.more').fadeIn(250)})}return false});$('#content .next a').click(function(){Page.nextPage();return false});$('#int-submenu').next('.content').find('.tab').each(function(){$(this).find('.grid:odd').addClass('odd').end().find('.grid:even').addClass('even')});$('#int-submenu ul a').click(function(){var a=$(this),t=a.attr('class').match(/tab-([0-9]+)/i)[1],$c=$('#content .content'),$t,$nt;if($c.is(':hidden')){a.parent().addClass('here');$t=$c.show().find('.tab-'+t);$t.wrap('<div class="sizer" />');var h=$t.css({position:'absolute',visibility:'hidden'}).show().outerHeight();$.scrollTo($('#int-submenu'),450,{easing:Page.fx});$t.removeAttr('style').parent().animate({height:h},450,Page.fx,function(){$t.fadeIn(250).unwrap()});Page.listen('bind')}else{if(a.parent().is('.here')){$t=$c.find('.tab-'+t).wrap('<div class="sizer" />');$t.parent().css('height',$t.outerHeight()).end().fadeOut(250,function(){$(this).parent().animate({height:0},250,Page.fx,function(){$c.hide();$t.unwrap();a.parent().removeClass('here')})});Page.listen('unbind')}else{$('#int-submenu .here').removeClass('here');a.parent().addClass('here');$t=$c.find('.tab:visible');$nt=$c.find('.tab-'+t);$c.wrapInner('<div class="sizer" />').children().css('height',$t.outerHeight());$t.fadeOut(250,function(){var h=$nt.css({position:'absolute',visibility:'hidden'}).show().outerHeight();$nt.removeAttr('style').parent().animate({height:h},450,Page.fx,function(){$nt.fadeIn(250);$('.sizer').replaceWith($('.sizer').contents())})})}}return false});if($('.audio').length>0){Page.audio()}$('.type-Video .icon').hover(function(){$(this).find('.play').stop(true,true).fadeIn()},function(){$(this).find('.play').stop(true,true).fadeOut()}).click(function(){Page.displayVideo($(this).prev('.source').find('.url').text(),$(this).prev('.source').find('.desc').text())});$('.content .close a').click(function(){$('#int-submenu .here a').click();return false});$('.type-Gallery img').click(function(){Page.displayGallery($(this).siblings('.source'))});$('.news .title').hover(function(){$(this).addClass('hover')},function(){$(this).removeClass('hover')}).click(function(){var a=$(this).parents('.post'),$txt,h;if(a.is('.open')){$txt=a.removeClass('open').find('.text');h=$txt.outerHeight();$txt.wrap('<div class="sizer" />').parent().css('height',h);$txt.fadeOut(250,function(){$txt.parent().animate({height:0},450,Page.fx,function(){$txt.unwrap()})})}else{$txt=a.addClass('open').find('.text');$txt.css({position:'absolute',visibility:'hidden'}).show();h=$txt.outerHeight();$.scrollTo(a,450,{easing:Page.fx});$txt.removeAttr('style').wrap('<div class="sizer" />').parent().animate({height:h},450,Page.fx,function(){$txt.fadeIn(250).unwrap()})}return false});$('.news .title a').click(function(){$(this).parents('.title').click();return false});Page.paginate();$('#tags a').click(function(){var a=$(this);if(a.is('.selected')){return false}if(a.is('.all')){a.hide()}else{$('#tags .all').show()}$('#tags .selected').removeClass('selected');a.addClass('selected');var b=a.attr('class').match(/cat-[0-9]+|all/)[0],$c=$('.content'),$f=$c.wrapInner('<div />').children();$c.height($c.height());$f.fadeOut(250,function(){Page.resetPages();$('.post').removeClass('hide');if(b!='all'){$('.post').not('.'+b).addClass('hide')}Page.paginate();var h=$f.css({visibility:'hidden',position:'absolute'}).show().outerHeight();$f.hide().css({position:'',visibility:''});$c.animate({height:h},450,Page.fx,function(){$f.fadeIn(250,function(){$c.removeAttr('style');$f.replaceWith($f.contents())})})});return false});$('.commentform form').removeAttr('id').addClass('commentformform');$('.comtitle').click(function(){var a=$(this);if(a.is('.exp')){var b=a.parent().next('.comments').toggleClass('expanded').slideToggle(250,Page.fx);if(b.is('.expanded')){a.attr('title','Close Comments')}else{a.attr('title','Open Comments')}}else{a.parents('.allcomments').find('.postform').click()}return false});$('.postform').click(function(){$(this).parents('.allcomments').find('.commentform').slideDown({easing:Page.fx,duration:250,complete:function(){$(this).find('input:text:first').focus().select()}});return false});$('.commentform .submit a').click(function(){$(this).parents('form').find('textarea').val('').end().parents('.commentform').slideUp(250,Page.fx);return false});$('.commentformform').submit(function(e){var f=$(this),$er=f.find('.error'),v=true;$.ajax({url:window.path+'/',data:f.serialize(),type:'POST',beforeSend:function(){v=true;$er.text('');$('.er').removeClass('er');if(f.find('input[name="name"]').val()==''){v=v&&false;f.find('input[name="name"]').parent().addClass('er')}if(!Page.mailReg.test(f.find('input[name="email"]').val())){v=v&&false;f.find('input[name="email"]').parent().addClass('er')}if(f.find('textarea').val()==''){v=v&&false;f.find('textarea').parent().addClass('er')}if(!v){$er.hide().text('Please supply the marked fields with the proper data. Thank you!').slideDown(250)}else{f.find('.submit input').replaceWith('<em>Sending...</em>')}return v},error:function(a,b,c){$er.hide().text('There seems to be a problem. Please check your connection, refresh, and try again. Thanks!').slideDown(250)},complete:function(a,b){if(b==='success'){var c=$('<div class="comment" />'),$a=$('<div class="author left" />'),$d=$('<span class="light" />').date('(F j, Y g:ia)'),$t=$('<div class="comment-txt left" />'),$cl=$('<div class="clear" />');$a.append('<strong>'+f.find('input[name="name"]').val()+'</strong><br />').append($d);$t.append('<p>'+f.find('textarea').val()+'</p>');c.append($a).append($t).append($cl);var d=f.parents('.allcomments').find('.comment:last');if(d.is('.even')){c.addClass('odd')}else{c.addClass('even')}c.insertAfter(d);var e=f.parents('.allcomments').find('.comtitle span');e.text(parseInt(e.text())+1);f.find('input:text, textarea').val('').end().parent().slideUp(250,Page.fx)}}});e.preventDefault()});$('.comments').find('.comment').filter(':odd').addClass('even').end().filter(':even').addClass('odd');if($('#freeform').length>0){Page.initForms()}if($.browser.msie&&$('.news .content').height()<320){$('.news .content').height(320)}$('#content a[href^="'+window.path+'"]').each(function(){if($(this).data('events')===null||$(this).data('events').click===undefined){$(this).address(function(){return $(this).attr('href').replace(window.path,'')})}});$('a.tipme').tipsy({gravity:'w',fade:true}).click(function(){$(this).tipsy('hide')});$('a.donate').tipsy({gravity:'w',fade:true,title:function(){return'via PayPal (TM)'}})};Page.container=function(){$('#badge a').click(function(){$('#menu .nav_home a').click();return false});$('#footer a').tipsy({gravity:'s',fade:true});$('#footer .home').click(function(){$('#menu .nav-home a').click();return false});$('#footer .info, #footer .copy').address(function(){return $(this).attr('href').replace(window.path,'')})};Page.listen=function(a){if(a==='bind'){$(document).bind('keydown.content',function(a){if(a.keyCode===$.ui.keyCode.ESCAPE){$('#int-submenu .here a').click();Page.listen('unbind')}})}else{$(document).unbind('keydown.content')}};Page.paginate=function(){if($('.post:not(.hide)').length<=Page.paginationLimit){return false}Page.resetPages();var b,count=1;$('.post').not('.hide').each(function(i){if(i%Page.paginationLimit===0){b=$('<div class="page-'+count+' page" />').appendTo('#content .content');if(i>0){b.addClass('hide')}count++}b.append(this)});var c=$('<div id="pagination" />').appendTo('#content .content');for(var i=1;i<count;i++){$('<a href="##" class="page-'+i+'" />').text(i).appendTo(c)}$('.page-1').addClass('selected');$('#pagination a').click(function(){$self=$(this);if(!$self.is('.selected')){var a=$('#content .content'),op=$('a.selected').attr('class').match(/page-([0-9])+/)[1],np=$self.attr('class').match(/page-([0-9])+/)[1];$('.page-'+op).removeClass('selected');$('.page-'+np).addClass('selected');a.height(a.height());$('div.page-'+op).fadeOut(250,function(){$('div.page-'+np).fadeIn(250);a.removeAttr('style')})}return false})};Page.resetPages=function(){$('.page').each(function(){$(this).replaceWith($(this).contents())});$('#pagination').remove()};Page.initForms=function(){$('#freeform').submit(function(e){var d=$(this),v=true,$er=$('.error');$.ajax({url:d.attr('action'),data:d.serialize(),type:'POST',beforeSend:function(a){v=true;$er.text('');$('.er').removeClass('er');if($('input[name="name"]').val()==''){v=v&&false;$('input[name="name"]').parent().addClass('er')}if(!Page.mailReg.test($('input[name="email"]').val())){v=v&&false;$('input[name="email"]').parent().addClass('er')}if($('textarea').val()==''){v=v&&false;$('textarea').parent().addClass('er')}if(!v){$er.hide().text('Please supply the marked fields with the proper data. Thank you!').slideDown(250)}else{$('.submit input').replaceWith('<em>Sending...</em>')}return v},error:function(a,b){$er.hide().text('There seems to be a problem. Please check your connection, refresh, and try again. Thanks!').slideDown(250)},complete:function(a,b){if(b=='success'||b=='notmodified'){var c=$('<div/>').append(a.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find('#int-title');$('#int-title h1').text(c.find('h1').text());$('#freeform').replaceWith(c.find('.desc').removeClass('desc').addClass('internal'))}}});e.preventDefault()}).find(':text:first').focus().select()};Page.audio=function(){var b=$('<div id="trackplay" />').appendTo('.content');b.jPlayer({swfPath:window.path+'/themes/site_themes/scripts/swf',nativeSupport:true});$('.audio .btn').click(function(){var a=$(this),source=window.path.replace(/\/$/,'')+a.attr('href');if(a.is('.play')){a.removeClass('play');b.jPlayer('stop')}else{$('.audio .play').removeClass('play');a.addClass('play');b.jPlayer('setFile',source).jPlayer('play')}return false})};Page.displayVideo=function(s,d){$('.ui-dialog-titlebar .nav').hide();Page.modal.dialog('open').dialog('option','title',d);var a;if(s.indexOf('vimeo')>0){a='http://vimeo.com/moogaloop.swf?clip_id=';a+=s.match(/[0-9]+/)[0];a+='&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=4AA4B4&amp;fullscreen=1'}else if(s.indexOf('youtube')>0){a='http://www.youtube.com/v/';a+=s.match(/[a-zA-Z0-9]+$/)[0];a+='&hl=en_US&fs=1&rel=0&color1=0x006699&color2=0x54abd6'}$('<div id="vid" />').appendTo(Page.modal).flash({swf:a,height:421,width:748,params:{allowFullScreen:true}})};Page.displayGallery=function(f){$('.nav').show();var g=$('<div id="gall" />').appendTo(Page.modal);var h=f.find('.item');var j=$('<span class="count" />').text('1/'+h.length).prependTo('.ui-dialog-title');var d,t;h.find('.url').each(function(i){var a=$(this),t=$.trim(a.next().text()),$o=$('<img />').attr('src',$.trim(a.text())).data('desc',t);g.append($o);if(i===0){d=t}});Page.modal.dialog('open').dialog('option','title',d);var k;g.cycle({fx:'scrollHorz',easing:Page.fx,timeout:0,speed:450,next:'.nav .next, #gall',prev:'.nav .prev',after:function(a,b,c){Page.modal.dialog('option','title',$(b).data('desc'));j.text((c.currSlide+1)+'/'+h.length).prependTo('.ui-dialog-title')}});$(document).bind('keydown.gallery',function(e){if(e.which==37){$('.nav .prev').click()}else if(e.which==39){$('.nav .next').click()}});Page.modal.bind('dialogclose',function(){$(document).unbind('keydown.gallery')})};Page.modalSetup=function(){var a=$('.splash').children().clone();a=$('<div id="modal" />').append(a);Page.modal=$('<div />').appendTo(document.body).dialog(Page.modalOpts);$('.ui-dialog').append(a);var b=$('<div class="nav" />'),$prev=$('<a href="##" class="prev" />'),$next=$('<a href="##" class="next" />');b.append($prev).append($next).prependTo('.ui-dialog-titlebar')};$(function(){Page.init()});
