/*
 * jqValidate - Simple client-side form validation with jQuery
 * Copyright (c) 2006,2008 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * $Version: +r1 beta
 */
(function($){
$.fn.jqValidate=function(params){
var _params={
debug:false,
submitElements:':submit',
validateElements:':input',
validateClasses:[
'pvNumber',
'pvDate',
'pvEmpty',
'pvEmail'
],
invalidClass:'pvInvalid'
};
return this.each(function(){
if(this._jqV)
return;
s++;this._jqV=s;
H[s]={scope:this,valid:true,active:true,params:$.extend(_params,params)};
$.jqv.init(this);
}).addClass('_jqValidate');};
$.fn.jqvEnable=function(){return this.each(function(){
var s=this._jqV||$.jqv.getSerial(this);
H[s].active=true;
$.jqv.validate(H[s]);
})};
$.fn.jqvDisable=function(){return this.each(function(){
var s=this._jqV||$.jqv.getSerial(this);
H[s].active=false;
H[s].inputs.removeClass(H[s].params.invalidClass);
$.jqv.setState(true,H[s]);
})};
$.jqv={
hash:{},
init:function(e){
var h=H[e._jqV];
h.submits=$(h.params.submitElements,h.scope);
if(h.submits.size()==0&&h.debug)
alert('jqValidate: No Submit Elements found in Form');
h.inputs=$(h.params.validateElements,h.scope);
if(h.inputs.size()==0&&h.debug)
alert('jqValidate: No Validation Elements found in Form');
h.inputs.mouseup(function(){$.jqv.validate(h);});
h.inputs.keyup(function(){$.jqv.validate(h);});
$.jqv.validate(h);
},
rules:function(value,rule){
rule=rule.toLowerCase().substr(2);
switch(rule){
case'number':
var regex=/^[ +0-9()]+$/;
return(regex.test(value));
break;
case'date':
var regex=/^\d\d(\d\d)?[\/-]\d\d[\/-]\d\d(\d\d)?$/;
return(regex.test(value));
break;
case'email':
var r1=/@.*@|\.\.|\,|\;/;
var r2=/^.+\@(\[?)[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/
return!(r1.test(value)||!r2.test(value));
break;
case'empty':
return!(value=='')
break;
default:
alert('jqValidate: Unknown rule encountered! ('+rule+')');
}
},
validate:function(h){
if(!h.active)
return;
$(h.inputs).each(function(){
var r=new Array(),c=h.params.validateClasses;
for(var i=0;i<c.length;i++)
if($(this).is('.'+c[i]))
r.push(c[i]);
var valid=true,val=$.trim($(this).val());
for(var i=0;i<r.length;i++){
if(val==''&&r[i]!='pvEmpty')
continue;
if(!$.jqv.rules(val,r[i]))
valid=false;
}
(valid)?
$(this).removeClass(h.params.invalidClass):
$(this).addClass(h.params.invalidClass);
});
if(h.inputs.is('.'+h.params.invalidClass)){
if(!h.valid)
return;
$.jqv.setState(false,h);
}
else{
if(h.valid)
return;
$.jqv.setState(true,h);
}
},
setState:function(valid,h){
h.valid=valid;
h.submits.attr('disabled',!valid).css('opacity',(valid)?1:0.5);
},
getSerial:function(e){return $(e).parents('._jqValidate')[0]._jqV;}
};
var s=0,H=$.jqv.hash;
})(jQuery);


/*
 * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php
 * Uses the built In easIng capabilities added In jQuery 1.1
 * to offer multiple easIng options
 * Copyright (c) 2007 George Smith
 * Licensed under the MIT License:
 *   http://www.opensource.org/licenses/mit-license.php
 */
jQuery.extend(jQuery.easing,{easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});
/*
 * jQuery Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery.easing.php
 */
jQuery.extend(jQuery.easing,{easeIn:function(x,t,b,c,d){return jQuery.easing.easeInQuad(x,t,b,c,d);},easeOut:function(x,t,b,c,d){return jQuery.easing.easeOutQuad(x,t,b,c,d);},easeInOut:function(x,t,b,c,d){return jQuery.easing.easeInOutQuad(x,t,b,c,d);},expoin:function(x,t,b,c,d){return jQuery.easing.easeInExpo(x,t,b,c,d);},expoout:function(x,t,b,c,d){return jQuery.easing.easeOutExpo(x,t,b,c,d);},expoinout:function(x,t,b,c,d){return jQuery.easing.easeInOutExpo(x,t,b,c,d);},bouncein:function(x,t,b,c,d){return jQuery.easing.easeInBounce(x,t,b,c,d);},bounceout:function(x,t,b,c,d){return jQuery.easing.easeOutBounce(x,t,b,c,d);},bounceinout:function(x,t,b,c,d){return jQuery.easing.easeInOutBounce(x,t,b,c,d);},elasin:function(x,t,b,c,d){return jQuery.easing.easeInElastic(x,t,b,c,d);},elasout:function(x,t,b,c,d){return jQuery.easing.easeOutElastic(x,t,b,c,d);},elasinout:function(x,t,b,c,d){return jQuery.easing.easeInOutElastic(x,t,b,c,d);},backin:function(x,t,b,c,d){return jQuery.easing.easeInBack(x,t,b,c,d);},backout:function(x,t,b,c,d){return jQuery.easing.easeOutBack(x,t,b,c,d);},backinout:function(x,t,b,c,d){return jQuery.easing.easeInOutBack(x,t,b,c,d);}});
/*
*	jQuery Coda-Slider v1.1 - http://www.ndoherty.com/coda-slider	
*	Copyright (c) 2007 Niall Doherty
*/
jQuery(function(){jQuery("div.csw").prepend("<p class='loading'>Loading...</p>");});var j=0;jQuery.fn.codaSlider=function(settings){settings=jQuery.extend({easeFunc:"expoinout",easeTime:750,toolTip:false},settings);return this.each(function(){var container=jQuery(this);container.find("p.loading").remove();container.removeClass("csw").addClass("stripViewer");var panelWidth=container.find("div.panel").width();var panelCount=container.find("div.panel").size();var stripViewerWidth=panelWidth*panelCount;container.find("div.panelContainer").css("width",stripViewerWidth);var navWidth=panelCount*2;if(location.hash&&parseInt(location.hash.slice(1))<=panelCount){var cPanel=parseInt(location.hash.slice(1));var cnt=-(panelWidth*(cPanel-1));jQuery(this).find("div.panelContainer").css({left:cnt});}else{var cPanel=1;};container.each(function(i){jQuery(this).before("<div class='stripNavL' id='stripNavL"+j+"'><a href='#'>Left</a><\/div>");jQuery(this).after("<div class='stripNavR' id='stripNavR"+j+"'><a href='#'>Right</a><\/div>");jQuery(this).before("<div class='stripNav' id='stripNav"+j+"'><ul><\/ul><\/div>");jQuery(this).find("div.panel").each(function(n){jQuery("div#stripNav"+j+" ul").append("<li class='tab"+(n+1)+"'><a href='#"+(n+1)+"'>"+jQuery(this).attr("title")+"<\/a><\/li>");});jQuery("div#stripNav"+j+" a").each(function(z){navWidth+=jQuery(this).parent().width();jQuery(this).bind("click",function(){jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current");var cnt=-(panelWidth*z);cPanel=z+1;jQuery(this).parent().parent().parent().next().find("div.panelContainer").animate({left:cnt},settings.easeTime,settings.easeFunc);});});jQuery("div#stripNavL"+j+" a").click(function(){if(cPanel==1){var cnt=-(panelWidth*(panelCount-1));cPanel=panelCount;jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("li:last a").addClass("current");}else{cPanel-=1;var cnt=-(panelWidth*(cPanel-1));jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().prev().find("a").addClass("current");};jQuery(this).parent().parent().find("div.panelContainer").animate({left:cnt},settings.easeTime,settings.easeFunc);location.hash=cPanel;return false;});jQuery("div#stripNavR"+j+" a").click(function(){if(cPanel==panelCount){var cnt=0;cPanel=1;jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("a:eq(0)").addClass("current");}else{var cnt=-(panelWidth*cPanel);cPanel+=1;jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().next().find("a").addClass("current");};jQuery(this).parent().parent().find("div.panelContainer").animate({left:cnt},settings.easeTime,settings.easeFunc);location.hash=cPanel;return false;});jQuery("a.cross-link").click(function(){jQuery(this).parents().find(".stripNav ul li a:eq("+(parseInt(jQuery(this).attr("href").slice(1))-1)+")").trigger('click');});jQuery("div#stripNav"+j).css("width",navWidth);if(location.hash&&parseInt(location.hash.slice(1))<=panelCount){jQuery("div#stripNav"+j+" a:eq("+(location.hash.slice(1)-1)+")").addClass("current");}else{jQuery("div#stripNav"+j+" a:eq(0)").addClass("current");}});j++;});};

/* Textbox resizer(c) 2005 Nicolas Martin & Olivier Meunier and contributors */
jQuery.fn.resizehandle = function() {
  return this.each(function() {
    var me = jQuery(this);
    me.after(
      jQuery('<div class="resizehandle"></div>')
      .bind('mousedown', function(e) {
        var h = me.height();
        var y = e.clientY;
        var moveHandler = function(e) {
          me
          .height(Math.max(20, e.clientY + h - y));
        };
        var upHandler = function(e) {
          jQuery('html')
          .unbind('mousemove',moveHandler)
          .unbind('mouseup',upHandler);
        };
        jQuery('html')
        .bind('mousemove', moveHandler)
        .bind('mouseup', upHandler);
      })
    );
  });
}

/* Function to toggle input box values on select */
jQuery.fn.toggleVal=function(focusClass){this.each(function(){$(this).focus(function(){if($(this).val()==this.defaultValue){$(this).val("")}if(focusClass){$(this).addClass(focusClass)}}).blur(function(){if($(this).val()==""){$(this).val(this.defaultValue)}if(focusClass){$(this).removeClass(focusClass)}})})}

$(document).ready(function(){

	$("#s").toggleVal("active");
	$("textarea").resizehandle();
	jQuery("div#slider1").codaSlider();
	$('form').jqValidate();

	$('.portfolio').addClass('gallery_web'); // adds new class name to maintain degradability
	$('.nav').css('display','none'); // hides the nav initially	
	$('ul.gallery_web').galleria({
		history   : false, // deactivates the history object for bookmarking, back-button etc.
		clickNext : false, // helper for making the image clickable. Let's not have that in this example.
		insert    : undefined, // the containing selector for our main image. 
					onImage   : function(image,thumb) {	
						// fade in the image & caption
						image.css('display','none').fadeIn(1000);
						caption.css('display','none').fadeIn(1000);				
						// fetch the thumbnail container
						var _li = thumb.parents('li');
						// fade out inactive thumbnail
						_li.siblings().children('img.selected').fadeTo(500,0.3);	
						// fade in active thumbnail
						thumb.fadeTo('fast',1).addClass('selected');

					},
					onThumb : function(thumb) { // thumbnail effects goes here		
						// fetch the thumbnail container
						var _li = thumb.parents('li');
						// if thumbnail is active, fade all the way.
						var _fadeTo = _li.is('.active') ? '1' : '0.3';
						// fade in the thumbnail when finnished loading
						thumb.css({display:'none',opacity:_fadeTo}).fadeIn(1500);
						thumb.hover(
							function() { thumb.fadeTo('fast',1); },
							function() { _li.not('.active').children('img').fadeTo('fast',0.3); } // don't fade out if the parent is active
						)
					}
	});
	
	// For toggling the caption
	$('.galleria_container').toggle(function(){
		$(this).find('.caption').animate({top:'0px'},{queue:false,duration:250});
	}, function(){
		$(this).find('.caption').animate({top:'520px'},{queue:false,duration:250});
	});	

	$('.stripNav ul li').click(function(){
		if ($(this).find('a').attr('href') == '#3') {
			//alert ('display image');
			$('.galleria_wrapper').empty();
		}
	});					
					
}); // End Document Ready

					

	




	

