function portfolioScrolling(e){

	

PscrollInner = $(this);

PscrollOuterTop = parseInt(PscrollInner.css("margin-top"));



if (e.type === "touchmove"){

	PscrollInner.addClass("scrolling");

}

if (e.type === "touchend"){

	PscrollInner.removeClass("scrolling");

}



	if (e.type === "touchstart"){

			wasDragged = false;

			PmaxScrollY = PscrollInner.height();

			PstartY = event.touches[0].clientY - PscrollOuterTop;

     		PstartTop = PscrollInner.offset().top - PscrollOuterTop;
			

		}

		

		if (e.type === "touchmove"){

			wasDragged = true;

			

			//alert (PmaxScrollY + " " + PstartY + " " + PstartTop);

			PmoveingY = event.touches[0].clientY - PscrollOuterTop;

			

					if (PstartY > PmoveingY) {

						

						  /*MOVE UP / SCROLL DOWN DIRECTION */

						  

						PscrollInner.css("top", "-" + (PstartY - PmoveingY - PstartTop) + "px");

						

					 } else {

						 

						 /*MOVE DOWN / SCROLL UP DIRECTION */

						

						

						var Ptop = (PmoveingY - PstartY + PstartTop);

        				 	

						PscrollInner.css("top", Ptop + "px");

						

					 }

	

		}

		

		if (e.type === "touchend"){

	
				if(wasDragged === true){

				/*moved too low?*/

							/*if (PscrollInner.offset().top > PscrollOuterTop){

					

								PscrollInner.stop().animate({"top" : "0px"}, 300);

								wasDragged = false;

							}*/

							

						

					/*moved too high?*/

						if (PscrollInner.offset().top < ( (PmaxScrollY - window.innerHeight) * - 1) && PmaxScrollY + PscrollOuterTop > window.innerHeight ){

					

								PscrollInner.stop().animate({"top" : ( ($("#portfolio").height() - window.innerHeight + PscrollOuterTop) * - 1) + "px"}, 300);

								wasDragged = false;

								

							}else if (PscrollInner.offset().top > PscrollOuterTop || PmaxScrollY + PscrollOuterTop < window.innerHeight ){

								

								PscrollInner.stop().animate({"top" : "0px"}, 300);

								wasDragged = false;

								

								

							}

				}

							

					



			

		}











/*

		if (e.type === "touchstart"){

			wasDragged = false;

			PstartY = event.touches[0].clientY - $(this).offset().top;

     		PstartTop = $("#portfolio").offset().top - $(this).offset().top;

     		touchStartTime = new Date().getTime();

			

			/*alert (startX + " " + startLeft + " " + touchStartTime + " " + mouseDown);*/

/*			

		}

		

		if (e.type === "touchmove"){

			wasDragged = true;

			

				

			

					if (PstartY > event.touches[0].clientY) {

						  

						  /*MOVE DOWN */

						  

/*						$("#portfolio").css("top", "-" + (PstartY - (event.touches[0].clientY - $(this).parent().offset().top) - PstartTop) + "px");

						

					 } else {

						 

						 /*MOVE DOWN */

/*					 

						  var top = ((event.touches[0].clientY - $(this).parent().offset().top) - PstartY + PstartTop);

        				 	

						$("#portfolio").css('top', top + 'px');

						

					 }

				

			

			

		}

		

		if (e.type === "touchend"){

			

			if(wasDragged === true){

			

						/*moved too low?*/

/*							if ($("#portfolio").offset().top > $(this).parent().offset().top){

					

								$(this).stop().animate({"top" : "0px"}, 300);

								wasDragged = false;

							}

							

						/*moved too high?*/

/*						if ($("#portfolio").offset().top < ( ($("#portfolio").height() - $(window).height()) * - 1)){

					

								$(this).stop().animate({"top" : ( ($("#portfolio").height() - $(window).height() + 144) * - 1) + "px"}, 300);

								wasDragged = false;

								

							}				

				

				

			}

				

			

		}

		

		

	

	*/	



	

	

}





function matrixToArray(matrix) {

    var contents = matrix.substr(7);

    contents = contents.substr(0, contents.length - 1);



    return contents.split(', ');

}





function scrollable(e){



scrollOuter = $(this);

scrollInner = scrollOuter.find("div").eq(0);



if (e.type === "touchmove"){

	$("#portfolio").unbind();

	scrollInner.addClass("scrolling");

}

if (e.type === "touchend"){

	$("#portfolio").bind("touchstart touchmove touchend", portfolioScrolling);

	scrollInner.removeClass("scrolling");

}



// 						//

// 	SIDEWAYS SCROLLING	//

//						//



if (scrollInner.width() > scrollOuter.width()){

		

		if (e.type === "touchstart"){

			

			maxScrollX = ( scrollInner.width() - scrollOuter.width() ) * - 1;

			startX = event.touches[0].clientX;

		

			//STANDARD CSS

			startLeft = scrollInner.offset().left;
			

			

		}

		

		if (e.type === "touchmove"){

			



					if (startX > event.touches[0].clientX) {

						

						  /*MOVE LEFT */

						  

						scrollInner.css("left", "-" + (startX - (event.touches[0].clientX - scrollOuter.offset().left) - startLeft) + "px");

									

						

					 } else {

						 

						 /*MOVE RIGHT */

						 

						var left = ((event.touches[0].clientX - scrollOuter.offset().left) - startX + startLeft); 	

						scrollInner.css('left', left + 'px');

						

					 }

	

		}

		

		if (e.type === "touchend"){


				/*moved too less than start?*/

					if (scrollInner.offset().left > 0){

			

						scrollInner.stop().animate({"left" : "0px"}, 300);

				

					}else/*moved over the end?*/if (scrollInner.offset().left < maxScrollX){

			

						scrollInner.stop().animate({"left" : maxScrollX + "px"}, 300);

						

				}

			

		}

		

}// SIDEWAYS





// 						//

// 	UP DOWN SCROLLING	//

//						//



if (scrollInner.height() > scrollOuter.height()){

	



		if (e.type === "touchstart"){

			maxScrollY = ( scrollInner.height() - scrollOuter.height() ) * - 1;

			startY = event.touches[0].clientY - scrollOuter.offset().top;

     		startTop = scrollInner.offset().top - scrollOuter.offset().top;

		}

		

		if (e.type === "touchmove"){

			

			moveingY = event.touches[0].clientY - scrollOuter.offset().top;

			

					if (startY > moveingY) {

						

						  /*MOVE UP / SCROLL DOWN DIRECTION */

						  

						scrollInner.css("top", "-" + (startY - moveingY - startTop) + "px");

						

				

						

					 } else {

						 

						 /*MOVE DOWN / SCROLL UP DIRECTION */

						 

						var top = (moveingY - startY + startTop);

        				 	

						scrollInner.css('top', top + 'px');

						

					 }

	

		}

		

		if (e.type === "touchend"){

			

			

						

			

				/*moved too less than start?*/

					if (scrollInner.offset().top > scrollOuter.offset().top){

			

						scrollInner.stop().animate({"top" : "0px"}, 300);

						

					}



				

				/*moved over the end?*/

				if (scrollInner.offset().top < maxScrollY + scrollOuter.offset().top){

			

						scrollInner.stop().animate({"top" : maxScrollY + "px"}, 300);

						

						

				}					

					



			

		}

		

}// UP DOWN





	

}





//

// SCROLL FUNCTION FOR PAGES CONTAINING ITEMS

//



function itemsScrollable(e){



IscrollInner = $(this);

IscrollOuterTop = parseInt(IscrollInner.css("padding-top"));





// 						//

// 	UP DOWN SCROLLING	//

//						//



if(IscrollInner.height() + IscrollOuterTop > $(window).height()){



			if (e.type === "touchmove"){

				IscrollInner.addClass("scrolling");

			}

			if (e.type === "touchend"){

				IscrollInner.removeClass("scrolling");

			}

			

				if (e.type === "touchstart"){

						ImaxScrollY = IscrollInner.height();

						IstartY = event.touches[0].clientY - IscrollOuterTop;

						IstartTop = IscrollInner.offset().top;

						

						

					}

					

					if (e.type === "touchmove"){

						

						

						ImoveingY = event.touches[0].clientY - IscrollOuterTop;

						

								if (IstartY > ImoveingY) {

									

									  /*MOVE UP / SCROLL DOWN DIRECTION */

									  

									IscrollInner.css("top", "-" + (IstartY - ImoveingY - IstartTop) + "px");

									

								 } else {

									 

									 /*MOVE DOWN / SCROLL UP DIRECTION */

									

									

									var Itop = (ImoveingY - IstartY + IstartTop);

										

									IscrollInner.css('top', Itop + 'px');

									

								 }

				

					}

					

					if (e.type === "touchend"){

						

									if (IscrollInner.offset().top < ( (ImaxScrollY + IscrollOuterTop - window.innerHeight) * -1) && ImaxScrollY + IscrollOuterTop > window.innerHeight){
										
				
											IscrollInner.stop().animate({"top" : ( ($("#items").height() - window.innerHeight + IscrollOuterTop) * - 1) + "px"}, 300);

											
										}else if (IscrollInner.offset().top > 0 || ImaxScrollY + IscrollOuterTop < window.innerHeight){

											

											IscrollInner.stop().animate({"top" : "0px"}, 300);
	

										}

						

					}

					

}





	

}//ITEMS SCROLLING








// 						//
// 	CONTACT SCROLLING	//
//						//


function contactScrollable(e){


CscrollOuter = $(this);
CscrollOuterTop = CscrollOuter.offset().top;
CscrollInner = CscrollOuter.find("div").eq(0);

if(CscrollInner.height() + CscrollOuterTop > $(window).height()){
	
	
	if (e.type === "touchstart"){
		
			CmaxScrollY = CscrollInner.height();
			CstartY = event.touches[0].clientY - CscrollOuterTop;
			CstartTop = CscrollInner.offset().top - CscrollOuterTop;	
			
			

	}
	
	
	if (e.type === "touchmove"){
		
		
				CmoveingY = event.touches[0].clientY - CscrollOuterTop;
				
						if (CstartY > CmoveingY) {
						
							  /*MOVE UP / SCROLL DOWN DIRECTION */
						
							CscrollInner.css("top", "-" + (CstartY - CmoveingY - CstartTop) + "px");
						
						
						 } else {
						
							 /*MOVE DOWN / SCROLL UP DIRECTION */
						
							var Ctop = (CmoveingY - CstartY + CstartTop);
						
							CscrollInner.css('top', Ctop + 'px');
						
						 }
		
					
		}	
		
		
	if (e.type === "touchend"){
		
			
			if (CscrollInner.offset().top < ( (CmaxScrollY - window.innerHeight) * - 1) && CmaxScrollY + CscrollOuterTop > window.innerHeight){
	
					CscrollInner.stop().animate({"top" : ( (CscrollInner.height() - window.innerHeight + CscrollOuterTop) * - 1) + "px"}, 300);
		
	
			}else if (CscrollInner.offset().top > 0 || CmaxScrollY + CscrollOuterTop < window.innerHeight){
	
					CscrollInner.stop().animate({"top" : "0px"}, 300);
	
			}
	}

	
}




}//CONTACT SCROLLING





