// jslib.jso


// Abstract Class
var Class = {
create: function() {
			return function() {
				this.initialize.apply(this, arguments);
			}
		}
}


Object.extend = function(desc, src) {
	for( property in src) {
		desc[property] = src[property];
	}
	return desc;
}

// JSUTBrower Class
var JSUTBrower = Class.create();
JSUTBrower.prototype = {
	initialize: function() {
		this.userAgent = navigator.userAgent;
		this.browser = this.getBrowser();
		this.os	= this.getOsInfo();
	},

	getBrowser: function() {
		var a, ua = this.userAgent;
		if(      ((a=ua.split('AppleWebKit/')[1])?a.split('(')[0]:0)>=124 )     return 'safari';
		else if( ((a=ua.split('Konqueror/')[1])?a.split(';')[0]:0)>=3.3 )       return 'konqueror';
		else if( ((a=ua.split('Gecko/')[1])?a.split(" ")[0]:0) >= 20011128 )    return 'mozilla';
		else if( (!!window.opera) && ((typeof XMLHttpRequest)=='function') )    return 'opera';
		else if( (!!window.ActiveXObject)?(document.all):false )                return 'msie';
		return null;
	},

	getOsInfo: function() {
		var ua = navigator.userAgent;

		if(ua.indexOf("Windows") != -1) return "Windows";
		else if(ua.indexOf("NT") != -1) return "Windows";
		else if(ua.indexOf("Linux") != -1) return "Linux";
		else if(ua.indexOf("Macintosh") != -1) return "Mac";
		else return "";
	}	
}


// JSUTText	Class
var JSUTText = {
	isAlphaNum: function( str ) {
		var restr		= '^[0-9a-z]+$';
		var regexp		= new RegExp( restr, 'gi' );

		// check length
		if( str.length <= 0 )				return false;

		// check regular expression
		if( regexp.test( str ) == false )	return false;

		return true;

	},

	isValidEmailForm: function(str) {
		var emaillength	= str.length;
		var atmark		= str.split('@');
		var resfir		= '^[0-9a-z]([\-\_\.]?[0-9a-z])+$';
		var ressec		= '^[0-9a-z]([\-\_\.]?[0-9a-z])+[a-z]$';
		var regexpfir	= new RegExp( resfir, 'gi' );
		var regexpsec	= new RegExp( ressec, 'gi' );

		// check length
		if( emaillength < 5 )					return false;
		if( atmark.length != 2 )				return false;
		if( atmark[0].length < 1 )				return false;
		if( atmark[1].length < 3 )				return false;

		// check regular expression
		if( regexpfir.test( atmark[0] ) == false )	return false;
		if( regexpsec.test( atmark[1] ) == false )	return false;

		return true;
	}
}
