/*
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);
/*-------------------------------------------------------------------------------------------------
	Feature Part
-------------------------------------------------------------------------------------------------*/

function doSearchLog(iRandom, sCountry, iCnt, sParam)
{
	var callbackLog = {};
	if(typeof(sParam) == 'undefined') sParam = '';
	var sUrl = dPath + "/"+sCountry+"/job-search-log.php?rnd="+iRandom+"&cnt="+iCnt+"&"+sParam;
	var callbackLog = {};
	//Optional to assign timeout in ms.
	callbackLog.timeout = 8000; 
	//Do request
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callbackLog, null);  
}

function sendFeedBack(sCountry)
{
	var aCountry = new Array();
	//associative array
	aCountry['id'] = 'indonesia';
	aCountry['my'] = 'malaysia';
	
	var aObj = document.getElementsByName('fb[]');
	var bResult = false;
	var iId = "";
	
	for (var i =0; i<aObj.length; i++)
	{
		if(aObj[i].checked == true) iId = aObj[i].value;		
	}
	if(iId == "") 
	{
		alert("Please select one option.");
		return false;
	}	
	//truncate at 1k
	var sMsg = document.feedback.fbmsg.value;
	if (sMsg.length > 1000)
	{
		sMsg = sMsg.substring(0,1000) + '...';
	}
	var iRandom = Math.random();
	var sUrl = dPath + "/"+aCountry[sCountry]+"/feedback.php?fbid="+iId+"&fbmsg="+sMsg+"&country="+sCountry+"&rnd="+iRandom;
	var callbackFb = {};
	callbackFb.success = updFb;
	callbackFb.timeout = 8000; 
	//Do request
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callbackFb, null);   
}

function updFb()
{
	var oFbCon = document.getElementById('fbCon');
	sHtml = "<div class='enter'></div><div>Thank you for your feedback.</div><div class='enter'></div>";
	if(oFbCon != null) oFbCon.innerHTML = sHtml;	
}

/*-------------------------------------------------------------------------------------------------
	Logic Validate Part
-------------------------------------------------------------------------------------------------*/

function ctrlYoe(bMin)
{
	oMin = getEl('experience-min');
	oMax = getEl('experience-max');
	iMin = Number(oMin.value);
	iMax = Number(oMax.value);
	if((iMax< iMin) && iMax != '-1')
	{
		if(bMin == true) oMax.value = '-1';
		else  oMin.value = '-1';
	}	
}

function ctrlMaxSel(oCtrl, sDiv, sLabel, iMax)
{
	bCheck = checkRequiredCb(oCtrl, '0,' + iMax , false);
	if(bCheck == false)
	{
		setObjVisibility(sDiv, 'true'); 
		setDivMsg(sDiv, 'Please select maximum 5 ' + sLabel + ' only.');	
		setDivClass(sDiv, 'errorReg');
		oCtrl.checked = false;
		updateThis(oCtrl, false, true);
	}
	else
	{
		setDivMsg(sDiv, '');
		setObjVisibility(sDiv,'false'); 
	}
}

/*-------------------------------------------------------------------------------------------------
	Common Part
-------------------------------------------------------------------------------------------------*/
//Get Element
function getEl(sId) 
{ 
	return document.getElementById(sId); 
}

function hideEl(sId) 
{ 
	getEl(sId).style.visibility = 'hidden';
	getEl(sId).style.position = 'absolute';
}

function showEl(sId) 
{ 
	getEl(sId).style.visibility = 'visible';
	getEl(sId).style.position = 'static';
}

function hidediv(sName) {
    if (document.getElementById) { // DOM3 = IE5, NS6
	document.getElementById(sName).style.visibility = 'hidden';
	document.getElementById(sName).style.display = 'none';
    } else {
		if (document.layers) { // Netscape 4
			document.layers[sName].visibility = 'hidden';
			document.layers[sName].display = 'none';
		} else { // IE 4
			document.all[sName].style.visibility = 'hidden';
			document.all[sName].style.display = 'none';
		}
    }
}

function showdiv(sName) {
    if (document.getElementById) { // DOM3 = IE5, NS6
	document.getElementById(sName).style.visibility = 'visible';
	document.getElementById(sName).style.display = 'block';
    } else {
	if (document.layers) { // Netscape 4
	    document.layers[sName].visibility = 'visible';
	    document.layers[sName].display = 'block';
	} else { // IE 4
	    document.all[sName].style.visibility = 'visible';
	    document.all[sName].style.display = 'block';
	}
    }
} 

function disableThis(oCtrl)
{
	oCtrl.disabled=true;
}

function enableThis(oCtrl)
{
	oCtrl.disabled=false;
}

function updateInnerHtml(sCtrl, sHtml)
{
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(sCtrl).innerHTML = sHtml;
	} else {
		if (document.layers) { // Netscape 4
			document.layers[sCtrl].innerHTML = sHtml;
		} else { // IE 4
			document.all[sCtrl].innerHTML = sHtml;
		}
	}
}

/*-------------------------------------------------------------------------------------------------
	Criteria
-------------------------------------------------------------------------------------------------*/
function disableAll(field)
{
	field = document.getElementsByName(field);
    for (i = 0; i < field.length; i++) {
		field[i].disabled = true ;	
    }
}

function checkAll(field) {
	field = document.getElementsByName(field);
    for (i = 0; i < field.length; i++) {
	field[i].checked = true ;
	updateThis(field[i], false, true);
    }
}

function uncheckAll(field) {
	field = document.getElementsByName(field);
    for (i = 0; i < field.length; i++) {
	field[i].checked = false ;
	updateThis(field[i], false, true);
	enableThis(field[i]);
    }
}

//Create this function because we mix name for location and oversea but diff handle on UI
//Added a container for determinating rows inside
function checkAllLoc(bLoc, bOvs, sCurLoc, sContainer)
{
	var contained = 0;
	if(typeof(sCurLoc) == 'undefined') sCurLoc = "";
	if (typeof(sContainer) != 'undefined')
	{
		field = YAHOO.util.Dom.getElementsByClassName('', 'input', YAHOO.util.Dom.getElementsByClassName(sContainer)[0]);
		contained = 1;
	} else {
		field = document.getElementsByName('location[]');
	}
    for (i = 0; i < field.length; i++) {
		if (field[i].checked && field[i].disabled) continue;
		iId = field[i].id;
		iId = iId.substring(8);
		sKey = iId.substring(iId.length-4, iId.length); 
		sKey2 = iId.substring(0,3);
		if ( bOvs == 0 && bLoc == 1 && (iId == '90100' || sKey == '0000' || sKey2 == '901') && contained == 0) continue;
		if ( bOvs == 1 && bLoc == 0 && (iId != '90100' && sKey != '0000')) continue;
		if( sCurLoc == iId && bOvs == 1 && bLoc == 0) continue;		
		field[i].checked = true ;		
		updateThis(field[i], false, true);
		toggleCb(field[i]);	
    }	
}

//Create this function because we mix name for location and oversea but diff handle on UI
//Added a container for determinating rows inside
function uncheckAllLoc(bLoc, bOvs, sCurLoc, sContainer)
{
	var contained = 0;
	if(typeof(sCurLoc) == 'undefined') sCurLoc = "";
	if (typeof(sContainer) != 'undefined')
	{
		field = YAHOO.util.Dom.getElementsByClassName('', 'input', YAHOO.util.Dom.getElementsByClassName(sContainer)[0]);
		contained = 1;
	} else {
		field = document.getElementsByName('location[]');
	}
    for (i = 0; i < field.length; i++) {
		if (field[i].checked == false && field[i].disabled == false) continue;
		iId = field[i].id;
		iId = iId.substring(8);
		sKey = iId.substring(iId.length-4, iId.length);
		sKey2 = iId.substring(0,3);
		if ( bOvs == 0 && bLoc == 1 && (iId == '90100' || sKey == '0000' || sKey2 == '901') && contained == 0) continue;
		if ( bOvs == 1 && bLoc == 0 && (iId != '90100' && sKey != '0000' && sKey2 != '901')) continue;
		if( sCurLoc == iId && bOvs == 1 && bLoc == 0) continue;		
		field[i].checked = false ;
		updateThis(field[i], false, true);
		enableThis(field[i]);
		toggleCb(field[i]);
		
		//check short list
		sSL = 'Sl' + field[i].id;
		oSl = getEl(sSL);
		if(oSl != null) enableThis(oSl);
    }	
}

function updateThisScan(sName)
{
	var aCtrl = document.getElementsByName(sName);
	for (var x = 0; x < aCtrl.length; x++) updateThis(aCtrl[x], false, true);		
}

function updateRadioSet(what) {	
	var field = what.name;
	field = document.getElementsByName(field);
	for (i = 0; i < field.length; i++) {
	updateThis(field[i], false, true);
    }
}

function updateThisById(sId, sIdMirror)
{
	oCtrl = getEl(sId);
	if(oCtrl == null) return;
	oCtrl2 = getEl(sIdMirror);
	if(oCtrl2 == null) return;
	oCtrl.checked = oCtrl2.checked;
	updateThis(oCtrl);
}

function updateThis(what, bAvoid, bScan) {
    var selectedClassName = "labelSelected";
    var normalClassName = "labelNormal";

    if( what.checked == true ){what.parentNode.className = selectedClassName;}
	else{what.parentNode.className = normalClassName;}
	
	if(typeof(bAvoid) == 'undefined') bAvoid = false;
	updateThisDesc(what, bAvoid);	

	if(typeof(bScan) == 'undefined') bScan = false;
	if(bScan == false) updateThisDetail(what);	

	//check short list
	sSL = 'Sl' + what.id;
	oSl = getEl(sSL);
	if(oSl != null) oSl.checked = what.checked;
}

function updateThisDesc(what, bAvoid)
{
	if(typeof(bAvoid) == 'undefined') bAvoid = false;
	sName = what.name;
	sName = sName.replace("[]","") + 'Sel';
	//hardcode
	if(sName == 'roleSel') sName = 'specializationSel';
	sDesc = trim(what.alt);
	if(sDesc == '') return;
	
	var oDiv = document.getElementById(sName);
	if(oDiv == null) return;

	sLegend = '<b>Your Selection: </b><br/>';
	
	sHtml = oDiv.innerHTML;
	if(typeof(sHtml) == 'undefined' || sHtml == '') {sHtml = ', ';} 
	else{ sHtml = sHtml.substring(27) ; sHtml = ', ' + sHtml + ', ';}	
	sSearch = ', ' + escapeHTML(sDesc) + ', ';
	if( what.checked == true && bAvoid == false && what.disabled == false)
	{		
		bFound = sHtml.search(sSearch);
		if(bFound == -1) sHtml = sHtml + sDesc + ', ';
	}
	else sHtml = sHtml.replace(sSearch, ', ') ;	 
	if(sHtml.length > 4){ sHtml = sHtml.substring(2, (sHtml.length - 2) ); sHtml = sLegend + sHtml;}
	else {sHtml = '';}
	oDiv.innerHTML = sHtml;
}

//This is customize function
function updateThisDetail(oCtrl)
{	
	if(typeof(updateThisExternal) == 'function') updateThisExternal(oCtrl);
}

/*-------------------------------------------------------------------------------------------------
	Toogle Specialization Role
-------------------------------------------------------------------------------------------------*/
function toggleSpeRole(iSpe, bShow)
{
	sKey = 'optSpeRole' + iSpe;
	sLblKey = 'lblTogSpeRole' + iSpe;
	if(typeof(bShow) == 'undefined')
	{
		var oCtrl = getEl(sKey);
		if(oCtrl.style.display == '' || oCtrl.style.display =='none') bShow = true;
		else  bShow = false;
	}	
	if(bShow)  
	{
		getEl(sLblKey).innerHTML = 'Hide Options';
		showdiv(sKey);		
	}
	else
	{
		getEl(sLblKey).innerHTML = 'More Options';
		hidediv(sKey);		
	}
}



/*-------------------------------------------------------------------------------------------------
	Toogle Check Box Tree - location
-------------------------------------------------------------------------------------------------*/
function toggleCbById(sId)
{
	oCtrl = getEl(sId);
	if(oCtrl == null) return;
	toggleCb(oCtrl);
}

/*Old logic: Using class name. For all same elements (same name)*/
function toggleCb(oCtrl)
{
	sName = oCtrl.name;
	bCheck = oCtrl.checked;
	sStart = oCtrl.parentNode.parentNode.className;	
	bStart = false; 
	var oEl = document.getElementsByName(sName);	
	for (x = 0; x < oEl.length; x++) 
	{		
		if(oEl[x].id == oCtrl.id && bStart == false) { bStart = true; continue; }					
		
		if(bStart == false) continue;

		sParantCls = oEl[x].parentNode.parentNode.className;

		if(sParantCls == "") continue;
		if(sParantCls == sStart && bStart == true) break;		
		if(sParantCls < sStart && bStart == true) break;

		oEl[x].checked = bCheck;
		updateThis(oEl[x], true, true);
		if(bCheck) disableThis(oEl[x]);
		else enableThis(oEl[x]);

		//check short list
		sSL = 'Sl' + oEl[x].id;
		oSl = getEl(sSL);
		if(oSl != null) 
		{
			if(bCheck) disableThis(oSl);
			else enableThis(oSl);	
		}
	}			
}

/*New logic: Store parent id in parent element's id*/
function toggleCbSpe(oCtrl)
{
	sName = 'role[]';
	bCheck = oCtrl.checked;
	iSpe = oCtrl.value;
	var oEl = document.getElementsByName(sName);	
	for (x = 0; x < oEl.length; x++) 
	{		
		sParentSpe = oEl[x].parentNode.parentNode.id;
		sParentSpe = sParentSpe.substring(6);
		if(sParentSpe != iSpe) continue;

		oEl[x].checked = bCheck;
		updateThis(oEl[x], true, true);
		if(bCheck) disableThis(oEl[x]);
		else enableThis(oEl[x]);		
	}			
}

function toggleAllSpe(sId)
{
	oCtrl = document.getElementById(sId);
	if(oCtrl != null) toggleCbSpe(oCtrl);
}

function toggleAllLoc(sId)
{
	oCtrl = document.getElementById(sId);
	if(oCtrl != null) toggleCb(oCtrl);
}

/*-------------------------------------------------------------------------------------------------
	Toogle Quick Search
-------------------------------------------------------------------------------------------------*/
function toggleQs(sName)
{
	var sCtrl = sName + "Con";
	var oCon = document.getElementById(sCtrl);
	if(oCon.style.display == '' || oCon.style.display =='none') showdiv(sCtrl);
	else hidediv(sCtrl);
	updateOptSel(sName);
}

function updateOptSel(sName) 
{	
	var sCtrl = sName + "Sel";
	var sHtml = getCheckBoxSet(sName) ;
	updateInnerHtml(sCtrl, sHtml);
}

function getCheckBoxSet(sName)
{
	var aRes = Array();
	if(sName == 'qsSpe') aRes = getCheckBoxLabel(sName, document.getElementsByName('specialization[]'));
	if(sName == 'qsInd') aRes = getCheckBoxLabel(sName, document.getElementsByName('industry[]'));
	if(sName == 'qsLoc') 
	{ 
		var aRes = getCheckBoxLabel(sName, document.getElementsByName('location[]'));
		aRes = getCheckBoxLabel(sName, document.getElementsByName('country[]'), aRes[0], aRes[1], aRes[2]);		
	}	
	if(typeof(aRes[0]) != 'undefined') return aRes[0];
	return "";
}

function getCheckBoxLabel(sName, elN, sHtml, iCount, iAdd)
{
	var limit = 1;
    var additional = 0;
    var count = 0;
	var STR_FILLER = "";
	var STR_NONE = getDefLabelDesc(sName);
    var STR_ALL = "All";  
	if(typeof(sHtml) == 'undefined' || sHtml == STR_NONE) var sHtml = "";
	if(typeof(iCount) != 'undefined') count = count + iCount;
	if(typeof(iAdd) != 'undefined' && iAdd!=0)
	{
		additional = additional + iAdd;
		sHtml = sHtml.replace(" ... " + additional + " more" , "" );
	}
	limit = limit - count;
	if(limit <= 0) limit = 0;
	
	for(i = 0; i < elN.length; i++){
		if ( elN[i].checked == true && limit > 0) 
		{	    			
			var labels = document.getElementsByTagName('label');
			var mylabel = "";
			for (x = 0; x < labels.length; x++) {
				if(labels[x].htmlFor == elN[i].id) {
					mylabel = labels[x].innerHTML;
				}
			}			
			sHtml += STR_FILLER +"" + mylabel + "";
			limit--;
			count++;
			STR_FILLER = ", ";
		} else if (elN[i].checked == true && limit == 0) {
			additional++;
			count++;
		}
    }

	if (count == 0) sHtml = STR_NONE; 
//	else if (count == elN.length && count != 1) { sHtml = STR_ALL; } 
	else if (limit == 0 && additional > 0) {var ENDSTR = " ... " + additional + " more"; sHtml += ENDSTR ; }
	
	var aRes = Array();
	aRes[0] = sHtml;
	aRes[1] = count;
	aRes[2] = additional;
	return aRes;
}

function getDefLabelDesc(sName)
{
	if(sName == 'qsSpe') return "Select specialization";
	if(sName == 'qsLoc') return "Select location";
	if(sName == 'qsInd') return "Select industry";
	return false;
}





/*-------------------------------------------------------------------------------------------------
	Do advance search
-------------------------------------------------------------------------------------------------*/
function doAdvanceSearch(sUrl)
{
	//Advance search possible param
	var sParam = "";
	sParam = sParam + asGetText('key');
	sParam = sParam + asGetCBList('area');
	sParam = sParam + asGetText('option');
	sParam = sParam + asGetCBList('location', 1);
	sParam = sParam + asGetCBList('industry', 1);
	sParam = sParam + asGetCBList('specialization', 1);
	sParam = sParam + asGetCBList('role', 1);
	sParam = sParam + asGetCBList('position', 1);
	sParam = sParam + asGetCBList('job-type', 1);
	sParam = sParam + asGetCBList('qualification', 1);
	sParam = sParam + asGetCBList('field-of-study', 1);
	sParam = sParam + asGetText('nationality');
	sParam = sParam + asGetText('experience-min');
	sParam = sParam + asGetText('experience-max');
	sParam = sParam + asGetText('salary');	
	sParam = sParam + asGetCBList('classified');
	sParam = sParam + asGetCBList('salary-option');
	sParam = sParam + asGetText('salary-currency');
	sParam = sParam + asGetCBList('job-posted', 1);
	sParam = sParam + asGetHidden('campus');
	sParam = sParam + asGetHidden('src');
	
	if(sParam != "") 
	{
		sParam = sParam.substring(1, sParam.length);		
		sUrl = sUrl + '?' + sParam;
	}
	
	document.location.href = sUrl;	
}

function asGetText(sKey)
{
	oCtrl = getEl(sKey);
	if(oCtrl != null) 
	{
		sVal = trim(oCtrl.value);
		if(sVal != "") return '&' + sKey + '=' + asUrlEncode(sVal);
	}
	return '';
}

function asGetCBList(sKey, bArray)
{
	sCtrl = sKey;
	if(typeof(bArray) !='undefined' && bArray == 1) sCtrl = sCtrl + '[]';
	oCtrl = document.getElementsByName(sCtrl);
	var sParam = '';
    for (i = 0; i < oCtrl.length; i++) {
		if(oCtrl[i].checked  && oCtrl[i].disabled == false)
		{
			sParam = sParam + oCtrl[i].value + ',';
		}	
    }
	if(sParam != '')
	{
		sParam = sParam.substring(0, sParam.length-1);	
		sParam = '&' + sKey + '=' + asUrlEncode(sParam);
	}
	return sParam;
}

function asGetHidden(sKey)
{
	oCtrl = document.getElementsByName(sKey);
	var sParam = '';
    for (i = 0; i < oCtrl.length; i++) {		
		sParam = sParam + oCtrl[i].value;			
    }	
	if(sParam != '')
	{		
		sParam = '&' + sKey + '=' + sParam;
	}
	return sParam;
}

function asUrlEncode(str)
{
	var ret = str;     
	ret = ret.toString();    
	ret = encodeURIComponent(ret);    
	ret = ret.replace(/%20/g, '+');     
	return ret;
	//return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

/*-------------------------------------------------------------------------------------------------
	Banner Part - external
-------------------------------------------------------------------------------------------------*/
// The id/name for flash banner
leaderboard_id = "homepage_leaderboard";

// Setup expandable leaderboard
function jobstreet_setup_expleaderboard(file, width, height, expwidth, expheight) {
      if(!expwidth) {
            expwidth = width;
      }
      if(!expheight) {
            expheight = height;
      }
      jobstreet_writeFlash(leaderboard_id, file, expwidth, expheight, "transparent", "");
      jobstreet_shrink_leaderboard();
} 

// Call this from flash banner to expand your ad
function jobstreet_expand_leaderboard() {
      jobstreet_getFlash(leaderboard_id).height = 120;
}

// Call this from flash banner to shrink your ad
function jobstreet_shrink_leaderboard() {
      jobstreet_getFlash(leaderboard_id).height = 60;
}

// Function to get flash id/name
function jobstreet_getFlash(id) {
      if(navigator.appName.indexOf("Microsoft") != -1) {
            return window[id];
      }else {
            return document[id];
      }
}

// Function to write the flash
function jobstreet_writeFlash(id, file, width, height, wmode, params) {
      var flashTag = '';
      flashTag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
      flashTag += 'id="' + id + '" ';
      flashTag += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#" ';
      flashTag += 'width="' + width + '" ';
      flashTag += 'height="' + height + '">';
      flashTag += '<param name="movie" value="' + file + '"/>';
      flashTag += '<param name="wmode" value="' + wmode + '"/>';
      flashTag += '<param name="quality" value="high"/>';
      flashTag += '<param name="flashvars" value="' + params + '"/>';
      flashTag += '<param name="allowscriptaccess" value="always"/>';
      flashTag += '<embed src="' + file + '"';
      flashTag += ' width="' + width + '"';
      flashTag += ' height="' + height + '"';
      flashTag += ' type="application/x-shockwave-flash"';
      flashTag += ' name="' + id + '"';
      flashTag += ' allowscriptaccess="always"';
      flashTag += ' quality="high"';
      flashTag += ' wmode="' + wmode + '" ';
      flashTag += ' flashvars="' + params + '" ';
      flashTag += ' swliveconnect="true" ';
      flashTag += ' pluginspage="http://www.macromedia.com/go/getflashplayer">';
      flashTag += '</embed>';
      flashTag += '</object>';
      document.write(flashTag);
}
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"});
