jQuery.noConflict();
/*********************
//* jQuery Multi Level CSS Menu #2- By Dynamic Drive: http://www.dynamicdrive.com/
//* Last update: Nov 7th, 08': Limit # of queued animations to minmize animation stuttering
//* Menu avaiable at DD CSS Library: http://www.dynamicdrive.com/style/
*********************/
var arrowimages={down:['', ''], right:['', '']}
var jqueryslidemenu={

animateduration: {over: 100, out: 100}, //duration of slide in/ out animation, in milliseconds

buildmenu:function(menuid, arrowsvar){
	jQuery(document).ready(function($){
		$(" #main_navigation a").removeAttr("title");
		var $mainmenu=$("#"+menuid+">ul")
		var $headers=$mainmenu.find("ul").parent()
		$headers.each(function(i){
			var $curobj=$(this)
			var $subul=$(this).find('ul:eq(0)')
			this._dimensions={w:this.offsetWidth, h:this.offsetHeight, subulw:$subul.outerWidth(), subulh:$subul.outerHeight()}
			this.istopheader=$curobj.parents("ul").length==1? true : false
			$subul.css({top:this.istopheader? this._dimensions.h+"px" : 0})

			var $targetul=$(this).children("ul:eq(0)")
			this._offsets={left:$(this).offset().left, top:$(this).offset().top}
			var menuleft=this.istopheader? 0 : this._dimensions.w
			menuleft=(this._offsets.left+menuleft+this._dimensions.subulw>$(window).width())? (this.istopheader? -this._dimensions.subulw+this._dimensions.w : -this._dimensions.w) + 12 : menuleft
			if ($targetul.queue().length<=1) //if 1 or less queued animations
				if(menuleft==0){
					$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).removeClass("menu_flip")
				}
				if(menuleft!=0 && this.istopheader){
					$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).addClass("menu_flip")
				}else{
					$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).removeClass("menu_flip")
				}

			$curobj.hover(
				function(e){
					var $targetul=$(this).children("ul:eq(0)")
					this._offsets={left:$(this).offset().left, top:$(this).offset().top}
					var menuleft=this.istopheader? 0 : this._dimensions.w
					menuleft=(this._offsets.left+menuleft+this._dimensions.subulw>$(window).width())? (this.istopheader? -this._dimensions.subulw+this._dimensions.w : -this._dimensions.w) + 12 : menuleft
					if ($targetul.queue().length<=1) //if 1 or less queued animations
						if(menuleft==0){
							$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).removeClass("menu_flip").slideDown(jqueryslidemenu.animateduration.over)
						}
						if(menuleft!=0 && this.istopheader){
							$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).addClass("menu_flip").slideDown(jqueryslidemenu.animateduration.over)
						}else{
							$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).removeClass("menu_flip").slideDown(jqueryslidemenu.animateduration.over)
						}
				},
				function(e){
					var $targetul=$(this).children("ul:eq(0)")
					$targetul.slideUp(jqueryslidemenu.animateduration.out)
				}
			) //end hover
		}) //end $headers.each()
		$mainmenu.find("ul").css({display:'none', visibility:'visible'})
	}) //end document.ready
}
}

//build menu with ID="main_navigation" on page:
jqueryslidemenu.buildmenu("main_navigation", arrowimages)

jQuery(document).ready(function() {

	//Cufon fonts
	var $disable_cufon = jQuery("meta[name=disable_cufon]").attr('content');
	if($disable_cufon !='true') {
			Cufon.replace('h1,h2,h3,h4,h5,#blurb,#site_name,#intro_blurb_title,.dropcap1', { hover: 'true' });

			var userAgent = navigator.userAgent.toLowerCase();
		    // Is this a version of IE?
		    if(jQuery.browser.msie){
				var $ieVersion = jQuery.browser.version.substring(0,1);
				if($ieVersion == 7){
					jQuery("#intro_blurb_title span").css({paddingTop:"8px"});
					jQuery(".dropcap1").css({paddingTop:"0px"});
				}

				if($ieVersion == 6){
					jQuery(".last").each(function(index) {
						jQuery(this).wrap('<div class="ie6_gallery_fix" />');
						jQuery(".dropcap1").css({paddingTop:"0px"});
					});
				}
		    }
	}

	//Contact Form Widget
	jQuery('form#contactFormWidget').submit(function() {

		// assign dynamic div height to footer
		var $h = jQuery("#footer").height();
		jQuery("#footer").css({height: $h});

		// assign dynamic div height to secondary
		var $sb_h = jQuery("#secondary").height();
		jQuery("#secondary").css({height: $sb_h});

		jQuery('form#contactFormWidget .error').remove();
		var hasError = false;
		jQuery('.requiredField').each(function() {
			if(jQuery.trim(jQuery(this).val()) == '') {
				var labelText = jQuery(this).prev('label').text();
				//jQuery(this).parent().append('<span class="error">You forgot to enter your '+labelText+'.</span>');
				jQuery(this).addClass('inputError');
				hasError = true;
			} else if(jQuery(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim(jQuery(this).val()))) {
					var labelText = jQuery(this).prev('label').text();
					//jQuery(this).parent().append('<span class="error">You entered an invalid '+labelText+'.</span>');
					jQuery(this).addClass('inputError');
					hasError = true;
				}
			}
		});

		if(!hasError) {
			jQuery('form#contactFormWidget .button').fadeOut('normal', function() {
				if ( jQuery(this).hasClass("in_footer") ) {
					jQuery('.loadingImgWidgetFt').css({display:"block"});
				}else{
					jQuery('.loadingImgWidgetSb').css({display:"block"});
				}
			});
			var formInput = jQuery(this).serialize();
			jQuery.post(jQuery('#submitUrlWidget').val(),formInput, function(data){
				jQuery(this).delay(1500,function() {
				jQuery('form#contactFormWidget').fadeOut('fast', function() {
					jQuery(this).before('<p class="thanks"><strong>Thanks!</strong> Your email was successfully sent.</p>');
					});
				});
			});
		}

		return false;

	});

	//Contact Form
	jQuery('form#contact_form').submit(function() {

		// assign dynamic div height to body_block
		var $h = jQuery("#body_block").height();
		jQuery("#body_block").css({height: $h});

		jQuery('form#contact_form .error').remove();
		var hasError = false;
		jQuery('.requiredFieldContact').each(function() {
			if(jQuery.trim(jQuery(this).val()) == '') {
				var labelText = jQuery(this).prev('label').text();
				//jQuery(this).parent().append('<span class="error">You forgot to enter your '+labelText+'.</span>');
				jQuery(this).addClass('inputError');
				hasError = true;
			} else if(jQuery(this).hasClass('email')) {
				var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
				if(!emailReg.test(jQuery.trim(jQuery(this).val()))) {
					var labelText = jQuery(this).prev('label').text();
					//jQuery(this).parent().append('<span class="error">You entered an invalid '+labelText+'.</span>');
					jQuery(this).addClass('inputError');
					hasError = true;
				}
			}
		});

		if(!hasError) {
			jQuery('form#contact_form .button').fadeOut('normal', function() {
				jQuery('.loadingImg').css({display:"block"});
			});

			var formInput = jQuery(this).serialize();
			jQuery.post(jQuery('#submitUrl').val(),formInput, function(data){
				jQuery(this).delay(1500,function() {
				jQuery('form#contact_form').fadeOut('fast', function() {
					jQuery(this).before('<p class="thanks"><strong>Thanks!</strong> Your email was successfully sent.</p>');
					});
				});
			});
		}

		return false;

	});


	// image loader

		//set variables
		if(jQuery("#slider_img").length){var $index=true; var $load='a.load_slider_img'; var $delay_time=0;}
		if(jQuery(".blog_module").length){var $blog=true; var $load='a.load_blog_img'; var $delay_time=500;}
		if(jQuery(".portfolio_img_holder").length){var $gallery=true; var $load='a.load_portfolio_img'; var $delay_time=500; var $hover_class='portfolio_img_holder';}
		if(jQuery(".portfolio_full_img_holder").length){var $gallery_full=true; var $load='a.load_portfolio_img'; var $delay_time=500; var $hover_class='portfolio_full_img_holder';}
		if(jQuery(".portfolio_single_pic").length){var $single_pic=true; var $load='.portfolio_single_pic'; var $delay_time=500;}


		// add preloader image class
		if($gallery) {
			jQuery(".loading_gallery").each(function(index) {
				jQuery(this).addClass('img_pre_'+index);
			});
		}

		if($gallery_full) {
			jQuery(".loading_gallery_full").each(function(index) {
				jQuery(this).addClass('img_pre_'+index);
			});
		}

		if($single_pic) {
			jQuery(".loading_gallery_post").each(function(index) {
				jQuery(this).addClass('img_pre_'+index);
			});
		}

		if($blog) {
			jQuery(".loading_blog").each(function(index) {
				jQuery(this).addClass('img_pre_'+index);
			});
		}

		jQuery(this).delay($delay_time,function() {

			// id of the div containers
			var $imgContainerId = "div[class^='image_loader']";

			// grab the images
			var $images = jQuery($imgContainerId+' span img');

			// image length
			var $max = $images.length;

			// remove them from DOM to prevent normal load
			jQuery('.rm_img').remove();

			// start loading
			if($max>0) {
				LoadImage(0,$max);
			}

		// loading function handler
		function LoadImage(index,$max) {

			if(index<$max) {

				// add list to div
				jQuery('<span id="img'+(index+1)+'"></span>').each(function() {
				   jQuery(this).appendTo(jQuery('.image_loader '+$load).eq(index));
				});

				if($max>1) {
					jQuery('<img style="margin-right:4px;" src="images/transparent.png" alt="" width="14" height="14" class="slider_preview_img" />').each(function() {
					   jQuery(this).appendTo('#slider_preview_img');
					});
				}

				// new image object
				var $img = new Image();

				// current image
				var $curr = jQuery("#img"+(index+1));

				// load current image
				jQuery($img).load(function () {

					// hide it first + .hide() failed in safari
					jQuery(this).css('display','none');

					//add alt attr
					jQuery(this).attr({alt: ""});

					// add hover class
					if(!$index) {
						jQuery(this).addClass('hover_fade');
					}

					// insert the image into div
					jQuery($curr).append(this);

					// fade it in
					jQuery(this).fadeIn(250,function() {

						// remove loading div
						if(!$index) {
							jQuery('.img_pre_'+index).remove();
						}

						if(index == ($max-1)) {
								// remove loading div after all images loaded then start slider
								if($index) { cycleStart(); }
								if($gallery) { portfolio_img_hover($hover_class); jQuery('.roll_over').css('display','block'); }
								if($gallery_full) { portfolio_img_hover($hover_class); jQuery('.roll_over').css('display','block'); }

								if($max==1){
									if($index){
										jQuery(".slider_content").css({display:'block'});
										jQuery(".slider_content").css({marginTop:"22px"});

										if(jQuery('.image_loader').hasClass('slider_cropped')){
											jQuery("#home_feature").addClass('staged');
											jQuery(".slider_img_cropped").css({marginTop:"20px"});
										}
									}
								}

							}else{
							  // loading next item
							  LoadImage(index+1,$max);
							}
					});

				}).error(function () {
					// if loading error remove div
					jQuery($curr).remove();
					// try to load next item
					LoadImage(index+1,$max);
				}).attr('src', jQuery($images[index]).attr('src'));
		   	  }
			}
		});
});

