﻿(function(){
	var url = location.href;
	if(url.match(/\/\/www\./)){
		location.href = url.replace('//www.','//');
	}
})();


var CommonPackage = function(){};

CommonPackage.prototype = {
	getSharedDir : function() {
		var s = document.getElementsByTagName("script");
		var ptn = /(.*\/?js\/).+$/;
		var r = (s && s.length && s[0].src && s[0].src.match(ptn)) ? RegExp.$1 + '/' : '';
		return r;
	},

	require : function(){
		for(var i=0,l=arguments.length;i<l;i++){
			document.write('<script type="text/javascript" src="' + this.getSharedDir() + arguments[i] + '"><\/script>');
		}
	},
	
	init : function(){
		$.browser.addClass();
		$('*:first-child:not(code)').addClass('first-child');
		$('*:last-child:not(code)').addClass('last-child');
		$.gallery.init();
		$('ul.link a').FlickrGallery();
		$('pre:has(code)').addClass('code');
		prettyPrint();
//		dp.SyntaxHighlighter.HighlightAll('code',true,false,false,1,false);
		
		$('blockquote').each(function(){
			var citeStr;
			if(this.cite && this.title){
				citeStr = '<a href="' + this.cite + '">' + this.title + '</a>';
			}else if(this.cite){
				citeStr = '<a href="' + this.cite + '">' + this.cite + '</a>';
			}else if(this.title){
				citeStr = this.title;
			}
			if(citeStr){
				$(this).after($('<div class="cite"><cite>' + citeStr + '</cite></div>'));
			}
		});
		
		$('table.link tbody tr').addClass('blockLink');
		$('.blockLink').click(function(){
			location.href = $(this).find('a').attr('href');
		});
		

		if($.browser.msie){
			$('object, embed, applet, abbr').each(function(){
				this.outerHTML = this.outerHTML;
			});

			$('q').each(function(){
				this.innerHTML = '&#8175;' + this.innerHTML + '&#8176;';
			});

			try {
				document.execCommand("BackgroundImageCache",false,true);
			} catch(err){}

			$(':text, :password, :submit, textarea').focus(function(){$(this).addClass('focus');});
			$(':text, :password, :submit, textarea').blur(function(){$(this).removeClass('focus');});

			if($.browser.getVersion() < 7){
				$(':text').addClass('text');
				$(':submit').addClass('submit');
				$(':password').addClass('password');
				$("*").not(':submit').hover(
					function(){$(this).addClass("hover");},
					function(){$(this).removeClass("hover");}
				);
				$(':submit').hover(
					function(){$(this).addClass("submit-hover");},
					function(){$(this).removeClass("submit-hover");}
				)
				$(':submit').focus(
					function(){$(this).addClass("submit-focus");}
				)
				$(':submit').blur(
					function(){$(this).removeClass("submit-focus");}
				)
				$('.blockLink').hover(
					function(){$(this).addClass("blockLink-hover");},
					function(){$(this).removeClass("blockLink-hover");}
				)
			}
		}
	}	
};

$.fn.wrapInner = function(e) {
	return this.each(function(){
		var o = $(this);
		var c = o.html();
		o.empty().append(e).find(e).append(c).end();
	});
};

jQuery.browser.addClass = function(){
	var ua = navigator.userAgent;

	if(/Windows/.test(ua)){
		$.browser.os = 'win';
		$.browser.win = true;
	}
	if(/Mac/.test(ua)){
		$.browser.os = 'mac';
		$.browser.mac = true;
	}
	
	if($.browser.msie){
		$.browser.ua = 'msie';
	}
	if($.browser.opera){
		$.browser.ua = 'opera';
	}
	if($.browser.safari){
		$.browser.ua = 'safari';
	}
	if($.browser.mozilla){
		$.browser.ua = 'mozilla';
	}

	$('body').addClass('json');
	$('body').addClass($.browser.os);
	$('body').addClass($.browser.ua);
	$('body').addClass('ver'+$.browser.getVersion());

	if($.browser.msie){
		$('body').addClass('ie' + parseInt($.browser.getVersion()));
	}
}

jQuery.browser.getVersion = function(){
	var ua = navigator.userAgent;
	if(RegExp){
		if($.browser.msie){
			return ua.match(/MSIE (\d(.\d+)?)/)[1];
		}
		if($.browser.mozilla){
			return ua.match(/(\d(.\d+)?) \(/)[1];
		}
		if($.browser.opera){
			return ua.match(/Opera\/? ?(\d(\.\d+)?)/)[1];
		}
		return parseFloat(navigator.appVersion);
	}else{
		return undefined;
	}
}

var cp = new CommonPackage();
cp.require('prototypes.js');
cp.require('interface.js');
cp.require('jquery.color.js');
cp.require('jquery.gallery.js');
cp.require('jquery.flickr.js');
cp.require('prettify.js');
cp.require('dpsh/shCore.js');
cp.require('dpsh/shBrushCss.js');
cp.require('dpsh/shBrushJScript.js');
cp.require('dpsh/shBrushPhp.js');
cp.require('dpsh/shBrushXml.js');
$(cp.init);

