/*
return element object by Id
@param string, object Id
@return element object
*/
function elId(id){return document.getElementById(id);}

/*
return element object by name
@param string, object name
@return element object
*/
function elName(name){return document.getElementByName(name);}

/**
 * trim value
 * @param string strToTrim. value to be trim.
 * @return string
 */
function trim(strToTrim)
{
	return strToTrim.replace(/^\s+|\s+$/g,"");
}

/**
 * set object visibility
 * @param string strObjName. object name.
 * @param boolean blnShow. true=visible | false=collapse
 */
function setObjVisibility(strObjName, blnShow)
{	
	var obj = elId(strObjName);
	if(obj == null) return;

	var strVisibleValue ;
//	if(blnShow == 'true') strVisibleValue = 'visible';
//	else strVisibleValue = 'collapse';
//	obj.style.visibility = strVisibleValue;
	
	if(blnShow == 'true')
	{
		obj.style.display = '';
		obj.style.visibility = 'visible';		
	}
	else obj.style.display = 'none';
}

/**
 * set object Div msg
 * @param string strObjName. regex.
 * @param string strMsg. msg
 * @param string strClassName. css class name
 */
function setDivMsg(strObjName, strMsg, strClassName)
{
	var obj = elId(strObjName);
	if(obj == null) return;
	if(typeof(strClassName) != 'undefined' && strClassName.length > 0) 
	{
		strMsg = "<span class='" + strClassName +"'>" + strMsg + "</span>";
	}
	obj.innerHTML  = strMsg;
}

/*
* Do submit
*/
function doSubmit(objCtrl)
{
	objCtrl.form.submit();
}

/*
* Do Client site language translation
*/
function lang(strKey)
{
	var translation = eval(strKey);
	if(translation == '') return strKey;
	return translation;
}

function escapeHTML (str)
{
   var div = document.createElement('div');
   var text = document.createTextNode(str);
   div.appendChild(text);
   return div.innerHTML;
}


/*
* Include a js file in a js file. same as includeJs2 
*/
function includeJs(strUrl)
{
	var str = '<script type="text/javascript" src="' + strUrl + '"></script>';
	document.write(str); 
}

/*
* Include a js file in a js file. same as includeJs 
*/
function includeJs2(strUrl)
{
	var body = document.getElementsByTagName('body').item(0);
	script = document.createElement('script');
	script.src = strUrl;
	script.type = 'text/javascript';
	body.appendChild(script);
}

function popWin(url, h, w) 
{
	var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;

	if(typeof(h) == 'undefined') h = 600;
	if(typeof(w) == 'undefined') w = 700;
	
	if (is_chrome)
	{
		w=window.open('about:blank', "W958b6e9ea6bed1f9c5288b15959dad77", "left=150,top=120,menubar=no,height="+h+",width="+w+",scrollbars=yes,resizable=yes");
		w.opener = null;
		w.document.location = url;
	}
	else
	{
		w=window.open(url, "W958b6e9ea6bed1f9c5288b15959dad77", "left=150,top=120,menubar=no,height="+h+",width="+w+",scrollbars=yes,resizable=yes");
	}
	w.focus();
} 

<!--
/*
 * cookie.js - mainly manipulate cookie handling which similar to backend php
 * Secondly manipulate serialize, url, security
 */
//serialize object
//Source from : http://www.coolcode.cn/andot/javascript-php-serialize-unserialize/171
//Source from : http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt
var core_serialize = {
	serialize:function(o){
		var p = 0, sb = [], ht = [], hv = 1;
		var classname = function(o) {
			if (typeof(o) == 'undefined' || typeof(o.constructor) == 'undefined') return '';
			var c = o.constructor.toString();
			c = core_serialize.utf16to8(c.substr(0, c.indexOf('(')).replace(/(^\s*function\s*)|(\s*$)/ig, ''));
			return ((c == '') ? 'Object' : c);
		};
		var is_int = function(n) {
			var s = n.toString(), l = s.length;
			if (l > 11) return false;
			for (var i = (s.charAt(0) == '-') ? 1 : 0; i < l; i++) {
				switch (s.charAt(i)) {
					case '0':
					case '1':
					case '2':
					case '3':
					case '4':
					case '5':
					case '6':
					case '7':
					case '8':
					case '9': break;
					default : return false;
				}
			}
			return !(n < -2147483648 || n > 2147483647);
		};
		var in_ht = function(o) {
			for (var k in ht) if (ht[k] === o) return k;
			return false;
		};
		var ser_null = function() {
			sb[p++] = 'N;';
		};
		var ser_boolean = function(b) {
			sb[p++] = (b ? 'b:1;' : 'b:0;');
		};
		var ser_integer = function(i) {
			sb[p++] = 'i:' + i + ';';
		};
		var ser_double = function(d) {
			if (isNaN(d)) d = 'NAN';
			else if (d == Number.POSITIVE_INFINITY) d = 'INF';
			else if (d == Number.NEGATIVE_INFINITY) d = '-INF';
			sb[p++] = 'd:' + d + ';';
		};
		var ser_string = function(s) {
			var utf8 = core_serialize.utf16to8(s);
			sb[p++] = 's:' + utf8.length + ':"';
			sb[p++] = utf8;
			sb[p++] = '";';
		};
		var ser_date = function(dt) {
			sb[p++] = 'O:4:"Date":7:{';
			sb[p++] = 's:4:"year";';
			ser_integer(dt.getFullYear());
			sb[p++] = 's:5:"month";';
			ser_integer(dt.getMonth() + 1);
			sb[p++] = 's:3:"day";';
			ser_integer(dt.getDate());
			sb[p++] = 's:4:"hour";';
			ser_integer(dt.getHours());
			sb[p++] = 's:6:"minute";';
			ser_integer(dt.getMinutes());
			sb[p++] = 's:6:"second";';
			ser_integer(dt.getSeconds());
			sb[p++] = 's:11:"millisecond";';
			ser_integer(dt.getMilliseconds());
			sb[p++] = '}';
		}
		var ser_array = function(a) {
			sb[p++] = 'a:';
			var lp = p;
			sb[p++] = 0;
			sb[p++] = ':{';
			for (var k in a) {
				if (typeof(a[k]) != 'function') {
					is_int(k) ? ser_integer(k) : ser_string(k);
					__serialize(a[k]);
					sb[lp]++;
				}
			}
			sb[p++] = '}';
		};
		var ser_object = function(o) {
			var cn = classname(o);
			if (cn == '') ser_null();
			else if (typeof(o.serialize) != 'function') {
				sb[p++] = 'O:' + cn.length + ':"' + cn + '":';
				var lp = p;
				sb[p++] = 0;
				sb[p++] = ':{';
				if (typeof(o.__sleep) == 'function') {
					var a = o.__sleep();
					for (var kk in a) {
						ser_string(a[kk]);
						__serialize(o[a[kk]]);
						sb[lp]++;
					}
				}
				else {
					for (var k in o) {
						if (typeof(o[k]) != 'function') {
							ser_string(k);
							__serialize(o[k]);
							sb[lp]++;
						}
					}
				}
				sb[p++] = '}';
			}
			else {
				var cs = o.serialize();
				sb[p++] = 'C:' + cn.length + ':"' + cn + '":' + cs.length + ':{' +cs + '}';
			}
		};
		var ser_pointref = function(R) {
			sb[p++] = 'R:' + R + ';';
		};
		var ser_ref = function(r) {
			sb[p++] = 'r:' + r + ';';
		};
		var __serialize = function(o) {
			if (o == null || o.constructor == Function) {
				hv++;
				ser_null();
			}
			else switch (o.constructor) {
				case Boolean: {
					hv++;
					ser_boolean(o);
					break;
				}
				case Number: {
					hv++;
					is_int(o) ? ser_integer(o) : ser_double(o);
					break;
				}
				case String: {
					hv++;
					ser_string(o);
					break;
				}
				case Date: {
					hv++;
					ser_date(o);
				}
				case Object:
				case Array: {
					var r = in_ht(o);
					if (r) {
						ser_pointref(r);
					}
					else {
						ht[hv++] = o;
						ser_array(o);
					}
					break;
				}
				default: {
					var r = in_ht(o);
					if (r) {
						hv++;
						ser_ref(r);
					}
					else {
						ht[hv++] = o;
						ser_object(o);
					}
					break;
				}
			}
		};
		__serialize(o);
		return sb.join('');
	},
	
	unserialize:function(ss) {
		var p = 0, ht = [], hv = 1;
		var unser_null = function() {
			p++;
			return null;
		};
		var unser_boolean = function() {
			p++;
			var b = (ss.charAt(p++) == '1');
			p++;
			return b;
		};
		var unser_integer = function() {
			p++;
			var i = parseInt(ss.substring(p, p = ss.indexOf(';', p)));
			p++;
			return i;
		};
		var unser_double = function() {
			p++;
			var d = ss.substring(p, p = ss.indexOf(';', p));
			switch (d) {
				case 'NAN': d = NaN; break;
				case 'INF': d = Number.POSITIVE_INFINITY; break;
				case '-INF': d = Number.NEGATIVE_INFINITY; break;
				default: d = parseFloat(d);
			}
			p++;
			return d;
		};
		var unser_string = function() {
			p++;
			var l = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			var s = core_serialize.utf8to16(ss.substring(p, p += l));
			p += 2;
			return s;
		};
		var unser_array = function() {
			p++;
			var n = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			var a = [];
			ht[hv++] = a;
			for (var i = 0; i < n; i++) {
				var k;
				switch (ss.charAt(p++)) {
					case 'i': k = unser_integer(); break;
					case 's': k = unser_string(); break;
					case 'U': k = unser_unicode_string(); break;
					default: return false;
				}
				a[k] = __unserialize();
			}
			p++;
			return a;
		};
		var unser_date = function() {
			var k, a = [];
			for (var i = 0; i < 7; i++) {
				p++;
				k = unser_string();
				p++;
				a[k] = unser_integer();
			}
			var dt = new Date(
				a['year'],
				a['month'] - 1,
				a['day'],
				a['hour'],
				a['minute'],
				a['second'],
				a['millisecond']
			);
			ht[hv++] = dt;
			return dt;
		}
		var unser_object = function() {
			p++;
			var l = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			var cn = core_serialize.utf8to16(ss.substring(p, p += l));
			p += 2;
			var n = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			if (cn == "Date" && n == 7) {
				return unser_date();
			}
			if (eval(['typeof(', cn, ') == "undefined"'].join(''))) {
				eval(['function ', cn, '(){}'].join(''));
			}
			var o = eval(['new ', cn, '()'].join(''));
			ht[hv++] = o;
			for (var i = 0; i < n; i++) {
				var k;
				switch (ss.charAt(p++)) {
					case 's': k = unser_string(); break;
					case 'U': k = unser_unicode_string(); break;
					default: return false;
				}
				if (k.charAt(0) == '\0') {
					k = k.substring(k.indexOf('\0', 1) + 1, k.length);
				}
				o[k] = __unserialize();
			}
			p++;
			if (typeof(o.__wakeup) == 'function') o.__wakeup();
			return o;
		};
		var unser_custom_object = function() {
			p++;
			var l = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			var cn = core_serialize.utf8to16(ss.substring(p, p += l));
			p += 2;
			var n = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			if (eval(['typeof(', cn, ') == "undefined"'].join(''))) {
				eval(['function ', cn, '(){}'].join(''));
			}
			var o = eval(['new ', cn, '()'].join(''));
			ht[hv++] = o;
			if (typeof(o.unserialize) != 'function') p += n;
			else o.unserialize(ss.substring(p, p += n));
			p++;
			return o;
		};
		var unser_unicode_string = function() {
			p++;
			var l = parseInt(ss.substring(p, p = ss.indexOf(':', p)));
			p += 2;
			var sb = [];
			for (var i = 0; i < l; i++) {
				if ((sb[i] = ss.charAt(p++)) == '\\') {
					sb[i] = String.fromCharCode(parseInt(ss.substring(p, p += 4), 16));
				}
			}
			p += 2;
			return sb.join('');
		};
		var unser_ref = function() {
			p++;
			var r = parseInt(ss.substring(p, p = ss.indexOf(';', p)));
			p++;
			return ht[r];
		};
		var __unserialize = function() {
			switch (ss.charAt(p++)) {
				case 'N': return ht[hv++] = unser_null();
				case 'b': return ht[hv++] = unser_boolean();
				case 'i': return ht[hv++] = unser_integer();
				case 'd': return ht[hv++] = unser_double();
				case 's': return ht[hv++] = unser_string();
				case 'U': return ht[hv++] = unser_unicode_string();
				case 'r': return ht[hv++] = unser_ref();
				case 'a': return unser_array();
				case 'O': return unser_object();
				case 'C': return unser_custom_object();
				case 'R': return unser_ref();
				default: return false;
			}
		};
		return __unserialize();
	},
	
	utf16to8:function(str){
		var out, i, len, c;
		out = "";
		len = str.length;
		for(i = 0; i < len; i++) {
			c = str.charCodeAt(i);
			if ((c >= 0x0001) && (c <= 0x007F)) {
				out += str.charAt(i);
			} else if (c > 0x07FF) {
				out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
				out += String.fromCharCode(0x80 | ((c >>  6) & 0x3F));
				out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
			} else {
				out += String.fromCharCode(0xC0 | ((c >>  6) & 0x1F));
				out += String.fromCharCode(0x80 | ((c >>  0) & 0x3F));
			}
		}
		return out;
	},

	utf8to16:function(str){
		var out, i, len, c;
		var char2, char3;

		out = "";
		len = str.length;
		i = 0;
		while(i < len) {
			c = str.charCodeAt(i++);
			switch(c >> 4)
			{ 
			  case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:
				// 0xxxxxxx
				out += str.charAt(i-1);
				break;
			  case 12: case 13:
				// 110x xxxx   10xx xxxx
				char2 = str.charCodeAt(i++);
				out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
				break;
			  case 14:
				// 1110 xxxx  10xx xxxx  10xx xxxx
				char2 = str.charCodeAt(i++);
				char3 = str.charCodeAt(i++);
				out += String.fromCharCode(((c & 0x0F) << 12) |
							   ((char2 & 0x3F) << 6) |
							   ((char3 & 0x3F) << 0));
				break;
			}
		}
		return out;
	}
};//end serialize object

// Url Object
var core_url = {
	getBaseDomain:function(){
		e = document.domain.split(/\./);
		if(e.length > 1) return (e[e.length-2] + "." +  e[e.length-1]) ;
		else return "";	  
	}
};//end url object

// Cookie Object
var core_cookie = {
	iExpiry : 0,
	sPath : '/',
	sDomain : '',
	bSecure : false,
	bHttpOnly : true,

	getTime:function(){
		var dTime = new Date();
		dTime.getTime();
		return Math.round(dTime/1000);
	},
	
	setExpiry:function(){
		this.iExpiry = this.getTime()- 3600;
	},

	addExpiryTime:function(iTime){
		this.iExpiry = this.getTime() + iTime;
	},

	setBaseDomain:function(){
		if(this.isLocalHost()) return;		
		this.sDomain = "." + core_url.getBaseDomain();
	},

	setFullDomain:function(){
		if(this.isLocalHost()) return;
		this.sDomain = "." + document.location.hostname ;
	},

	setOtherDomain:function(sDomain){
		this.sDomain = sDomain;
	},
	
	isLocalHost:function(){
		var sHost = document.location.hostname;
		if(sHost.search(/localhost/i)<0) return false;
		this.sDomain = 'core.cookie.dev';
		return true;
	},
	
	setSecure:function(){
		this.bSecure = true;
	},

	setPath:function(sPath){
		this.sPath = sPath;
	},

	getValue:function(sType, sSubKey){
		var sCookie = this.getCookie(sType);
		var aPart = new Array();
		if(sCookie != "")
		{
			sCookie = core_security.decodeValue(sCookie);
			aPart = core_serialize.unserialize(sCookie);
			if(typeof(sSubKey) == 'undefined') return aPart;	

			if(typeof(aPart[sSubKey]) != 'undefined') return aPart[sSubKey];
		}
		return "";
	},

	setValue:function(sType, mValue, sSubKey){
		var sCookie = this.getCookie(sType);
		var aPart = new Array(); 	
		var sValue;
		if(sCookie != "")
		{
			sCookie = core_security.decodeValue(sCookie);
			aPart = core_serialize.unserialize(sCookie);			
		}
		if(typeof(sSubKey) != 'undefined')
		{
			aPart[sSubKey] = mValue ; 
			sValue = core_serialize.serialize(aPart);
		}
		else
		{			
			sValue = core_serialize.serialize(mValue);			
		}
		sValue = core_security.encodeValue(sValue);
		return this.setCookie(sType, sValue);
	},

	setCookie:function(sName, sValue){
		var iExpiry = this.iExpiry ;
		var oDate = new Date();
		oDate.setTime(iExpiry * 1000);
		iExpiry = oDate.toGMTString();
		var sPath = this.sPath ;
		var sDomain = this.sDomain ;
		var bSecure = this.bSecure ;

		var sCookie = sName + "=" + escape ( sValue ) ;
		if ( iExpiry )	sCookie += "; expires=" + iExpiry;
		if ( sPath )	sCookie += "; path=" + escape ( sPath );
		if ( sDomain )	sCookie += "; domain=" + escape ( sDomain );	  
		if ( bSecure )	sCookie += "; secure";	  
		document.cookie = sCookie;
	},

	getCookie:function(sName){
		if (document.cookie.length>0){
			sStart=document.cookie.indexOf(sName + "=");
			if (sStart!=-1){ 
				sStart=sStart + sName.length+1; 
				sEnd=document.cookie.indexOf(";",sStart);
				if (sEnd==-1) sEnd=document.cookie.length;
				return unescape(document.cookie.substring(sStart,sEnd));
			} 
		}	
		return "";
	}
};//end cookie object

core_cookie.addExpiryTime(3600);
core_cookie.setBaseDomain();

// Security Object
var core_security = {	
	s:"",
	t:"",

	encodeValue:function(mValue){
		return this.doSwitch(mValue, true);
	},
	
	decodeValue:function(sValue){
		return this.doSwitch(sValue, false);		
	},
	
	doSwitch:function(sValue, bEncode)
	{
		if(sValue == "") return sValue;
		
		var aCode = this.getEncodeSource(bEncode);
		aStr = sValue.split("");
		var sNew = "";
		var sChar = "";
		for (var i=0; i< aStr.length; i++ )
		{
			sChar = aStr[i];
			if(typeof(aCode[sChar]) != 'undefined') sNew += aCode[sChar];
			else sNew += sChar;
		}
		return sNew;
	},
	
	getEncodeSource:function(bEncode)
	{
		var aCode = new Array();
		var sSource = this.s;
		var sTarget = this.t;

		var aSource = sSource.split("");
		var aTarget = sTarget.split("");

		if(bEncode)
		{
			for(var i=0; i<aSource.length; i++)
			{
				aCode[aSource[i]] = aTarget[i];
			}			
		}
		else
		{
			for(var i=0; i<aTarget.length; i++)
			{
				aCode[aTarget[i]] = aSource[i];
			}
		}
		return aCode;		
	}


};//end object security

//encode from http://iframe.in/
//core_security.s = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
eval(unescape('%63%6F%72%65%5F%73%65%63%75%72%69%74%79%2E%73%20%3D%20%22%61%62%63%64%65%66%67%68%69%6A%6B%6C%6D%6E%6F%70%71%72%73%74%75%76%77%78%79%7A%31%32%33%34%35%36%37%38%39%30%41%42%43%44%45%46%47%48%49%4A%4B%4C%4D%4E%4F%50%51%52%53%54%55%56%57%58%59%5A%22%3B'));
//core_security.t = "hijklVWXYZvwxyz123mnopqr4stu560ABCDEFG789HIJKQRSTLMNOPUabcdefg";
eval(unescape('%63%6F%72%65%5F%73%65%63%75%72%69%74%79%2E%74%20%3D%20%22%68%69%6A%6B%6C%56%57%58%59%5A%76%77%78%79%7A%31%32%33%6D%6E%6F%70%71%72%34%73%74%75%35%36%30%41%42%43%44%45%46%47%37%38%39%48%49%4A%4B%51%52%53%54%4C%4D%4E%4F%50%55%61%62%63%64%65%66%67%22%3B'));

//-->

function correctPNG() {// correctly handle PNG transparency in Win IE 5.5 & 6.
   var arVersion = navigator.appVersion.split("MSIE"); var version = parseFloat(arVersion[1]);
   if ((version >= 5.5) && (document.body.filters)) {
      for(var i=0; i<document.images.length; i++) {
         var img = document.images[i]; var imgName = img.src.toUpperCase();
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""; var imgClass = (img.className) ? "class='" + img.className + "' " : "";
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "; var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>";
            img.outerHTML = strNewHTML
            i = i-1;
         }
      }
   }    
}
if (window.addEventListener)
	window.addEventListener("onload", correctPNG, false);
else
	window.attachEvent("onload", correctPNG);
eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('9 3e(a,b,c,d){7(G(d)==\'I\')d=\'\';q e=2g+"/"+b+"/1I-3f-3g.2h?2i="+a+"&3h="+c+"&"+d;$.2j(e)}9 3i(a){q b=1k 1l();b[\'R\']=\'3j\';b[\'3k\']=\'1J\';b[\'3l\']=\'3m\';b[\'3n\']=\'1J\';b[\'3o\']=\'1J\';q c=r.H(\'3p[]\');q d=s;q e="";J(q i=0;i<c.w;i++){7(c[i].v==u)e=c[i].F}7(e==""){3q("2k 1K 3r 1m.");A s}q f=r.1n.2l.F;7(f.w>2m){f=f.M(0,2m)+\'...\'}q g=3s.3t();q h=2g+"/"+b[a]+"/1n.2h?3u="+e+"&2l="+f+"&2n="+a+"&2i="+g;$.2j(h,9(){2o()})}9 2o(){q a=r.L(\'3v\');B="<14 1L=\'2p\'></14><14 1L=\\"1n\\">3w 3x J 3y 1n.</14><14 1L=\'2p\'></14>";7(a!=S)a.X=B}9 3z(a){1M=D(\'1o-2q\');1N=D(\'1o-2r\');2s=2t(1M.F);1O=2t(1N.F);7((1O<2s)&&1O!=\'-1\'){7(a==u)1N.F=\'-1\';z 1M.F=\'-1\'}}9 3A(a,b,c,d){Y=3B(a,\'0,\'+d,s);7(Y==s){2u(b,\'u\');2v(b,\'2k 1K 3C 5 \'+c+\' 3D.\');3E(b,\'3F\');a.v=s;N(a,s,u)}z{2v(b,\'\');2u(b,\'s\')}}9 D(a){A r.L(a)}9 3G(a){D(a).K.Z=\'1p\';D(a).K.1P=\'3H\'}9 3I(a){D(a).K.Z=\'1q\';D(a).K.1P=\'3J\'}9 1Q(a){7(r.L){r.L(a).K.Z=\'1p\';r.L(a).K.T=\'1e\'}z{7(r.10){r.10[a].Z=\'1p\';r.10[a].T=\'1e\'}z{r.1f[a].K.Z=\'1p\';r.1f[a].K.T=\'1e\'}}}9 1R(a){7(r.L){r.L(a).K.Z=\'1q\';r.L(a).K.T=\'1S\'}z{7(r.10){r.10[a].Z=\'1q\';r.10[a].T=\'1S\'}z{r.1f[a].K.Z=\'1q\';r.1f[a].K.T=\'1S\'}}}9 1r(a){a.15=u}9 16(a){a.15=s}9 2w(a,b){7(r.L){r.L(a).X=b}z{7(r.10){r.10[a].X=b}z{r.1f[a].X=b}}}9 3K(a){a=r.H(a);J(i=0;i<a.w;i++){a[i].15=u}}9 3L(a){19=a;1s(19);a=r.H(a);J(i=0;i<a.w;i++){a[i].v=u;17(a[i]);N(a[i],s,u)}}9 3M(a){19=a;1s(19);a=r.H(a);J(i=0;i<a.w;i++){a[i].v=u;1T(a[i]);N(a[i],s,u)}}9 2x(a){19=a;1s(19);a=r.H(a);J(i=0;i<a.w;i++){a[i].v=u;17(a[i]);N(a[i],s,u)}}9 1s(a){a=r.H(a);J(i=0;i<a.w;i++){a[i].v=s;N(a[i],s,u);16(a[i])}}9 2x(a,b,c,d){2y(a,b,c);q e=0;7(G(c)==\'I\')c="";7(G(d)!=\'I\'){C=1t.1u.1v.1w(\'\',\'1U\',1t.1u.1v.1w(d)[0]);e=1}z{C=r.H(\'1a[]\')}J(i=0;i<C.w;i++){7(C[i].v&&C[i].15)Q;E=C[i].R;E=E.M(8);U=E.M(E.w-4,E.w);1g=E.M(0,3);7(b==0&&a==1&&(E==\'1x\'||U==\'1y\'||1g==\'1V\')&&e==0)Q;7(b==1&&a==0&&(E!=\'1x\'&&U!=\'1y\'))Q;7(c==E&&b==1&&a==0)Q;C[i].v=u;N(C[i],s,u);17(C[i])}}9 2y(a,b,c,d){q e=0;7(G(c)==\'I\')c="";7(G(d)!=\'I\'){C=1t.1u.1v.1w(\'\',\'1U\',1t.1u.1v.1w(d)[0]);e=1}z{C=r.H(\'1a[]\')}J(i=0;i<C.w;i++){7(C[i].v==s&&C[i].15==s)Q;E=C[i].R;E=E.M(8);U=E.M(E.w-4,E.w);1g=E.M(0,3);7(b==0&&a==1&&(E==\'1x\'||U==\'1y\'||1g==\'1V\')&&e==0)Q;7(b==1&&a==0&&(E!=\'1x\'&&U!=\'1y\'&&1g!=\'1V\'))Q;7(c==E&&b==1&&a==0)Q;C[i].v=s;N(C[i],s,u);16(C[i]);17(C[i]);1b=\'1W\'+C[i].R;V=D(1b);7(V!=S)16(V)}}9 3N(a){q b=r.H(a);J(q x=0;x<b.w;x++)N(b[x],s,u,u)}9 3O(a){q b=a.O;b=r.H(b);J(i=0;i<b.w;i++){N(b[i],s,u)}}9 3P(a,b){y=D(a);7(y==S)A;1X=D(b);7(1X==S)A;y.v=1X.v;N(y)}9 N(a,b,c,d){q e="2z";q f="3Q";7(a.v==u){a.11.1z=e}z{a.11.1z=f}7(G(b)==\'I\')b=s;7(G(d)==\'I\')d=s;2A(a,b,d);7(G(c)==\'I\')c=s;7(c==s)2B(a);1b=\'1W\'+a.R;V=D(1b);7(V!=S)V.v=a.v}1A.2C=9(a){7(!1Y.1Z.21){q b=[\'/\',\'.\',\'*\',\'+\',\'?\',\'|\',\'(\',\')\',\'[\',\']\',\'{\',\'}\',\'\\\\\'];1Y.1Z.21=1k 1A(\'(\\\\\'+b.3R(\'|\\\\\')+\')\',\'g\')}A a.1c(1Y.1Z.21,\'\\\\$1\')};9 2A(a,b,c){7(G(b)==\'I\')b=s;7(G(c)==\'I\')c=s;W=a.O;W=W.1c("[]","")+\'2D\';7(W==\'3S\')W=\'3T\';12=2E(a.3U);12=12.1c(\'&\',\'&3V;\');7(a.F!=3W&&a.F.M(0,2)==\'3X\')12=12+\' (3Y)\';7(12==\'\')A;q d=r.L(W);7(d==S)A;2F=\'<b>3Z 40: </b><41/>\';B=d.X;7(G(B)==\'I\'||B==\'\'){B=\', \'}z{B=B.M(27);B=\', \'+B+\', \'}2G=\', \'+12+\', \';7(a.v==u&&b==s&&a.15==s){B=B+12+\', \'}z 7(!c){q e=1k 1A(1A.2C(2G));B=B.1c(e,\', \')}7(B.w>4){B=B.M(2,(B.w-2));B=2F+B}z{B=\'\'}d.X=B}9 2B(a){7(G(2H)==\'9\')2H(a)}9 42(a,b){U=\'43\'+a;22=\'44\'+a;7(G(b)==\'I\'){q c=D(U);7(c.K.T==\'\'||c.K.T==\'1e\')b=u;z b=s}7(b){D(22).X=\'45 2I\';1R(U)}z{D(22).X=\'46 2I\';1Q(U)}}9 47(a){y=D(a);7(y==S)A;y.v=u;17(y)}9 17(a){W=a.O;Y=a.v;23=a.11.11.1z;1d=s;q b=r.H(W);J(x=0;x<b.w;x++){7(b[x].R==a.R&&1d==s){1d=u;Q}7(1d==s)Q;1B=b[x].11.11.1z;7(1B=="")Q;7(1B==23&&1d==u)2J;7(1B<23&&1d==u)2J;b[x].v=Y;N(b[x],u,u);7(Y)1r(b[x]);z 16(b[x]);1b=\'1W\'+b[x].R;V=D(1b);7(V!=S){7(Y)1r(V);z 16(V)}}}9 1T(a){W=\'2K[]\';Y=a.v;2L=a.F;q b=r.H(W);J(x=0;x<b.w;x++){1C=b[x].11.11.R;1C=1C.M(6);7(1C!=2L)Q;b[x].v=Y;N(b[x],u,u);7(Y)1r(b[x]);z 16(b[x])}}9 48(a){y=r.L(a);7(y!=S)1T(y)}9 49(a){y=r.L(a);7(y!=S)17(y)}9 4a(a){q b=a+"4b";q c=r.L(b);7(c.K.T==\'\'||c.K.T==\'1e\')1R(b);z 1Q(b);2M(a)}9 2M(a){q b=a+"2D";q c=2N(a);2w(b,c)}9 2N(a){q b=1l();7(a==\'2O\')b=1h(a,r.H(\'24[]\'));7(a==\'2P\')b=1h(a,r.H(\'25[]\'));7(a==\'2Q\'){q b=1h(a,r.H(\'1a[]\'));b=1h(a,r.H(\'2n[]\'),b[0],b[1],b[2])}7(G(b[0])!=\'I\')A b[0];A""}9 1h(a,b,c,d,e){q f=1;q g=0;q h=0;q j="";q k=2R(a);q l="4c";7(G(c)==\'I\'||c==k)q c="";7(G(d)!=\'I\')h=h+d;7(G(e)!=\'I\'&&e!=0){g=g+e;c=c.1c(" ... "+g+" 2S","")}f=f-h;7(f<=0)f=0;J(i=0;i<b.w;i++){7(b[i].v==u&&f>0){q m=r.4d(\'4e\');q n="";J(x=0;x<m.w;x++){7(m[x].4f==b[i].R){n=m[x].X}}c+=j+""+n+"";f--;h++;j=", "}z 7(b[i].v==u&&f==0){g++;h++}}7(h==0)c=k;z 7(f==0&&g>0){q o=" ... "+g+" 2S";c+=o}q p=1l();p[0]=c;p[1]=h;p[2]=g;A p}9 2R(a){7(a==\'2O\')A"26 24";7(a==\'2Q\')A"26 1a";7(a==\'2P\')A"26 25";A s}9 4g(a){2T(\'2U\');q b="";b=b+13(\'2U\');b=b+P(\'4h\');b=b+13(\'1m\');b=b+P(\'1a\',1);b=b+P(\'25\',1);b=b+P(\'24\',1);b=b+P(\'2K\',1);b=b+P(\'1P\',1);b=b+P(\'1I-1D\',1);b=b+P(\'4i\',1);b=b+P(\'C-4j-4k\',1);b=b+13(\'4l\');b=b+13(\'1o-2q\');b=b+13(\'1o-2r\');b=b+13(\'1E\');b=b+P(\'2V\');b=b+P(\'1E-1m\');b=b+13(\'1E-4m\');b=b+P(\'1I-4n\',1);b=b+1i(\'4o\');b=b+1i(\'2W\');b=b+1i(\'4p\');b=b+1i(\'4q\');7(b!=""){b=b.M(1,b.w);a=a+\'?\'+b}r.1a.4r=a}9 2T(a){7(D(a).F==D(a).4s)D(a).F=\'\'}9 13(a){y=D(a);7(y!=S){28=2E(y.F);7(28!="")A\'&\'+a+\'=\'+29(28)}A\'\'}9 P(a,b){1F=a;7(G(b)!=\'I\'&&b==1)1F=1F+\'[]\';y=r.H(1F);q c=\'\';J(i=0;i<y.w;i++){7(y[i].v&&y[i].15==s){c=c+y[i].F+\',\'}}7(c!=\'\'){c=c.M(0,c.w-1);c=\'&\'+a+\'=\'+29(c)}A c}9 1i(a){y=r.H(a);q b=\'\';J(i=0;i<y.w;i++){b=b+y[i].F}7(b!=\'\'){b=\'&\'+a+\'=\'+b}A b}9 29(a){q b=a;b=b.4t();b=4u(b);b=b.1c(/%20/g,\'+\');A b}1G="4v";9 4w(a,b,c,d,e){7(!d){d=b}7(!e){e=c}2X(1G,a,d,e,"4x","");2Y()}9 4y(){2a(1G).1H=4z}9 2Y(){2a(1G).1H=4A}9 2a(a){7(4B.4C.4D("4E")!=-1){A 4F[a]}z{A r[a]}}9 2X(a,b,c,d,e,f){q g=\'\';g+=\'<2Z 4G="4H:4I-4J-4K-4L-4M" \';g+=\'R="\'+a+\'" \';g+=\'4N="30://4O.31.32/4P/33/4Q/34/4R.4S#" \';g+=\'35="\'+c+\'" \';g+=\'1H="\'+d+\'">\';g+=\'<1j O="4T" F="\'+b+\'"/>\';g+=\'<1j O="36" F="\'+e+\'"/>\';g+=\'<1j O="37" F="38"/>\';g+=\'<1j O="39" F="\'+f+\'"/>\';g+=\'<1j O="3a" F="3b"/>\';g+=\'<3c 2W="\'+b+\'"\';g+=\' 35="\'+c+\'"\';g+=\' 1H="\'+d+\'"\';g+=\' 1D="4U/x-33-34"\';g+=\' O="\'+a+\'"\';g+=\' 3a="3b"\';g+=\' 37="38"\';g+=\' 36="\'+e+\'" \';g+=\' 39="\'+f+\'" \';g+=\' 4V="u" \';g+=\' 4W="30://4X.31.32/4Y/4Z">\';g+=\'</3c>\';g+=\'</2Z>\';r.50(g)}9 51(){q a=1k 1l("1E-1m","2V");q c=$("2b").2c("1U");q d=$("2b").2c("1K");q e=$("2b").2c("52");c.2d(\'[1D="3d"]\').53(\'\').54(\'55\');c.2d(\'[1D="56"]\').2e(9(){q t=$(2f);7(t.18(\'v\')&&($.57(t.18(\'O\'),a)==-1)){t.18(\'v\',\'\');t.58().59(\'2z\')}});q b="";c.2d(\':5a\').2e(9(){q t=$(2f);7(b!=t.18(\'O\')){b=t.18(\'O\');$(\'[O=\'+b+\']:v\').18(\'v\',\'\');t.18(\'v\',\'v\')}});$(\'14.5b\').3d(\'\');d.2e(9(){2f.5c=0})}',62,323,'|||||||if||function|||||||||||||||||var|document|false||true|checked|length||oCtrl|else|return|sHtml|field|getEl|iId|value|typeof|getElementsByName|undefined|for|style|getElementById|substring|updateThis|name|asGetCBList|continue|id|null|display|sKey|oSl|sName|innerHTML|bCheck|visibility|layers|parentNode|sDesc|asGetText|div|disabled|enableThis|toggleCb|attr|fieldName|location|sSL|replace|bStart|none|all|sKey2|getCheckBoxLabel|asGetHidden|param|new|Array|option|feedback|experience|hidden|visible|disableThis|uncheckAll|YAHOO|util|Dom|getElementsByClassName|90100|0000|className|RegExp|sParantCls|sParentSpe|type|salary|sCtrl|leaderboard_id|height|job|malaysia|select|class|oMin|oMax|iMax|position|hidediv|showdiv|block|toggleCbSpe|input|901|Sl|oCtrl2|arguments|callee||sRE|sLblKey|sStart|specialization|industry|Select||sVal|asUrlEncode|jobstreet_getFlash|form|find|filter|each|this|dPath|php|rnd|get|Please|fbmsg|1000|country|updFb|enter|min|max|iMin|Number|setObjVisibility|setDivMsg|updateInnerHtml|checkAllLoc|uncheckAllLoc|labelSelected|updateThisDesc|updateThisDetail|escape|Sel|trim|sLegend|sSearch|updateThisExternal|Options|break|role|iSpe|updateOptSel|getCheckBoxSet|qsSpe|qsInd|qsLoc|getDefLabelDesc|more|fixInputCaption|key|classified|src|jobstreet_writeFlash|jobstreet_shrink_leaderboard|object|http|macromedia|com|shockwave|flash|width|wmode|quality|high|flashvars|allowscriptaccess|always|embed|text|doSearchLog|search|log|cnt|sendFeedBack|indonesia|my|th|thailand|ph|sg|fb|alert|one|Math|random|fbid|fbCon|Thank|you|your|ctrlYoe|ctrlMaxSel|checkRequiredCb|maximum|only|setDivClass|errorReg|hideEl|absolute|showEl|static|disableAll|checkAll|checkAllSpe|updateThisScan|updateRadioSet|updateThisById|labelNormal|join|roleSel|specializationSel|alt|amp|70000|70|SG|Your|Selection|br|toggleSpeRole|optSpeRole|lblTogSpeRole|Hide|More|toggleCbById|toggleAllSpe|toggleAllLoc|toggleQs|Con|All|getElementsByTagName|label|htmlFor|doAdvanceSearch|area|qualification|of|study|nationality|currency|posted|campus|sort|order|href|title|toString|encodeURIComponent|homepage_leaderboard|jobstreet_setup_expleaderboard|transparent|jobstreet_expand_leaderboard|120|60|navigator|appName|indexOf|Microsoft|window|classid|clsid|D27CDB6E|AE6D|11cf|96B8|444553540000|codebase|download|pub|cabs|swflash|cab|movie|application|swliveconnect|pluginspage|www|go|getflashplayer|write|clearAdvanceSearch|textarea|val|trigger|blur|checkbox|inArray|parent|removeClass|radio|optConSel|selectedIndex'.split('|'),0,{}))
function getEl(sId){return document.getElementById(sId);}

function displayBanner()
{
	if(getEl('banner1')){getEl('header-right').innerHTML = getEl('bannerMY').innerHTML;}
	if(getEl('bannerCP1')){if(typeof(maxPageWidth)!='undefined'){getEl('bannerCP1').style.left=(maxPageWidth-368);}else{getEl('bannerCP1').style.left=(790-368);}
	getEl('bannerCP1').style.top=10;getEl('bannerCP1').style.visibility='visible';}
	if (getEl('bannerCP2')){if(typeof(maxPageWidth)!='undefined'){getEl('bannerCP2').style.left=(maxPageWidth-368+104);}else{getEl('bannerCP2').style.left=(790-368+104);}
	getEl('bannerCP2').style.top=10;getEl('bannerCP2').style.visibility='visible';}
	if(getEl('banner'))
	{
		sHtml = getEl('banner').innerHTML;
		bFound = sHtml.search("codebase");
		bFound = -1;
		if(bFound == -1) 
		{
			getEl('header-right').innerHTML = getEl('banner').innerHTML;
			getEl('banner').innerHTML = "";
		}
		else
		{
			getEl('banner').style.position = "static";
			getEl('banner').style.visibility = "visible";
		}
	}
}

/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.4.0
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.4.0",build:"733"});
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.4.0
*/
YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var G=[],F=true,C,H=false;for(C=0;C<arguments.length;++C){G.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var K=this.subscribers[C];if(!K){H=true;}else{if(!this.silent){}var J=K.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(G.length>0){A=G[0];}try{F=K.fn.call(J,A,K.obj);}catch(E){this.lastError=E;}}else{try{F=K.fn.call(J,this.type,G,K.obj);}catch(E){this.lastError=E;}}if(false===F){if(!this.silent){}return false;}}}if(H){var I=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){I.push(B[C]);}this.subscribers=I;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: '"+this.type+"', scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:4000,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(K){if(K&&3==K.nodeType){return K.parentNode;}else{return K;}},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];
},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(YAHOO.env.ua.IE&&I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){L[Q.EL].clearAttributes();}N=N-1;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var A=YAHOO.util.Event;A.on=A.addListener;if(A.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);A._dri=setInterval(function(){var C=document.createElement("p");try{C.doScroll("left");clearInterval(A._dri);A._dri=null;A._ready();C=null;}catch(B){C=null;}},A.POLL_INTERVAL);}else{if(A.webkit){A._dri=setInterval(function(){var B=document.readyState;if("loaded"==B||"complete"==B){clearInterval(A._dri);A._dri=null;A._ready();}},A.POLL_INTERVAL);}else{A._simpleAdd(document,"DOMContentLoaded",A._ready);}}A._simpleAdd(window,"load",A._load);A._simpleAdd(window,"unload",A._unload);A._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};
var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.4.0",build:"733"});
/*
Copyright (c) 2007, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.4.0
*/
YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function(){if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,"click",function(B){var A=YAHOO.util.Event.getTarget(B);if(A.type&&A.type.toLowerCase()=="submit"){YAHOO.util.Connect._submitElementValue=encodeURIComponent(A.name)+"="+encodeURIComponent(A.value);}});return true;}return false;})(),startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),uploadEvent:new YAHOO.util.CustomEvent("upload"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(E){var D,A;try{A=new XMLHttpRequest();D={conn:A,tId:E};}catch(C){for(var B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:E};break;}catch(C){}}}finally{return D;}},getConnectionObject:function(A){var C;var D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={};C.tId=D;C.isUpload=true;}if(C){this._transaction_id++;}}catch(B){}finally{return C;}},asyncRequest:function(F,C,E,A){var D=(this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();var B=(E&&E.argument)?E.argument:null;if(!D){return null;}else{if(E&&E.customevents){this.initCustomEvents(D,E);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(D,E,C,A);return D;}if(F.toUpperCase()=="GET"){if(this._sFormData.length!==0){C+=((C.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(F.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(F.toUpperCase()=="GET"&&(E&&E.cache===false)){C+=((C.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}D.conn.open(F,C,true);if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((F.toUpperCase()=="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(this._has_default_headers||this._has_http_headers){this.setHeader(D);}this.handleReadyState(D,E);D.conn.send(A||null);if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(D,B);if(D.startEvent){D.startEvent.fire(D,B);}return D;}},initCustomEvents:function(A,C){for(var B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this;var A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(F,G,A){var D,C;var B=(G&&G.argument)?G.argument:null;try{if(F.conn.status!==undefined&&F.conn.status!==0){D=F.conn.status;}else{D=13030;}}catch(E){D=13030;}if(D>=200&&D<300||D===1223){C=this.createResponseObject(F,B);if(G&&G.success){if(!G.scope){G.success(C);}else{G.success.apply(G.scope,[C]);}}this.successEvent.fire(C);if(F.successEvent){F.successEvent.fire(C);}}else{switch(D){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:C=this.createExceptionObject(F.tId,B,(A?A:false));if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}break;default:C=this.createResponseObject(F,B);if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}}this.failureEvent.fire(C);if(F.failureEvent){F.failureEvent.fire(C);}}this.releaseObject(F);C=null;},createResponseObject:function(A,G){var D={};var I={};try{var C=A.conn.getAllResponseHeaders();var F=C.split("\n");for(var E=0;E<F.length;E++){var B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=F[E].substring(B+2);}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0;var G="communication failure";var C=-1;var B="transaction aborted";var E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){if(this._has_default_headers){for(var B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);
}}}if(this._has_http_headers){for(var B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);}}delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers;this._default_headers={};this._has_default_headers=false;},setForm:function(K,E,B){this.resetFormState();var J;if(typeof K=="string"){J=(document.getElementById(K)||document.forms[K]);}else{if(typeof K=="object"){J=K;}else{return ;}}if(E){var F=this.createFrame(B?B:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=J;return ;}var A,I,G,L;var H=false;for(var D=0;D<J.elements.length;D++){A=J.elements[D];L=A.disabled;I=A.name;G=A.value;if(!L&&I){switch(A.type){case"select-one":case"select-multiple":for(var C=0;C<A.options.length;C++){if(A.options[C].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].attributes["value"].specified?A.options[C].value:A.options[C].text)+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].hasAttribute("value")?A.options[C].value:A.options[C].text)+"&";}}}break;case"radio":case"checkbox":if(A.checked){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(H===false){if(this._hasSubmitListener&&this._submitElementValue){this._sFormData+=this._submitElementValue+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}H=true;}break;default:this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);this.initHeader("Content-Type",this._default_form_header);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(A){var B="yuiIO"+this._transaction_id;var C;if(window.ActiveXObject){C=document.createElement("<iframe id=\""+B+"\" name=\""+B+"\" />");if(typeof A=="boolean"){C.src="javascript:false";}else{if(typeof secureURI=="string"){C.src=A;}}}else{C=document.createElement("iframe");C.id=B;C.name=B;}C.style.position="absolute";C.style.top="-1000px";C.style.left="-1000px";document.body.appendChild(C);},appendPostData:function(A){var D=[];var B=A.split("&");for(var C=0;C<B.length;C++){var E=B[C].indexOf("=");if(E!=-1){D[C]=document.createElement("input");D[C].type="hidden";D[C].name=B[C].substring(0,E);D[C].value=B[C].substring(E+1);this._formNode.appendChild(D[C]);}}return D;},uploadFile:function(D,M,E,C){var N=this;var H="yuiIO"+D.tId;var I="multipart/form-data";var K=document.getElementById(H);var J=(M&&M.argument)?M.argument:null;var B={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",E);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",H);if(this._formNode.encoding){this._formNode.setAttribute("encoding",I);}else{this._formNode.setAttribute("enctype",I);}if(C){var L=this.appendPostData(C);}this._formNode.submit();this.startEvent.fire(D,J);if(D.startEvent){D.startEvent.fire(D,J);}if(M&&M.timeout){this._timeOut[D.tId]=window.setTimeout(function(){N.abort(D,M,true);},M.timeout);}if(L&&L.length>0){for(var G=0;G<L.length;G++){this._formNode.removeChild(L[G]);}}for(var A in B){if(YAHOO.lang.hasOwnProperty(B,A)){if(B[A]){this._formNode.setAttribute(A,B[A]);}else{this._formNode.removeAttribute(A);}}}this.resetFormState();var F=function(){if(M&&M.timeout){window.clearTimeout(N._timeOut[D.tId]);delete N._timeOut[D.tId];}N.completeEvent.fire(D,J);if(D.completeEvent){D.completeEvent.fire(D,J);}var P={};P.tId=D.tId;P.argument=M.argument;try{P.responseText=K.contentWindow.document.body?K.contentWindow.document.body.innerHTML:K.contentWindow.document.documentElement.textContent;P.responseXML=K.contentWindow.document.XMLDocument?K.contentWindow.document.XMLDocument:K.contentWindow.document;}catch(O){}if(M&&M.upload){if(!M.scope){M.upload(P);}else{M.upload.apply(M.scope,[P]);}}N.uploadEvent.fire(P);if(D.uploadEvent){D.uploadEvent.fire(P);}YAHOO.util.Event.removeListener(K,"load",F);setTimeout(function(){document.body.removeChild(K);N.releaseObject(D);},100);};YAHOO.util.Event.addListener(K,"load",F);},abort:function(E,G,A){var D;var B=(G&&G.argument)?G.argument:null;if(E&&E.conn){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E&&E.isUpload===true){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(B){if(B&&B.conn){return B.conn.readyState!==4&&B.conn.readyState!==0;}else{if(B&&B.isUpload===true){var A="yuiIO"+B.tId;return document.getElementById(A)?true:false;}else{return false;}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};YAHOO.register("connection",YAHOO.util.Connect,{version:"2.4.0",build:"733"});
 /**
 * Validator Javascript set use fo:	
 *	1.	Form Javascript validation set
 * File: validator.js
 *
 * @Created clloke <chenlin@jobstreet.com>
 */

/**
 * Casting Data Type
 * @param string sText. value to be cast.
 * @param string sType. data type
 * @return mix cast data type.
 */
function typeCasting(sText, sType)
{
	sType = sType.toLowerCase();
	switch(sType)
	{
		case 'int': 
		case 'integer': 
			sText = parseInt(sText);	
			break;		
		case 'float':
		case 'double':			
			sText = parseFloat(sText);	
			break;		
		case 'boolean': sText = Boolean(sText);	break;
		case 'date': break;
		case 'string': 
		default : 
			sText = sText.toString();	
			break;
	}
	return sText;
}

function changeDate(oCtrl, sName, bHandle)
{
	var oDate = document.getElementsByName(sName);	
	if(typeof(oDate) == 'undefined') return false;

	var bComplete = true;

	var oDay = document.getElementsByName(sName + '_day');	
	sDay = oDay[0].selectedIndex;
	if(typeof(sDay) == 'undefined' || sDay == 0) bComplete = false;
	
	var oMonth = document.getElementsByName(sName + '_month');	
	sMonth = oMonth[0].selectedIndex;
	if(typeof(sMonth) == 'undefined' || sMonth == 0) bComplete = false;

	var oYear = document.getElementsByName(sName + '_year');	
	sYear = oYear[0].selectedIndex;
	if(typeof(sYear) == 'undefined' || sYear == 0) bComplete = false;
		
	if(bComplete == false)	
	{
		oDate[0].value = '' ;
		return;
	}
	var sDate = oDay[0].value + '-' + oMonth[0].value + '-' + oYear[0].value ;
	oDate[0].value = sDate;	
	
	if(typeof(bHandle) != 'undefined' && bHandle == true) core_validator.onCheckComponent(oDate[0]);
}
	/*---------------------------------------------------------------------------------------------
		Validation Component Part
	---------------------------------------------------------------------------------------------*/

/**
 * Check Empty/Required
 * @param string sText. value to be check.
 * @return boolean. true = pass | false = fail
 */
function isRequired(sText)
{
	if(trim(sText) == '') return false;
	return true;
}

/**
 * Check on regex
 * @param string regex. regex.
 * @param string sText. value to be check.
 * @return boolean. true = pass | false = fail
 */
function checkRegEx(regex, sText)
{
	//no checking for empty value
	if(trim(sText) == '') return true; 

	sText = sText.toString();
	var strRegex = new RegExp(regex);

	if (strRegex.test(sText)) return true; 
	return false;
}

/**
 * Check on valid value like email, date
 * @param string sText. value to be check.
 * @param string sType. data type
 * @return boolean. true = pass | false = fail
 */
function checkValid(sText, sType)
{
	switch (sType)
	{
		case 'date':
			return checkDate(sText);
			break;
	}
	return true;
}

function checkDate(sText)
{
	var sDate = getStrDate(sText, '-');
	var aDate = sDate.split('-');
	var sDay = aDate[2];
	var sMonth = aDate[1];
	var sYear = aDate[0]; 

	if (sDay.charAt(0) == 0) sDay = sDay.substr(1,sDay.length);
	if (sMonth.charAt(0) == 0) sMonth = sMonth.substr(1,sMonth.length);

	var oDate = new Date(sYear, sMonth-1, sDay);
	if ((oDate.getMonth()+1 != sMonth) || (oDate.getDate() != sDay) || (oDate.getFullYear() != sYear))
	{
		return false;
	}
	return true;
}

/**
 * Check on min range
 * @param string minValue. minimum value
 * @param string sText. value to be check.
 * @param string sType. data type
 * @return boolean. true = pass | false = fail
 */
function checkRangeMin(minValue, sText, sType)
{
	//no checking for empty value
	if(trim(sText) == '') return true; 

	sText = typeCasting(sText, sType);
	minValue = typeCasting(minValue, sType);
	if(sType == 'date') 
	{
		sText = getStrDate(sText);
		minValue = getStrDate(minValue);
	}
	if (sText >= minValue) return true; 
	return false;
}

/**
 * Check on max range
 * @param string maxValue. maximum value
 * @param string sText. value to be check.
 * @param string sType. data type
 * @return boolean. true = pass | false = fail
 */
function checkRangeMax(maxValue, sText, sType)
{
	//no checking for empty value
	if(trim(sText) == '') return true; 

	sText = typeCasting(sText, sType);
	maxValue = typeCasting(maxValue, sType);
	if(sType == 'date') 
	{
		sText = getStrDate(sText);
		maxValue = getStrDate(maxValue);
	}
	if (sText <= maxValue) return true; 
	return false;
}

/**
 * Compare value
 * @param string strTag. compare tag
 * @param string strCompare. compare value
 * @param string sText. value to be check.
 * @param string sType. data type
 * @return boolean. true = pass | false = fail
 */
function checkCompare(strTag, strCompare, sText, sType)
{
	//no checking for empty value
	if(trim(sText) == '') return true; 
	if(sType == 'date') 
	{
		var sText = getStrDate(sText);
		var strCompare = getStrDate(strCompare);
		sType = 'integer';
	}
	
	sText = typeCasting(sText, sType);
	strCompare = typeCasting(strCompare, sType);	
	strTag = strTag.toString();	

	switch(strTag)
	{
		case ">"	: if (sText > strCompare) return true; break;
		case ">="	: if (sText >= strCompare) return true; break;
		case "<"	: if (sText < strCompare) return true; break;
		case "<="	: if (sText <= strCompare) return true; break;
		case "="	: if (sText == strCompare) return true; break;
		case "!="	: if (sText != strCompare) return true; break;
	}
	return false;
}

/**
 * recompile date in yyyy-mm-dd format
 * @param string sText. value to be recompiled.
 * @param string strDelimeter. delimeter
 * @return string.
 */
function getStrDate(sText, strDelimeter)
{
	//Support 4 delimeter /- . (slash,dash,dot,space) and year should be 4 char
	//Return server format in yyyy<strDelimeter>mm<strDelimeter>dd

	var arrDate = new Array();
	arrDate = sText.split("/");	
	if(arrDate.length != 3) arrDate = sText.split("-");
	if(arrDate.length != 3) arrDate = sText.split(".");	
	if(arrDate.length != 3) arrDate = sText.split(" ");	
	if(arrDate.length != 3) return false;	
	
	var year;
	var month;
	var day;
	if(arrDate[0].length == 4) 
	{
		year = arrDate[0];
		month = arrDate[1];
		day = arrDate[2];
	}
	else if(arrDate[2].length == 4)
	{
		year = arrDate[2];
		month = arrDate[1];
		day = arrDate[0];
	}
	else return false;	

	if(month.length == 1) month = '0' + month;
	if(day.length == 1) day = '0' + day;
	
	if(typeof(strDelimeter) == 'undefined' || strDelimeter == null) strDelimeter = '';

	var strDate = year + strDelimeter +  month + strDelimeter + day;
	return strDate;
}

/**
 * Check on min length
 * @param string intMin. minimum value
 * @param string sText. value to be check.
 * @return boolean. true = pass | false = fail
 */
function checkLengthMin(intMin, sText)
{
	sText = sText.toString();
	if (sText.length < parseInt(intMin)) return false;	
	return true;
}

/**
 * Check on max length
 * @param string intMax. maximum value
 * @param string sText. value to be check.
 * @return boolean. true = pass | false = fail
 */
function checkLengthMax(intMax, sText)
{
	sText = sText.toString();
	if (sText.length > parseInt(intMax)) return false;	
	return true;
}	

/**
 * Check on Required within a group
 * @param string sText. value to be check.
 * @param array group. other dom object to check
 * @return boolean. true = pass | false = fail
 */
function checkRequired(sText, aGroup)
{
	var bResult = isRequired(sText);
	if(bResult) return true;
	if(aGroup.length > 0)
	{
		for (var i =0; i<aGroup.length; i++)
		{
			var aObjCtrl = document.getElementsByName(aGroup[i]);
			for (var j=0; j<aObjCtrl.length ; j++ )
			{
				if(typeof(aObjCtrl[j].value) == 'undefined') continue;
				if(trim(aObjCtrl[j].value) == "") continue;
				bResult = true;
			}
		}
		return bResult;
	}	
}

/**
 * Check on Required within a group
 * @param string sText. value to be check.
 * @param array param. reserve param
 * @return boolean. true = pass | false = fail
 */
function checkRequiredList(oCtrl, sParam, bCoreValidation)
{
	var aParam = sParam.split(",");
	var intMin = aParam[0];
	var intMax = aParam[1];
	if(oCtrl.multiple == false)
	{
		if(oCtrl.length > 1 && intMin > 0) if(oCtrl.value == "" || oCtrl.value == "00") 
		{
			if(bCoreValidation) return vConfig.error.ERR_REQUIRED_SELECT ;
			else return false;
		}
	}
	else
	{
		var iCntSel = 0;
		for(var i=0; i < oCtrl.length ; i++) if(oCtrl.options[i].selected) iCntSel++;
		if(iCntSel < intMin ) 
		{
			if(bCoreValidation) return vConfig.error.ERR_REQUIRED_SELECT_MIN;
			else return false;
		}
		if(iCntSel > intMax)
		{
			if(bCoreValidation) return vConfig.error.ERR_REQUIRED_SELECT_MAX;
			else return false;
		}
	}
	return true;
}

/**
 * Check on Required within a group
 * @param string sText. value to be check.
 * @param array param. reserve param
 * @return boolean. true = pass | false = fail
 */
function checkRequiredCb(oCtrl, sParam, bCoreValidation)
{
	var aParam = sParam.split(",");
	var intMin = aParam[0];
	var intMax = aParam[1];

	var aCtrl = document.getElementsByName(oCtrl.name);
	if(aCtrl.length == 1)
	{
		if(oCtrl.checked == false)
		{	
			if(bCoreValidation) return vConfig.error.ERR_REQUIRED_CHECK;
			return false;
		}
	}
	else
	{
		var iCntSel = 0;
		for(var i=0; i < aCtrl.length ; i++) if(aCtrl[i].checked == true) iCntSel++;

		if(iCntSel < intMin ) 
		{
			if(bCoreValidation) return vConfig.error.ERR_REQUIRED_CHECK_MIN;
			else return false;
		}
		if(iCntSel > intMax)
		{
			if(bCoreValidation) return vConfig.error.ERR_REQUIRED_CHECK_MAX;
			else return false;
		}
	}
	return true;
}

/**
 * Check on Required within a group
 * @param string sText. value to be check.
 * @param array param. reserve param
 * @return boolean. true = pass | false = fail
 */
function checkRequiredRadio(oCtrl, aParam)
{ 
	var sName = oCtrl.name;
	var aElement = document.getElementsByName(sName);
	var bResult = false;
	for (var i =0; i<aElement.length; i++)
	{
		var aObjCtrl = aElement[i];
		if(aObjCtrl.checked == true)bResult = true;		
	}
	return bResult;
}

/**
 * Check on Required within a group
 * @param string sText. value to be check.
 * @param array group. other dom object to check
 * @return boolean. true = pass | false = fail
 */
function checkMatch(sText, aMatch)
{
	if(aMatch.length > 0)
	{
		var bResult = true;
		for (var i =0; i<aMatch.length; i++)
		{
			var aObjCtrl = document.getElementsByName(aMatch[i]);
			for (var j=0; j<aObjCtrl.length ; j++ )
			{
				if(typeof(aObjCtrl[j].value) == 'undefined') continue;
				if(trim(aObjCtrl[j].value) == "") continue;
				if(sText != aObjCtrl[j].value) bResult = false;
			}
		}
		return bResult;
	}
}

//sText=file name
//aConf=<max size>,<format seperate by |>
function checkFile(oCtrl, aConf)
{
	if(oCtrl.form.enctype == '')
	{
		// Developer Msg
		var sMsg = "Missing enctype in form tag";
		alert(sMsg);		
	}

	if(typeof(aConf[0]) != 'undefined')
	{
		//browser not allow to check file size
		var iMaxSize = aConf[0];
	}

	if(typeof(aConf[1]) != 'undefined')
	{
		var sFormat = aConf[1];
	}
	//current not yet solution for checking file at client side without activeX
	return true;
}

var vConfig = {
	//Validation Type
	type: {	
		TYP_REQUIRED: "REQUIRED",				//Required validation 
		TYP_REQUIRED_LIST: "REQUIRED_LIST",		//Required validation 
		TYP_REQUIRED_RADIO: "REQUIRED_RADIO",	//Required validation 
		TYP_REQUIRED_CB: "REQUIRED_CB",			//Required validation 
		TYP_FORMAT: "FORMAT",				//Format validation
		TYP_LENGTH_MIN: "LENGTH_MIN",		//Length min value
		TYP_LENGTH_MAX: "LENGTH_MAX",		//Length max value
		TYP_RANGE_MIN: "RANGE_MIN",		//Range min value
		TYP_RANGE_MAX: "RANGE_MAX",			//Range max value
		TYP_COMPARE_TAG: "COMPARE_TAG",		//Comparison tag
		TYP_COMPARE_VALUE: "COMPARE_VALUE",	//Comparison Target value
		TYP_CUSTOM_FUNC: "FUNCTION",			//Customize function 
		TYP_CUSTOM_PARAM: "PARAM",			//Customize function parameter
		TYP_MATCH: "MATCH",					//Matching
		TYP_FILE: "FILE",					//File
		TYP_TYPE: "TYPE",						//data type
		TYP_DIV: "EDIV",						//error msg div		
		TYP_LABEL: "LABEL",						//error msg label
		TYP_DELIMITER: "DELIMITER"						//error msg label
	},
	
	//Validation Expression
	exp: {
		EXP_INT_POSITIVE	: /^\d+$/ ,			//+ integer 
		EXP_INT_NEGATIVE	: /^-\d+$/ ,		//- integer 
		EXP_INT				: /^-{0,1}\d+$/ ,	//+/- integer 
		EXP_NUMBER_POSITIVE	: /^\d*\.{0,1}\d+$/ ,			//+ number
		EXP_NUMBER_NEGATIVE	: /^-\d*\.{0,1}\d+$/ ,		//- number
		EXP_NUMBER			: /^-{0,1}\d*\.{0,1}\d+$/ ,	//+/- number
		EXP_CURRENCY	: /^\d+(\.\d{0,2})?$/ ,		//+ currency with 2 decimal
		EXP_RATE		: /^\d+(\.\d{0,4})?$/ ,		//+ rate with 4 decimal
		EXP_STRING_ALPHA	: /^([a-zA-Z]+)$/ ,		//Alphabet only
		EXP_STRING_ALPHANUM	: /^([0-9A-Za-z]+)$/ ,		//Alphabet & Numeric only
		EXP_STRING			: /^([0-9A-Za-z_]+)$/ ,	//Alphabet & Numeric & _
		EXP_STRING_NAME		: /^([0-9A-Za-z_\.]+)$/ ,	//Alphabet & Numeric & _
		EXP_YEAR		: /^(19|20)[\d]{2,2}$/ ,	//Year From 1900 - 2099
		/* dd/mm/yyyy | dd-mm-yyyy */
		EXP_DATE_DMY	: /^([1-9]|0[1-9]|[12][0-9]|3[01])[\/|-]([1-9]|0[1-9]|1[012])[\/|-](19|20)\d\d$/ ,
		/* yyyy-mm-dd | yyyy/mm/dd */
		EXP_DATE_YMD	: /^(19|20)\d\d[\/|-]([1-9]|0[1-9]|1[012])[\/|-]([1-9]|0[1-9]|[12][0-9]|3[01])$/ , 
		EXP_DOMAIN : /^([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$/ ,				//Domain Name
		EXP_URL	   : /^https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w\/_\.]*(\?\S+)?)?)?$/ ,	//Url
		/* Ip address */
		EXP_IPV4   : /^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/ ,	
		/* Email */
		EXP_EMAIL  : /^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/ 	
	},
	
	//Validation Error Code
	error: {
		ERR_REQUIRED	: "ERR_REQUIRED",	//required field missing
		ERR_REQUIRED_SELECT : "ERR_REQUIRED_SELECT",	//required field missing - select
		ERR_REQUIRED_SELECT_MAX : "ERR_REQUIRED_SELECT_MAX",	//required field at min - select
		ERR_REQUIRED_SELECT_MIN : "ERR_REQUIRED_SELECT_MIN",	//required field at max - select
		ERR_REQUIRED_CHECK :  "ERR_REQUIRED_CHECK",	//required field missing - check
		ERR_REQUIRED_CHECK_MAX : "ERR_REQUIRED_CHECK_MAX",	//required field at min - select
		ERR_REQUIRED_CHECK_MIN : "ERR_REQUIRED_CHECK_MIN",	//required field at max - select
		ERR_FORMAT		: "ERR_FORMAT",		//format error
		ERR_RANGE_MIN	: "ERR_RANGE_MIN",	//min value is required
		ERR_RANGE_MAX	: "ERR_RANGE_MAX",	//max value exceed
		ERR_COMPARE		: "ERR_COMPARE",	//compare error
		ERR_LENGTH_MIN	: "ERR_LENGTH_MIN",	//min length is required
		ERR_LENGTH_MAX	: "ERR_LENGTH_MAX",	//max length exceed
		ERR_CUSTOM		: "ERR_CUSTOM",		//custom function error
		ERR_INVALID		: "ERR_INVALID",		//invalid input
		ERR_MATCH		: "ERR_MATCH",		//match input
		ERR_FILE_MAXSIZE : "ERR_FILE_MAXSIZE",
		ERR_FILE_EXT : "ERR_FILE_EXT",		
		ERR_FILE_INI_SIZE : "ERR_FILE_INI_SIZE",		//STANDARD PHP FILE UPLOAD ERROR
		ERR_FILE_FORM_SIZE : "ERR_FILE_FORM_SIZE",		//STANDARD PHP FILE UPLOAD ERROR
		ERR_FILE_PARTIAL : "ERR_FILE_PARTIAL",			//STANDARD PHP FILE UPLOAD ERROR
		ERR_FILE_NO_TMP_DIR : "ERR_FILE_NO_TMP_DIR",	//STANDARD PHP FILE UPLOAD ERROR
		ERR_FILE_CANT_WRITE : "ERR_FILE_CANT_WRITE",	//STANDARD PHP FILE UPLOAD ERROR
		ERR_FILE_EXTENSION : "ERR_FILE_EXTENSION"		//STANDARD PHP FILE UPLOAD ERROR
	},

	form : "",
	
	key : "",

	getType:function(sType)
	{
		if(this.isKeyExist() == false) return "";
		var sJs = "var sVal = this.oKey." + sType ;
		eval(sJs);
		if(typeof(sVal) == 'undefined') return "";
		return sVal;
	},	
	
	getError:function(sKey)
	{	
		if(this.isFormExist() == false) return "";
		if(typeof(this.oFrom.error) == 'undefined') return "";
		sKey = sKey.replace("[]", "");
		if(typeof(this.oFrom.error[sKey]) == 'undefined') return "";
		return this.oFrom.error[sKey];	
	},

	getErrorInput:function(sKey)
	{	
		if(this.isFormExist() == false) return "";
		if(typeof(this.oFrom.errorInput) == 'undefined') return "";
		sKey = sKey.replace("[]", "");
		if(typeof(this.oFrom.errorInput[sKey]) == 'undefined') return "";
		return this.oFrom.errorInput[sKey];	
	},
	
	addError:function(sKey, sCode, sInput)
	{	
		if(this.isFormExist() == false) return "";
		if(typeof(this.oFrom.error) != 'object') this.oFrom.error = new Array();
		sKey = sKey.replace("[]", "");
		this.oFrom.error[sKey] = sCode;
		if(typeof(sInput) != 'undefined') 
		{
			if(typeof(this.oFrom.errorInput) != 'object') this.oFrom.errorInput = new Array();
			this.oFrom.errorInput[sKey] = sInput;
		}
	},
	
	killError:function(sKey)
	{
		if(typeof(this.oFrom.error) == 'undefined') return "";
		sKey = sKey.replace("[]", "");
		this.oFrom.error[sKey] = 'undefined';
	},

	getRegex:function(regex)
	{	
		var sJs = "var regex = vConfig.exp." + regex + ";";
		eval(sJs);
		return regex;
	},
	
	isKeyExist:function()
	{
		if(this.isFormExist() == false) return false;
		sKey = this.key.replace("[]", "");
		var sJs = "var oKey = vConfig." + this.form + "." + sKey + ";";
		eval(sJs);
		if(typeof(oKey) != 'object') return false;
		this.oKey = oKey;
		return true;
	},

	isFormExist:function()
	{
		var sJs = "var oForm = vConfig." + this.form + ";";
		eval(sJs);		
		if(typeof(oForm) != 'object') return false;
		this.oFrom = oForm;
		return true;
	}
	
	
};//end config object

	/*---------------------------------------------------------------------------------------------
		Core Validation Part
	---------------------------------------------------------------------------------------------*/

var core_validator = {
	onCheckComponent:function(oCtrl) {
		/**
		 * Check Component upon event
		 * @param object oCtrl. component
		 * @return boolean. true = pass | false = fail
		 */
		if(oCtrl == null) return true;
		var sText = trim(oCtrl.value);
		var sForm = oCtrl.form.name;
		var sKey = oCtrl.name; 

		//get js config form object
		vConfig.form = sForm;
		vConfig.key = sKey;
		var sType = vConfig.getType(vConfig.type.TYP_TYPE);
		var bResult = true;

		//check required
		var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED);
		var aRequired = sRequired.split(","); 
		if(aRequired[0] == 1 || aRequired[0] == 'true')
		{				
			aRequired.shift();
			if (!checkRequired( sText, aRequired ))
			{
				vConfig.addError(sKey, vConfig.error.ERR_REQUIRED);
				bResult = false;
			}
		}

		//check list
		var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED_LIST);			 
		if(sRequired != "")
		{		
			var sRequired = checkRequiredList(oCtrl, sRequired, true );
			if (!(sRequired == true))
			{
				vConfig.addError(sKey, sRequired);
				bResult = false;
			}
		}

		//check checkbox
		var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED_CB);
		if(sRequired != "")
		{		
			var sRequired = checkRequiredCb( oCtrl, sRequired , true);
			if (!(sRequired == true))
			{
				vConfig.addError(sKey, sRequired);
				bResult = false;
				//do uncheck here
				if(sRequired == vConfig.error.ERR_REQUIRED_CHECK_MAX) oCtrl.checked = false;
			}
		}

		//check radio
		var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED_RADIO);
		var aRequired = sRequired.split(","); 
		if(aRequired[0] == 1 || aRequired[0] == 'true')
		{		
			aRequired.shift();
			if (!checkRequiredRadio(oCtrl, aRequired ))
			{
				vConfig.addError(sKey, vConfig.error.ERR_REQUIRED_SELECT);
				bResult = false;
			}
		}

		//skip check on empty value
		if(bResult && sText == '') 
		{
			this.isValidInput(sForm,sKey);
			return true;
		}

		var aValue = new Array(sText);
		//Check for delimiter
		var sDelimiter = vConfig.getType(vConfig.type.TYP_DELIMITER);
		if(sDelimiter != "") var aValue = sText.split(sDelimiter);
	
		for (var i=0; i< aValue.length ; i++ )
		{
			var sSubText = trim(aValue[i]);
			//check format
			var strRegex = vConfig.getType(vConfig.type.TYP_FORMAT);
			if(bResult && strRegex != '')
			{
				strRegex = vConfig.getRegex(strRegex);
				if (!checkRegEx(strRegex,sSubText))
				{		
					vConfig.addError(sKey, vConfig.error.ERR_FORMAT, sSubText);
					bResult = false;
				}
			}

			//check min length
			var intLengthMin = vConfig.getType(vConfig.type.TYP_LENGTH_MIN);
			if(bResult && intLengthMin != '')
			{
				if (!checkLengthMin(intLengthMin, sSubText))
				{
					vConfig.addError(sKey, vConfig.error.ERR_LENGTH_MIN, sSubText);
					bResult = false;
				}
			}

			//check max length
			var intLengthMax = vConfig.getType(vConfig.type.TYP_LENGTH_MAX);
			if(bResult && intLengthMax != '')
			{
				if (!checkLengthMax(intLengthMax, sSubText))
				{
					vConfig.addError(sKey, vConfig.error.ERR_LENGTH_MAX, sSubText);
					bResult = false;
				}
			}

			//check valid
			if(bResult)
			{
				if (!checkValid(sSubText, sType))
				{
					vConfig.addError(sKey, vConfig.error.ERR_INVALID, sSubText);
					bResult = false;
				}
			}

			//check min range
			var mixRangeMin = vConfig.getType(vConfig.type.TYP_RANGE_MIN); 
			if(bResult && mixRangeMin != '')
			{
				if (!checkRangeMin(mixRangeMin, sSubText, sType))
				{
					vConfig.addError(sKey, vConfig.error.ERR_RANGE_MIN, sSubText);
					bResult = false;
				}
			}

			//check max range
			var mixRangeMax = vConfig.getType(vConfig.type.TYP_RANGE_MAX); 
			if(bResult && mixRangeMax != '')
			{
				if (!checkRangeMax(mixRangeMax, sSubText, sType))
				{
					vConfig.addError(sKey, vConfig.error.ERR_RANGE_MAX, sSubText);
					bResult = false;
				}
			}
			
			//check compare
			var strCompareTag = vConfig.getType(vConfig.type.TYP_COMPARE_TAG); 
			var strCompareValue = vConfig.getType(vConfig.type.TYP_COMPARE_VALUE);  
			if(bResult && strCompareTag != '' && strCompareValue != '')
			{ 
				if (!checkCompare(strCompareTag, strCompareValue, sSubText, sType))
				{
					vConfig.addError(sKey, vConfig.error.ERR_COMPARE, sSubText);
					bResult = false;
				}
			}
			if (!bResult) break;
		}//end for each delimiter

		//check match
		var sMatch =  vConfig.getType(vConfig.type.TYP_MATCH); 
		if(bResult && sMatch != '')
		{ 
			if (!checkMatch( sText, sMatch.split(",") ))
			{
				vConfig.addError(sKey, vConfig.error.ERR_MATCH);
				bResult = false;
			}
		}

		//check File
		var sFile =  vConfig.getType(vConfig.type.TYP_FILE); 
		if(bResult && sFile != '')
		{ 
			var sRequired = checkFile( oCtrl, sFile.split(",") );
			if (!(sRequired == true))
			{
				vConfig.addError(sKey, sRequired);
				bResult = false;
			}
		}
		
		//check custom
		var strCustomFunc = vConfig.getType(vConfig.type.TYP_CUSTOM_FUNC); 
		var aParam = vConfig.getType(vConfig.type.TYP_CUSTOM_PARAM);
		aParam = aParam.split(',');
		if(bResult && strCustomFunc != '')
		{	
			if (!eval(strCustomFunc + "(oCtrl, aParam)"))
            {
				vConfig.addError(sKey, vConfig.error.ERR_CUSTOM);            
                bResult = false;
            }
		}

		if(bResult) this.isValidInput(sForm, sKey);
		else this.onHandleErrorByKey(sForm, sKey);
	},//end onCheckComponent
	
	onCheckSubmit:function(oCtrl)
	{
		/**
		 * Check Component upon submit
		 * @param object oCtrl. component
		 * @return boolean. true = pass | false = fail
		 */
		if(oCtrl == null) return true;
		var sForm = oCtrl.form.name;
		vConfig.form = sForm;
		var sKey ;
	
		var sErrMsg ;
		var bError = false;

		var aField = oCtrl.form.getElementsByTagName('*');
		for (var i=0; i<aField.length; i++)
		{
			// Allow for multiple values being assigned to the class attribute
			sKey = aField[i].getAttribute('name');
			if(sKey == null) continue;
			if(sKey == '') continue;

			vConfig.key = sKey;
			
			var sText = trim(aField[i].value);
			
			var sType = vConfig.getType(vConfig.type.TYP_TYPE) ;
		
			//check required
			var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED);
			var aRequired = sRequired.split(","); 
			if(aRequired[0] == 1 || aRequired[0] == 'true')
			{		
				aRequired.shift();
				if (!checkRequired( sText, aRequired ))
				{
					vConfig.addError(sKey, vConfig.error.ERR_REQUIRED);
					bError = true;
					continue;
				}
			}

			//check list
			var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED_LIST);			 
			if(sRequired != "")
			{		
				var sRequired = checkRequiredList( aField[i], sRequired, true );
				if (!(sRequired == true))
				{
					vConfig.addError(sKey, sRequired);
					bError = true;
					continue;
				}
			}

			//check checkbox
			var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED_CB);
			if(sRequired != "")
			{		
				var sRequired = checkRequiredCb( aField[i], sRequired , true);
				if (!(sRequired == true))
				{
					vConfig.addError(sKey, sRequired);
					bError = true;
					continue;
				}
			}

			//check radio
			var sRequired = vConfig.getType(vConfig.type.TYP_REQUIRED_RADIO);
			var aRequired = sRequired.split(","); 
			if(aRequired[0] == 1 || aRequired[0] == 'true')
			{		
				aRequired.shift();
				if (!checkRequiredRadio( aField[i], aRequired ))
				{
					vConfig.addError(sKey, vConfig.error.ERR_REQUIRED_SELECT);
					bError = true;
					continue;
				}
			}

			//skip check on empty value
			if(sText == '') 
			{
				this.isValidInput(sForm,sKey);
				continue;
			}

			var aValue = new Array(sText);
			//Check for delimiter
			var sDelimiter = vConfig.getType(vConfig.type.TYP_DELIMITER);
			if(sDelimiter != "") var aValue = sText.split(sDelimiter);
		
			for (var j=0; j< aValue.length ; j++ )
			{
				var sSubText = trim(aValue[j]);
				var bSubError = false;

				//check format
				var strRegex = vConfig.getType(vConfig.type.TYP_FORMAT);
				if(strRegex != '')
				{
					strRegex = vConfig.getRegex(strRegex);
					if (!checkRegEx(strRegex,sSubText))
					{		
						vConfig.addError(sKey, vConfig.error.ERR_FORMAT, sSubText);
						bSubError = true;
						break;
					}
				}

				//check min length
				var intLengthMin = vConfig.getType(vConfig.type.TYP_LENGTH_MIN); 
				if(intLengthMin != '')
				{
					if (!checkLengthMin(intLengthMin, sSubText))
					{
						vConfig.addError(sKey, vConfig.error.ERR_LENGTH_MIN, sSubText);
						bSubError = true;
						break;
					}
				}

				//check max length
				var intLengthMax = vConfig.getType(vConfig.type.TYP_LENGTH_MAX);
				if(intLengthMax != '')
				{
					if (!checkLengthMax(intLengthMax, sSubText))
					{
						vConfig.addError(sKey, vConfig.error.ERR_LENGTH_MAX, sSubText);
						bSubError = true;
						break;
					}
				}

				//check valid			
				if (!checkValid(sSubText, sType))
				{
					vConfig.addError(sKey, vConfig.error.ERR_INVALID, sSubText);
					bSubError = true;
					break;
				}		

				//check min range
				var mixRangeMin = vConfig.getType(vConfig.type.TYP_RANGE_MIN); 
				if(mixRangeMin != '')
				{
					if (!checkRangeMin(mixRangeMin, sSubText, sType))
					{
						vConfig.addError(sKey, vConfig.error.ERR_RANGE_MIN, sSubText);
						bSubError = true;
						break;
					}
				}

				//check max range
				var mixRangeMax = vConfig.getType(vConfig.type.TYP_RANGE_MAX);
				if(mixRangeMax != '')
				{
					if (!checkRangeMax(mixRangeMax, sSubText, sType))
					{
						vConfig.addError(sKey, vConfig.error.ERR_RANGE_MAX, sSubText);
						bSubError = true;
						break;
					}
				}
				
				//check Compare
				var strCompareTag = vConfig.getType(vConfig.type.TYP_COMPARE_TAG); 
				var strCompareValue = vConfig.getType(vConfig.type.TYP_COMPARE_VALUE);  
				if(strCompareTag != '' && strCompareValue != '')
				{ 
					if (!checkCompare(strCompareTag, strCompareValue, sSubText, sType))
					{
						vConfig.addError(sKey, vConfig.error.ERR_COMPARE, sSubText);
						bSubError = true;
						break;
					}
				}
			}//end foreach delimiter value

			if(bSubError)
			{
				bError = true;
				continue;
			}

			//check match
			var sMatch =  vConfig.getType(vConfig.type.TYP_MATCH); 
			if(sMatch != '')
			{ 
				if (!checkMatch( sText, sMatch.split(",") ))
				{
					vConfig.addError(sKey, vConfig.error.ERR_MATCH);
					bError = true;
					continue;
				}
			}

			//check File
			var sFile =  vConfig.getType(vConfig.type.TYP_FILE); 
			if(sFile != '')
			{ 
				var sRequired = checkFile( aField[i], sFile.split(",") );
				if (!(sRequired == true))
				{
					vConfig.addError(sKey, sRequired);
					bError = true;
					continue;
				}
			}
			
			//check custom
			var strCustomFunc = vConfig.getType(vConfig.type.TYP_CUSTOM_FUNC); 
			var aParam = vConfig.getType(vConfig.type.TYP_CUSTOM_PARAM);
			aParam = aParam.split(',');
			if(strCustomFunc != '')
			{	
				if (!eval(strCustomFunc + "(aField[i], aParam)"))
				{		
					bError = true;
					continue;
				}
			}

			this.isValidInput(sForm, sKey);
		}

		if(bError)
		{
			this.onHandleError(oCtrl.form);
			return false;
		}
		return true;
	}, //end function onCheckSubmit

	isValidInput:function(sForm, sKey)
	{
		/* Public: Clear Error Msg */
		vConfig.form = sForm;
		vConfig.key = sKey;
		sDiv = vConfig.getType(vConfig.type.TYP_DIV);
		setDivMsg(sDiv, '');
		setObjVisibility(sDiv,'false'); 
		vConfig.killError(sKey);
	},
	
	onHandleError:function(oCtrl)
	{
		/* Public: Handle Error By Config */
		var sForm = oCtrl.name; 
		vConfig.form = sForm;

		var sKey;
		var sError;
		var aField = oCtrl.getElementsByTagName('*');
		for (var i=0; i<aField.length; i++)
		{
			// Allow for multiple values being assigned to the class attribute
			sKey = aField[i].getAttribute('name');
			if(sKey == null) continue; 
			sError = vConfig.getError(sKey);
			if(sError == "") continue;		
			this.onHandleErrorByKey(sForm, sKey);
		}		
	},

	onHandleErrorByKey:function(sForm, sKey)
	{
		/* Public: Handle Error By Config */
		vConfig.form = sForm;
		vConfig.key = sKey;

		var sDiv = vConfig.getType(vConfig.type.TYP_DIV);
		var sError = vConfig.getError(sKey);	
		var sMsg = this.getErrorMsg(sError);
		this.showError(sMsg, sDiv);		
	},
	
	getErrorMsg:function(sCode){
		/* Private: Pass Error Code, Handle Msg Variable, Return Error Msg */
		var sMsg = vConfig.getType(sCode) ; 
		if(sMsg == '') 
		{
			var sJs = "var sMsg = validator_error." + sCode + ";";
			eval(sJs);
		}
		if(typeof( sMsg ) == 'undefined') return "";

		var sLbl = vConfig.getType(vConfig.type.TYP_LABEL) ;
		var sVal = "";
		switch (sCode)
		{
			case vConfig.error.ERR_RANGE_MIN:
				sVal = vConfig.getType(vConfig.type.TYP_RANGE_MIN); 
				break;				
			case vConfig.error.ERR_RANGE_MAX:
				sVal = vConfig.getType(vConfig.type.TYP_RANGE_MAX); 
				break;	
			case vConfig.error.ERR_COMPARE:
				var sTag = vConfig.getType(vConfig.type.TYP_COMPARE_TAG); 
				var sValue = vConfig.getType(vConfig.type.TYP_COMPARE_VALUE);  
				sVal = sTag + ' ' + sValue;
				break;	
			case vConfig.error.ERR_LENGTH_MIN:
				sVal = vConfig.getType(vConfig.type.TYP_LENGTH_MIN); 
				break;	
			case vConfig.error.ERR_LENGTH_MAX:	
				sVal = vConfig.getType(vConfig.type.TYP_LENGTH_MAX);
				break;
			case vConfig.error.ERR_MATCH:	
				sVal = vConfig.getType(vConfig.type.TYP_MATCH); 
				sVal = this.getMatchValue(sVal);
				break;	
			case vConfig.error.ERR_REQUIRED_SELECT_MIN:	
				sVal = vConfig.getType(vConfig.type.TYP_REQUIRED_LIST); 
				sVal = sVal.split(",");
				sVal = sVal[0];
				break;
			case vConfig.error.ERR_REQUIRED_SELECT_MAX:	
				sVal = vConfig.getType(vConfig.type.TYP_REQUIRED_LIST); 
				sVal = sVal.split(",");
				sVal = sVal[1];
				break;
			case vConfig.error.ERR_REQUIRED_CHECK_MIN:	
				sVal = vConfig.getType(vConfig.type.TYP_REQUIRED_CB); 
				sVal = sVal.split(",");
				sVal = sVal[0];
				break;
			case vConfig.error.ERR_REQUIRED_CHECK_MAX:	
				sVal = vConfig.getType(vConfig.type.TYP_REQUIRED_CB); 
				sVal = sVal.split(",");
				sVal = sVal[1];
				break;
			case vConfig.error.ERR_FILE_EXT:
				sVal = vConfig.getType(vConfig.type.TYP_FILE); 
				sVal = sVal.split(";");
				sVal = sVal[1];			
				break;
		}
		
		var sKey = vConfig.key;
		var sIpt = vConfig.getErrorInput(sKey);		
		sMsg = sMsg.replace("lbl_label",sLbl);
		sMsg = sMsg.replace("lbl_value",sVal);
		sMsg = sMsg.replace("lbl_input",sIpt);
		return sMsg;
	},

	showError:function (sMsg, sDiv)
	{
		/*Private: Display Error*/ 
		if(sMsg == "") return;
		var oDiv = document.getElementById(sDiv);
		if(oDiv != null) 
		{
			setObjVisibility(sDiv, 'true'); 
			setDivMsg(sDiv, sMsg);			
		}
	},
	
	getMatchValue:function(sVal)
	{
		/*Private: Get Match Value*/ 
		var aVal = sVal.split(",");
		var sValue = "";
		if(aVal.length > 1)
		{
			for(var i=0; i<aVal.length; i++)
			{
				vConfig.key = aVal[i].toString();
				sValue += vConfig.getType(vConfig.type.TYP_LABEL) ;
				if(i < aVal.length -1)  sValue += " , ";
			}
		}
		else
		{
			vConfig.key = aVal.toString();
			sValue += vConfig.getType(vConfig.type.TYP_LABEL) ;
		}		
		return sValue;
	},
	
	unfoundConfig:function()
	{
		var sMsg = validator_error.ERR_TIMEOUT;
		alert(sMsg);
	}
};//end validate object


var validator_error = {
	ERR_TIMEOUT : "Session Timeout. Please re-submit this form",
	ERR_REQUIRED    : "Please fill in lbl_label !" ,
	ERR_REQUIRED_SELECT   : "Please select lbl_label !" ,
	ERR_REQUIRED_SELECT_MAX   : "Please select maximum lbl_value for lbl_label !" ,
	ERR_REQUIRED_SELECT_MIN   : "Please select minimum lbl_value for lbl_label !" ,
	ERR_REQUIRED_CHECK    : "Please check lbl_label !" ,
	ERR_REQUIRED_CHECK_MAX   : "Please check maximum lbl_value for lbl_label !" ,
	ERR_REQUIRED_CHECK_MIN   : "Please check minimum lbl_value for lbl_label !" ,
	ERR_FORMAT      : "Please enter your lbl_label in a valid format!" ,
	ERR_RANGE_MIN   : "Minimum value of lbl_value for lbl_label !" ,
	ERR_RANGE_MAX	: "Exceed maximum range of lbl_value for lbl_label !" ,
	ERR_COMPARE		: "lbl_label must lbl_value !" ,
	ERR_LENGTH_MIN  : "Length should not less then lbl_value for lbl_label !" ,
	ERR_LENGTH_MAX  : "Exceed maximum length of lbl_value for lbl_label !" ,
	ERR_INVALID		: "Invalid value for lbl_label ! ",
	ERR_MATCH		: "lbl_label should match with lbl_value",
	ERR_FILE_MAXSIZE	: "lbl_label exceeds maximum file size lbl_value",
	ERR_FILE_EXT		: "lbl_label do not match format lbl_value",
	ERR_FILE_INI_SIZE : "lbl_label exceeds the upload_max_filesize directive in php.ini.",
	ERR_FILE_FORM_SIZE : "lbl_label exceeds the MAX_FILE_SIZE directive that specified in HTML form.",
	ERR_FILE_PARTIAL : "lbl_label was only partially uploaded.",
	ERR_FILE_NO_TMP_DIR : "lbl_label was missing a temporary folder.",
	ERR_FILE_CANT_WRITE : "lbl_label was failed to write file to disk.",
	ERR_FILE_EXTENSION : "lbl_label was stopped by extension."		
	
};
/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
