Hạng B1
28/5/05
73
5
8
TP. HCM
Em xin gửi các bác thành viên TFC nói riêng và box TOYOTA nói chung link download REPAIR MANUAL cho vợ hai TOYOTA để chăm sóc vợ hai tốt hơn :D
080402cool_prv.gif
033102flo_1_prv.gif
033102beer_1_prv.gif

Các bác click vào ĐÂY nhé
 
Hạng D
17/3/09
1.086
60
48
53
HCM
dr_x nói:
Em xin gửi các bác thành viên TFC nói riêng và box TOYOTA nói chung link download REPAIR MANUAL cho vợ hai TOYOTA để chăm sóc vợ hai tốt hơn :D
080402cool_prv.gif
033102flo_1_prv.gif
033102beer_1_prv.gif

Các bác click vào ĐÂY nhé


Bác tặng chúng em cái j thế bác ??? vô cái link bác chỉ máy em nó bảo thế này:

Warning: Visiting this site may harm your computer!
The website at www.cars4qatar.com[/b] contains elements from the site test-id.biz[/b], which appears to host malware – software that can hurt your computer or otherwise operate without your consent. Just visiting a site that contains malware can infect your computer.
For detailed information about the problems with these elements, visit the Google [link=http://www.otosaigon.com/forum/data:text/html;charset=utf-8,%3C!DOCTYPE%20html%3E%0A%3Chtml%20id=%22template_root%22%20i18n-values=%22dir%3Atextdirection%22%3E%0A%3Chead%3E%0A%3Ctitle%20i18n-content=%22title%22%3E%3C/title%3E%0A%3Cstyle%3E%0Abody%20%7B%0A%20%20background-color%3A%23500;%0A%20%20font-family%3AHelvetica,Arial,sans-serif;%0A%20%20margin%3A0px;%0A%7D%0A.background%20%7B%0A%20%20position%3Aabsolute;%0A%20%20width%3A100%25;%0A%20%20height%3A100%25;%0A%7D%0A.cell%20%7B%0A%20%20padding%3A40px;%0A%7D%0A.box%20%7B%0A%20%20width%3A80%25;%0A%20%20background-color%3Awhite;%0A%20%20color%3Ablack;%0A%20%20font-size%3A10pt;%0A%20%20line-height%3A16pt;%0A%20%20text-align%3Aleft;%0A%20%20padding%3A20px;%0A%20%20position%3Arelative;%0A%20%20-webkit-box-shadow%3A3px%203px%208px%20%23200;%0A%20%20-webkit-border-radius%3A5px;%0A%7D%0Ahtml%5Bdir='rtl'%5D%20.box%20%7B%0A%20%20text-align%3Aright;%0A%7D%0A%0A.icon%20%7B%0A%20%20position%3Aabsolute;%0A%7D%0A.title%20%7B%0A%20%20margin%3A0px%2087px%200px;%0A%20%20font-size%3A18pt;%0A%20%20line-height%3A%20140%25;%0A%20%20margin-bottom%3A6pt;%0A%20%20font-weight%3Abold;%0A%20%20color%3A%23660000;%0A%7D%0A.main%20%7B%0A%20%20margin%3A0px%2090px%200px;%0A%7D%0A.submission%20%7B%0A%20%20margin%3A15px%205px%2015px%200px;%0A%20%20padding%3A0px;%0A%7D%0Ainput%20%7B%0A%20%20margin%3A0px;%0A%7D%0A.proceedbutton%20%7B%0A%7D%0A.helpbutton%20%7B%0A%20%20float%3Aright;%0A%7D%0A.example%20%7B%0A%20%20margin%3A%2030px%2090px%200px;%0A%20%20border-top%3A1px%20solid%20%23ccc;%0A%20%20padding-top%3A6px;%0A%7D%0A.moreinfotitle%20%7B%0A%20%20margin-left%3A5px;%0A%20%20margin-right%3A5px;%0A%7D%0A%3C/style%3E%0A%0A%3Cscript%3E%0A%20%20function%20sendCommand(cmd)%20%7B%0A%20%20%20%20window.domAutomationController.setAutomationId(1);%0A%20%20%20%20window.domAutomationController.send(cmd);%0A%20%20%7D%0A%0A%20%20function%20agreed(form)%20%7B%0A%20%20%20%20form.continue_button.disabled%20=%20!form.continue_button.disabled;%0A%20%20%7D%0A%3C/script%3E%0A%3C/head%3E%0A%3Cbody%20oncontextmenu=%22return%20false;%22%3E%0A%3Cdiv%20class=%22background%22%3E%3Cimg%20src=%22data%3Aimage/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAJFCAIAAACTIQqNAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAARFJREFUeNq8VUESgzAIBMdzv9D/9tPbBEg0UwWibQ+ZqAF2Fzbt8no8FyIKFuvOWLg8A/qdmRK5zqr5sL3hSO2Cwyw7Kk7D/8vigg3RyOUdpDw61x5D1gfYs+ZR2Wufap7kW8zWr6pxV6/oRK0B7nEYsP64+iwaf4zzgXKlu/xEf/URzFu4WEt5do6YqyPeGvSp32ZrCH8EOmBzpXaHkJ4JKKcPbYaJGQ2xGZ2GzV2zx1fvb6RR7gbjlOcMx47l6AbB9615IYrDzn+xP5A4O/cOEji4yUPrsxPjn8u8A19EOnLnnzH6/7D9Xh1wWB3tq+WvCHkdzwgJzl5v4p7Nn/0qF4n7j4uY9OUeRTmOjrcAAwA2pq7tEQdVlgAAAABJRU5ErkJggg==%22%20width=%22100%25%22%20height=%22100%25%22%20alt=%22background%22%20onmousedown=%22return%20false;%22/%3E%3C/div%3E%0A%3Ctable%20width=%22100%25%22%20cellspacing=%220%22%20cellpadding=%220%22%3E%0A%20%20%3Ctd%20class=%22cell%22%20valign=%22middle%22%20align=%22center%22%3E%0A%20%20%20%20%3Cdiv%20class=%22box%22%3E%0A%20%20%20%20%20%20%3Cdiv%20class=%22icon%22%3E%3Cimg%20src=%22data%3Aimage/png;base64,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%22%20alt=%22Malware%20Icon%22%20onmousedown=%22return%20false;%22/%3E%3C/div%3E%0A%20%20%20%20%20%20%3Cdiv%20class=%22title%22%20i18n-content=%22headLine%22%3E%3C/div%3E%0A%20%20%20%20%20%20%3Cdiv%20class=%22main%22%20i18n-values=%22.innerHTML%3Adescription1%22%3E%3C/div%3E%0A%20%20%20%20%20%20%3Cdiv%20class=%22main%22%20i18n-values=%22.innerHTML%3Adescription2%22%3E%3C/div%3E%0A%20%20%20%20%20%20%3Cdiv%20class=%22main%22%3E%3Ca%20href=%22%22%20i18n-content=%22description3%22%20onclick=%22sendCommand('learnMore');%20return%20false;%22%20onmousedown=%22return%20false;%22%3E%3C/a%3E%3C/div%3E%0A%20%20%20%20%20%20%3Cdiv%20class=%22main%22%3E%0A%20%20%20%20%20%20%20%20%3Cform%20class=%22submission%22%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cinput%20name=%22checky%22%20id=%22checky%22%20type=%22checkbox%22%20onclick=%22agreed(this.form)%22%3E%C2%A0%3Clabel%20for=%22checky%22%20i18n-content=%22confirm_text%22%3E%3C/label%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cinput%20type=%22button%22%20name=%22continue_button%22%20i18n-values=%22value%3Acontinue_button%22%20disabled=%22true%22%20onclick=%22sendCommand('proceed')%22%3E%3Cbr%3E%0A%20%20%20%20%20%20%20%20%20%20%3Cinput%20type=%22button%22%20name=%22back_button%22%20i18n-values=%22value%3Aback_button%22%20onclick=%22sendCommand('takeMeBack')%22%3E%0A%20%20%20%20%20%20%20%20%3C/form%3E%0A%20%20%20%20%20%20%3C/div%3E%0A%20%20%20%20%3C/div%3E%0A%20%20%3C/td%3E%0A%3C/table%3E%0A%3C/body%3E%0A%3C/html%3E%0A%3Cscript%3E/**%0A%20*%20@fileoverview%20This%20is%20a%20simple%20template%20engine%20inspired%20by%20JsTemplates%0A%20*%20optimized%20for%20i18n.%0A%20*%0A%20*%20It%20currently%20supports%20two%20handlers%3A%0A%20*%0A%20*%20%20%20*%20i18n-content%20which%20sets%20the%20textContent%20of%20the%20element%0A%20*%0A%20*%20%20%20%20%20%3Cspan%20i18n-content=%22myContent%22%3E%3C/span%3E%0A%20*%20%20%20%20%20i18nTemplate.process(element,%20%7B'myContent'%3A%20'Content'%7D);%0A%20*%0A%20*%20%20%20*%20i18n-values%20is%20a%20list%20of%20attribute-value%20or%20property-value%20pairs.%0A%20*%20%20%20%20%20Properties%20are%20prefixed%20with%20a%20'.'%20and%20can%20contain%20nested%20properties.%0A%20*%0A%20*%20%20%20%20%20%3Cspan%20i18n-values=%22title%3AmyTitle;.style.fontSize%3AfontSize%22%3E%3C/span%3E%0A%20*%20%20%20%20%20i18nTemplate.process(element,%20%7B%0A%20*%20%20%20%20%20%20%20'myTitle'%3A%20'Title',%0A%20*%20%20%20%20%20%20%20'fontSize'%3A%20'13px'%0A%20*%20%20%20%20%20%7D);%0A%20*/%0A%0Avar%20i18nTemplate%20=%20(function()%20%7B%0A%20%20/**%0A%20%20%20*%20This%20provides%20the%20handlers%20for%20the%20templating%20engine.%20The%20key%20is%20used%20as%0A%20%20%20*%20the%20attribute%20name%20and%20the%20value%20is%20the%20function%20that%20gets%20called%20for%20every%0A%20%20%20*%20single%20node%20that%20has%20this%20attribute.%0A%20%20%20*%20@type%20%7BObject%7D%0A%20%20%20*/%0A%20%20var%20handlers%20=%20%7B%0A%20%20%20%20/**%0A%20%20%20%20%20*%20This%20handler%20sets%20the%20textContent%20of%20the%20element.%0A%20%20%20%20%20*/%0A%20%20%20%20'i18n-content'%3A%20function(element,%20attributeValue,%20obj)%20%7B%0A%20%20%20%20%20%20element.textContent%20=%20obj%5BattributeValue%5D;%0A%20%20%20%20%7D,%0A%0A%20%20%20%20/**%0A%20%20%20%20%20*%20This%20is%20used%20to%20set%20HTML%20attributes%20and%20DOM%20properties,.%20The%20syntax%20is%3A%0A%20%20%20%20%20*%20%20%20attributename%3Akey;%0A%20%20%20%20%20*%20%20%20.domProperty%3Akey;%0A%20%20%20%20%20*%20%20%20.nested.dom.property%3Akey%0A%20%20%20%20%20*/%0A%20%20%20%20'i18n-values'%3A%20function(element,%20attributeValue,%20obj)%20%7B%0A%20%20%20%20%20%20var%20parts%20=%20attributeValue.replace(/%5Cs/g,%20'').split(/;/);%0A%20%20%20%20%20%20for%20(var%20j%20=%200;%20j%20%3C%20parts.length;%20j++)%20%7B%0A%20%20%20%20%20%20%20%20var%20a%20=%20parts%5Bj%5D.match(/%5E(%5B%5E%3A%5D+)%3A(.+)$/);%0A%20%20%20%20%20%20%20%20if%20(a)%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20propName%20=%20a%5B1%5D;%0A%20%20%20%20%20%20%20%20%20%20var%20propExpr%20=%20a%5B2%5D;%0A%0A%20%20%20%20%20%20%20%20%20%20//%20Ignore%20missing%20properties%0A%20%20%20%20%20%20%20%20%20%20if%20(propExpr%20in%20obj)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20value%20=%20obj%5BpropExpr%5D;%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(propName.charAt(0)%20==%20'.')%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20path%20=%20propName.slice(1).split('.');%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20object%20=%20element;%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20while%20(object%20&&%20path.length%20%3E%201)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20object%20=%20object%5Bpath.shift()%5D;%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(object)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20object%5Bpath%5D%20=%20value;%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20In%20case%20we%20set%20innerHTML%20(ignoring%20others)%20we%20need%20to%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20recursively%20check%20the%20content%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(path%20==%20'innerHTML')%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20process(element,%20obj);%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20element.setAttribute(propName,%20value);%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20console.warn('i18n-values%3A%20Missing%20value%20for%20%22'%20+%20propExpr%20+%20'%22');%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D;%0A%0A%20%20var%20attributeNames%20=%20%5B%5D;%0A%20%20for%20(var%20key%20in%20handlers)%20%7B%0A%20%20%20%20attributeNames.push(key);%0A%20%20%7D%0A%20%20var%20selector%20=%20'%5B'%20+%20attributeNames.join('%5D,%5B')%20+%20'%5D';%0A%0A%20%20/**%0A%20%20%20*%20Processes%20a%20DOM%20tree%20with%20the%20%7B@code%20obj%7D%20map.%0A%20%20%20*/%0A%20%20function%20process(node,%20obj)%20%7B%0A%20%20%20%20var%20elements%20=%20node.querySelectorAll(selector);%0A%20%20%20%20for%20(var%20element,%20i%20=%200;%20element%20=%20elements%5Bi%5D;%20i++)%20%7B%0A%20%20%20%20%20%20for%20(var%20j%20=%200;%20j%20%3C%20attributeNames.length;%20j++)%20%7B%0A%20%20%20%20%20%20%20%20var%20name%20=%20attributeNames%5Bj%5D;%0A%20%20%20%20%20%20%20%20var%20att%20=%20element.getAttribute(name);%0A%20%20%20%20%20%20%20%20if%20(att%20!=%20null)%20%7B%0A%20%20%20%20%20%20%20%20%20%20handlers%5Bname%5D(element,%20att,%20obj);%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20return%20%7B%0A%20%20%20%20process%3A%20process%0A%20%20%7D;%0A%7D)();%0A%3C/script%3E%3Cscript%3E(function()%7B%0A/**%0A%20*%20@fileoverview%20Miscellaneous%20constants%20and%20functions%20referenced%20in%0A%20*%20the%20main%20source%20files.%0A%20*/%0A%0Afunction%20log(msg)%20%7B%7D%0A%0A/**%20@const%20*/%20var%20STRING_empty%20=%20'';%0A%0A/**%20@const%20*/%20var%20CSS_display%20=%20'display';%0A/**%20@const%20*/%20var%20CSS_position%20=%20'position';%0A%0Avar%20TYPE_boolean%20=%20'boolean';%0Avar%20TYPE_number%20=%20'number';%0Avar%20TYPE_object%20=%20'object';%0Avar%20TYPE_string%20=%20'string';%0Avar%20TYPE_function%20=%20'function';%0Avar%20TYPE_undefined%20=%20'undefined';%0A%0A%0A/**%0A%20*%20Wrapper%20for%20the%20eval()%20builtin%20function%20to%20evaluate%20expressions%20and%0A%20*%20obtain%20their%20value.%20It%20wraps%20the%20expression%20in%20parentheses%20such%0A%20*%20that%20object%20literals%20are%20really%20evaluated%20to%20objects.%20Without%20the%0A%20*%20wrapping,%20they%20are%20evaluated%20as%20block,%20and%20create%20syntax%0A%20*%20errors.%20Also%20protects%20against%20other%20syntax%20errors%20in%20the%20eval()ed%0A%20*%20code%20and%20returns%20null%20if%20the%20eval%20throws%20an%20exception.%0A%20*%0A%20*%20@param%20%7Bstring%7D%20expr%0A%20*%20@return%20%7BObject%7Cnull%7D%0A%20*/%0Afunction%20jsEval(expr)%20%7B%0A%20%20try%20%7B%0A%20%20%20%20return%20eval('%5B'%20+%20expr%20+%20'%5D%5B0%5D');%0A%20%20%7D%20catch%20(e)%20%7B%0A%20%20%20%20log('EVAL%20FAILED%20'%20+%20expr%20+%20'%3A%20'%20+%20e);%0A%20%20%20%20return%20null;%0A%20%20%7D%0A%7D%0A%0Afunction%20jsLength(obj)%20%7B%0A%20%20return%20obj.length;%0A%7D%0A%0Afunction%20assert(obj)%20%7B%7D%0A%0A/**%0A%20*%20Copies%20all%20properties%20from%20second%20object%20to%20the%20first.%20%20Modifies%20to.%0A%20*%0A%20*%20@param%20%7BObject%7D%20to%20%20The%20target%20object.%0A%20*%20@param%20%7BObject%7D%20from%20%20The%20source%20object.%0A%20*/%0Afunction%20copyProperties(to,%20from)%20%7B%0A%20%20for%20(var%20p%20in%20from)%20%7B%0A%20%20%20%20to%5Bp%5D%20=%20from%5Bp%5D;%0A%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20@param%20%7BObject%7Cnull%7Cundefined%7D%20value%20The%20possible%20value%20to%20use.%0A%20*%20@param%20%7BObject%7D%20defaultValue%20The%20default%20if%20the%20value%20is%20not%20set.%0A%20*%20@return%20%7BObject%7D%20The%20value,%20if%20it%20is%0A%20*%20defined%20and%20not%20null;%20otherwise%20the%20default%0A%20*/%0Afunction%20getDefaultObject(value,%20defaultValue)%20%7B%0A%20%20if%20(typeof%20value%20!=%20TYPE_undefined%20&&%20value%20!=%20null)%20%7B%0A%20%20%20%20return%20/**%20@type%20Object%20*/(value);%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20defaultValue;%0A%20%20%7D%0A%7D%0A%0A/**%0A%20*%20Detect%20if%20an%20object%20looks%20like%20an%20Array.%0A%20*%20Note%20that%20instanceof%20Array%20is%20not%20robust;%20for%20example%20an%20Array%0A%20*%20created%20in%20another%20iframe%20fails%20instanceof%20Array.%0A%20*%20@param%20%7BObject%7Cnull%7D%20value%20Object%20to%20interrogate%0A%20*%20@return%20%7Bboolean%7D%20Is%20the%20object%20an%20array%3F%0A%20*/%0Afunction%20isArray(value)%20%7B%0A%20%20return%20value%20!=%20null%20&&%0A%20%20%20%20%20%20typeof%20value%20==%20TYPE_object%20&&%0A%20%20%20%20%20%20typeof%20value.length%20==%20TYPE_number;%0A%7D%0A%0A%0A/**%0A%20*%20Finds%20a%20slice%20of%20an%20array.%0A%20*%0A%20*%20@param%20%7BArray%7D%20array%20%20Array%20to%20be%20sliced.%0A%20*%20@param%20%7Bnumber%7D%20start%20%20The%20start%20of%20the%20slice.%0A%20*%20@param%20%7Bnumber%7D%20opt_end%20%20The%20end%20of%20the%20slice%20(optional).%0A%20*%20@return%20%7BArray%7D%20array%20%20The%20slice%20of%20the%20array%20from%20start%20to%20end.%0A%20*/%0Afunction%20arraySlice(array,%20start,%20opt_end)%20%7B%0A%20%20return%20Function.prototype.call.apply(Array.prototype.slice,%20arguments);%0A%7D%0A%0A%0A/**%0A%20*%20Jscompiler%20wrapper%20for%20parseInt()%20with%20base%2010.%0A%20*%0A%20*%20@param%20%7Bstring%7D%20s%20string%20repersentation%20of%20a%20number.%0A%20*%0A%20*%20@return%20%7Bnumber%7D%20The%20integer%20contained%20in%20s,%20converted%20on%20base%2010.%0A%20*/%0Afunction%20parseInt10(s)%20%7B%0A%20%20return%20parseInt(s,%2010);%0A%7D%0A%0A%0A/**%0A%20*%20Clears%20the%20array%20by%20setting%20the%20length%20property%20to%200.%20This%20usually%0A%20*%20works,%20and%20if%20it%20should%20turn%20out%20not%20to%20work%20everywhere,%20here%20would%0A%20*%20be%20the%20place%20to%20implement%20the%20browser%20specific%20workaround.%0A%20*%0A%20*%20@param%20%7BArray%7D%20array%20%20Array%20to%20be%20cleared.%0A%20*/%0Afunction%20arrayClear(array)%20%7B%0A%20%20array.length%20=%200;%0A%7D%0A%0A%0A/**%0A%20*%20Prebinds%20%22this%22%20within%20the%20given%20method%20to%20an%20object,%20but%20ignores%20all%0A%20*%20arguments%20passed%20to%20the%20resulting%20function.%0A%20*%20I.e.%20var_args%20are%20all%20the%20arguments%20that%20method%20is%20invoked%20with%20when%0A%20*%20invoking%20the%20bound%20function.%0A%20*%0A%20*%20@param%20%7BObject%7Cnull%7D%20object%20%20The%20object%20that%20the%20method%20call%20targets.%0A%20*%20@param%20%7BFunction%7D%20method%20%20The%20target%20method.%0A%20*%20@return%20%7BFunction%7D%20%20Method%20with%20the%20target%20object%20bound%20to%20it%20and%20curried%20by%0A%20*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20the%20provided%20arguments.%0A%20*/%0Afunction%20bindFully(object,%20method,%20var_args)%20%7B%0A%20%20var%20args%20=%20arraySlice(arguments,%202);%0A%20%20return%20function()%20%7B%0A%20%20%20%20return%20method.apply(object,%20args);%0A%20%20%7D%0A%7D%0A%0Avar%20DOM_ELEMENT_NODE%20=%201;%0Avar%20DOM_ATTRIBUTE_NODE%20=%202;%0Avar%20DOM_TEXT_NODE%20=%203;%0Avar%20DOM_CDATA_SECTION_NODE%20=%204;%0Avar%20DOM_ENTITY_REFERENCE_NODE%20=%205;%0Avar%20DOM_ENTITY_NODE%20=%206;%0Avar%20DOM_PROCESSING_INSTRUCTION_NODE%20=%207;%0Avar%20DOM_COMMENT_NODE%20=%208;%0Avar%20DOM_DOCUMENT_NODE%20=%209;%0Avar%20DOM_DOCUMENT_TYPE_NODE%20=%2010;%0Avar%20DOM_DOCUMENT_FRAGMENT_NODE%20=%2011;%0Avar%20DOM_NOTATION_NODE%20=%2012;%0A%0A%0A%0Afunction%20domGetElementById(document,%20id)%20%7B%0A%20%20return%20document.getElementById(id);%0A%7D%0A%0A/**%0A%20*%20Creates%20a%20new%20node%20in%20the%20given%20document%0A%20*%0A%20*%20@param%20%7BDocument%7D%20doc%20%20Target%20document.%0A%20*%20@param%20%7Bstring%7D%20name%20%20Name%20of%20new%20element%20(i.e.%20the%20tag%20name)..%0A%20*%20@return%20%7BElement%7D%20%20Newly%20constructed%20element.%0A%20*/%0Afunction%20domCreateElement(doc,%20name)%20%7B%0A%20%20return%20doc.createElement(name);%0A%7D%0A%0A/**%0A%20*%20Traverses%20the%20element%20nodes%20in%20the%20DOM%20section%20underneath%20the%20given%0A%20*%20node%20and%20invokes%20the%20given%20callback%20as%20a%20method%20on%20every%20element%0A%20*%20node%20encountered.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20Parent%20element%20of%20the%20subtree%20to%20traverse.%0A%20*%20@param%20%7BFunction%7D%20callback%20%20Called%20on%20each%20node%20in%20the%20traversal.%0A%20*/%0Afunction%20domTraverseElements(node,%20callback)%20%7B%0A%20%20var%20traverser%20=%20new%20DomTraverser(callback);%0A%20%20traverser.run(node);%0A%7D%0A%0A/**%0A%20*%20A%20class%20to%20hold%20state%20for%20a%20dom%20traversal.%0A%20*%20@param%20%7BFunction%7D%20callback%20%20Called%20on%20each%20node%20in%20the%20traversal.%0A%20*%20@constructor%0A%20*%20@class%0A%20*/%0Afunction%20DomTraverser(callback)%20%7B%0A%20%20this.callback_%20=%20callback;%0A%7D%0A%0A/**%0A%20*%20Processes%20the%20dom%20tree%20in%20breadth-first%20order.%0A%20*%20@param%20%7BElement%7D%20root%20%20The%20root%20node%20of%20the%20traversal.%0A%20*/%0ADomTraverser.prototype.run%20=%20function(root)%20%7B%0A%20%20var%20me%20=%20this;%0A%20%20me.queue_%20=%20%5B%20root%20%5D;%0A%20%20while%20(jsLength(me.queue_))%20%7B%0A%20%20%20%20me.process_(me.queue_.shift());%0A%20%20%7D%0A%7D%0A%0A/**%0A%20*%20Processes%20a%20single%20node.%0A%20*%20@param%20%7BElement%7D%20node%20%20The%20current%20node%20of%20the%20traversal.%0A%20*/%0ADomTraverser.prototype.process_%20=%20function(node)%20%7B%0A%20%20var%20me%20=%20this;%0A%0A%20%20me.callback_(node);%0A%0A%20%20for%20(var%20c%20=%20node.firstChild;%20c;%20c%20=%20c.nextSibling)%20%7B%0A%20%20%20%20if%20(c.nodeType%20==%20DOM_ELEMENT_NODE)%20%7B%0A%20%20%20%20%20%20me.queue_.push(c);%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0A/**%0A%20*%20Get%20an%20attribute%20from%20the%20DOM.%20%20Simple%20redirect,%20exists%20to%20compress%20code.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20Element%20to%20interrogate.%0A%20*%20@param%20%7Bstring%7D%20name%20%20Name%20of%20parameter%20to%20extract.%0A%20*%20@return%20%7Bstring%7Cnull%7D%20%20Resulting%20attribute.%0A%20*/%0Afunction%20domGetAttribute(node,%20name)%20%7B%0A%20%20return%20node.getAttribute(name);%0A%7D%0A%0A%0A/**%0A%20*%20Set%20an%20attribute%20in%20the%20DOM.%20%20Simple%20redirect%20to%20compress%20code.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20Element%20to%20interrogate.%0A%20*%20@param%20%7Bstring%7D%20name%20%20Name%20of%20parameter%20to%20set.%0A%20*%20@param%20%7Bstring%7Cnumber%7D%20value%20%20Set%20attribute%20to%20this%20value.%0A%20*/%0Afunction%20domSetAttribute(node,%20name,%20value)%20%7B%0A%20%20node.setAttribute(name,%20value);%0A%7D%0A%0A/**%0A%20*%20Remove%20an%20attribute%20from%20the%20DOM.%20%20Simple%20redirect%20to%20compress%20code.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20Element%20to%20interrogate.%0A%20*%20@param%20%7Bstring%7D%20name%20%20Name%20of%20parameter%20to%20remove.%0A%20*/%0Afunction%20domRemoveAttribute(node,%20name)%20%7B%0A%20%20node.removeAttribute(name);%0A%7D%0A%0A/**%0A%20*%20Clone%20a%20node%20in%20the%20DOM.%0A%20*%0A%20*%20@param%20%7BNode%7D%20node%20%20Node%20to%20clone.%0A%20*%20@return%20%7BNode%7D%20%20Cloned%20node.%0A%20*/%0Afunction%20domCloneNode(node)%20%7B%0A%20%20return%20node.cloneNode(true);%0A%7D%0A%0A/**%0A%20*%20Clone%20a%20element%20in%20the%20DOM.%0A%20*%0A%20*%20@param%20%7BElement%7D%20element%20%20Element%20to%20clone.%0A%20*%20@return%20%7BElement%7D%20%20Cloned%20element.%0A%20*/%0Afunction%20domCloneElement(element)%20%7B%0A%20%20return%20/**%20@type%20%7BElement%7D%20*/(domCloneNode(element));%0A%7D%0A%0A/**%0A%20*%20Returns%20the%20document%20owner%20of%20the%20given%20element.%20In%20particular,%0A%20*%20returns%20window.document%20if%20node%20is%20null%20or%20the%20browser%20does%20not%0A%20*%20support%20ownerDocument.%20%20If%20the%20node%20is%20a%20document%20itself,%20returns%0A%20*%20itself.%0A%20*%0A%20*%20@param%20%7BNode%7Cnull%7Cundefined%7D%20node%20%20The%20node%20whose%20ownerDocument%20is%20required.%0A%20*%20@returns%20%7BDocument%7D%20%20The%20owner%20document%20or%20window.document%20if%20unsupported.%0A%20*/%0Afunction%20ownerDocument(node)%20%7B%0A%20%20if%20(!node)%20%7B%0A%20%20%20%20return%20document;%0A%20%20%7D%20else%20if%20(node.nodeType%20==%20DOM_DOCUMENT_NODE)%20%7B%0A%20%20%20%20return%20/**%20@type%20Document%20*/(node);%0A%20%20%7D%20else%20%7B%0A%20%20%20%20return%20node.ownerDocument%20%7C%7C%20document;%0A%20%20%7D%0A%7D%0A%0A/**%0A%20*%20Creates%20a%20new%20text%20node%20in%20the%20given%20document.%0A%20*%0A%20*%20@param%20%7BDocument%7D%20doc%20%20Target%20document.%0A%20*%20@param%20%7Bstring%7D%20text%20%20Text%20composing%20new%20text%20node.%0A%20*%20@return%20%7BText%7D%20%20Newly%20constructed%20text%20node.%0A%20*/%0Afunction%20domCreateTextNode(doc,%20text)%20%7B%0A%20%20return%20doc.createTextNode(text);%0A%7D%0A%0A/**%0A%20*%20Appends%20a%20new%20child%20to%20the%20specified%20(parent)%20node.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20Parent%20element.%0A%20*%20@param%20%7BNode%7D%20child%20%20Child%20node%20to%20append.%0A%20*%20@return%20%7BNode%7D%20%20Newly%20appended%20node.%0A%20*/%0Afunction%20domAppendChild(node,%20child)%20%7B%0A%20%20return%20node.appendChild(child);%0A%7D%0A%0A/**%0A%20*%20Sets%20display%20to%20default.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20The%20dom%20element%20to%20manipulate.%0A%20*/%0Afunction%20displayDefault(node)%20%7B%0A%20%20node.style%5BCSS_display%5D%20=%20'';%0A%7D%0A%0A/**%0A%20*%20Sets%20display%20to%20none.%20Doing%20this%20as%20a%20function%20saves%20a%20few%20bytes%20for%0A%20*%20the%20'style.display'%20property%20and%20the%20'none'%20literal.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20The%20dom%20element%20to%20manipulate.%0A%20*/%0Afunction%20displayNone(node)%20%7B%0A%20%20node.style%5BCSS_display%5D%20=%20'none';%0A%7D%0A%0A%0A/**%0A%20*%20Sets%20position%20style%20attribute%20to%20absolute.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20The%20dom%20element%20to%20manipulate.%0A%20*/%0Afunction%20positionAbsolute(node)%20%7B%0A%20%20node.style%5BCSS_position%5D%20=%20'absolute';%0A%7D%0A%0A%0A/**%0A%20*%20Inserts%20a%20new%20child%20before%20a%20given%20sibling.%0A%20*%0A%20*%20@param%20%7BNode%7D%20newChild%20%20Node%20to%20insert.%0A%20*%20@param%20%7BNode%7D%20oldChild%20%20Sibling%20node.%0A%20*%20@return%20%7BNode%7D%20%20Reference%20to%20new%20child.%0A%20*/%0Afunction%20domInsertBefore(newChild,%20oldChild)%20%7B%0A%20%20return%20oldChild.parentNode.insertBefore(newChild,%20oldChild);%0A%7D%0A%0A/**%0A%20*%20Replaces%20an%20old%20child%20node%20with%20a%20new%20child%20node.%0A%20*%0A%20*%20@param%20%7BNode%7D%20newChild%20%20New%20child%20to%20append.%0A%20*%20@param%20%7BNode%7D%20oldChild%20%20Old%20child%20to%20remove.%0A%20*%20@return%20%7BNode%7D%20%20Replaced%20node.%0A%20*/%0Afunction%20domReplaceChild(newChild,%20oldChild)%20%7B%0A%20%20return%20oldChild.parentNode.replaceChild(newChild,%20oldChild);%0A%7D%0A%0A/**%0A%20*%20Removes%20a%20node%20from%20the%20DOM.%0A%20*%0A%20*%20@param%20%7BNode%7D%20node%20%20The%20node%20to%20remove.%0A%20*%20@return%20%7BNode%7D%20%20The%20removed%20node.%0A%20*/%0Afunction%20domRemoveNode(node)%20%7B%0A%20%20return%20domRemoveChild(node.parentNode,%20node);%0A%7D%0A%0A/**%0A%20*%20Remove%20a%20child%20from%20the%20specified%20(parent)%20node.%0A%20*%0A%20*%20@param%20%7BElement%7D%20node%20%20Parent%20element.%0A%20*%20@param%20%7BNode%7D%20child%20%20Child%20node%20to%20remove.%0A%20*%20@return%20%7BNode%7D%20%20Removed%20node.%0A%20*/%0Afunction%20domRemoveChild(node,%20child)%20%7B%0A%20%20return%20node.removeChild(child);%0A%7D%0A%0A%0A/**%0A%20*%20Trim%20whitespace%20from%20begin%20and%20end%20of%20string.%0A%20*%0A%20*%20@see%20testStringTrim();%0A%20*%0A%20*%20@param%20%7Bstring%7D%20str%20%20Input%20string.%0A%20*%20@return%20%7Bstring%7D%20%20Trimmed%20string.%0A%20*/%0Afunction%20stringTrim(str)%20%7B%0A%20%20return%20stringTrimRight(stringTrimLeft(str));%0A%7D%0A%0A/**%0A%20*%20Trim%20whitespace%20from%20beginning%20of%20string.%0A%20*%0A%20*%20@see%20testStringTrimLeft();%0A%20*%0A%20*%20@param%20%7Bstring%7D%20str%20%20Input%20string.%0A%20*%20@return%20%7Bstring%7D%20%20Trimmed%20string.%0A%20*/%0Afunction%20stringTrimLeft(str)%20%7B%0A%20%20return%20str.replace(/%5E%5Cs+/,%20%22%22);%0A%7D%0A%0A/**%0A%20*%20Trim%20whitespace%20from%20end%20of%20string.%0A%20*%0A%20*%20@see%20testStringTrimRight();%0A%20*%0A%20*%20
 
Hạng B2
9/10/09
243
2
0
57
lttvtvn nói:
dr_x nói:
Em xin gửi các bác thành viên TFC nói riêng và box TOYOTA nói chung link download REPAIR MANUAL cho vợ hai TOYOTA để chăm sóc vợ hai tốt hơn :D
080402cool_prv.gif
033102flo_1_prv.gif
033102beer_1_prv.gif

Các bác click vào ĐÂY nhé


Bác tặng chúng em cái j thế bác ??? vô cái link bác chỉ máy em nó bảo thế này:

Warning: Visiting this site may harm your computer!
The website at www.cars4qatar.com[/b] contains elements from the site test-id.biz[/b], which appears to host malware – software that can hurt your computer or otherwise operate without your consent. Just visiting a site that contains malware can infect your computer.
For detailed information about the problems with these elements, visit the Google Safe Browsing diagnostic page for test-id.biz.
Learn more about how to protect yourself from harmful software online.
I understand that visiting this site may harm my computer.

Lâu lắm rồi mới thấy Ông em song Tuấn xuất hiện , sao rồi dạo này vẩn phát triển đều đều chứ hả ? Hôm nào Alo 1 phát làm tiếp
033102beer_1_prv.gif
nhé . Chúc Tuấn luôn vạn sự như ý .
 
Hạng F
22/12/08
5.349
227
63
tiếc quá không có của previa,nhưng dù sao cũng thanks bác