$(document).ready(function(){
	
	function trim(s){
		return rtrim(ltrim(s));
	}	
	function ltrim(s){
		var l=0;
		while(l < s.length && s[l] == ' '){
			l++;
		}
		return s.substring(l, s.length);
	}	
	function rtrim(s){
		var r=s.length -1;
		while(r > 0 && s[r] == ' '){
			r-=1;
		}
		return s.substring(0, r+1);
	}
	
	$(".hidden").hide();
	
	//** Start of ajax page slides **//
	
	//Create vars to store current left and right pages and set to defaults
	var curL = "home"; 
	var curR = "news";
	
	//Create an array to store the visitors path through the site
	var clickPath = new Array();
	//Get the current page as the start page of the path
	var startLoc = window.location.href;
	
	//Remove the preceeding host info so the link is document reletive
	//(if not it skips ajax and causes page reload for some reason)
	//startLoc = startLoc.replace("http://server/silvermover/","");
	startLoc = startLoc.replace("http://www.silvermover.com/","");
	
	//If after replace, the startLoc is empty, set to default
	if(startLoc==""){
		startLoc = "l/" + curL + "/r/" + curR;
	}
	clickPath[0] = startLoc;
	
	$(function() { //Oh god... this needs refactoring so badly...
		
		//
		var addHideHandler = function(){
			$(".hidden").unbind("hide").hide();
		};
		
		var addClickHandlers = function() {
			addHideHandler();
			
			//Catch clicks on these types of link for processing
			$("a.mainLink, a.subLink, a.top, a.bottom, dt.clickable, #back, .showAll").unbind('click').click(function(){
				//Page links
				
				var lft = $(this).attr("href");
				var rgt = $(this).attr("href");
				var butId = $(this).attr("id");
				if(butId=="back"){ //Back button clicked
					clickPath.pop(); //Remove the last item
					lft = clickPath[clickPath.length - 1]; 
					rgt = clickPath[clickPath.length - 1];
				}
				
				if(lft){ //main (left column) link clicked
					lft = lft.substring(lft.indexOf("/l/")+3);
					lft = lft.substring(0,lft.indexOf("/"));
					if(lft != curL && $(this).hasClass("mainLink")){
						$("#loader").show();
						$("#main").slideUp("slow",function(){
							$("#main").load("pages/" + lft + ".php",{},function(){
								$("#main").slideDown("slow",addClickHandlers);
								if(butId!="back"){ //Store click to the end of back button array
									clickPath.push("l/" + lft + "/r/" + curR);
								}
								$("#loader").hide();
							});
							curL = lft;
						});
					}
				}
				
				if(rgt){
					rgt = rgt.substring(rgt.indexOf("/r/")+3);
					//rgt = rgt.substring(0,rgt.indexOf("/"));
					if(rgt != curR && $(this).hasClass("subLink")){
						$("#loader").show();
						
						$('body').scrollTo(800,'linear');// edit 20 Jul 2009
						
						$("#sub").slideUp("slow",function(){
							$("#sub").load("pages/" + rgt + ".php",{},function(){
								$("#sub").slideDown("slow",addClickHandlers);
								if(butId!="back"){
									clickPath.push("l/" + curL + "/r/" + rgt);
								}
								$("#loader").hide();
								
								if(rgt=='we-are-hiring'){addResumeFunctionCheck();}
								
								
							});
							curR = rgt;
						});
					}
				}
				
				//Scrollers
				if($(this).hasClass("bottom")){
					$('#footer').scrollTo(800,addClickHandlers);
				}
				if($(this).hasClass("top")){
					$('#bodyWrap').scrollTo(800,addClickHandlers);
				}
				
				$(".showAll").click(function(){
					$(".hidden").slideDown();
				})
				
				//Slide panels
				if($(this).hasClass("clickable")){
					var toSlide = $(this).attr("class");
					toSlide = trim(toSlide.replace("clickable",""));
					$("dd." + toSlide).slideToggle();
				}
				
				/* //Testing the back button path array
				var str = "";
				for(i=0;i<=clickPath.length;i++){
					str += clickPath[i] + " ~ ";
				}
				alert(str);
				*/
				
				return(false);
			}) // end of "a" handler
		};
		
		addClickHandlers();
		addHideHandler();
	});
	jQuery.fn.extend({
		scrollTo : function(speed, easing) {
			return this.each(function() {
				var targetOffset = $(this).offset().top;
				$('html,body').animate({scrollTop: targetOffset}, speed, easing);
			});
		}
	});
	
	
	
	
});

// Add on 20 Jul 2009
	function addResumeFunctionCheck(){
		
		$('form#uploadResume').submit(function(){
			var pass=false;
			var reg=/^((([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;
			var pattern = "doc|docx|odt";
					var string=$('#rsmFile').val().toLowerCase();
			
			 if($('#rsmName').val()==''){
				alert('Put your name');
				$('#rsmName').focus();
			} else if ( !( reg.test( $('#rsmEmail').val() ) ) ) {
				alert('Invalid Email');
				$('#rsmEmail').focus();
			} else if($('#rsmFile').val()==''){
				alert( 'Please choose .doc or .docx or .odt file');
			}else{
					pass=true;
			}
			
				
			if(pass==true){
				$(this).attr({'action':'code/uploadResume.php'}).submit();	
			}else{
				return false;
			}
			
			}).find('input').focus(function(){
					$(this).css({'border':'1px solid #DB990C'});
				}).blur(function(){
					$(this).css({'border':'1px solid #A6A6A6'});
					});
	
		$('#rsmFile').change(function(){
				if($(this).val()) { 
					var pattern = "doc|docx|odt";
					var string=$(this).val().toLowerCase();
					if (string.match(new RegExp(".(" + pattern + ")$")) == null) {
						$(this).empty().val('');
						alert( 'Please choose .doc or .docx or .odt file');
						
					}
				}
			});
		
	}//n func
	
	

