/* yahoo 2.1.0 */
if(typeof YAHOO=="undefined"){var YAHOO={};}YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;++i){d=a[i].split(".");o=YAHOO;for(j=(d[0]=="YAHOO")?1:0;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}return o;};YAHOO.log=function(_2,_3,_4){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(_2,_3,_4);}else{return false;}};YAHOO.extend=function(_6,_7,_8){var F=function(){};F.prototype=_7.prototype;_6.prototype=new F();_6.prototype.constructor=_6;_6.superclass=_7.prototype;if(_7.prototype.constructor==Object.prototype.constructor){_7.prototype.constructor=_7;}if(_8){for(var i in _8){_6.prototype[i]=_8[i];}}};YAHOO.augment=function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i<a.length;++i){rp[a[i]]=sp[a[i]];}}else{for(p in sp){if(!rp[p]){rp[p]=sp[p];}}}};YAHOO.namespace("util","widget","example");
/* connection 2.1.0 */
YAHOO.util.Connect={_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_header:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded',_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,setProgId:function(id){this._msxml_progid.unshift(id);},setDefaultPostHeader:function(b){this._use_default_post_header=b;},setPollingInterval:function(i){if(typeof i=='number'&&isFinite(i)){this._polling_interval=i;}},createXhrObject:function(transactionId){var obj,http;try{http=new XMLHttpRequest();obj={conn:http,tId:transactionId};}catch(e){for(var i=0;i<this._msxml_progid.length;++i){try{http=new ActiveXObject(this._msxml_progid[i]);obj={conn:http,tId:transactionId};break;}catch(e){}}}finally{return obj;}},getConnectionObject:function(){var o;var tId=this._transaction_id;try{o=this.createXhrObject(tId);if(o){this._transaction_id++;}}catch(e){}finally{return o;}},asyncRequest:function(method,uri,callback,postData){var o=this.getConnectionObject();if(!o){return null;}else{if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(o.tId,callback,uri,postData);this.releaseObject(o);return;}if(method=='GET'){if(this._sFormData.length!=0){uri+=((uri.indexOf('?')==-1)?'?':'&')+this._sFormData;}else{uri+="?"+this._sFormData;}}else if(method=='POST'){postData=postData?this._sFormData+"&"+postData:this._sFormData;}}o.conn.open(method,uri,true);if(this._isFormSubmit||(postData&&this._use_default_post_header)){this.initHeader('Content-Type',this._default_post_header);if(this._isFormSubmit){this.resetFormState();}}if(this._has_http_headers){this.setHeader(o);}this.handleReadyState(o,callback);o.conn.send(postData||null);return o;}},handleReadyState:function(o,callback){var oConn=this;if(callback&&callback.timeout){this._timeOut[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}this._poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState==4){window.clearInterval(oConn._poll[o.tId]);delete oConn._poll[o.tId];if(callback&&callback.timeout){delete oConn._timeOut[o.tId];}oConn.handleTransactionResponse(o,callback);}},this._polling_interval);},handleTransactionResponse:function(o,callback,isAbort){if(!callback){this.releaseObject(o);return;}var httpStatus,responseObject;try{if(o.conn.status!==undefined&&o.conn.status!=0){httpStatus=o.conn.status;}else{httpStatus=13030;}}catch(e){httpStatus=13030;}if(httpStatus>=200&&httpStatus<300){try{responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);}else{callback.success.apply(callback.scope,[responseObject]);}}}catch(e){}}else{try{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);}else{callback.failure.apply(callback.scope,[responseObject]);}}break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);}else{callback.failure.apply(callback.scope,[responseObject]);}}}}catch(e){}}this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg){var obj={};var headerObj={};try{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i<header.length;i++){var delimitPos=header[i].indexOf(':');if(delimitPos!=-1){headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}}}catch(e){}obj.tId=o.tId;obj.status=o.conn.status;obj.statusText=o.conn.statusText;obj.getResponseHeader=headerObj;obj.getAllResponseHeaders=headerStr;obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof callbackArg!==undefined){obj.argument=callbackArg;}return obj;},createExceptionObject:function(tId,callbackArg,isAbort){var COMM_CODE=0;var COMM_ERROR='communication failure';var ABORT_CODE=-1;var ABORT_ERROR='transaction aborted';var obj={};obj.tId=tId;if(isAbort){obj.status=ABORT_CODE;obj.statusText=ABORT_ERROR;}else{obj.status=COMM_CODE;obj.statusText=COMM_ERROR;}if(callbackArg){obj.argument=callbackArg;}return obj;},initHeader:function(label,value){if(this._http_header[label]===undefined){this._http_header[label]=value;}else{this._http_header[label]=value+","+this._http_header[label];}this._has_http_headers=true;},setHeader:function(o){for(var prop in this._http_header){if(this._http_header.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this._http_header[prop]);}}delete this._http_header;this._http_header={};this._has_http_headers=false;},setForm:function(formId,isUpload,secureUri){this.resetFormState();var oForm;if(typeof formId=='string'){oForm=(document.getElementById(formId)||document.forms[formId]);}else if(typeof formId=='object'){oForm=formId;}else{return;}if(isUpload){this.createFrame(secureUri?secureUri:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=oForm;return;}var oElement,oName,oValue,oDisabled;var hasSubmit=false;for(var i=0;i<oForm.elements.length;i++){oElement=oForm.elements[i];oDisabled=oForm.elements[i].disabled;oName=oForm.elements[i].name;oValue=oForm.elements[i].value;if(!oDisabled&&oName){switch(oElement.type){case'select-one':case'select-multiple':for(var j=0;j<oElement.options.length;j++){if(oElement.options[j].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';}else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';}}}break;case'radio':case'checkbox':if(oElement.checked){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}break;case'file':case undefined:case'reset':case'button':break;case'submit':if(hasSubmit==false){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';hasSubmit=true;}break;default:this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';break;}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(secureUri){var frameId='yuiIO'+this._transaction_id;if(window.ActiveXObject){var io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');if(typeof secureUri=='boolean'){io.src='javascript:false';}else if(typeof secureURI=='string'){io.src=secureUri;}}else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;}io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData){var formElements=new Array();var postMessage=postData.split('&');for(var i=0;i<postMessage.length;i++){var delimitPos=postMessage[i].indexOf('=');if(delimitPos!=-1){formElements[i]=document.createElement('input');formElements[i].type='hidden';formElements[i].name=postMessage[i].substring(0,delimitPos);formElements[i].value=postMessage[i].substring(delimitPos+1);this._formNode.appendChild(formElements[i]);}}return formElements;},uploadFile:function(id,callback,uri,postData){var frameId='yuiIO'+id;var io=document.getElementById(frameId);this._formNode.action=uri;this._formNode.method='POST';this._formNode.target=frameId;if(this._formNode.encoding){this._formNode.encoding='multipart/form-data';}else{this._formNode.enctype='multipart/form-data';}if(postData){var oElements=this.appendPostData(postData);}this._formNode.submit();if(oElements&&oElements.length>0){try{for(var i=0;i<oElements.length;i++){this._formNode.removeChild(oElements[i]);}}catch(e){}}this.resetFormState();var uploadCallback=function(){var obj={};obj.tId=id;obj.argument=callback.argument;try{obj.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;obj.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;}catch(e){}if(callback.upload){if(!callback.scope){callback.upload(obj);}else{callback.upload.apply(callback.scope,[obj]);}}if(YAHOO.util.Event){YAHOO.util.Event.removeListener(io,"load",uploadCallback);}else if(window.detachEvent){io.detachEvent('onload',uploadCallback);}else{io.removeEventListener('load',uploadCallback,false);}setTimeout(function(){document.body.removeChild(io);},100);};if(YAHOO.util.Event){YAHOO.util.Event.addListener(io,"load",uploadCallback);}else if(window.attachEvent){io.attachEvent('onload',uploadCallback);}else{io.addEventListener('load',uploadCallback,false);}},abort:function(o,callback,isTimeout){if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this._poll[o.tId]);delete this._poll[o.tId];if(isTimeout){delete this._timeOut[o.tId];}this.handleTransactionResponse(o,callback,true);return true;}else{return false;}},isCallInProgress:function(o){if(o.conn){return o.conn.readyState!=4&&o.conn.readyState!=0;}else{return false;}},releaseObject:function(o){o.conn=null;o=null;}};
/* event 2.1.0 */
YAHOO.util.CustomEvent=function(_1,_2,_3,_4){this.type=_1;this.scope=_2||window;this.silent=_3;this.signature=_4||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var _5="_YUICEOnSubscribe";if(_1!==_5){this.subscribeEvent=new YAHOO.util.CustomEvent(_5,this,true);}};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(fn,_7,_8){if(this.subscribeEvent){this.subscribeEvent.fire(fn,_7,_8);}this.subscribers.push(new YAHOO.util.Subscriber(fn,_7,_8));},unsubscribe:function(fn,_9){var _10=false;for(var i=0,len=this.subscribers.length;i<len;++i){var s=this.subscribers[i];if(s&&s.contains(fn,_9)){this._delete(i);_10=true;}}return _10;},fire:function(){var len=this.subscribers.length;if(!len&&this.silent){return true;}var _14=[],ret=true,i;for(i=0;i<arguments.length;++i){_14.push(arguments[i]);}var _15=_14.length;if(!this.silent){}for(i=0;i<len;++i){var s=this.subscribers[i];if(s){if(!this.silent){}var _16=s.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var _17=null;if(_14.length>0){_17=_14[0];}ret=s.fn.call(_16,_17,s.obj);}else{ret=s.fn.call(_16,this.type,_14,s.obj);}if(false===ret){if(!this.silent){}return false;}}}return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i<len;++i){this._delete(len-1-i);}},_delete:function(_18){var s=this.subscribers[_18];if(s){delete s.fn;delete s.obj;}this.subscribers.splice(_18,1);},toString:function(){return "CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(fn,obj,_20){this.fn=fn;this.obj=obj||null;this.override=_20;};YAHOO.util.Subscriber.prototype.getScope=function(_21){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return _21;};YAHOO.util.Subscriber.prototype.contains=function(fn,obj){if(obj){return (this.fn==fn&&this.obj==obj);}else{return (this.fn==fn);}};YAHOO.util.Subscriber.prototype.toString=function(){return "Subscriber { obj: "+(this.obj||"")+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var _22=false;var _23=[];var _24=[];var _25=[];var _26=[];var _27=0;var _28=[];var _29=[];var _30=0;return {POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/Safari|Konqueror|KHTML/gi).test(navigator.userAgent),isIE:(!this.isSafari&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_interval:null,startInterval:function(){if(!this._interval){var _31=this;var _32=function(){_31._tryPreloadAttach();};this._interval=setInterval(_32,this.POLL_INTERVAL);}},onAvailable:function(_33,_34,_35,_36){_28.push({id:_33,fn:_34,obj:_35,override:_36,checkReady:false});_27=this.POLL_RETRYS;this.startInterval();},onContentReady:function(_37,_38,_39,_40){_28.push({id:_37,fn:_38,obj:_39,override:_40,checkReady:true});_27=this.POLL_RETRYS;this.startInterval();},addListener:function(el,_42,fn,obj,_43){if(!fn||!fn.call){return false;}if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i<len;++i){ok=this.on(el[i],_42,fn,obj,_43)&&ok;}return ok;}else{if(typeof el=="string"){var oEl=this.getEl(el);if(oEl){el=oEl;}else{this.onAvailable(el,function(){YAHOO.util.Event.on(el,_42,fn,obj,_43);});return true;}}}if(!el){return false;}if("unload"==_42&&obj!==this){_24[_24.length]=[el,_42,fn,obj,_43];return true;}var _46=el;if(_43){if(_43===true){_46=obj;}else{_46=_43;}}var _47=function(e){return fn.call(_46,YAHOO.util.Event.getEvent(e),obj);};var li=[el,_42,fn,_47,_46];var _50=_23.length;_23[_50]=li;if(this.useLegacyEvent(el,_42)){var _51=this.getLegacyIndex(el,_42);if(_51==-1||el!=_25[_51][0]){_51=_25.length;_29[el.id+_42]=_51;_25[_51]=[el,_42,el["on"+_42]];_26[_51]=[];el["on"+_42]=function(e){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),_51);};}_26[_51].push(li);}else{this._simpleAdd(el,_42,_47,false);}return true;},fireLegacyEvent:function(e,_52){var ok=true;var le=_26[_52];for(var i=0,len=le.length;i<len;++i){var li=le[i];if(li&&li[this.WFN]){var _54=li[this.ADJ_SCOPE];var ret=li[this.WFN].call(_54,e);ok=(ok&&ret);}}return ok;},getLegacyIndex:function(el,_56){var key=this.generateId(el)+_56;if(typeof _29[key]=="undefined"){return -1;}else{return _29[key];}},useLegacyEvent:function(el,_58){if(!el.addEventListener&&!el.attachEvent){return true;}else{if(this.isSafari){if("click"==_58||"dblclick"==_58){return true;}}}return false;},removeListener:function(el,_59,fn){var i,len;if(typeof el=="string"){el=this.getEl(el);}else{if(this._isValidCollection(el)){var ok=true;for(i=0,len=el.length;i<len;++i){ok=(this.removeListener(el[i],_59,fn)&&ok);}return ok;}}if(!fn||!fn.call){return this.purgeElement(el,false,_59);}if("unload"==_59){for(i=0,len=_24.length;i<len;i++){var li=_24[i];if(li&&li[0]==el&&li[1]==_59&&li[2]==fn){_24.splice(i,1);return true;}}return false;}var _60=null;var _61=arguments[3];if("undefined"==typeof _61){_61=this._getCacheIndex(el,_59,fn);}if(_61>=0){_60=_23[_61];}if(!el||!_60){return false;}if(this.useLegacyEvent(el,_59)){var _62=this.getLegacyIndex(el,_59);var _63=_26[_62];if(_63){for(i=0,len=_63.length;i<len;++i){li=_63[i];if(li&&li[this.EL]==el&&li[this.TYPE]==_59&&li[this.FN]==fn){_63.splice(i,1);break;}}}}else{this._simpleRemove(el,_59,_60[this.WFN],false);}delete _23[_61][this.WFN];delete _23[_61][this.FN];_23.splice(_61,1);return true;},getTarget:function(ev,_65){var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(_67){if(_67&&3==_67.nodeType){return _67.parentNode;}else{return _67;}},getPageX:function(ev){var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(this.isIE){x+=this._getScrollLeft();}}return x;},getPageY:function(ev){var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(this.isIE){y+=this._getScrollTop();}}return y;},getXY:function(ev){return [this.getPageX(ev),this.getPageY(ev)];},getRelatedTarget:function(ev){var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement;}else{if(ev.type=="mouseover"){t=ev.fromElement;}}}return this.resolveTextNode(t);},getTime:function(ev){if(!ev.time){var t=new Date().getTime();try{ev.time=t;}catch(e){return t;}}return ev.time;},stopEvent:function(ev){this.stopPropagation(ev);this.preventDefault(ev);},stopPropagation:function(ev){if(ev.stopPropagation){ev.stopPropagation();}else{ev.cancelBubble=true;}},preventDefault:function(ev){if(ev.preventDefault){ev.preventDefault();}else{ev.returnValue=false;}},getEvent:function(e){var ev=e||window.event;if(!ev){var c=this.getEvent.caller;while(c){ev=c.arguments[0];if(ev&&Event==ev.constructor){break;}c=c.caller;}}return ev;},getCharCode:function(ev){return ev.charCode||ev.keyCode||0;},_getCacheIndex:function(el,_71,fn){for(var i=0,len=_23.length;i<len;++i){var li=_23[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==_71){return i;}}return -1;},generateId:function(el){var id=el.id;if(!id){id="yuievtautoid-"+_30;++_30;el.id=id;}return id;},_isValidCollection:function(o){return (o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined");},elCache:{},getEl:function(id){return document.getElementById(id);},clearCache:function(){},_load:function(e){_22=true;var EU=YAHOO.util.Event;if(this.isIE){EU._simpleRemove(window,"load",EU._load);}},_tryPreloadAttach:function(){if(this.locked){return false;}this.locked=true;var _75=!_22;if(!_75){_75=(_27>0);}var _76=[];for(var i=0,len=_28.length;i<len;++i){var _77=_28[i];if(_77){var el=this.getEl(_77.id);if(el){if(!_77.checkReady||_22||el.nextSibling||(document&&document.body)){var _78=el;if(_77.override){if(_77.override===true){_78=_77.obj;}else{_78=_77.override;}}_77.fn.call(_78,_77.obj);delete _28[i];}}else{_76.push(_77);}}}_27=(_76.length===0)?0:_27-1;if(_75){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(el,_79,_80){var _81=this.getListeners(el,_80);if(_81){for(var i=0,len=_81.length;i<len;++i){var l=_81[i];this.removeListener(el,l.type,l.fn);}}if(_79&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],_79,_80);}}},getListeners:function(el,_83){var _84=[];if(_23&&_23.length>0){for(var i=0,len=_23.length;i<len;++i){var l=_23[i];if(l&&l[this.EL]===el&&(!_83||_83===l[this.TYPE])){_84.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.OBJ],adjust:l[this.ADJ_SCOPE],index:i});}}}return (_84.length)?_84:null;},_unload:function(e){var EU=YAHOO.util.Event,i,j,l,len,index;for(i=0,len=_24.length;i<len;++i){l=_24[i];if(l){var _85=window;if(l[EU.ADJ_SCOPE]){if(l[EU.ADJ_SCOPE]===true){_85=l[EU.OBJ];}else{_85=l[EU.ADJ_SCOPE];}}l[EU.FN].call(_85,EU.getEvent(e),l[EU.OBJ]);delete _24[i];l=null;_85=null;}}if(_23&&_23.length>0){j=_23.length;while(j){index=j-1;l=_23[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);}j=j-1;}l=null;EU.clearCache();}for(i=0,len=_25.length;i<len;++i){delete _25[i][0];delete _25[i];}EU._simpleRemove(window,"unload",EU._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var dd=document.documentElement,db=document.body;if(dd&&(dd.scrollTop||dd.scrollLeft)){return [dd.scrollTop,dd.scrollLeft];}else{if(db){return [db.scrollTop,db.scrollLeft];}else{return [0,0];}}},_simpleAdd:function(){if(window.addEventListener){return function(el,_87,fn,_88){el.addEventListener(_87,fn,(_88));};}else{if(window.attachEvent){return function(el,_89,fn,_90){el.attachEvent("on"+_89,fn);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(el,_91,fn,_92){el.removeEventListener(_91,fn,(_92));};}else{if(window.detachEvent){return function(el,_93,fn){el.detachEvent("on"+_93,fn);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;if(document&&document.body){EU._load();}else{EU._simpleAdd(window,"load",EU._load);}EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(_94,_95,_96,_97){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[_94];if(ce){ce.subscribe(_95,_96,_97);}else{this.__yui_subscribers=this.__yui_subscribers||{};var _99=this.__yui_subscribers;if(!_99[_94]){_99[_94]=[];}_99[_94].push({fn:_95,obj:_96,override:_97});}},unsubscribe:function(_100,p_fn,_102){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[_100];if(ce){return ce.unsubscribe(p_fn,_102);}else{return false;}},createEvent:function(_103,_104){this.__yui_events=this.__yui_events||{};var opts=_104||{};var _106=this.__yui_events;if(_106[_103]){}else{var _107=opts.scope||this;var _108=opts.silent||null;var ce=new YAHOO.util.CustomEvent(_103,_107,_108,YAHOO.util.CustomEvent.FLAT);_106[_103]=ce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscribe(opts.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var qs=this.__yui_subscribers[_103];if(qs){for(var i=0;i<qs.length;++i){ce.subscribe(qs[i].fn,qs[i].obj,qs[i].override);}}}return _106[_103];},fireEvent:function(_110,arg1,arg2,etc){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[_110];if(ce){var args=[];for(var i=1;i<arguments.length;++i){args.push(arguments[i]);}return ce.fire.apply(ce,args);}else{return null;}},hasEvent:function(type){if(this.__yui_events){if(this.__yui_events[type]){return true;}}return false;}};
/* dom 2.1.0 */
(function(){var Y=YAHOO.util,getStyle,setStyle,id_counter=0,propertyCache={};var ua=navigator.userAgent.toLowerCase(),isOpera=(ua.indexOf('opera')>-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;}if(propertyCache[property]){return propertyCache[property];}while(patterns.HYPHEN.exec(property)){property=property.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}propertyCache[property]=property;return property;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];}return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}}return val/100;break;default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};}if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}break;default:el.style[property]=val;}};}else{setStyle=function(el,property,val){el.style[property]=val;};}YAHOO.util.Dom={get:function(el){if(!el){return null;}if(typeof el!='string'&&!(el instanceof Array)){return el;}if(typeof el=='string'){return document.getElementById(el);}else{var collection=[];for(var i=0,len=el.length;i<len;++i){collection[collection.length]=Y.Dom.get(el[i]);}return collection;}return null;},getStyle:function(el,property){property=toCamel(property);var f=function(element){return getStyle(element,property);};return Y.Dom.batch(el,f,Y.Dom,true);},setStyle:function(el,property,val){property=toCamel(property);var f=function(element){setStyle(element,property,val);};Y.Dom.batch(el,f,Y.Dom,true);},getXY:function(el){var f=function(el){if(el.parentNode===null||el.offsetParent===null||this.getStyle(el,'display')=='none'){return false;}var parentNode=null;var pos=[];var box;if(el.getBoundingClientRect){box=el.getBoundingClientRect();var doc=document;if(!this.inDocument(el)&&parent.document!=document){doc=parent.document;if(!this.isAncestor(doc.documentElement,el)){return false;}}var scrollTop=Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);var scrollLeft=Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);return[box.left+scrollLeft,box.top+scrollTop];}else{pos=[el.offsetLeft,el.offsetTop];parentNode=el.offsetParent;if(parentNode!=el){while(parentNode){pos[0]+=parentNode.offsetLeft;pos[1]+=parentNode.offsetTop;parentNode=parentNode.offsetParent;}}if(isSafari&&this.getStyle(el,'position')=='absolute'){pos[0]-=document.body.offsetLeft;pos[1]-=document.body.offsetTop;}}if(el.parentNode){parentNode=el.parentNode;}else{parentNode=null;}while(parentNode&&parentNode.tagName.toUpperCase()!='BODY'&&parentNode.tagName.toUpperCase()!='HTML'){if(Y.Dom.getStyle(parentNode,'display')!='inline'){pos[0]-=parentNode.scrollLeft;pos[1]-=parentNode.scrollTop;}if(parentNode.parentNode){parentNode=parentNode.parentNode;}else{parentNode=null;}}return pos;};return Y.Dom.batch(el,f,Y.Dom,true);},getX:function(el){var f=function(el){return Y.Dom.getXY(el)[0];};return Y.Dom.batch(el,f,Y.Dom,true);},getY:function(el){var f=function(el){return Y.Dom.getXY(el)[1];};return Y.Dom.batch(el,f,Y.Dom,true);},setXY:function(el,pos,noRetry){var f=function(el){var style_pos=this.getStyle(el,'position');if(style_pos=='static'){this.setStyle(el,'position','relative');style_pos='relative';}var pageXY=this.getXY(el);if(pageXY===false){return false;}var delta=[parseInt(this.getStyle(el,'left'),10),parseInt(this.getStyle(el,'top'),10)];if(isNaN(delta[0])){delta[0]=(style_pos=='relative')?0:el.offsetLeft;}if(isNaN(delta[1])){delta[1]=(style_pos=='relative')?0:el.offsetTop;}if(pos[0]!==null){el.style.left=pos[0]-pageXY[0]+delta[0]+'px';}if(pos[1]!==null){el.style.top=pos[1]-pageXY[1]+delta[1]+'px';}var newXY=this.getXY(el);if(!noRetry&&(newXY[0]!=pos[0]||newXY[1]!=pos[1])){this.setXY(el,pos,true);}};Y.Dom.batch(el,f,Y.Dom,true);},setX:function(el,x){Y.Dom.setXY(el,[x,null]);},setY:function(el,y){Y.Dom.setXY(el,[null,y]);},getRegion:function(el){var f=function(el){var region=new Y.Region.getRegion(el);return region;};return Y.Dom.batch(el,f,Y.Dom,true);},getClientWidth:function(){return Y.Dom.getViewportWidth();},getClientHeight:function(){return Y.Dom.getViewportHeight();},getElementsByClassName:function(className,tag,root){var method=function(el){return Y.Dom.hasClass(el,className);};return Y.Dom.getElementsBy(method,tag,root);},hasClass:function(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');var f=function(el){return re.test(el['className']);};return Y.Dom.batch(el,f,Y.Dom,true);},addClass:function(el,className){var f=function(el){if(this.hasClass(el,className)){return;}el['className']=[el['className'],className].join(' ');};Y.Dom.batch(el,f,Y.Dom,true);},removeClass:function(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');var f=function(el){if(!this.hasClass(el,className)){return;}var c=el['className'];el['className']=c.replace(re,' ');if(this.hasClass(el,className)){this.removeClass(el,className);}};Y.Dom.batch(el,f,Y.Dom,true);},replaceClass:function(el,oldClassName,newClassName){if(oldClassName===newClassName){return false;}var re=new RegExp('(?:^|\\s+)'+oldClassName+'(?:\\s+|$)','g');var f=function(el){if(!this.hasClass(el,oldClassName)){this.addClass(el,newClassName);return;}el['className']=el['className'].replace(re,' '+newClassName+' ');if(this.hasClass(el,oldClassName)){this.replaceClass(el,oldClassName,newClassName);}};Y.Dom.batch(el,f,Y.Dom,true);},generateId:function(el,prefix){prefix=prefix||'yui-gen';el=el||{};var f=function(el){if(el){el=Y.Dom.get(el);}else{el={};}if(!el.id){el.id=prefix+id_counter++;}return el.id;};return Y.Dom.batch(el,f,Y.Dom,true);},isAncestor:function(haystack,needle){haystack=Y.Dom.get(haystack);if(!haystack||!needle){return false;}var f=function(needle){if(haystack.contains&&!isSafari){return haystack.contains(needle);}else if(haystack.compareDocumentPosition){return!!(haystack.compareDocumentPosition(needle)&16);}else{var parent=needle.parentNode;while(parent){if(parent==haystack){return true;}else if(!parent.tagName||parent.tagName.toUpperCase()=='HTML'){return false;}parent=parent.parentNode;}return false;}};return Y.Dom.batch(needle,f,Y.Dom,true);},inDocument:function(el){var f=function(el){return this.isAncestor(document.documentElement,el);};return Y.Dom.batch(el,f,Y.Dom,true);},getElementsBy:function(method,tag,root){tag=tag||'*';root=Y.Dom.get(root)||document;var nodes=[];var elements=root.getElementsByTagName(tag);if(!elements.length&&(tag=='*'&&root.all)){elements=root.all;}for(var i=0,len=elements.length;i<len;++i){if(method(elements[i])){nodes[nodes.length]=elements[i];}}return nodes;},batch:function(el,method,o,override){var id=el;el=Y.Dom.get(el);var scope=(override)?o:window;if(!el||el.tagName||!el.length){if(!el){return false;}return method.call(scope,el,o);}var collection=[];for(var i=0,len=el.length;i<len;++i){if(!el[i]){id=el[i];}collection[collection.length]=method.call(scope,el[i],o);}return collection;},getDocumentHeight:function(){var scrollHeight=(document.compatMode!='CSS1Compat')?document.body.scrollHeight:document.documentElement.scrollHeight;var h=Math.max(scrollHeight,Y.Dom.getViewportHeight());return h;},getDocumentWidth:function(){var scrollWidth=(document.compatMode!='CSS1Compat')?document.body.scrollWidth:document.documentElement.scrollWidth;var w=Math.max(scrollWidth,Y.Dom.getViewportWidth());return w;},getViewportHeight:function(){var height=self.innerHeight;var mode=document.compatMode;if((mode||isIE)&&!isOpera){height=(mode=='CSS1Compat')?document.documentElement.clientHeight:document.body.clientHeight;}return height;},getViewportWidth:function(){var width=self.innerWidth;var mode=document.compatMode;if(mode||isIE){width=(mode=='CSS1Compat')?document.documentElement.clientWidth:document.body.clientWidth;}return width;}};})();YAHOO.util.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};YAHOO.util.Region.prototype.contains=function(region){return(region.left>=this.left&&region.right<=this.right&&region.top>=this.top&&region.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO.util.Region(t,r,b,l);}else{return null;}};YAHOO.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];}this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();
/* my */
YAHOO.My  = {}; 
YAHOO.My.String = new function() { this.toString = function() { var a = []; for(var i in this) { a.push(i); }; return (a.join('\n')); }; this.trim = function(sString) {return sString.toString().replace(/(^\s+)|\s+$/g,"");}; }; YAHOO.My.Interaction = new function() { this.toString = function() { var a = []; for(var i in this) { a.push(i); }; return (a.join('\n')); }; var Interaction = this; Interaction.popElementByAttribute = function( oNode, sAttributeName , sAttributeValue ,iMaxLevel ) { var trimString = YAHOO.My.String.trim; var re = new RegExp("(^|\\s)"+  trimString( sAttributeValue ) +"(\\s|$)"); var oElement; var i = iMaxLevel; while(oNode) { if(i!=null) { if( i<0){return null;} else{ i--;}; }; var c; var sa ; try{ sa = oNode.getAttribute(sAttributeName); switch(true) { case (sAttributeName=='className' || sAttributeName=='class'):; c =  trimString( oNode['className']); break; case (sAttributeName=='tagName' || sAttributeName=='nodeName'):; c =  trimString( oNode['tagName']).toUpperCase(); sAttributeValue = sAttributeValue.toUpperCase(); re = new RegExp("(^|\\s)"+  trimString( sAttributeValue ) +"(\\s|$)"); break; default:; c =  trimString( (sa ||  oNode[sAttributeName] ) + '' ); break; }; }catch(err){return null;}; if( c == null ){return null;} else { switch(true) { case ( (sAttributeValue=='*') && (sa!=null) && (sa!='') ) : ; return oNode ; break; case (  (sAttributeValue!='*') && re.test(c) ): ; return oNode ; break; default:; oNode = oNode['parentNode']; if(!oNode){return null; }; }; }; }; }; var aSupportInteractionEvent = ('click,mousedown,mouseup,mouseover,mouseout,mousemove,mousewheel,keydown,keyup,keypress,focus,blur,change').split(','); Interaction.SupportInteractionEvent = {}; while(aSupportInteractionEvent.length>0) { Interaction.SupportInteractionEvent[aSupportInteractionEvent.shift()] = 1; }; Interaction.addListener = function ( dInteractionTarget ,sEventType, fCallback ,   sAttributeName , sAttributeValue , bStopEvent , iMaxLevel  ) { if(!fCallback ){  fCallback = function(){};}; var sElementId = null; if(typeof( dInteractionTarget ) =='string') { var obj =  document.getElementById(dInteractionTarget); if(! obj ) { sElementId = dInteractionTarget; dInteractionTarget = document; }; }; var trimString=function(sString){ return sString.toString().replace(/(^\s+)|\s+$/g,""); }; sEventType =  trimString( sEventType + '').toLowerCase(); if(!Interaction.SupportInteractionEvent[ sEventType ]) { return true; }; var InteractionHandler = function(e,oArg) { var oNode = e.target || e.srcElement; var sName = sAttributeName || 'className'; oNode = Interaction.popElementByAttribute(  oNode ,sName , sAttributeValue ,iMaxLevel); if(oNode) { if(!e.target){e.target = e.srcElement ;}; fCallback(e,oNode,dInteractionTarget); if( bStopEvent) { YAHOO.util.Event.preventDefault(e); YAHOO.util.Event.stopPropagation(e); return false; } else { return true; }; }; }; YAHOO.util.Event.addListener(dInteractionTarget,sEventType,InteractionHandler); if(sElementId) { dInteractionTarget = document; var findElementAfterWindowOnload = function() { dInteractionTarget = document.getElementById(sElementId); YAHOO.util.Event.removeListener(window,'load',findElementAfterWindowOnload); YAHOO.util.Event.removeListener( document ,sEventType, InteractionHandler  ); YAHOO.util.Event.addListener(dInteractionTarget,sEventType,InteractionHandler); }; YAHOO.util.Event.addListener(window,'load',findElementAfterWindowOnload); }; return InteractionHandler; }; Interaction.removeListener = function ( dInteractionTarget ,sEventType, fCallback  ) { YAHOO.util.Event.removeListener(dInteractionTarget,sEventType,fCallback ); }; }; YAHOO.My.Browser = new function() { this.toString = function() { var a = []; for(var i in this) { a.push(i); }; return (a.join('\n')); }; var B = this; B["ie"] = !!( document.all && !window.opera ); B["ie7+="] = !!(B["ie"] && window.XMLHttpRequest); B["ie7-"] = !!( B["ie"] && !B["ie7+="]  ); }; YAHOO.My.Util = new function() { this.toString = function() { var a = []; for(var i in this) { a.push(i); }; return (a.join('\n')); }; var GUID = Date.parse(new Date); this.setTimeout2= function (fn,ms,param) { if(typeof(fn)=='function') { return (function (fn,ms,param) { var fo = function () { fn(param); }; return setTimeout(fo,ms); })(fn,ms,param); } else if(typeof(fn)=='string') { return  setTimeout(fn,ms); } else { throw Error('setTimeout2 Error\nInvalid function type'); }; }; this.getUniqueId = function() { return  GUID++; }; }; YAHOO.My.Dom = new function() { this.toString = function() { var a = []; for(var i in this) { a.push(i); }; return (a.join('\n')); }; this.getUniqueElementId = function(oNode) { var gid = function() { return  [ 'YUNIQUEID' , YAHOO.My.Util.getUniqueId() , Math.ceil( Math.random() * 100000 ), Date.parse(new Date) ].join('X'); }; if(!oNode) { var sid = gid(); while(document.getElementById(sid)) { sid = gid(); }; return sid; } else { if(oNode.id=='') { var sid = gid(); while(document.getElementById(sid)) { sid = gid(); }; oNode.id =  sid; return sid; } else { return oNode['id']; }; }; }; this.createIframe = function(oArguments,oApprenTarget) { var F  = null; if( typeof(oArguments) == 'string') { /*url*/ oArguments = { src:oArguments }; } else if( typeof(oArguments) != 'object') { oArguments = {}; }; oApprenTarget = oApprenTarget || document.body; var fid = YAHOO.getUniqueElementId(); if(typeof(oArguments)=='object') { fid =  oArguments['name'] || oArguments['id']  || fid; }; var defaultArgs = { id:fid, name:fid, frameborder:'0', framemargin:'0', framespace:'0', scrolling:'auto' }; for(var j in defaultArgs) { if( oArguments[j] == null) { oArguments[j] = defaultArgs[j]; }; }; if(window.XMLHttpRequest || document.compatMode) {   /*Gecko, Safari, Opera, IE6*/ F = document.createElement( 'iframe'); for(i in oArguments) { F.setAttribute(i,oArguments[i]); }; oApprenTarget.appendChild(F); } else if(window.XMLHttpRequest ==null && document.uniqueID) { /*for IE5+ need different way to get <IFRAME>*/ var properties = []; var j=0; for(var i in oArguments) { properties[j] = [i,'=',oArguments[i]].join(''); j++; }; properties = properties.join(' '); F = document.createElement( ['<IFRAME' , properties , '></IFRAME>'].join(' ')); oApprenTarget.insertAdjacentHTML('BeforeEnd',F.outerHTML); F = null; F = document.getElementById(oArguments['id'] );if(!F.contentWindow) { F.contentWindow = document.frames[F.getAttribute('id')]; F.contentDocument = F.contentWindow.document; }; } return F;}; this.createStyle = function(sRule) { var domAppendTarget = document.getElementsByTagName('head')[0] ; var rid = "domStyleElement-" + Math.ceil(Math.random()*1000000) + Date.parse( new Date); while(document.getElementById(rid)) { rid = "domStyleElement-" + Math.ceil(Math.random()*1000000) + Date.parse( new Date); }; var node = document.createElement('style'); try { node.innerHTML = '.-test-rule{}'; if( !!node.innerHTML) { node.id = rid; node.innerHTML = sRule; domAppendTarget.appendChild( node); }; } catch (e) { if( !!!node.innerHTML) { /*this is for Internet Explorer case, where no innerHTML is avainable.*/ node = document.createElement('div'); node.innerHTML = '-<style>' + sRule + '<\/style>'; node.removeChild( node.firstChild);/*remove the '-' character*/ node = node.firstChild; node.id = rid; domAppendTarget.appendChild(node); node = null; }; }; }; this.getElementsByClass = function(sClassName,sTagName,oNode,iMaxLength) { if(!sClassName){return [];}; sTagName = sTagName || "*"; oNode = oNode || document; var a = []; var els = oNode.getElementsByTagName(sTagName); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+sClassName+"(\\s|$)"); for (i = 0, j = 0; i < elsLen; i++) { if ( pattern.test(els[i].className) ) { a[j] = els[i]; j++; if(!isNaN( iMaxLength )) { iMaxLength--; if(iMaxLength<=0){return a;}; }; } }; return a; }; this.popElementByClass = function(oNode,sClass,iMaxLevel) { sClass = YAHOO.My.String.trim( sClass ); var re = new RegExp("(^|\\s)"+ sClass +"(\\s|$)"); while(oNode) { if(iMaxLevel!=null) { if( iMaxLevel<0){return null;} else{ iMaxLevel--;}; }; var c = oNode['className']  ; if(c==null ){return null;} else { c = YAHOO.My.String.trim( c ) ; if (  re.test(c) ) {return oNode;} else { oNode = oNode['parentNode']; if(!oNode){return null;}; }; }; }; return null; }; this.getNextElementByTag = function(oNode,sTag) { while(oNode['nextSibling']) { oNode = oNode['nextSibling']; var t = oNode.tagName; if(t && t==sTag.toUpperCase()) { return oNode; }; }; return null; }; this.getPreviousElementByTag = function(oNode,sTag) { while(oNode['previousSibling']) { oNode = oNode['previousSibling']; var t = oNode.tagName; if(t && t==sTag.toUpperCase()) { return oNode; }; }; return null; }; this.getParentElementByTag = function(oNode,sTag) { while(oNode['parentNode']) { oNode = oNode['parentNode']; var t = oNode.tagName; if(t&&t==sTag.toUpperCase()) return oNode; } return null; }; this.addClass = function(oNode,sClassName) { var pattern = new RegExp("(^|\\s)"+sClassName+"(\\s|$)"); var c = oNode['className']; if(!pattern.test(c)) { oNode['className'] = [c,sClassName].join(' '); }; }; this.removeClass = function(oNode,sClassName) { var pattern = new RegExp("(^|\\s)"+sClassName+"(\\s|$)"); var c = oNode['className']; if(pattern.test(c)) { oNode['className'] = c.replace( pattern, ''); }; }; this.hasClass = function(oNode,sClassName) { var pattern = new RegExp("(^|\\s)"+sClassName+"(\\s|$)"); return pattern.test(oNode['className']) }; };
/* Fix to Improve IE6 */
if(document.uniqueID && !window.XMLHttpRequest){
    try {
        document.execCommand('BackgroundImageCache',false,true);
    }
    catch(e){
    };
};
// namespace
YAHOO.namespace('YAHOO.TW.RealEstate');
var YUD = YAHOO.util.Dom;
var YUC = YAHOO.util.Connect;
var YUE = YAHOO.util.Event;
var YMI = YAHOO.My.Interaction;
var YTWRE = YAHOO.TW.RealEstate;
/* path */
switch(true){
	case (location.href.indexOf('localhost') != -1 || location.href.indexOf('alpha1.wd') != -1) : {
	    YTWRE.ImageUrl = 'i7/';
	    YTWRE.RestUrl = 'http://tw.beta.house.yahoo.com/service/index.php';
		break;	
	}
	default: {
	    YTWRE.ImageUrl = 'http://tw.yimg.com/i/tw/house/i7/';
	    YTWRE.RestUrl = '/service/index.php';
	}
};
// Static String
YTWRE.AjaxFailMsg = '伺服器錯誤，請稍後再試！';
// Tools
YTWRE.Util = {
    Form:{
        emptyOptions:function(dSelect,sFirstText,sFirstValue){
			for(var i=dSelect.options.length,j=0;i>j;i--){
			//	if (dSelect.options[i-1]) {dSelect.options[i-1] = null;}
				dSelect.options[i-1].parentNode.removeChild(dSelect.options[i-1]);
            };
            if(sFirstText){
                YTWRE.Util.Form.addOption(dSelect,sFirstText,sFirstValue);
            };
        },
        addOption:function(dSelect,sText,sValue){
            if(typeof(dSelect)!='object'){return false;};
            if(typeof(sValue)=='undefined'){sValue = '';};
            var dOption = document.createElement('option');
            dOption.value = sValue;
            dOption.appendChild(document.createTextNode(sText));
            dSelect.appendChild(dOption);
        },
        composeParameters:function(dForm){
            var aBuffer = [];
            for(var i=0,j=dForm.elements.length;i<j;i++){
                if(dForm.elements[i].name){
                    switch(dForm.elements[i].type){
                        case 'select':
                            if(dForm.elements[i].options[dForm.elements[i].selectedIndex].value){
                                aBuffer.push(dForm.elements[i].name + '=' + encodeURIComponent(dForm.elements[i].options[dForm.elements[i].selectedIndex].value));
                            }
                            else {
                                aBuffer.push(dForm.elements[i].name + '=' + encodeURIComponent(dForm.elements[i].options[dForm.elements[i].selectedIndex].text));
                            }
                            break;
                        case 'radio':
                        case 'checkbox':
                            if(dForm.elements[i].checked){
                                aBuffer.push(dForm.elements[i].name + '=' + encodeURIComponent(dForm.elements[i].value));
                            };
                            break;
                        default:
                            aBuffer.push(dForm.elements[i].name + '=' + encodeURIComponent(dForm.elements[i].value));
                            break;
                    };
                };
            };
            return '?' + aBuffer.join('&');
        },
		/* filter non-Int */		
		filterInt:function(e) {var char = String.fromCharCode(e.keyCode);var re = /[0-9]/g;e.returnValue = char.match(re) != null ? true : false;},
		filterIntInput:function(e) {if (e.type.indexOf('key') != -1) {var re = /37|38|39|40/g;if (e.keyCode.toString().match(re)) return false;}YUE.getTarget(e).value = YUE.getTarget(e).value.replace(/[^0-9]/g, '');},
		filterIntPaste:function(e) {var oTR = this.document.selection.createRange();var text = window.clipboardData.getData('text');oTR.text = text.replace(/[^0-9]/g, '');},
		/* filter non-Float */
		filterFloat:function(e) {var char = String.fromCharCode(e.keyCode);if (YUE.getTarget(e).value.indexOf('.')>0){var re = /[0-9]/g;}else{var re = /[0-9\.]/g;}e.returnValue = char.match(re) != null ? true : false;},
		filterFloatInput:function(e) {if (e.type.indexOf('key') != -1) {var re = /37|38|39|40/g;if (e.keyCode.toString().match(re)) return false;}YUE.getTarget(e).value = YUE.getTarget(e).value.replace(/[^0-9\.]*/g, '');var aStr = YUE.getTarget(e).value.split('.');var sStr='';for (var i=0;i<aStr.length;i++) {if (i==1)sStr=sStr+'.'+aStr[i];else sStr+=aStr[i];}YUE.getTarget(e).value = sStr;},
		filterFloatPaste:function(e) {var oTR = this.document.selection.createRange();var text = window.clipboardData.getData('text');oTR.text = text.replace(/[^0-9\.]/g, '');var aStr = oTR.text.split('.');var sStr='';for (var i=0;i<aStr.length;i++) {if (i==1)sStr=sStr+'.'+aStr[i];else sStr+=aStr[i];}oTR.text = sStr;}
    },
	Format:{
		getMoney:function(nNum){var sRtn='';var nLen=nNum.toString().length;for (var i=0;i<nLen;i++) {if (i>0 && i%3==0){sRtn = ',' + sRtn;}sRtn = nNum.toString().substr(nLen-i-1,1) + sRtn;}return sRtn;}
	},
    Date:{
        addDate:function(sInterval, iNumber, oBase){
            switch(sInterval){
                case "M":
                    oBase.setMonth(oBase.getMonth() + iNumber);
                    break;
                case "YYYY":
                    oBase.setFullYear(oBase.getFullYear() + iNumber);
                    break;
                case "D":
                    oBase.setDate(oBase.getDate() + iNumber);
                    break;
                case "H":
                    oBase.setHours(oBase.getHours() + iNumber);
                    break;
                case "N":
                    oBase.setMinutes(oBase.getMinutes() + iNumber);
                    break;
                case "S":
                    oBase.setSeconds(oBase.getSeconds() + iNumber);
                    break;
                default:
            }
            return oBase;
        }
    },
    Uri:{
        getUri:function(sUrl) {
            var url = sUrl;
            var hostdir = '';
            if(url.indexOf('/')!=-1) {
                hostdir = url.substr(0,url.lastIndexOf('/')+1);
                if(hostdir) {url = url.replace(hostdir,'');}
            };
            if(url.indexOf('?')!=-1) {
                url = url.split('?')[0];
            };
            return url.toLowerCase();
        },
        getUriParams:function(sUrl) {
            //if(typeof(url)=='undefined'){return false;};
            var url = sUrl;
            if(url.indexOf('?')!=-1) {
                url = url.split('?')[1];
            };
            return url;
        },
        getParamValue:function(sUrl,sParamName) {
            var url = sUrl;
            var paramName = sParamName;
            var paramList = YTWRE.Util.Uri.getUriParams(url);
            if(YTWRE.Util.Uri.checkParamExists(paramName,paramList)){
                var params = paramList.split('&');
                for(var i=0,j=params.length;i<j;i++){
                    if(paramName == params[i].split('=')[0]){
                        return params[i].split('=')[1];
                    };
                };
            };
            return '';
        },
        checkParamExists:function(sParamName,sParamList){
            //if(typeof(sParamList)=='undefined'||sParamList==''){return false;};
            var params = sParamList.split('&')
            for(var i=0,j=params.length;i<j;i++){
                if(sParamName == params[i].split('=')[0]){
                    return true;
                };
            };
            return false;
        },
        replaceParam:function(sUrl,sParamName,sParamValue){
            var url = sUrl;
            var hostDir = YTWRE.Util.Uri.getUri(url);
            var paramArray = YTWRE.Util.Uri.getUriParams(url).split('&');
            var paramList = '';
            for(var i=0,j=paramArray.length;i<j;i++){
                var paramName = paramArray[i].split('=')[0];
                var paramValue = paramArray[i].split('=')[1];
                if(sParamName == paramName){
                    paramList += paramName + '=' + encodeURIComponent(sParamValue) + '&'
                }
                else {
                    paramList += paramName + '=' + encodeURIComponent(paramValue) + '&'
                };
            };
            return (hostDir + '?' + paramList).substr(0,(hostDir + '?' + paramList).length - 1);
        },
        addParam:function(sOriginalUrl,sAttachParam) {
            var url = sOriginalUrl;
            var currentParam = YTWRE.Util.Uri.getUriParams(sOriginalUrl);
            var newParams = sAttachParam.split('&');
            for(var i=0,j=newParams.length;i<j;i++){
                var paramName = newParams[i].split('=')[0];
                var paramValue = newParams[i].split('=')[1];
                if(url.indexOf('?') == -1){
                    url += '?' + paramName + '=' + encodeURIComponent(paramValue);
                }
                else {
                    if(url.indexOf('?') == (url.length - 1)) {
                        url += paramName + '=' + encodeURIComponent(paramValue);
                    }
                    else {
                        if(!YTWRE.Util.Uri.checkParamExists(paramName,YTWRE.Util.Uri.getUriParams(url))){
                            url += '&' + paramName + '=' + encodeURIComponent(paramValue);
                        }
                        else {
                            url = YTWRE.Util.Uri.replaceParam(url,paramName,paramValue);
                        };
                    };
                };
            };
            return url;
        }
    },
    Library:function(){
        var oSelf = this;
        var dHead = document.getElementsByTagName('head')[0];
        var oLibrary = {};
        sProxyPath = 'proxy.php?url=';
        var onReadyStateChange = function(oCallback,  URLS , URLS2){
            if(this.readyState == 'loaded' || this.readyState == 'complete')
            {
                this.completed = true;
                loadHandler(oCallback , this.tagName.toLowerCase(),  URLS , URLS2);

            }
        };
        var onLoad = function(oCallback,  URLS , URLS2){
            this.completed = true;
            loadHandler(oCallback , this.tagName.toLowerCase(),  URLS , URLS2);
        }
        var loadHandler = function(oCallback,sType , URLS , URLS2 ){
            var sUrl;
            if( URLS.length)
            {
                sUrl = URLS.shift();
            };
            if(sUrl)
            {
                if(oLibrary[sUrl])
                {
                    loadHandler(oCallback,sType , URLS , URLS2 );
                }
                else
                {
                    createElement(sType,oCallback,sUrl,  URLS , URLS2 );
                };

            }else
            {
                oCallback(URLS2);
                this.onreadystatechange = null;
            };
        };
        var createElement = function(sType,oCallback,sUrl,  URLS , URLS2){
            sType = sType ||'script';
            var dEl = document.createElement(sType);
            if(sType=='script')
            {
                dEl.setAttribute('src',sUrl);
                dEl.setAttribute('type','text/javascript');
            }
            else
            {
                dEl.setAttribute('rel',"stylesheet");
                dEl.setAttribute('type',"text/css");
                dEl.setAttribute('href',sUrl);
            };
            if(document.uniqueID)
            {
                //IE
                dEl.onreadystatechange = function()
                {
                    //fix memory leak
                    (function(dEl){ onReadyStateChange.call( dEl , oCallback ,  URLS , URLS2 )})(this);
                };

                dHead.appendChild(dEl);
            }else if(document.getBoxObjectFor || (window.opera && document.createElement('canvas').getContext) )
            {//Gecko || Opera9+

                dEl.onload = function(){ onLoad.call( dEl , oCallback ,  URLS , URLS2 ) };
                dEl.onerror = function(){};
                dHead.appendChild(dEl);

            }else if(window.XMLHttpRequest)
            {//for other browsers, need XmlHttpRequest + proxy to get script

                var oXhr = new XMLHttpRequest();
                oXhr.onreadystatechange = function()
                {
                    if(oXhr.readyState==4 )
                    {

                        if( oXhr.status == 200 )
                        {
                            if(sType=='script')
                            {

                                if(window.opera)
                                {
                                    window.eval( oXhr.responseText );
                                }
                                else
                                {
                                    //Safari?
                                    var dEl = document.createElement('script');
                                    dEl.appendChild( document.createTextNode( oXhr.responseText ) );
                                    dEl.completed = true;
                                    dHead.appendChild(dEl);
                                };
                                oLibrary[sUrl] = true;

                            }
                            else
                            {
                                var dEl = document.createElement('style');
                                oLibrary[sUrl] = true;

                                if(window.opera)
                                {
                                    dEl.innerHTML = oXhr.responseText ;
                                }else
                                {
                                    //Safari?
                                    dEl.appendChild( document.createTextNode( oXhr.responseText ) );
                                }
                                dEl.completed = true;
                                dHead.appendChild(dEl);


                            };
                            oXhr = null;
                            loadHandler(oCallback ,sType,  URLS , URLS2);
                        }
                        else
                        {
                            throw Error('Error : Library.loadScript \n XMLHttpRequest readyState is ' + oXhr.status);
                        }
                    }
                };
                sUrl = sProxyPath + encodeURIComponent( sUrl);
                oXhr.open("GET",sUrl , true);
                oXhr.send("");
            }
        };
        this.setProxyPath = function(sUrl){
            sUrl +='';
            if(sUrl){
                sProxyPath = sUrl;
            };
        };
        return{
            getProxyPath:function(sUrl) {
                return sProxyPath;
            },
            loadJS:function(){
                var oCallback = arguments[0];
                oCallback = oCallback || {success:function(){} ,failure:function(){}};
                aUrl =  [];
                for(var i=1,j=arguments.length;i<j;i+=1)
                {
                    aUrl[i-1] = arguments[i] + '';
                }
                if(typeof(oCallback)!='function')
                {
                    throw Error('Error : Library.loadScript \n Callback is not Function');
                    return;
                };
                var aScript = document.getElementsByTagName('script');
                for(var i=0,j=aScript.length;i<j;i++)
                {
                    var sSrc = aScript[i].getAttribute('src');
                    if(sSrc && aScript[i].completed)
                    {
                        oLibrary[sSrc] = true;
                    }
                };
                var URLS = [].concat(aUrl) ;
                var URLS2 = [].concat(aUrl) ;
                loadHandler(oCallback,'script' , URLS , URLS2);
            },
            loadCSS:function(){
                var oCallback = arguments[0];
                oCallback = oCallback || {success:function(){} ,failure:function(){}};
                aUrl =  [];
                for(var i=1,j=arguments.length;i<j;i+=1)
                {
                    aUrl[i-1] = arguments[i] + '';
                }
                if(typeof(oCallback)!='function')
                {
                    throw Error('Error : Library.loadCSS  \n Callback is not Function');
                    return;
                };
                var aScript = document.getElementsByTagName('link');
                for(var i=0,j=aScript.length;i<j;i++)
                {
                    var sSrc = aScript[i].getAttribute('href');
                    var sRel = (aScript[i].getAttribute('rel') + '').toLowerCase();
                    if(sSrc && sRel == 'stylesheet' && aScript[i].completed )
                    {
                        oLibrary[sSrc] = true;
                    }
                };
                var URLS = [].concat(aUrl) ;
                var URLS2 = [].concat(aUrl) ;
                loadHandler(oCallback,'link' , URLS , URLS2);
            }
        };
    }()
};
// Classes
YTWRE.Class = {
    Tab:function(dModule) {
		var nCurrentIndex = 0;
		var dTabs = YUD.getElementsByClassName('etab','div',dModule);
		var oComponent = this;
		oComponent.onTabChange = new YAHOO.util.CustomEvent('TabChange');
		var onTabClick = function(e) {
			YUE.stopEvent(e);
			var dComponent = this;
			if (dComponent.className.indexOf('on',0) > -1) return;
			
			dTabs[nCurrentIndex].className = 'etab'; 
			document.getElementById(dTabs[nCurrentIndex].id+'_pane').style.display = 'none';
			dComponent.className = 'etab on';
			document.getElementById(dComponent.id+'_pane').style.display = 'block';
			for (var i=0;i<dTabs.length;i++) {
				if (dTabs[i].className.indexOf('on',0) > -1) { nCurrentIndex=i; break; }
			}
			oComponent.onTabChange.fire(nCurrentIndex);
		};
		var init = function() {
			for (var i=0;i<dTabs.length;i++) {
				if (dTabs[i].className.indexOf('on',0) > -1) { nCurrentIndex=i; document.getElementById(dTabs[i].id+'_pane').style.display = 'block'; break; }
			}
			YUE.on(dTabs,'click',onTabClick);
		};
		init();
	},
	SelectAll:function(dModule) {
		var dForm = dModule.getElementsByTagName('form')[0];
		var dBtns = YUD.getElementsByClassName('ui_select','input',dModule);
		var onSelectClick = function(e) {
			YUE.stopEvent(e);
			var bCancel = (dBtns[0].src.indexOf('btn_all_off.gif') > 0);
			var dChecks = dForm.getElementsByTagName('input');
			for (var i=0;i<dChecks.length;i++) {if (dChecks[i].type.toLowerCase() == 'checkbox') {dChecks[i].checked=!bCancel;}}
			for (var i=0;i<dBtns.length;i++) {dBtns[i].src = (bCancel)?dBtns[i].src.replace('btn_all_off.gif','btn_all.gif'):dBtns[i].src.replace('btn_all.gif','btn_all_off.gif');}
		};
		YUE.on(dBtns,'click',onSelectClick);
	},
	SearchHouse:function(dModule) {
		var trim = YAHOO.My.String.trim;
		var dForms = dModule.getElementsByTagName('form');
		var dCitys = YUD.getElementsByClassName('ui_city','select',dModule);
		var dAreas = YUD.getElementsByClassName('ui_area','select',dModule);
		var dTypes = YUD.getElementsByClassName('ui_type','input',dModule);
		var dSources = YUD.getElementsByClassName('ui_source','select',dModule);
		var dFormats = YUD.getElementsByClassName('ui_format','select',dModule);
		var dNums = YUD.getElementsByClassName('ui_num','input',dModule);
		var dSorts = YUD.getElementsByClassName('ui_sort','select',dModule);
		// action
		var setArea = function(nIndex){YTWRE.Util.Form.emptyOptions(dAreas[nIndex]); var nCityIndex = (dCitys[nIndex].selectedIndex < 0)?0:dCitys[nIndex].selectedIndex; var aAreaList = (nIndex%2==0)?aAreaOld[nCityIndex].split(','):aAreaNew[nCityIndex].split(','); for (var x=0;x<aAreaList.length;x++){aTemp = aAreaList[x].split('%');YTWRE.Util.Form.addOption(dAreas[nIndex],aTemp[0],aTemp[1]);} if (dAreas[nIndex].title!='') {dAreas[nIndex].value = dAreas[nIndex].title;dAreas[nIndex].title='';} };
		var setCity = function(){var sCityHtml = '';for (var i=0;i<aCityOld.length;i++){aTemp = aCityOld[i].split('%'); for(var j=0;j<dCitys.length;j=j+2){YTWRE.Util.Form.addOption(dCitys[j],aTemp[0],aTemp[1]);}} for (var i=0;i<aCityNew.length;i++){aTemp = aCityNew[i].split('%'); for(var j=1;j<dCitys.length;j=j+2){YTWRE.Util.Form.addOption(dCitys[j],aTemp[0],aTemp[1]);}} for (var j=0;j<dCitys.length;j++){if (dCitys[j].title!='') {dCitys[j].value = dCitys[j].title;dCitys[j].title='';}setArea(j);}};
		var setSource = function(e){for (var i=0;i<dSources.length;i++){dCitys[i].style.display=(dTypes[i].checked)?'inline':'none';dAreas[i].style.display=(dTypes[i].checked)?'inline':'none';dSources[i].style.display=(dTypes[i].checked)?'inline':'none';if (dFormats[i]) {dFormats[i].style.display=(dTypes[i].checked)?'inline':'none';}}};
		var checkForm = function(e,nIndex){if (dNums.length>1) {if ((trim(dNums[nIndex*4].value)=='') != (trim(dNums[nIndex*4+1].value)=='')) {alert('請輸入正確的總價範圍');YUE.stopEvent(e);return false;}}if (dNums.length>3) {if ((trim(dNums[nIndex*4+2].value)=='') != (trim(dNums[nIndex*4+3].value)=='')) {alert('請輸入正確的坪數範圍');YUE.stopEvent(e);return false;}}if (dSorts[nIndex] && dSorts[nIndex].value == '') {alert('請選擇排序');YUE.stopEvent(e);return false;}return true;};
		// init
		setCity();setSource();
		// event
		YUE.on(dNums,'keypress',YTWRE.Util.Form.filterInt);
		YUE.on(dNums,'keyup',YTWRE.Util.Form.filterIntInput);
		YUE.on(dNums,'change',YTWRE.Util.Form.filterIntInput);
		YUE.on(dNums,'beforepaste',YTWRE.Util.Form.filterIntPaste);
		YUE.on(dNums,'paste',function(e){return false;});
		YUE.on(dTypes,'click',setSource);
		YUE.on(dCitys,'change',function(e){var nIndex=0;for(var i=0;i<dCitys.length;i++){if(dCitys[i]==this){nIndex=i;break;}}setArea(nIndex);});
		YUE.on(dForms,'submit',function(e){var nIndex=0;for(var i=0;i<dForms.length;i++){if(dForms[i]==this){nIndex=i;break;}} return checkForm(e,nIndex);});
	},
	SearchMarket:function(dModule) {
		var dCitys = YUD.getElementsByClassName('ui_city_market','select',dModule);
		var dAreas = YUD.getElementsByClassName('ui_area_market','select',dModule);
		// action
		var setCity = function(nIndex){var sCityHtml = '';for (var i=0;i<aCityMarket.length;i++){aTemp = aCityMarket[i].split('%'); YTWRE.Util.Form.addOption(dCitys[nIndex],aTemp[0],aTemp[1]);} setTimeout(function(){if (dCitys[nIndex].title!='') {dCitys[nIndex].value = dCitys[nIndex].title;dCitys[nIndex].title='';}},10); };
		var setArea = function(nIndex){YTWRE.Util.Form.emptyOptions(dAreas[nIndex]);var aAreaList = aAreaMarket[dCitys[nIndex].selectedIndex].split(',');for (var i=0;i<aAreaList.length;i++){aTemp = aAreaList[i].split('%');YTWRE.Util.Form.addOption(dAreas[nIndex],aTemp[0],aTemp[1]);} setTimeout(function(){if (dAreas[nIndex].title!='') {dAreas[nIndex].value = dAreas[nIndex].title;dAreas[nIndex].title='';}},10); };
		// init
		setCity(0);setTimeout(function(){setArea(0);},500);
		// event
		YUE.on(dCitys,'change',function(){setArea(0)});
	},
	AddMySearch:function(dModule) {
		var dLinks = YUD.getElementsByClassName('my_search','a',dModule);
		// action
		var makeSetting = function(nIndex) {
			var dTypes  = YUD.getElementsByClassName('ui_type','input',dModule);
			var dCitys  = YUD.getElementsByClassName('ui_city','select',dModule);
			var dAreas  = YUD.getElementsByClassName('ui_area','select',dModule);
			var dFormats  = YUD.getElementsByClassName('ui_format','select',dModule);
			var dSources  = YUD.getElementsByClassName('ui_source','select',dModule);
			var dSorts = YUD.getElementsByClassName('ui_sort','select',dModule);
			var dNums = YUD.getElementsByClassName('ui_num','input',dModule);
			var sParams = '';
			var nType = (dTypes[nIndex*2].checked)?0:1;
			sParams += 'ui_type='+dTypes[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_city='+dCitys[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_area='+dAreas[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_price='+dNums[nIndex*4+0].value+'~'+dNums[nIndex*4+1].value;
			sParams += '&ui_meter='+dNums[nIndex*4+2].value+'~'+dNums[nIndex*4+3].value;
			sParams += '&ui_format='+dFormats[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_source='+dSources[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_sort='+dSorts[nIndex].value;
			return sParams;
		};
		var addSearch = function(e) {
			if (YUE.getTarget(e).className.indexOf('disable') > -1)  {YUE.stopEvent(e);return false;}
			var oCallback = {
				success:function(oResponse){
					oResponse.responseText = oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');
					if (oResponse.responseText == '0') { alert('儲存失敗！'); }
					else if (oResponse.responseText == '1') { alert('已成功加入我的房地產搜尋偏好！'); }
					else if (oResponse.responseText == '2') { alert('已超過儲存筆數！'); }
				},
                failure:function(oResponse){ alert(YTWRE.AjaxFailMsg);},
                timeout:3000
			};
		//	var sServiceUrl = 'http://tw.rd.yahoo.com/referurl/house/search/my/*' + YTWRE.RestUrl + '?method=yre.house.addMySearch&' + makeSetting(0) + '&' + document.getElementById('ui_parameter').value;
			var sServiceUrl = YTWRE.RestUrl + '?method=yre.house.addMySearch&' + makeSetting(0) + '&' + document.getElementById('ui_parameter').value;
			YUC.asyncRequest('GET',sServiceUrl,oCallback);
            YUE.stopEvent(e);
		};
		// event
		YUE.on(dLinks,'click',addSearch);
	},
	AddMyHouse:function(dModule) {
		var dLinks = YUD.getElementsByClassName('my_house','a',dModule);
		// action
		var addHouse = function(e) {
			var oComponent = YUE.getTarget(e);
			var oCallback = {
				success:function(oResponse){
					oResponse.responseText = oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');
					if (oResponse.responseText == '0') { alert('儲存失敗！'); }
					else if (oResponse.responseText == '1') { oComponent.parentNode.innerHTML = '<img src="' + YTWRE.ImageUrl + 'icon_added.gif"/> 此房屋已加入房屋追蹤清單'; }
					else if (oResponse.responseText == '2') { alert('抱歉！您房屋追蹤已達上限 100個！'); }
				},
				failure:function(oResponse){ alert(YTWRE.AjaxFailMsg); },
				timeout:3000
			};
		//	var sServiceUrl = 'http://tw.rd.yahoo.com/referurl/house/item/my/*' + YTWRE.RestUrl + '?method=yre.house.addMyHouse&' + oComponent.href;
			var sServiceUrl = YTWRE.RestUrl + '?method=yre.house.addMyHouse&' + oComponent.href;
			YUC.asyncRequest('GET',sServiceUrl,oCallback);
			YUE.stopEvent(e);
		};
		// event
		YUE.on(dLinks,'click',addHouse);
	},
	EnlargeImage:function(dModule) {
		if (document.getElementById('yrevrwin') == null) {YUE.stopEvent(e); return false;}
		var dWin = document.getElementById('yrevrwin');
		var dWinFrame = dWin.getElementsByTagName('iframe')[0];
		var dWinHead = YUD.getElementsByClassName('hd','div',dWin)[0];
		var dWinBody = YUD.getElementsByClassName('bd','div',dWin)[0];
		var dWinFoot = YUD.getElementsByClassName('ft','div',dWin)[0].getElementsByTagName('a')[0];
		// action
		var hideInnerBrowser = function(e) {dWin.style.display='none';dWinFrame.style.width=0;dWinFrame.style.height=0;YUE.stopEvent(e);}
		var showInnerBrowser = function(e) {dWin.style.top=Math.max(document.documentElement.scrollTop,document.body.scrollTop)+50+'px';dWin.style.left='20px';dWin.style.display='block';dWinFrame.style.top=dWin.clientTop;dWinFrame.style.left=dWin.clientLeft;dWinFrame.style.width=dWin.clientWidth-1;dWinFrame.style.height=dWin.clientHeight-1;}
		var moveInnerBrowserUp = function(e) {dWin.className = '';YUE.removeListener(document,'mousemove',moveInnerBrowserMove);YUE.removeListener(document,'mouseup',moveInnerBrowserUp);YUE.stopEvent(e);document.onselectstart = null;};
		var moveInnerBrowserMove = function(e) {var ex=dWin.offsetLeft+e.clientX-parseInt(dWin.startX);var ey=dWin.offsetTop+e.clientY-parseInt(dWin.startY);if (ex + dWin.offsetWidth + 25 > document.body.offsetWidth ) {ex = document.body.offsetWidth-dWin.offsetWidth-25;}if (ey + dWin.offsetHeight + 10 > document.body.scrollHeight ) {ey = document.body.scrollHeight-dWin.offsetHeight-10;}dWin.style.left=ex+'px';dWin.style.top=ey+'px';dWin.startX=e.clientX;dWin.startY=e.clientY;YUE.stopEvent(e);};
		var moveInnerBrowserDown = function(e) {dWin.className = 'fade';dWin.startX=e.clientX;dWin.startY=e.clientY;document.onselectstart = function(){return false;};YUE.on(document,'mousemove',moveInnerBrowserMove);YUE.on(document,'mouseup',moveInnerBrowserUp);YUE.stopEvent(e);};
		var resizeInnerBrowserUp = function(e) {dWin.className = '';YUE.removeListener(document,'mousemove',resizeInnerBrowserMove);YUE.removeListener(document,'mouseup',resizeInnerBrowserUp);YUE.stopEvent(e);};
		var resizeInnerBrowserMove = function(e) {var ex=dWinBody.offsetWidth+e.clientX-dWin.startX-20;var ey=dWinBody.offsetHeight+e.clientY-dWin.startY-25;dWinBody.style.width=(ex<0)?10+'px':ex+'px';dWinBody.style.height=(ey<0)?10+'px':ey+'px';dWinFrame.style.width=dWin.clientWidth-1;dWinFrame.style.height=dWin.clientHeight-1;dWin.startX=e.clientX;dWin.startY=e.clientY;YUE.stopEvent(e);};
		var resizeInnerBrowserDown = function(e) {dWin.className = 'fade';dWin.startX=e.clientX;dWin.startY=e.clientY;YUE.on(document,'mousemove',resizeInnerBrowserMove);YUE.on(document,'mouseup',resizeInnerBrowserUp);YUE.stopEvent(e);};
		var enlargeImage = function(e) {
			dWinBody.style.width = 'auto'; dWinBody.style.height = 'auto';
			var dImgs = this.getAttribute('path').split(',');var dPane = YUD.getElementsByClassName('txt','div',dWin)[0];var sHtml = '';
			for (var i=0;i<dImgs.length;i++) {if (i>0){sHtml+=' | ';}sHtml+='<a href="'+dImgs[i]+'" onclick="document.getElementById(\'vrwin_img\').src=this.href;return false;">圖 '+(i+1).toString()+'</a>';}dPane.innerHTML=sHtml;dPane.style.display=(dImgs.length>1)?'block':'none';
			dWin.getElementsByTagName('img')[1].src = dImgs[parseInt(this.getAttribute('index'))];
			setTimeout(showInnerBrowser,100);YUE.stopEvent(e);
		};
		// event
		YUE.on(YUD.getElementsByClassName('ibw_enlarge','a',dModule),'click',enlargeImage);
		YUE.on(dWin.getElementsByTagName('a')[0],'click',hideInnerBrowser);
		YUE.on(dWinHead,'mousedown',moveInnerBrowserDown);
		YUE.on(dWinFoot,'mousedown',resizeInnerBrowserDown);
	},
	ChangeImage:function(dModule) {
		var changeImage = function(e) {
			var oComponent = this;
			var dEnlarge = YUD.getElementsByClassName('ibw_enlarge','a',oComponent.parentNode);
			var dImage = dEnlarge[0].getElementsByTagName('img')[0];dImage.src = oComponent.href;
			for (var i=0;i<dEnlarge.length;i++) dEnlarge[i].setAttribute('index',oComponent.getAttribute('index').toString());
			YUE.stopEvent(e);
		};
		YUE.on(YUD.getElementsByClassName('ibw_img','a',dModule),'click',changeImage);
	},
	ArticleDigg:function(dModule) {
		var dBtns = YUD.getElementsByClassName('recom_btn','input',document);
		var dTxts = YUD.getElementsByClassName('recom_txt','label',document);
		var dNums = YUD.getElementsByClassName('recom_num','em',document);
		if (dBtns.length == 0) return false;
		var bRecom = (dBtns[0].src.indexOf('btn_recom.gif') > 0);
		// action
		var doRecommend = function(e) {
			var oCallback = {
				success:function(oResponse){
					oResponse.responseText = oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');
					if (oResponse.responseText == '0') { alert('推薦失敗！'); }
					else { 
						for (var i=0;i<dBtns.length;i++) {dBtns[i].src = dBtns[i].src.replace('btn_recom.gif','btn_recom_off.gif');dBtns[i].disabled=true;}
						for (var i=0;i<dTxts.length;i++) {dTxts[i].innerHTML = '謝謝您的推薦！';} 
						for (var i=0;i<dNums.length;i++) {dNums[i].innerHTML = oResponse.responseText;} }
				},
                failure:function(oResponse){ alert(YTWRE.AjaxFailMsg);},
                timeout:3000
			};
            var sServiceUrl = YTWRE.RestUrl + '?method=yre.house.addRecommend&' + document.getElementById('ui_parameter').value;
            YUC.asyncRequest('GET',sServiceUrl,oCallback);
            YUE.stopEvent(e);
		};
		// init
		if (bRecom) {YUE.on(dBtns,'click',doRecommend);} else {for (var i=0;i<dTxts.length;i++) {dTxts[i].innerHTML = '謝謝您的推薦！';}}
	}
};
// Modules
YTWRE.Module = {
	/* ask_form */
	askForm:function(dModule) {
		var trim = YAHOO.My.String.trim;
		var dForm = dModule.getElementsByTagName('form')[0];
		var dError = YUD.getElementsByClassName('errmsg','ul',dModule)[0];
		if(dError.getElementsByTagName('li').length>0) {
			YUD.setStyle(dError,'display','block');
		}
		
		var showError = function(sMsg) {
			YUD.setStyle(dError,'display','block');
			dError.innerHTML = sMsg;
			self.location = '#error';
		};
		
		var checkForm = function(e) {
			var sMsg = '';
			var sSubject = trim(document.getElementById('ui_subject').value);
			var sContent = trim(document.getElementById('ui_content').value);
			var sEmail = trim(document.getElementById('ui_email').value);
			var sCaptcha = trim(document.getElementById('ui_captcha').value);
			YUD.setStyle(dError,'display','none');
			//Check for required fields
			if(sSubject.length==0) {
				sMsg += '問題主旨';
			}
			if(sContent.length==0) {
				if(sMsg) {
					sMsg += '、';
				}
				sMsg += '問題詳述';
			}
			if(sCaptcha.length==0) {
				if(sMsg) {
					sMsg += '、';
				}
				sMsg += '圖形認證文字';
			}
			if(sMsg) {
				showError('<li>請填寫必要欄位！'+sMsg+'</li>');
				YUE.stopEvent(e);
				return false;
			}
			//Check for correct text length
			if(sSubject.length>20) {
				showError('<li>問題主旨 字數限制最多20個中文字！</li>');
				YUE.stopEvent(e);
				return false;
			}
			if(sContent.length>500) {
				showError('<li>問題詳述 字數限制最多500個中文字！</li>');
				YUE.stopEvent(e);
				return false;
			}
			if(sEmail.length>50) {
				showError('<li>Email 字數限制最多50個英文數字！</li>');
				YUE.stopEvent(e);
				return false;
			}			
			//Check for correct format
			var reEmail = /^[\w\.\-]+@[\w\-]+\.[\w\.\-]+$/;
			var reTag = /<[^>]*?>/;
			//alert(sEmail + reEmail.test(sEmail));
			if(reTag.test(sSubject)) {
				showError('<li>問題主旨 不接受HTML碼！</li>');
				YUE.stopEvent(e);
				return false;
			}
			if(reTag.test(sContent)) {
				showError('<li>問題詳述 不接受HTML碼！</li>');
				YUE.stopEvent(e);
				return false;
			}
			if(sEmail.length>0 && !reEmail.test(sEmail)) {
				showError('<li>請填寫正確的 Email！</li>');
				YUE.stopEvent(e);
				return false;
			}
		};
		YUE.on(dForm,'submit',checkForm);
	},
	/* error_page */
	ErrorPage:function(dModule) {
		if (document.getElementById('ui_goto_home')) {setTimeout(function(){document.location.href='index.html';},3000);}
	},
	/* index */
	Index:function(dModule) {
		if (screen.width > 800) {return false;}
		var oCallback = {
			success:function(oResponse){
				oResponse.responseText = oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');
				if (oResponse.responseText == '0') { alert('Yahoo！奇摩房地產建議最佳瀏覽設定為1024＊768'); }
			},
			failure:function(oResponse){},
			timeout:3000
		};
		var sServiceUrl = YTWRE.RestUrl + '?method=yre.house.getScreenCookie';
		YUC.asyncRequest('GET',sServiceUrl,oCallback);		
	},
	/* item_list_category */
	ItemListCategory:function(dModule) {
		YTWRE.Class.AddMyHouse(dModule);
		YTWRE.Class.ChangeImage(dModule);
		YTWRE.Class.EnlargeImage(dModule);
	},
	/* item_search_category */
	ItemSearchCategory:function(dModule) {
		YTWRE.Class.SearchHouse(dModule);
		YTWRE.Class.AddMySearch(dModule);
	},
	/* loan_article */
	LoanArticle:function(dModule) {
		var trim = YAHOO.My.String.trim;
		var dForm = dModule.getElementsByTagName('form')[0];
		var dNums = YUD.getElementsByClassName('ui_num','input',dModule);
		var dFloats = YUD.getElementsByClassName('ui_float','input',dModule);
		var dNum  = document.getElementById('txt_loan_num');
		var dYear = document.getElementById('txt_loan_year');
		var dRate = document.getElementById('txt_loan_rate');
		var dGrace= document.getElementById('txt_loan_grace');
		var dStep = document.getElementById('opt_loan_step');
		var dAppend = YUD.getElementsByClassName('append','div',dModule)[0];
		
		var dTxtSYear = document.getElementsByName('txt_step_year');
		var dTxtSMons = document.getElementsByName('txt_step_mon');
		var dTxtSRate = document.getElementsByName('txt_step_rate');
		var dLabSYear = YUD.getElementsByClassName('lab_step_year','em',dModule);
		var dLabSMons = YUD.getElementsByClassName('lab_step_mon','em',dModule);
		
		var dHelps = YUD.getElementsByClassName('help','a',dModule);
		var dHelpText = YUD.getElementsByClassName('help-content','div',dModule)[0];
		// action
		var checkForm = function(e) {
			if (trim(dNum.value)=='') {if(e){alert('請輸入正確的'+dNum.title);}return false;}
			if (trim(dYear.value)=='') {if(e){alert('請輸入正確的'+dYear.title);}return false;}
			if (trim(dGrace.value)=='') {if(e){alert('請輸入正確的'+dGrace.title);}return false;}
			if (parseInt(dGrace.value)>=parseInt(dYear.value)) {if(e){alert(dGrace.title+'必需小於'+dYear.title);}return false;}
			if (document.getElementById('chk_loan_rate').checked) {
				for (var i=0;i<dStep.value;i++) {
					if (trim(dTxtSYear[i].value)==''||trim(dTxtSMons[i].value)==''||trim(dTxtSRate[i].value)=='') {if (e){alert('請輸入正確的區段利率');}return false;}
				}
			} else {
				if (trim(dRate.value)=='') {if(e){alert('請輸入正確的'+dRate.title);}return false;}
				if (parseInt(dRate.value)>=100) {if(e){alert(dRate.title+'必需小於100');}return false;}
			}
			return true;
		};
		var doSimple = function() {
			var nSum = 0;
			var nNum = dNum.value*10000;
			var nMon = dYear.value*12;
			var nRate = dRate.value/100/12;
			var nPay = 0;
			var dReportStep = document.getElementById('lab_loan_report');
			dReportStep.innerHTML = '';
			for (var i=1;i<=nMon;i++) {
				if (i>0 && i<=dGrace.value*12) {
					nSum += Math.round(nNum*nRate);
				} else if (nNum>0) {
					if (nPay>0) {nNum = nNum-(nPay-Math.round(nNum*nRate));}
					nPay = Math.round(nNum * (Math.pow((1+nRate),(nMon-i+1))*nRate) / (Math.pow((1+nRate),(nMon-i+1))-1));
					nSum += nPay;
				}
			}
			if (dGrace.value*12>0) {
				nReportStart = 1;
				nReportEnd = dGrace.value*12;
				nReportMoney = Math.round(dNum.value*10000*nRate);
				var dLi = document.createElement('li');
				dLi.className = 'litem';
				dLi.innerHTML = '第<b>'+(parseInt(nReportStart/12)+1)+'</b>年第<b>'+((nReportStart-1)%12+1)+'</b>個月～第<b>'+(parseInt((nReportEnd-1)/12)+1)+'</b>年第<b>'+((nReportEnd-1)%12+1)+'</b>個月，利率<b>'+dRate.value+'</b>%，每月需償還：<em>'+YTWRE.Util.Format.getMoney(nReportMoney)+'</em>元';
				dReportStep.appendChild(dLi);
				nReportStart = dGrace.value*12+1;
				nReportEnd = nMon;
				dLi = document.createElement('li');
				dLi.className = 'litem';
				dLi.innerHTML = '第<b>'+(parseInt(nReportStart/12)+1)+'</b>年第<b>'+((nReportStart-1)%12+1)+'</b>個月～第<b>'+(parseInt((nReportEnd-1)/12)+1)+'</b>年第<b>'+((nReportEnd-1)%12+1)+'</b>個月，利率<b>'+dRate.value+'</b>%，每月需償還：<em>'+YTWRE.Util.Format.getMoney(nPay)+'</em>元';
				dReportStep.appendChild(dLi);
			} else if (dGrace.value*12==0) {
				var dLi = document.createElement('li');
				dLi.className = 'litem';
				dLi.innerHTML = '第<b>1</b>年第<b>1</b>個月～第<b>'+dYear.value+'</b>年第<b>12</b>個月，利率<b>'+dRate.value+'</b>%，每月需償還：<em>'+YTWRE.Util.Format.getMoney(nPay)+'</em>元';
				dReportStep.appendChild(dLi);
			}
			document.getElementById('lab_loan_grace_year').innerHTML = (dGrace.value*12>0)?parseInt((dGrace.value*12)/12)+1:0;
			document.getElementById('lab_loan_grace_mons').innerHTML = (dGrace.value*12>0)?(dGrace.value*12)%12+1:0;
			document.getElementById('lab_loan_sum').innerHTML = YTWRE.Util.Format.getMoney(nSum);
		}
		var doComplex = function() {
			var nSum = 0;
			var nNum = dNum.value*10000;
			var nMon = dYear.value*12;
			var nRate = dRate.value/100/12;
			var nPay = 0;
			var nReportStart,nReportEnd;
			var nReportMoney = 0;
			var nReportPayed = 0;
			var nReportRate = 0;
			var dReportStep = document.getElementById('lab_loan_report');
			dReportStep.innerHTML = '';
			var j;
			for (var i=1;i<=nMon;i++) {
				for(j=0;j<dStep.value;j++) {
					if (i<=dTxtSRate[j].getAttribute('period')) {nRate=dTxtSRate[j].value/100/12; break;}
				}
				if (i>0 && i<=dGrace.value*12) {
					nReportPayed = Math.round(nNum*nRate);
					nSum += nReportPayed;
					dTxtSRate[j].setAttribute('payment',nReportPayed);
				} else if (nNum>0) {
					if (nPay > 0) nNum = nNum-(nPay-Math.round(nNum*nRate));
					nPay = Math.round(nNum * (Math.pow((1+nRate),(nMon-i+1))*nRate) / (Math.pow((1+nRate),(nMon-i+1))-1));
					nReportPayed = nPay;
					nSum += nReportPayed;
					dTxtSRate[j].setAttribute('payment',nReportPayed);
				}
			}
			document.getElementById('lab_loan_grace_year').innerHTML = (dGrace.value*12>0)?parseInt((dGrace.value*12)/12)+1:0;
			document.getElementById('lab_loan_grace_mons').innerHTML = (dGrace.value*12>0)?(dGrace.value*12)%12+1:0;
			for(j=0;j<dStep.value;j++) {
				nReportStart = (j==0)?1:parseInt(dTxtSRate[j-1].getAttribute('period'))+1;
				nReportEnd   = parseInt(dTxtSRate[j].getAttribute('period'));
				nReportRate  = dTxtSRate[j].value;
				if (dGrace.value*12>nReportStart && dGrace.value*12<nReportEnd){
					nReportEnd = dGrace.value*12;
					nReportMoney = Math.round(dNum.value*10000*nReportRate/100/12);
					var dLi = document.createElement('li');
					dLi.className = 'litem';
					dLi.innerHTML = '第<b>'+(parseInt(nReportStart/12)+1)+'</b>年第<b>'+((nReportStart-1)%12+1)+'</b>個月～第<b>'+(parseInt((nReportEnd-1)/12)+1)+'</b>年第<b>'+((nReportEnd-1)%12+1)+'</b>個月，利率<b>'+nReportRate+'</b>%，每月需償還：<em>'+YTWRE.Util.Format.getMoney(nReportMoney)+'</em>元';
					dReportStep.appendChild(dLi);
					nReportStart = dGrace.value*12+1;
					nReportEnd   = parseInt(dTxtSRate[j].getAttribute('period'));
				}
				nReportMoney = parseInt(dTxtSRate[j].getAttribute('payment'));
				var dLi = document.createElement('li');
				dLi.className = 'litem';
				dLi.innerHTML = '第<b>'+(parseInt(nReportStart/12)+1)+'</b>年第<b>'+((nReportStart-1)%12+1)+'</b>個月～第<b>'+(parseInt((nReportEnd-1)/12)+1)+'</b>年第<b>'+((nReportEnd-1)%12+1)+'</b>個月，利率<b>'+nReportRate+'</b>%，每月需償還：<em>'+YTWRE.Util.Format.getMoney(nReportMoney)+'</em>元';
				dReportStep.appendChild(dLi);
			}
			document.getElementById('lab_loan_sum').innerHTML = YTWRE.Util.Format.getMoney(nSum);
		}
		var doCalculate = function(e) {
			if (e){YUE.stopEvent(e);}if (!checkForm(e)){return false;}
			if (document.getElementById('chk_loan_rate').checked) {doComplex();} else {doSimple();}
			document.getElementById('lab_loan_num').innerHTML = YTWRE.Util.Format.getMoney(dNum.value*10000);
			document.getElementById('lab_loan_year').innerHTML = dYear.value;
			document.getElementById('lab_loan_grace').innerHTML = dGrace.value;
			YUD.getElementsByClassName('report','div',dModule)[0].style.display = 'block';
		};
		var setRateStep = function(e) {
			var nIdx=parseInt(this.title)-1;
			switch(this.name) {
				case 'txt_step_year':
					if (parseInt(this.value)>parseInt(dYear.value)) {this.value='';alert('區段年份不可大於'+dYear.title);}
					if (nIdx>0&&parseInt(this.value)<parseInt(dTxtSYear[nIdx-1].value)) {alert('區段年份不可小於前一期區段年份');this.value='';}break;
				case 'txt_step_mon':
					if (parseInt(this.value)>12) {alert('區段月份不可大於12');this.value='';}break;
				case 'txt_step_rate':
					if (parseInt(this.value)>=100) {alert('區段利率必需小於100');this.value='';}break;
			}
			if (parseInt(dTxtSYear[nIdx].value)>0&&parseInt(dTxtSMons[nIdx].value)>0&&parseInt(dTxtSRate[nIdx].value)>0) {
				var nPeriod = 12*(dTxtSYear[nIdx].value-1)+1*(dTxtSMons[nIdx].value);
				dTxtSRate[nIdx].setAttribute('period',nPeriod);
				if (nIdx+1<dStep.value-1){
					dLabSYear[nIdx+1].innerHTML = parseInt(nPeriod/12)+1;
					dLabSMons[nIdx+1].innerHTML = nPeriod%12+1;
					dTxtSYear[nIdx+1].disabled=false;dTxtSMons[nIdx+1].disabled=false;dTxtSRate[nIdx+1].disabled=false;
				} else if (nIdx+1==dStep.value-1){
					dLabSYear[nIdx+1].innerHTML = parseInt(nPeriod/12)+1;
					dLabSMons[nIdx+1].innerHTML = nPeriod%12+1;
					dTxtSYear[nIdx+1].value = dYear.value;dTxtSMons[nIdx+1].value = 12;
					dTxtSRate[nIdx+1].disabled=false;
				}
			} else {
				for (var i=nIdx+1;i<dStep.value;i++) {
					dTxtSYear[i].value='';dTxtSMons[i].value='';dTxtSRate[i].value='';dTxtSYear[i].disabled=true;dTxtSMons[i].disabled=true;dTxtSRate[i].disabled=true;dLabSYear[i].innerHTML='?';dLabSMons[i].innerHTML='?';
				}
			}
		};
		var changeRateStep = function(e) {if (e){YUE.stopEvent(e);}var dTable = dAppend.getElementsByTagName('table')[0];for (var i=0;i<dTable.rows.length;i++) { if (i<dStep.value) {dTable.rows[i].style.display = 'block';} else {dTable.rows[i].style.display = 'none';}dTxtSYear[i].value='';dTxtSMons[i].value='';dTxtSRate[i].value='';if(i>0){dTxtSYear[i].disabled=true;dTxtSMons[i].disabled=true;dTxtSRate[i].disabled=true;dLabSYear[i].innerHTML='?';dLabSMons[i].innerHTML='?';}}};
		var changeRateWay = function(e) {
			if (this.checked) {
				if (trim(dNum.value)=='') {alert('請輸入正確的'+dNum.title);YUE.stopEvent(e);return false;}
				if (trim(dYear.value)=='') {alert('請輸入正確的'+dYear.title);YUE.stopEvent(e);return false;}
				if (trim(dGrace.value)=='') {alert('請輸入正確的'+dGrace.title);YUE.stopEvent(e);return false;}
				if (parseInt(dGrace.value)>=parseInt(dYear.value)) {alert(dGrace.title+'必需小於'+dYear.title);YUE.stopEvent(e);return false;}
			}
			dRate.disabled = this.checked;
			if (this.checked) {dStep.value = 2;changeRateStep();}
			dAppend.style.display = (this.checked)?'block':'none';
		};
		var doHelp = function(e) {
			var oHelp = YUE.getTarget(e);
			var aData = oHelp.name.split('：');
			var aXY = YUD.getXY(oHelp).toString().split(',');
			dHelpText.style.top = (parseInt(aXY[1]) - 18) + 'px';
			dHelpText.style.left = (parseInt(aXY[0]) + 22) + 'px';
			dHelpText.getElementsByTagName('h3')[0].innerHTML = aData[0];
			dHelpText.getElementsByTagName('p')[0].innerHTML = aData[1];
			dHelpText.style.display = (e.type == 'click')?'block':'none';
			YUE.stopEvent(e);
		};
		// init
		doCalculate();
		// event
		YUE.on(dHelps,'click',doHelp);
		YUE.on(dHelpText,'click',function(e){YUE.stopEvent(e);if (YUE.getTarget(e).tagName == 'IMG' || YUE.getTarget(e).tagName == 'A') {this.style.display='none';}});
		YUE.on(dNums,'keypress',YTWRE.Util.Form.filterInt);
		YUE.on(dNums,'keyup',YTWRE.Util.Form.filterIntInput);
		YUE.on(dNums,'change',YTWRE.Util.Form.filterIntInput);
		YUE.on(dNums,'beforepaste',YTWRE.Util.Form.filterIntPaste);
		YUE.on(dNums,'paste',function(){return false;});
		YUE.on(dFloats,'keypress',YTWRE.Util.Form.filterFloat);
		YUE.on(dFloats,'keyup',YTWRE.Util.Form.filterFloatInput);
		YUE.on(dFloats,'change',YTWRE.Util.Form.filterFloatInput);
		YUE.on(dFloats,'beforepaste',YTWRE.Util.Form.filterFloatPaste);
		YUE.on(dFloats,'paste',function(){return false;});
		YUE.on('chk_loan_rate','click',changeRateWay);
		YUE.on('btn_loan_step','click',changeRateStep);
		YUE.on(dTxtSYear,'blur',setRateStep);
		YUE.on(dTxtSMons,'blur',setRateStep);
		YUE.on(dTxtSRate,'keyup',setRateStep);
		YUE.on(dForm,'submit',doCalculate);
	},
	/* loan_buy */
	LoanBuy:function(dModule) {
		var trim = YAHOO.My.String.trim;
		var dForm = dModule.getElementsByTagName('form')[0];
		var dNums = YUD.getElementsByClassName('ui_num','input',dModule);
		var dFloats = YUD.getElementsByClassName('ui_float','input',dModule);
		var dNum  = document.getElementById('txt_loan_num');
		var dYear = document.getElementById('txt_loan_year');
		var dRate = document.getElementById('txt_loan_rate');
		var dGrace= document.getElementById('txt_loan_grace');
		// action
		var checkForm = function(e){var dData = YUD.getElementsByClassName('text','input',dModule);for (var i=0;i<dData.length;i++) {if (trim(dData[i].value) == '') {alert('請輸入正確的'+dData[i].title);YUE.stopEvent(e);return false;}}if (dRate.value >= 100) {alert(dRate.title+'必需小於100');YUE.stopEvent(e);return false;}if (parseInt(dGrace.value) >= parseInt(dYear.value)) {alert(dGrace.title+'必需小於'+dYear.title);YUE.stopEvent(e);return false;}};
		// event
		YUE.on(dNums,'keypress',YTWRE.Util.Form.filterInt);
		YUE.on(dNums,'keyup',YTWRE.Util.Form.filterIntInput);
		YUE.on(dNums,'change',YTWRE.Util.Form.filterIntInput);
		YUE.on(dNums,'beforepaste',YTWRE.Util.Form.filterIntPaste);
		YUE.on(dNums,'paste',function(){return false;});
		YUE.on(dFloats,'keypress',YTWRE.Util.Form.filterFloat);
		YUE.on(dFloats,'keyup',YTWRE.Util.Form.filterFloatInput);
		YUE.on(dFloats,'change',YTWRE.Util.Form.filterFloatInput);
		YUE.on(dFloats,'beforepaste',YTWRE.Util.Form.filterFloatPaste);
		YUE.on(dFloats,'paste',function(){return false;});
		YUE.on(dForm,'submit',checkForm);
	},
	/* loan_plan */
	LoanPlan:function(dModule) {
		var nIndex = 0;  // record the index of bulletin
		var nHeight= 20; // set the height of bulletin item
		var nList  = 1;  // record the index of source list
		var nRollTime = 3000;  // 3 s
		var nMoveTime = 300;   // 300 ms
		var oTimer, oTimeDo;
		var dElems = YUD.getElementsByClassName('elem','div',dModule);
		var dLists = dModule.getElementsByTagName('li');
		// action
		var moveBar = function() {dElems[0].style.top = (dElems[0].offsetTop)-5+'px';dElems[1].style.top = (dElems[1].offsetTop)-5+'px';if (dElems[nIndex].offsetTop <= 0) {clearInterval(oTimer);dElems[(nIndex+1)%2].innerHTML = dLists[nList].innerHTML;dElems[(nIndex+1)%2].style.display = 'none';dElems[(nIndex+1)%2].style.top = nHeight+'px';dElems[(nIndex+1)%2].style.display = 'block';clearTimeout(oTimeDo);oTimeDo = setTimeout(rollBar,nRollTime);}};
		var rollBar = function() {nList = (nList+1)%dLists.length;nIndex = (nIndex+1)%2;oTimer = setInterval(moveBar,nMoveTime);};
		// init
		for (var i=0;i<dLists.length&&i<2;i++) { dElems[i].style.top = (nHeight*i)+'px'; dElems[i].innerHTML = dLists[i].innerHTML; }
		if (dLists.length > 1) {clearTimeout(oTimeDo);oTimeDo = setTimeout(rollBar,nRollTime);}
		// event
		if (dLists.length > 1) {
		YUE.on(dElems,'mouseover',function(){clearTimeout(oTimeDo);});
		YUE.on(dElems,'mouseout',function(){clearTimeout(oTimeDo);oTimeDo = setTimeout(rollBar,nRollTime);});
		}
	},
	/* mail_friend */
	MailFriend:function(dModule) {
		var dForm = dModule.getElementsByTagName('form')[0];
		var dError = YUD.getElementsByClassName('err','div',dModule)[0];
		var showError = function(sMsg) {dError.innerHTML = sMsg; dError.style.display = 'block'; if (document.body.scrollTop){document.body.scrollTop=0;}else{document.documentElement.scrollTop=0;}}
		var onCheckForm = function(e) {
			var trim = YAHOO.My.String.trim;
			var sMail = trim(document.getElementById('ui_mfmail').value);
			var sMyName = trim(document.getElementById('ui_mfmyname').value);
			var sMyMail = trim(document.getElementById('ui_mfmymail').value);
			var sContent = trim(document.getElementById('ui_mfcontent').value);
			var reEmail = /^[\w\.\-]+@[\w\-]+\.[\w\.\-]+$/;
			if (!reEmail.test(sMail) || !reEmail.test(sMyMail)) {showError('請輸入有效的Email地址！');YUE.stopEvent(e);return false;}
			var reTag = /<[^>]*?>/;
			if (sMyName!='' && reTag.test(sMyName)) {showError('你的姓名 不接受HTML碼！');YUE.stopEvent(e);return false;}
			if (sContent!='' && reTag.test(sContent)) {showError('給朋友的留言 不接受HTML碼！');YUE.stopEvent(e);return false;}
			if (sContent.length > 500) {showError('給朋友的留言 字數限制最多500個中文字！');YUE.stopEvent(e);return false;}
		};
		YUE.on(dForm,'submit',onCheckForm);
	},
	/* market_category */
	MarketCategory:function(dModule) {
		YTWRE.Class.SearchMarket(dModule);
		var dForm = dModule.getElementsByTagName('form')[0];
		var dCitys = YUD.getElementsByClassName('ui_city_market','select',dModule);
		var dAreas = YUD.getElementsByClassName('ui_area_market','select',dModule);
		var dTypes = YUD.getElementsByClassName('ui_type_market','select',dModule);
		// action
		var getMarketChart = function(e) {
			var oCallback = {
				success:function(oResponse){
					oResponse.responseText = oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');
					if (oResponse.responseText == '') { alert('查詢失敗！'); }
					else { if (document.getElementById('ui_mcimg')) {document.getElementById('ui_mcimg').src = oResponse.responseText;} }
				},
                failure:function(oResponse){ alert(YTWRE.AjaxFailMsg);},
                timeout:3000
			};
			var sParameter = '&city='+dCitys[0].value+'&area='+dAreas[0].value+'&type='+dTypes[0].value+document.getElementById('ui_mcparameter').value;
            var sServiceUrl = YTWRE.RestUrl + '?method=yre.house.getMarketChart'+sParameter;
            YUC.asyncRequest('GET',sServiceUrl,oCallback);
            YUE.stopEvent(e);
		};
		// init
		YUE.on(dForm,'submit',getMarketChart);
	},
	/* navigation */
	Navigation:function(dModule) {
		var dNavs = dModule.getElementsByTagName('li');
		var dNMat = document.getElementById('nav_mat');
		var dForm = dModule.getElementsByTagName('form')[0];
		var dNavOn;
		for (var i=0,j=dNavs.length;i<j;i++) {
			if (dNavs[i].className.indexOf('on') > -1) {dNavOn = dNavs[i];}
		}
		var onNavMouseOver = function(e) {
			var oComponent = this;
			var dDropdownM = YUD.getElementsByClassName('ddmenu','div',oComponent)[0];
			if (oComponent.className.indexOf('on') == -1) { oComponent.className = oComponent.className + '_on'; }
			if (dDropdownM!=null) {
				dDropdownM.style.display = 'block';
				dNMat.style.top = dDropdownM.offsetTop + 'px'; dNMat.style.height = dDropdownM.offsetHeight + 'px';
				dNMat.style.left = dDropdownM.offsetLeft + 'px'; dNMat.style.width = dDropdownM.offsetWidth + 'px';
				dNMat.style.display = 'block';
			}
		};
		var onNavMouseOut = function(e) {
			var oComponent = this;
			var dDropdownM = YUD.getElementsByClassName('ddmenu','div',oComponent)[0];
			if (oComponent != dNavOn) oComponent.className = oComponent.className.replace('_on','');
			if (dDropdownM) {
				dDropdownM.style.display = 'none';
				dNMat.style.display = 'none';
			}
		};
		YUE.on(dNavs,'mouseover',onNavMouseOver);
		YUE.on(dNavs,'mouseout',onNavMouseOut);
		YUE.on(dForm,'submit',function(e){
			var dList = this.getElementsByTagName('select')[0];
			var sUrl = 'http://tw.house.yahoo.com/';
			this.method = 'POST';
			this.action = (dList.value==2)?sUrl+'searchresult_article.html':sUrl+'searchresult_obj.html';
		});
	},
	/* page_too */
	PageTool:function(dModule) {
		var dPrint = YUD.getElementsByClassName('print','a',dModule)[0];
		var onPrint = function(e) {
			YUE.stopEvent(e);
			var dLinks = document.getElementsByTagName('link');
			var dNews = new Array();
				for(var i=0;i<dLinks.length;i++) {
					if (dLinks[i] && dLinks[i].getAttribute('rel').toString().toLowerCase() == 'stylesheet') {
						if (dLinks[i].getAttribute('media') && dLinks[i].getAttribute('media').toString().toLowerCase() == 'print') {
							var cs = dLinks[i].cloneNode(true);
							cs.setAttribute('media','screen');
							cs.disabled = false;
							dNews[dNews.length] = cs;
						}
						else if (dLinks[i].getAttribute('media') && dLinks[i].getAttribute('media').toString().toLowerCase() == 'screen') {dLinks[i].disabled=true;}
					}
				}
				for(var i=0;i<dNews.length;i++){document.body.appendChild(dNews[i]);};
		};
		YUE.on(dPrint,'click',onPrint);
	},
	/* quicksearch_index */
	QuicksearchIndex:function(dModule) {
		YTWRE.Class.Tab(dModule);
		YTWRE.Class.SearchHouse(dModule);
		YTWRE.Class.SearchMarket(dModule);
	},
	/* search_setting_my */
	SearchSetting:function(dModule) {
		var trim = YAHOO.My.String.trim;
		var dForms = dModule.getElementsByTagName('form');
		var dBiass = YUD.getElementsByClassName('tab_bias','table',dModule);
		
		var dSearchs = YUD.getElementsByClassName('ui_search','input',dModule);
		var dNames  = YUD.getElementsByClassName('ui_name','input',dModule);
		var dTypes  = YUD.getElementsByClassName('ui_type','input',dModule);
		var dCitys  = YUD.getElementsByClassName('ui_city','select',dModule);
		var dAreas  = YUD.getElementsByClassName('ui_area','select',dModule);
		var dFormats  = YUD.getElementsByClassName('ui_format','select',dModule);
		var dSources  = YUD.getElementsByClassName('ui_source','select',dModule);
		var dSorts = YUD.getElementsByClassName('ui_sort','select',dModule);
		var dNums = YUD.getElementsByClassName('ui_num','input',dModule);
		// action
		var setArea = function(nIndex){YTWRE.Util.Form.emptyOptions(dAreas[nIndex]); var nCityIndex = (dCitys[nIndex].selectedIndex < 0)?0:dCitys[nIndex].selectedIndex; var aAreaList = (nIndex%2==0)?aAreaOld[nCityIndex].split(','):aAreaNew[nCityIndex].split(','); for (var x=0;x<aAreaList.length;x++){aTemp = aAreaList[x].split('%');YTWRE.Util.Form.addOption(dAreas[nIndex],aTemp[0],aTemp[1]);}};
		var checkForm = function(e,nIndex){if (dNums.length>1) {if ((trim(dNums[nIndex*4].value)=='') != (trim(dNums[nIndex*4+1].value)=='')) {alert('請輸入正確的總價範圍');YUE.stopEvent(e);return false;}}if (dNums.length>3) {if ((trim(dNums[nIndex*4+2].value)=='') != (trim(dNums[nIndex*4+3].value)=='')) {alert('請輸入正確的坪數範圍');YUE.stopEvent(e);return false;}}if (dSorts[nIndex] && dSorts[nIndex].value == '') {alert('請選擇排序');YUE.stopEvent(e);return false;}return true;};
		var initSetting = function(nIndex) {
			var nType = (dTypes[nIndex*2].checked)?0:1;
			var dBtns = dBiass[nIndex].rows[0].cells[2].getElementsByTagName('input');
			dBtns[0].style.display='block';
			dBtns[1].style.display=(dSearchs[nIndex].value=='')?'none':'block';
			if (dSearchs[nIndex].value == '') {setArea(nIndex*2+parseInt(nType));return false;}
			var oParams = dSearchs[nIndex].value.split('&');
			for (var i=0;i<oParams.length;i++) {
				var oPairs = oParams[i].split('=');
				switch (oPairs[0]) {
					case 'ui_name': dNames[nIndex].value = oPairs[1]; break;
					case 'ui_city': dCitys[nIndex*2+parseInt(nType)].value = oPairs[1]; setArea(nIndex*2+parseInt(nType)); break;
					case 'ui_area': dAreas[nIndex*2+parseInt(nType)].value = oPairs[1]; break;
					case 'ui_type': nType = parseInt(oPairs[1])-1; dTypes[nIndex*2+parseInt(nType)].click(); dTypes[nIndex*2+parseInt(nType)].checked = true; break;
					case 'ui_sort': dSorts[nIndex].value = oPairs[1]; break;
					case 'ui_price': var oNums = oPairs[1].split('~'); dNums[nIndex*4+0].value = oNums[0]; dNums[nIndex*4+1].value = oNums[1]; break;
					case 'ui_meter': var oNums = oPairs[1].split('~'); dNums[nIndex*4+2].value = oNums[0]; dNums[nIndex*4+3].value = oNums[1]; break;
					case 'ui_format': dFormats[nIndex*2+parseInt(nType)].value = oPairs[1]; break;
				//	case 'ui_source': dSources[nIndex*2+parseInt(nType)].value = oPairs[1]; break;
				}
			}
		};
		var makeSetting = function(nIndex) {
			var sParams = '';
			var nType = (dTypes[nIndex*2].checked)?0:1;
			sParams += 'ui_name='+dNames[nIndex].value;
			sParams += '&ui_type='+dTypes[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_city='+dCitys[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_area='+dAreas[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_price='+dNums[nIndex*4+0].value+'~'+dNums[nIndex*4+1].value;
			sParams += '&ui_meter='+dNums[nIndex*4+2].value+'~'+dNums[nIndex*4+3].value;
			sParams += '&ui_format='+dFormats[nIndex*2+parseInt(nType)].value;
		//	sParams += '&ui_source='+dSources[nIndex*2+parseInt(nType)].value;
			sParams += '&ui_sort='+dSorts[nIndex].value;
			return sParams;
		};
		var showSetting = function(nIndex) {
			var nType = (dTypes[nIndex*2].checked)?0:1;
			var sHTML = '';
			dBiass[nIndex].rows[0].cells[0].innerHTML = '<em>'+dNames[nIndex].value+'：</em>';
			if (dSearchs[nIndex].value == '') { sHTML = '此偏好尚未設定。'; }
			else {
				var oParams = dSearchs[nIndex].value.split('&');
				for (var i=0;i<oParams.length;i++) {
					var oPairs = oParams[i].split('=');
					switch (oPairs[0]) {
						case 'ui_type': sHTML += (oPairs[1]==1)?'中古屋':'新成屋 / 預售屋'; break;
						case 'ui_city': dCitys[nIndex*2+parseInt(nType)].value = oPairs[1]; sHTML += ', '+dCitys[nIndex*2+parseInt(nType)].options[dCitys[nIndex*2+parseInt(nType)].selectedIndex].text; break;
						case 'ui_area': dAreas[nIndex*2+parseInt(nType)].value = oPairs[1]; sHTML += ', '+dAreas[nIndex*2+parseInt(nType)].options[dAreas[nIndex*2+parseInt(nType)].selectedIndex].text; break;
						case 'ui_price': var oNums = oPairs[1].split('~'); sHTML += (oNums[0]!='' && oNums[1]!='')?'，總價：'+oNums[0]+'萬至'+oNums[1]+'萬':'，總價：不拘'; break;
						case 'ui_meter': var oNums = oPairs[1].split('~'); sHTML += (oNums[0]!='' && oNums[1]!='')?'，坪數：'+oNums[0]+'坪至'+oNums[1]+'坪':'，坪數：不拘'; break;
						case 'ui_format': dFormats[nIndex*2+parseInt(nType)].value = oPairs[1]; sHTML += (oPairs[1]=='')?'，房屋類別：不拘':'，房屋類別：'+dFormats[nIndex*2+parseInt(nType)].options[dFormats[nIndex*2+parseInt(nType)].selectedIndex].text; break;
					//	case 'ui_source': dSources[nIndex*2+parseInt(nType)].value = oPairs[1]; sHTML += (oPairs[1]=='')?'，物件提供：不拘':'，物件提供：'+dSources[nIndex*2+parseInt(nType)].options[dSources[nIndex*2+parseInt(nType)].selectedIndex].text; break;
						case 'ui_sort': dSorts[nIndex].value = oPairs[1]; sHTML += (dSorts[nIndex].value=='')?'，排序：不拘':'，排序：'+dSorts[nIndex].options[dSorts[nIndex].selectedIndex].text; break;
					}
				}
			}
			setTimeout(function(){dBiass[nIndex].rows[0].cells[1].innerHTML = sHTML;},10);
		};
		var hideSetting = function(nIndex) {
			var dDivs = dBiass[nIndex].rows[1].cells[0].getElementsByTagName('div');
			var dBtns = dBiass[nIndex].rows[0].cells[2].getElementsByTagName('input');
			for (var j=0;j<dDivs.length;j++){dDivs[j].style.display='none';}
			for (var j=0;j<dBtns.length;j++){if (j%2==0) {dBtns[j].style.display='block';} else {dBtns[j].style.display=(dSearchs[nIndex].value=='')?'none':'block';}}
		};
		var setMySearch = function(nIndex,sParams) {
			var oCallback = {
				success:function(oResponse){
					oResponse.responseText = oResponse.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,'');
					if (oResponse.responseText == '0') { alert('儲存失敗！'); }
					else {dSearchs[nIndex].value=oResponse.responseText;hideSetting(nIndex);showSetting(nIndex);}
				},
                failure:function(oResponse){alert(YTWRE.AjaxFailMsg);},
                timeout:3000
			};
			var sServiceUrl = YTWRE.RestUrl;
			YUC.asyncRequest('POST',sServiceUrl,oCallback,'method=yre.house.setMySearch&id='+nIndex+'&'+sParams);
		};
		var onUpdate = function(e) {
			var oComponent = YUE.getTarget(e);
			var nIndex = oComponent.getAttribute('index');
			var dDivs = dBiass[nIndex].rows[1].cells[0].getElementsByTagName('div');
			var dBtns = dBiass[nIndex].rows[0].cells[2].getElementsByTagName('input');
			for (var j=0;j<dDivs.length;j++){dDivs[j].style.display='block';} 
			for (var j=0;j<dBtns.length;j++){dBtns[j].style.display='none';}
			dForms[nIndex].reset(); initSetting(nIndex); YUE.stopEvent(e);
		};
		var onClear = function(e) {
			var oComponent = YUE.getTarget(e);
			var nIndex = oComponent.getAttribute('index');
			if (!confirm('確定清除 '+dNames[nIndex].value+' 的設定？')) {YUE.stopEvent(e);return false;}
			setMySearch(nIndex,''); YUE.stopEvent(e);
		};
		var onSubmit = function(e) {
			YUE.stopEvent(e);
			var oComponent = YUE.getTarget(e);
			var nIndex = oComponent.getAttribute('index');
			var oEvent = new YAHOO.util.EventProvider;
			if (trim(dNames[nIndex].value)=='') {alert('請輸入偏好名稱');YUE.stopEvent(e);return false;}
			if (checkForm(e,nIndex)) {setMySearch(nIndex,makeSetting(nIndex));}
		};
		var onAction = function(e) {
			var oComponent = YUE.getTarget(e);
			if (oComponent.tagName && (oComponent.tagName.toLowerCase()=='a' || (oComponent.tagName.toLowerCase()=='input' && (oComponent.type=='button'||oComponent.type=='submit'||oComponent.type=='image')))) {
				for (var i=0;i<dBiass.length;i++) {
					var dDivs = dBiass[i].rows[1].cells[0].getElementsByTagName('div');
					if (dDivs[0].style.display=='block') {
						var bBlur = true;
						var dLinks= dBiass[i].getElementsByTagName('a');
						var dBtns = dBiass[i].getElementsByTagName('input');
						for (var j=0;j<dLinks.length;j++) { if (oComponent==dLinks[j]) {bBlur=false; break;} }
						for (var j=0;j<dBtns.length;j++) { if (oComponent==dBtns[j]) {bBlur=false; break;} }
						if (oComponent.className.indexOf('ui_cancel') > -1) {bBlur=true;}
						if (bBlur) { 
							if (confirm('確定放棄本次修改？')) {hideSetting(i);}
							else{YUE.stopEvent(e); return false;}
						}
					}					
				}
				if (oComponent.className.indexOf('ui_update') > -1) {onUpdate(e);}
				if (oComponent.className.indexOf('ui_clear') > -1) {onClear(e);}
				if (oComponent.className.indexOf('ui_submit') > -1) {onSubmit(e);}
			}
		};
		// init
		YTWRE.Class.SearchHouse(dModule); for (var i=0;i<5;i++) {initSetting(i);showSetting(i);}
		// event
		YUE.on(document,'click',onAction);
	}
};

// initialization
(function(){
	var doWhileExist = function(sModuleId,oFunction){
		if(document.getElementById(sModuleId)){oFunction(document.getElementById(sModuleId));}				
	};
	doWhileExist('yresf',YTWRE.Module.Index);
	doWhileExist('yreqi',YTWRE.Module.QuicksearchIndex);
	doWhileExist('yrebc',YTWRE.Class.Tab);
	doWhileExist('yrenav',YTWRE.Module.Navigation);
	doWhileExist('yreaskqa',YTWRE.Module.askForm);
	doWhileExist('yresb',YTWRE.Class.SearchHouse);
	doWhileExist('yreisc',YTWRE.Module.ItemSearchCategory);
	doWhileExist('yreilc',YTWRE.Module.ItemListCategory);
	doWhileExist('yrei',YTWRE.Module.ItemListCategory);
	doWhileExist('yrela',YTWRE.Module.LoanArticle);
	doWhileExist('yrelb',YTWRE.Module.LoanBuy);
	doWhileExist('yrelp',YTWRE.Module.LoanPlan);
	doWhileExist('yrema',YTWRE.Class.SearchMarket);
	doWhileExist('yremc',YTWRE.Module.MarketCategory);
	doWhileExist('yremb',YTWRE.Module.MarketCategory);
	doWhileExist('yreif',YTWRE.Class.EnlargeImage);
	doWhileExist('yrefat',YTWRE.Class.EnlargeImage);
	doWhileExist('yrefat',YTWRE.Class.ArticleDigg);
	doWhileExist('yremat',YTWRE.Class.ArticleDigg);
	doWhileExist('yreqat',YTWRE.Class.ArticleDigg);
	doWhileExist('yresmy',YTWRE.Class.SelectAll);
	doWhileExist('yreqmy',YTWRE.Class.SelectAll);
	doWhileExist('yressm',YTWRE.Module.SearchSetting);
	doWhileExist('yrept',YTWRE.Module.PageTool);
	doWhileExist('yreep',YTWRE.Module.ErrorPage);
	doWhileExist('yremf',YTWRE.Module.MailFriend);
})();
