/*----------------------------------------------------
	
	jsONLOAD.js
	
----------------------------------------------------*/

var isresponse;

$(document).ready(function(){
	
	var bodyid = $('body').attr('id');
	
	// A. Close Response Messages
	//------------------------------------------------------------------------------------------

	$('.msg-response').bind("click", function(){
		if($('.msg-response').is(':visible')){
			$(".msg-response").slideUp();
		}
	});

	// B. Avatar
	//------------------------------------------------------------------------------------------

	$('#email').parent().append('<span id="avatar"><img src="http://www.gravatar.com/avatar/6dc160720961395e9afaec3168b48564?d=http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=35&s=35" alt="Avatar" /><span>&nbsp;</span></span>');
	if(bodyid == 'contact' || bodyid == 'single'){
		getAvatar('email');
	}
	$('#email').keyup(function(){
		getAvatar('email');
	});
	
	
	// C. In Page Links
	//------------------------------------------------------------------------------------------
	
	$('a.in-link').click(function(){  
 		if(location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname){
			var $target = $(this.hash);
			$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
			if($target.length){
				var targetOffset = $target.offset().top;
				$('html,body').animate({scrollTop: targetOffset}, 900);
				return false;
			}
		}  
  	});
	
	// D. Input Hints
	//------------------------------------------------------------------------------------------	
	$('input[type="text"]').each(function(){			  
		if(!$(this).val()){
			this.value = $(this).attr('title');
		}
		$(this).focus(function(){
			if(this.value == $(this).attr('title')) {
				this.value = '';
			}
		});
		$(this).blur(function(){
			if(this.value == '') {
				this.value = $(this).attr('title');
			}
		});
	});

	
	// E. Search Form Focus
	//------------------------------------------------------------------------------------------	

	$('#search-form input[type="text"]').focus(function(){
		$(this).parent().addClass('focus');
	});
	$('#search-form input[type="text"]').blur(function(){
		$(this).parent().removeClass('focus');
	});

	
	// F. Comment Validation
	//------------------------------------------------------------------------------------------	
	
	$('#comment-submit').hide();
	$('#comment-submit').after('<a id="comment-link-button">Send<\/a>')
	$('#comment-link-button').click(function(){
		var form = $(this).parent().parent().attr('id');
		formValidation(form);
	});
	
	// B. Background Image
	//------------------------------------------------------------------------------------------
	
	$('img.bkgimg').maxImage({
		isBackground: true,
		position: 'absolute',
		horizontalOffset: 40
	});

	
});


// 01. trim
//------------------------------------------------------------------------------------------

function trim(txt){
	var str = txt.replace(/^\s+/,'');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;	
}


// 02. getAvatar
//------------------------------------------------------------------------------------------

function getAvatar(id){
	email = $('#'+id).val();
	urlstring = md5(trim(email));
	$('#avatar img').attr("src","http://www.gravatar.com/avatar/"+urlstring+"?d=http://www.gravatar.com/avatar/ad516503a11cd5ca435acc9bb6523536?s=35&s=35 />");
}


// 03. formValidation
//------------------------------------------------------------------------------------------

function formValidation(id){
	
	isresponse = false;
	$(".msg-response").remove();
	if($('#admintest').val() != 'true'){
		$('.warning').removeClass('warning');
		$("#"+id+" input[type='text']").each(function(){
			if(!$(this).hasClass('optional')){
				inputValidation($(this).attr('id'));
			}
		});
		$("#"+id+" textarea").each(function(){
			if(!$(this).hasClass('optional')){
				inputValidation($(this).attr('id'));
			}
		});
	}
	if(isresponse == false){
		$('#'+id).submit();
	}

}


// 04. inputValidation
//------------------------------------------------------------------------------------------

function inputValidation(id){
	if($('#'+id).val()=="" && id != 'security'){
		msgResponse(id);
		$('#'+id).addClass('warning');
	}else if($('#'+id).val()!="" && id == 'security'){
		if(isresponse == false){
			msgResponse('security','Please ensure the hidden security field is empty');
		}
		$('#'+id).addClass('input_warning');
	}
	if(id == 'email'){
		emailValidation(id);
	}
	
}


// 05. emailValidation
//------------------------------------------------------------------------------------------

function emailValidation(obj){
	var emailStr = $('#'+obj).val()
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)!£$%^&*()+='#~?<>@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s" + specialChars + "\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+';var word="(" + atom + "|" + quotedUser + ")";var userPat=new RegExp("^" + word + "(\\." + word + ")*$");var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");var matchArray=emailStr.match(emailPat)
	if ((matchArray==null) && isresponse==false){message(obj,"Email address seems incorrect (check @ and .'s)")}
	if (isresponse==false){var user=matchArray [1];var domain=matchArray [2];if (user.match(userPat)==null){message(obj,"The username doesn't seem to be valid.")}}
	if (isresponse==false){var IPArray=domain.match(ipDomainPat);if (IPArray!=null){for (var j=1;j<=4;j++){if (IPArray[j]>255){message(obj,"Destination IP address is invalid!")}}}}
	if (isresponse==false){var domainArray=domain.match(domainPat);if (domainArray==null){message(obj,"The domain name doesn't seem to be valid.")}}
	if (isresponse==false){var atomPat=new RegExp(atom,"g");var domArr=domain.match(atomPat);var len=domArr.length;if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3){message(obj,"The address must end in a three-letter domain, or two letter country.")}}
	if ((len<2) && isresponse==false){msgResponse(obj,"This address is missing a hostname!")}
}


// 06. msgResponse
//------------------------------------------------------------------------------------------

function msgResponse(id,msg){

	if(!msg){
		msg = "Please ensure you have entered all the required information";
	}
	if(isresponse == false){
		$('#'+id).parent().parent().before("<div id='msg-error' class='msg-response' style='display:none;'>"+msg+"<span>&nbsp;</span></div>");
		$('.msg-response').slideDown();
		isresponse = true;
		$('.msg-response').bind("click", function(){
			if($('.msg-response').is(':visible')){
				$(".msg-response").remove();
			}
		});
	}
	
}


/*----------------------------------------------------
	
	jsENCODING.js
	
----------------------------------------------------*/

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('m 1J(1F){e C=(1F+\'\');e 1c="";e u,B;e 1t=0;u=B=0;1t=C.R;1r(e n=0;n<1t;n++){e p=C.1K(n);e Y=1M;q(p<1l){B++}1g q(p>1Y&&p<2h){Y=19.1d((p>>6)|28)+19.1d((p&1o)|1l)}1g{Y=19.1d((p>>12)|2b)+19.1d(((p>>6)&1o)|1l)+19.1d((p&1o)|1l)}q(Y!==1M){q(B>u){1c+=C.1B(u,B)}1c+=Y;u=B=n+1}}q(B>u){1c+=C.1B(u,C.R)}l 1c}m 2g(w){e 1s;e G=m(T,1z){l(T<<1z)|(T>>>(32-1z))};e f=m(1f,1i){e 1h,1m,E,D,A;E=(1f&1p);D=(1i&1p);1h=(1f&1k);1m=(1i&1k);A=(1f&1L)+(1i&1L);q(1h&1m){l(A^1p^E^D)}q(1h|1m){q(A&1k){l(A^1Q^E^D)}1g{l(A^1k^E^D)}}1g{l(A^E^D)}};e 1N=m(x,y,z){l(x&y)|((~x)&z)};e 1G=m(x,y,z){l(x&z)|(y&(~z))};e 1H=m(x,y,z){l(x^y^z)};e 1D=m(x,y,z){l(y^(x|(~z)))};e h=m(a,b,c,d,x,s,t){a=f(a,f(f(1N(b,c,d),x),t));l f(G(a,s),b)};e g=m(a,b,c,d,x,s,t){a=f(a,f(f(1G(b,c,d),x),t));l f(G(a,s),b)};e j=m(a,b,c,d,x,s,t){a=f(a,f(f(1H(b,c,d),x),t));l f(G(a,s),b)};e i=m(a,b,c,d,x,s,t){a=f(a,f(f(1D(b,c,d),x),t));l f(G(a,s),b)};e 1A=m(w){e v;e K=w.R;e 1y=K+8;e 1I=(1y-(1y%1C))/1C;e 1n=(1I+1)*16;e r=1R 1P(1n-1);e V=0;e o=0;1O(o<K){v=(o-(o%4))/4;V=(o%4)*8;r[v]=(r[v]|(w.1K(o)<<V));o++}v=(o-(o%4))/4;V=(o%4)*8;r[v]=r[v]|(2a<<V);r[1n-2]=K<<3;r[1n-1]=K>>>29;l r};e 1a=m(T){e 1j="",1e="",1v,P;1r(P=0;P<=3;P++){1v=(T>>>(P*8))&2d;1e="0"+1v.27(16);1j=1j+1e.26(1e.R-2,2)}l 1j};e x=[],k,1x,1w,1q,1u,a,b,c,d,I=7,S=12,Q=17,O=22,N=5,M=9,L=14,U=20,H=4,F=11,J=16,W=23,Z=6,X=10,18=15,1b=21;w=25.1J(w);x=1A(w);a=2f;b=2e;c=2c;d=1Z;1s=x.R;1r(k=0;k<1s;k+=16){1x=a;1w=b;1q=c;1u=d;a=h(a,b,c,d,x[k+0],I,1S);d=h(d,a,b,c,x[k+1],S,1T);c=h(c,d,a,b,x[k+2],Q,1X);b=h(b,c,d,a,x[k+3],O,1W);a=h(a,b,c,d,x[k+4],I,1V);d=h(d,a,b,c,x[k+5],S,1U);c=h(c,d,a,b,x[k+6],Q,24);b=h(b,c,d,a,x[k+7],O,2m);a=h(a,b,c,d,x[k+8],I,3e);d=h(d,a,b,c,x[k+9],S,35);c=h(c,d,a,b,x[k+10],Q,2R);b=h(b,c,d,a,x[k+11],O,2Q);a=h(a,b,c,d,x[k+12],I,2Z);d=h(d,a,b,c,x[k+13],S,2i);c=h(c,d,a,b,x[k+14],Q,2Y);b=h(b,c,d,a,x[k+15],O,2X);a=g(a,b,c,d,x[k+1],N,30);d=g(d,a,b,c,x[k+6],M,33);c=g(c,d,a,b,x[k+11],L,2W);b=g(b,c,d,a,x[k+0],U,2V);a=g(a,b,c,d,x[k+5],N,2P);d=g(d,a,b,c,x[k+10],M,2S);c=g(c,d,a,b,x[k+15],L,2T);b=g(b,c,d,a,x[k+4],U,34);a=g(a,b,c,d,x[k+9],N,36);d=g(d,a,b,c,x[k+14],M,38);c=g(c,d,a,b,x[k+3],L,39);b=g(b,c,d,a,x[k+8],U,3a);a=g(a,b,c,d,x[k+13],N,3d);d=g(d,a,b,c,x[k+2],M,37);c=g(c,d,a,b,x[k+7],L,3b);b=g(b,c,d,a,x[k+12],U,3c);a=j(a,b,c,d,x[k+5],H,31);d=j(d,a,b,c,x[k+8],F,2N);c=j(c,d,a,b,x[k+11],J,2s);b=j(b,c,d,a,x[k+14],W,2r);a=j(a,b,c,d,x[k+1],H,2t);d=j(d,a,b,c,x[k+4],F,2u);c=j(c,d,a,b,x[k+7],J,2w);b=j(b,c,d,a,x[k+10],W,2v);a=j(a,b,c,d,x[k+13],H,2q);d=j(d,a,b,c,x[k+0],F,2p);c=j(c,d,a,b,x[k+3],J,2k);b=j(b,c,d,a,x[k+6],W,2j);a=j(a,b,c,d,x[k+9],H,2l);d=j(d,a,b,c,x[k+12],F,2O);c=j(c,d,a,b,x[k+15],J,2o);b=j(b,c,d,a,x[k+2],W,2n);a=i(a,b,c,d,x[k+0],Z,2x);d=i(d,a,b,c,x[k+7],X,2y);c=i(c,d,a,b,x[k+14],18,2I);b=i(b,c,d,a,x[k+5],1b,2H);a=i(a,b,c,d,x[k+12],Z,2J);d=i(d,a,b,c,x[k+3],X,2K);c=i(c,d,a,b,x[k+10],18,2M);b=i(b,c,d,a,x[k+1],1b,2L);a=i(a,b,c,d,x[k+8],Z,2G);d=i(d,a,b,c,x[k+15],X,2F);c=i(c,d,a,b,x[k+6],18,2A);b=i(b,c,d,a,x[k+13],1b,2z);a=i(a,b,c,d,x[k+4],Z,2B);d=i(d,a,b,c,x[k+11],X,2C);c=i(c,d,a,b,x[k+2],18,2E);b=i(b,c,d,a,x[k+9],1b,2D);a=f(a,1x);b=f(b,1w);c=f(c,1q);d=f(d,1u)}e 1E=1a(a)+1a(b)+1a(c)+1a(d);l 1E.2U()}',62,201,'||||||||||||||var|addUnsigned|_GG|_FF|_II|_HH||return|function||lByteCount|c1|if|lWordArray||ac|start|lWordCount|str||||lResult|end|string|lY8|lX8|S32|rotateLeft|S31|S11|S33|lMessageLength|S23|S22|S21|S14|lCount|S13|length|S12|lValue|S24|lBytePosition|S34|S42|enc|S41|||||||||S43|String|wordToHex|S44|utftext|fromCharCode|wordToHexValue_temp|lX|else|lX4|lY|wordToHexValue|0x40000000|128|lY4|lNumberOfWords|63|0x80000000|CC|for|xl|stringl|DD|lByte|BB|AA|lNumberOfWords_temp1|iShiftBits|convertToWordArray|substring|64|_I|temp|argString|_G|_H|lNumberOfWords_temp2|utf8_encode|charCodeAt|0x3FFFFFFF|null|_F|while|Array|0xC0000000|new|0xD76AA478|0xE8C7B756|0x4787C62A|0xF57C0FAF|0xC1BDCEEE|0x242070DB|127|0x10325476|||||0xA8304613|this|substr|toString|192||0x80|224|0x98BADCFE|255|0xEFCDAB89|0x67452301|md5|2048|0xFD987193|0x4881D05|0xD4EF3085|0xD9D4D039|0xFD469501|0xC4AC5665|0x1FA27CF8|0xEAA127FA|0x289B7EC6|0xFDE5380C|0x6D9D6122|0xA4BEEA44|0x4BDECFA9|0xBEBFBC70|0xF6BB4B60|0xF4292244|0x432AFF97|0x4E0811A1|0xA3014314|0xF7537E82|0xBD3AF235|0xEB86D391|0x2AD7D2BB|0xFE2CE6E0|0x6FA87E4F|0xFC93A039|0xAB9423A7|0x655B59C3|0x8F0CCC92|0x85845DD1|0xFFEFF47D|0x8771F681|0xE6DB99E5|0xD62F105D|0x895CD7BE|0xFFFF5BB1|0x2441453|0xD8A1E681|toLowerCase|0xE9B6C7AA|0x265E5A51|0x49B40821|0xA679438E|0x6B901122|0xF61E2562|0xFFFA3942||0xC040B340|0xE7D3FBC8|0x8B44F7AF|0x21E1CDE6|0xFCEFA3F8|0xC33707D6|0xF4D50D87|0x455A14ED|0x676F02D9|0x8D2A4C8A|0xA9E3E905|0x698098D8'.split('|'),0,{}))