// SITE.CLASS.JS

var SITE												= {

	'ADD':												function (name, object) {

		if (arguments.length > 0) {

			SITE[name]									= object;

		}

	},

	'REMOVE':											function (name) {

		if (arguments.length > 0) {

			delete SITE[name];

		}

	},

	'REDIRECT':											function (href) {

		try {

			if (typeof(href) == 'string') {

				document.location.href					= href;

			}

		}
		catch(e) {}

	},

	'TRY':											 	{

		'these':										function () {

			var returnValue;			

			for (var i = 0; i < arguments.length; i++) {

				var retval								= arguments[i];
				
				try {

					returnValue							= retval();
					break;

				}
				catch(e) {}

			}

			return returnValue;

		}

	},

	'BINDARRAY':										Array.from = function (iterable) {

		if (!iterable) {

			return [];

		}

		if (iterable.toArray) {

			return iterable.toArray();

		} 
		else {

			var results 								= [];

			for (var i = 0; i < iterable.length; i++)

				results.push(iterable[i]);

			return results;

		}

	},
	
	'TOGGLE':											function () {
		
		if (arguments.length) {

			for (var i = 0; i < arguments.length; i++) {
			
				var block								= document.getElementById(arguments[i]);
					
				try {
			
					if (block && block.style) {
					
						if (block.style.visibility == 'hidden') {

							block.style.visibility		= 'visible';
							block.style.display			= '';						
							
						}
						else if (block.style.visibility == 'visible' || block.style.visibility == '') {
							
							block.style.visibility		= 'hidden';
							block.style.display			= 'none';
						
						}
				
					}
				
				}
				catch(e) {}
				
			}
					
		}
		
	}

}

Function.prototype.bind 								= function() {

	var __method = this, args = SITE.BINDARRAY(arguments), object = args.shift();

	return function() {

		return __method.apply(object, args.concat(SITE.BINDARRAY(arguments)));

	}

}

Object.prototype._toString								= function () {

	return this.toString();

}

Object.prototype.__toArray								= function () {

	var object											= SITE.BINDARRAY(this._toArray());

	var str												= object._toString();

	var text											= str.valueOf();

	var array											= text.split(',');

	return array;

}

Object.prototype._toArray 								= function() {

	if (!this.length) throw("Can't convert");

	var result 											= [];

	for (var i = 0; i != this.length - 1; i++) {

		result.push(this[i]);

	}

	return(result);

}




// BROWSER.CLASS.JS

var BROWSER												= {


	'INIT':												function () {

		this.isIE										= ((navigator.userAgent.toLowerCase().indexOf("msie") != -1) ? true : false);
		this.isOP										= ((navigator.userAgent.toLowerCase().indexOf("opera") != -1) ? true : false);
		this.isFF										= ((navigator.userAgent.toLowerCase().indexOf("gecko") != -1)) ? true : false;


		this.isXML										= this.CHECKXML();

	},

	'CHECKXML':											function () {

		if (this.isIE) {

			try {

				var req									= new ActiveXObject("Microsoft.XMLHTTP");

				if (req) {

					delete req;

					return true;

				}
				else {

					return false;

				}
				
			}
			catch(e) {

				return false;

			}

		}
		else {

			try {

				var req									= new XMLHttpRequest();

				if (req) {

					delete req;
					return true;

				}
				else {

					return false;

				}

			}
			catch(e) {

				return false;

			}

		}

	}

}

BROWSER.INIT();

SITE.ADD('BROWSER',BROWSER);


// FIXPNG.JS

function fixPNG(element) {

	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent)) {

		var src;
	
		if (element.tagName.toUpperCase() == 'IMG')	{

			if (/\.png$/.test(element.src)) {

				src 									= element.src;
				element.src 							= '/_img/blank.gif';

			}
		}

		else
			{

			src 										= element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i);

			if (src) {

				src = src[1];
				
				element.runtimeStyle.backgroundImage	= 'none';
				if (element.currentStyle.backgroundRepeat == 'repeat-x') {
					
					var repeat							= 1;
					
				}
				else {
					
					var repeat							= 0;
					
				}
													
			}

		}

		if (src) {
			
			var method									= (repeat ? 'scale' : 'image');
			element.runtimeStyle.filter 				= "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='" + method + "')";
		
		}
	
	}
}



// URL.CLASS.JS

var URL													= {

	'HASH':												null,

	'HREF':												null,

	'INIT':												function () {

		this.HREF										= document.location.href;
		this.HASH										= document.location.hash;

		this.DETECTSHARP();

	},

	'DETECTSHARP':										function () {

		if (this.HASH) {

			var location								= this.HASH.replace(/#(.*)/gi,'$1');

			var pattern									= /aname=.*/ig;

			if (!location.match(pattern)) {

				this.REDIRECT(location);
				
			}

		}

	},

	'REDIRECT':											function (location) {

		document.location.href							= CONFIG.HOST + location + '/';

	}

}

URL.INIT();

SITE.ADD('URL',URL);
