function $( id ) {
	return document.getElementById( id );
}


document.getElementsByClassName = function( classname, tagname ) {
	var elements = document.all ? document.all : document.getElementsByTagName('*'), result = new Array();
	
	for (var i = 0; i < elements.length; i++) {
		if ( elements[i].className == classname ) {
			if ( tagname && elements[i].tagName.toLowerCase() == tagname.toLowerCase() ) {
				result[result.length] = elements[i];
			} else if ( !tagname ) {
				result[result.length] = elements[i];
			} else {
				continue;
			}
		}
	}

	return result;
}


function elementEventBinder() {}

elementEventBinder.prototype = {

	_eventBind : function( elements ) {

		for ( var clues in elements ) {
			var cluesname, tagname, events, sep = (clues.indexOf('.') == -1) ? '#' : '.';
			
			var frontarray = clues.split( sep );
			tagname = (sep == '#') ? false : frontarray[0];
			
			var behindarray = frontarray[1].split('@');
			cluesname = behindarray[0];
			events = behindarray[1];

			var thisele = (sep == '#') ? [$(cluesname)] : document.getElementsByClassName( cluesname, tagname );
			this.bind( thisele, events, elements[clues] );
		}
	},

	bind : function( _element, _event, _prototype ) {
		for ( var i = 0; i < _element.length; i++ ) {
			switch ( _event ) {
				case 'onclick' : _element[i].onclick = _prototype; break;
				case 'onchange' : _element[i].onchange = _prototype; break;
				case 'onmouseout' : _element[i].onmouseout = _prototype; break;
			}
		}
	}
}

var elementEventBinder = new elementEventBinder;



var httpRequest = new Object();

httpRequest.contentLoader = function() {}

httpRequest.contentLoader.prototype = {

	initialize : function() {
		if ( window.XMLHttpRequest )
			this.HttpRequest = new XMLHttpRequest();
		if ( window.ActiveXObject )
			this.HttpRequest = new ActiveXObject( 'Microsoft.XMLHTTP' );
	},

	sendHttpRequest : function( http_method, http_url, http_param ) {
		this.HttpRequest.open( http_method, http_url, true );
		this.HttpRequest.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
		this.HttpRequest.send( http_param );
	},
	
	setHttpRequestParam : function( ParamArguments ) {
		var httpParam = '', ObjectName, i = 0;

		for ( ObjectName in ParamArguments ) {
			( i > 0 ) ? httpParam += '&' : httpParam += '';
			httpParam += ObjectName + '=' + escape( ParamArguments[ObjectName] );
			i = i + 1;
		}

		return httpParam;
	}
}


var givenInfomation = function( infomation ) {

	if ( infomation == false && $('gvinfo') ) {
		$('gvinfo').parentNode.removeChild( $('gvinfo') );
	}

	if ( infomation ) {
		if ( $('gvinfo') ) $('gvinfo').parentNode.removeChild( $('gvinfo') );

		var infomationElement = document.createElement( 'div' );
		with ( infomationElement ) {
			id = 'gvinfo';
			className = 'gvInfomation';
			innerHTML = infomation;
		}

		document.body.appendChild( infomationElement );
	}
}



function pagePlugins() {}

pagePlugins.prototype = {

	alphaMasker : function( command ) {
		switch ( command ) {
			case 'mask' :
			if ( $( 'pagemasker' ) ) return;
			var maskElement = document.createElement( 'div' );
			maskElement.id = 'pagemasker';
			maskElement.className = 'pagemasker';

			with ( maskElement.style ) {
				filter = " Alpha(Opacity=30)";
				opacity = 30/100;
				width = document.body.clientWidth + 'px';
				height = document.body.clientHeight + 100 + 'px';
				if ( document.body.clientHeight + 100 < 690 ) height = '690px';
				//height = screen.height;
			}

			document.body.style.overflow = "hidden";
			document.body.appendChild( maskElement );
			break;

			case 'close' :
			if ( $( 'pagemasker' ) )
				$( 'pagemasker' ).parentNode.removeChild( $('pagemasker') );
			break;
		}
	},

	putElementToCenter : function( _element ) {
		var totleWidth = document.body.clientWidth, elementWidth = _element.clientWidth;

		var elementLeft = (totleWidth - elementWidth)/2;
		_element.style.left = elementLeft + 'px';
		_element.style.top = '168px';
	},

	getConfirm : function ( infomation ) {
		if ( confirm( infomation ) == true )
			return true;
		else
			return false;
	}
}

var pagePlugins = new pagePlugins;


function showlogindiv(e) {
	var logindiv = document.getElementById('logindiv');
	if (logindiv.style.display == 'block')
	{
		logindiv.style.display = 'none';
	} else if (logindiv.style.display == 'none')
	{
		logindiv.style.display = 'block';
	}
}
