XtGem Forum catalog
j
j
 2


اولا:الرسائل المجانيه



ثانيا : المكالمات المجانيه
ﻣﻮﻗﻊ ﺟﺎﻛﺴﺘﺮ ﻳﻘﺪﻡ ﻟﻜﻢ
ﺧﺪﻣﺔ ﺍﻹﺗﺼﺎﻻﺕ ﺍﻟﻤﺠﺎﻧﻴﺔ ﻭﺑﺪﻭﻥ
ﺍﻟﺤﺎﺟﺔ ﻟﺘﺤﻤﻴﻞ ﺃﻱ ﺑﺮﻧﺎﻣﺞ ﻋﻠﻰ
ﺟﻬﺎﺯﻙ _
ﻫﺬﺍ ﺍﻟﻤﻮﻗﻊ ﻳﻤﻨﺤﻚ 25 ﺩﻗﻴﻘﺔ
ﻣﻜﺎﻟﻤﺎﺕ ﺩﻭﻟﻴﺔ ﺃﻭ ﻣﺤﻠﻴﺔ ﻣﺠﺎﻧﻴﺔ
ﻛﻞ ﺷﻬﺮ.

للدخول للموقع اضغط هنا !!!!!
‎ ‎لابد من معرفة هذه الخطوات أولا: ‏ ﻧﺒﺪﺃ ﺑﺸﺮﺡ ﺧﻄﻮﺍﺕ ﺇﻧﺸﺎﺀ ﺣﺴﺎﺏ
ﺟﺪﻳﺪ ﻭﻣﻦ ﺛﻢ ﻛﻴﻒ ﺗﺘﻢ ﻋﻤﻠﻴﺔ
ﺍﻹﺗﺼﺎﻝ..
ﺑﺴﻢ ﺍﻟﻠﻪ ﻧﺒﺪﺃ
:

ﺧﻄﻮﺍﺕ ﺇﻧﺸﺎﺀ ﺣﺴﺎﺏ ﺟﺪﻳﺪ
ﻭﺗﻔﻌﻴﻠﻪ:

)1( ﺑﻌﺪ ﺍﻟﺪﺧﻮﻝ ﻋﻠﻰ ﺍﻟﻤﻮﻗﻊ
ﺍﻟﻤﺸﺎﺭ ﺇﻟﻰ ﺭﺍﺑﻄﻪ ﺳﺎﺑﻘﺎ ﺍﻧﻘﺮ
ﻋﻠﻰ ﺇﻧﺸﺎﺀ ﺣﺴﺎﺏ ﺟﺪﻳﺪsing up
free

(2)ﺳﺘﻈﻬﺮ ﻟﻚ ﻧﺎﻓﺬﺓ ﺗﺴﺠﻴﻞ
ﺍﻟﺒﻴﺎﻧﺎﺕ ﺃﻛﺘﺐ ﺃﺳﻤﻚ ﻓﻲ ﺍﻟﻤﺮﺑﻊ
ﺍﻷﻭﻝ ﻳﺘﺒﻌﻪ ﻓﻲ ﺍﻟﻤﺮﺑﻊ ﺍﻟﺜﺎﻧﻲ
ﺍﻷﺳﻢ ﺍﻷﺧﻴﺮ ﻟﻌﺎﺋﻠﺘﻚ )ﺍﻟﻠﻘﺐ..( ﺛﻢ
ﺃﻛﺘﺐ ﺃﺳﻤﻚ ﺍﻹﺧﺘﻴﺎﺭﻱ ﻟﻠﺪﺧﻮﻝ
ﺇﻟﻰ ﻫﺬﺍ ﺍﻟﻤﻮﻗﻊ(Create Screen
Name)ﻳﺘﺒﻌﻪ ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ ﺍﻟﺘﻲ
ﺗﻨﺎﺳﺒﻚ(Create Password)
ﺑﻌﺪﻫﺎ )ﻋﻠﻴﻚ ﺣﻔﻆ ﺇﺳﻤﻚ ﻓﻲ
ﺍﻟﻤﻮﻗﻊ ﻭﻛﻠﻤﺔ ﺍﻟﺴﺮ ﻓﻲ ﺫﺍﻛﺮﺗﻚ
ﺣﺘﻰ ﺗﺴﺘﻄﻴﻊ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ
ﺑﻬﻤﺎ..( ﻓﻲ ﺍﻟﻤﺮﺑﻊ ﺍﻟﺬﻱ ﻳﻠﻴﻪ ﺃﻛﺘﺐ
ﺇﻳﻤﻴﻠﻚ ﻭﺿﺮﻭﺭﻱ ﺃﻥ ﻳﻜﻮﻥ
ﺣﻘﻴﻘﻲ.. ﻭﻣﻦ ﻗﺎﺋﻤﺔ ﺍﻟﻌﻤﺮ ﺍﺧﺘﺮ
ﻋﻤﺮﻙ.. ﺛﻢ ﻭﺍﻓﻖ ﻋﻠﻰ ﺫﻟﻚ ﺑﺎﻟﻨﻘﺮ
ﻋﻠﻰ ﺍﻷﻳﻘﻮﻧهSign Up.

(3)ﻓﻲ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺃﻧﻘﺮ ﻋﻠﻰ
ﺭﺍﺑﻂ( Skip for now )ﻓﻲ ﺁﺧﺮ
ﺍﻟﺼﻔﺤﺔ. ﻷﻧﻚ ﻟﻦ ﺗﺤﺘﺎﺝ ﻟﻬﺬﻩ
ﺍﻟﺼﻔﺤﺔ.

)4(ﺑﻌﺪ ﺫﻟﻚ ﺳﺘﻈﻬﺮ ﺍﻟﺼﻔﺤﺔ
ﺍﻟﺨﺎﺻﺔ ﺑﻚ.. ﻭﺃﻧﺘﻘﻞ ﺇﻟﻰ ﺍﻟﻠﻮﺣﺔ
Home .

(5)ﻓﻲ ﺍﻟﻠﻮﺣﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻗﻢ
ﺑﺈﻟﻐﺎﺀ ﻣﺮﺑﻊ ﺍﻹﺧﺘﻴﺎﺭ ﺍﻟﺨﺎﺹ
ﺑﺎﻟﻤﻮﺍﻓﻘﺔ ﻋﻠﻰ ﺇﺳﺘﻘﺒﺎﻝ
ﺍﻟﻤﻜﺎﻟﻤﺎﺕ ﻣﻦ ﺍﺷﺨﺎﺹ ﻣﻌﻴﻨﻴﻦ.


)6(ﻗﻢ ﺑﺈﺧﺘﻴﺎﺭ ﻧﻮﻉ ﺍﻟﻤﻜﺎﻟﻤﺎﺕ
ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﻟﻲ ﻋﻨﺪﻫﺎ
ﺳﻴﻜﻮﻥ ﺇﺳﺘﻘﺒﺎﻝ ﺍﻟﻤﻜﺎﻟﻤﺎﺕ ﻣﻦ
ﺧﻼﻝ ﻫﺎﺗﻔﻚ ﺍﻟﺸﺨﺼﻲ.

)7(ﺑﻌﺪﻫﺎ ﺳﺘﻈﻬﺮ ﺍﻟﺼﻔﺤﺔ
ﺍﻟﺨﺎﺻﺔ ﺑﺈﺩﺧﺎﻝ ﺭﻗﻢ ﻫﺎﺗﻔﻚ ﻭﻣﻨﻬﺎ
ﺳﺘﺨﺘﺎﺭ ﺍﻟﺪﻭﻟﺔ(Country )ﺛﻢ
ﺍﺩﺧﻞ ﺭﻗﻢ ﺍﻟﻬﺎﺗﻒ ﻣﻊ ﻣﻔﺘﺎﺡ
ﺍﻟﻤﺪﻳﻨﺔ ﺃﻭ ﺍﻟﺸﺮﻛﺔ ﺍﻟﺘﻲ ﺃﻧﺖ ﻓﻴﻬﺎ ﺃﻭ
ﺗﺘﺒﻌﻬﺎ، ﺛﻢ ﺃﺧﺘﺮ ﻧﻮﻋﻴﺔ ﺍﻟﻬﺎﺗﻒ
) ﻣﺤﻤﻮﻝ، ﻣﻜﺘﺐ، ﻣﻨﺰﻟﻲ..( ﺑﻌﺪ
ﺇﺩﺧﺎﻝ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ ] ﻫﻨﺎ ﺭﻛﺰ
ﺟﻴﺪﺍً [ ﻗﻢ ﺑﺘﻔﻌﻴﻞ ﺍﻟﺤﺴﺎﺏ ﻣﻦ
ﺧﻼﻝ ﺍﻟﻨﻘﺮ ﻋﻠﻰ ﺍﻷﻳﻘﻮﻧﺔ
ﺍﻟﺨﻀﺮﺍﺀ(Call Me to Verify)
ﻭﻋﻨﺪﻫﺎ ﺳﻴﻘﻮﻡ ﺍﻟﻤﻮﻗﻊ ﺑﺎﻹﺗﺼﺎﻝ
ﻋﻠﻰ ﺭﻗﻤﻚ ، ﻭﺳﺘﻈﻬﺮ ﻋﻠﻰ
ﺍﻟﺸﺎﺷﺔ ﻓﻲ ﻣﺮﺑﻊ ﺑﺎﻟﻮﺳﻂ ﺭﻗﻢ
ﺗﻔﻌﻴﻞ ﺣﺴﺎﺑﻚ.. ﻋﻨﺪﻫﺎ ﻣﺎ ﻋﻠﻴﻚ ﺇﻻ
ﺃﻥ ﺗﻨﺘﻈﺮ ﺛﻮﺍﻧﻲ ﺣﺘﻰ ﻳﺄﺗﻴﻚ
ﺍﻹﺗﺼﺎﻝ ، ﻓﺄﺟﺐ ﺍﻟﻤﻜﺎﻟﻤﺔ ﻭﺃﺩﺧﻞ
ﺭﻣﺰ ﺍﻟﺘﻔﻌﻴﻞ ﺍﻟﺬﻱ ﺳﻴﻈﻬﺮ ﻓﻲ
ﺍﻟﺸﺎﺷﺔ ﻭﺍﻟﻤﺘﻜﻮﻥ ﻣﻦ ﺭﻗﻤﻴﻦ..
] ﺣﺎﻭﻝ ﺍﻟﺘﺮﻛﻴﺰ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﺮﻗﻢ
ﻭﺣﻴﻨﻬﺎ ﺳﻴﺘﻢ ﺗﻔﻌﻴﻞ ﺣﺴﺎﺑﻚ ..[
ﻓﻲ ﺍﻟﻨﺎﻓﺬﺓ ﺍﻟﺘﺎﻟﻴﺔ ﺳﺘﻈﻬﺮ
ﺍﻟﻤﻮﺍﻓﻘﺔ ﺃﻧﻘﺮ ﻋﻠﻰ ﺍﻷﻳﻘﻮﻧﺔ
( Continue )ﻟﻺﻧﺘﻘﺎﻝ ﺇﻟﻰ
ﺻﻔﺤﺘﻚ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻋﻨﺪﻫﺎ ﺳﺘﺤﺼﻞ
ﻋﻠﻰ 25 ﺩﻗﻴﻘﺔ ﻣﻜﺎﻟﻤﺔ ﺩﻭﻟﻴﺔ ﻓﻲ
ﺭﺻﻴﺪﻙ..

ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺴﺎﺑﻘﺔ ﻫﻲ ﺧﻄﻮﺍﺕ
ﺇﻋﺪﺍﺩ ﺍﻟﺤﺴﺎﺏ ﻭﺗﻔﻌﻴﻠﻪ ﻭﺍﻵﻥ
ﻧﻨﺘﻘﻞ ﺇﻟﻰ ﻛﻴﻔﻴﺔ ﺍﻹﺗﺼﺎﻝ ﻭﻫﻲ
ﻛﻤﺎ ﻳﻠﻲ:

)1( ﺇﺫﻫﺐ ﻓﻲ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ
ﺇﻟﻰ ﺍﻟﻠﻮﺣﺔ ( CUSTOMIZE) ـ.

)2( ﻭﺳﺘﻈﻬﺮ ﻓﻲ ﻫﺬﻩ ﺍﻟﻠﻮﺣﺔ
ﺑﺮﻧﺎﻣﺞ ﺍﻹﺗﺼﺎﻝ ﻓﻲ ﺍﻟﺠﺎﻧﺐ
ﺍﻷﻳﺴﺮ .. ﻭﻣﺎ ﻋﻠﻴﻚ ﺣﻴﻨﻬﺎ ﺇﻻ ﺍﻟﻨﻘﺮ
ﻋﻠﻰ ﺍﻷﻳﻘﻮﻧﺔ ( Call me free! ).

(3) ﺳﺘﻈﻬﺮ ﻋﻠﻰ ﻧﻔﺲ ﺍﻟﻨﺎﻓﺬﺓ
ﺗﺤﺪﻳﺪ ﺍﻟﺪﻭﻟﺔ ﺍﻟﺘﻲ ﺳﺘﺘﺼﻞ ﺑﻬﺎ
ﻭﻋﻨﺪﻫﺎ ﺗﺨﺘﺎﺭ ﺍﻟﺪﻭﻟﺔ ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ
ﺍﻟﻤﻨﺴﺪﻟﺔ ، ﻭﻣﻦ ﺛﻢ ﺗﻘﻮﻡ ﺑﺈﺩﺧﺎﻝ
ﺭﻗﻢ ﺍﻟﻬﺎﺗﻒ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺍﻹﺗﺼﺎﻝ ﺑﻪ
ﺑﺪﻭﻥ ﺭﻣﺰ )ﻣﻔﺘﺎﺡ( ﺍﻟﺪﻭﻟﺔ – ﻷﻧﻪ
ﻣﻔﺘﺎﺡ ﺍﻟﺪﻭﻟﺔ ﺳﻴﺰﻭﺩ ﻋﻨﺪ ﺇﺧﺘﻴﺎﺭ
ﺍﻟﺪﻭﻟﺔ .- ﺑﻌﺪ ﺫﻟﻚ ﺃﻧﻘﺮ ﻋﻠﻰ
ﺍﻷﻳﻘﻮﻧﺔ ( Call me! ). ﻣﺎ ﺍﻟﺬﻱ
ﺳﻴﺤﺪﺙ ﺍﻵﻥ.

)4( ﻣﺎ ﺳﻴﺤﺪﺙ ﺍﻧﻪ ﺳﻴﺘﻢ ﺍﻻﺗﺼﺎﻝ
ﺃﻭﻻ ﺑﺼﺪﻳﻘﻚ ﺃﻭ ﺍﻟﻄﺮﻑ ﺍﻵﺧﺮ
ﻭﺳﺘﻈﻬﺮ ﻓﻲ ﺍﻟﺸﺎﺷﺔ ﺇﻥ ﺍﻹﺗﺼﺎﻝ
ﺟﺎﺭﻱ.. ﻭﺣﻴﻨﻤﺎ ﻳﺠﻴﺐ ﺻﺪﻳﻘﻚ
ﻣﺒﺎﺷﺮﺓ )ﻋﻨﺪﻣﺎ ﻳﻠﺘﻘﻂ ﺍﻟﻤﻜﺎﻟﻤﺔ (
ﺳﻮﻑ ﻳﺮﻥ ﻫﺎﺗﻔﻚ ﻓﻮﺭﺍ ﻋﻨﺪﻫﺎ
ﺃﺟﺐ ﺍﻟﻤﻜﺎﻟﻤﺔ ﻣﻦ ﻫﺎﺗﻔﻚ
ﻭﺗﻮﺍﺻﻞ ﻣﺠﺎﻧﺎ ﻣﻊ ﺯﻣﻴﻠﻚ ﻟﻤﺪﺓ
ﺛﻼﺛﺔ ﺩﻗﺎﺋﻖ.. ﻭﻫﻜﺬﺍ. ﻭﻛﻠﻤﺎ ﺍﺭﺩﺕ
ﺍﻥ ﺗﺘﺼﻞ ﺑﻨﻔﺲ ﺍﻟﺮﻗﻢ ﻣﺎ ﻋﻠﻴﻚ ﺇﻻ
ﺍﻥ ﺗﺰﻭﺩ ﺭﻗﻢ ﻋﺸﻮﺍﺋﻲ ﺑﻌﺪ ﺍﻟﺮﻗﻢ
ﺍﻟﺬﻱ ﺳﺘﺘﺼﻞ ﺑﻪ..
ﻭﻋﻨﺪﻣﺎ ﺗﺮﻳﺪ ﺗﺴﺠﻞ ﺩﺧﻮﻝ ﻓﻲ
ﺍﻟﻤﺮﺓ ﺍﻟﻘﺎﺩﻣﺔ ﻓﺄﻓﺘﺢ ﺍﻟﻤﻮﻗﻊ
ﻭﺃﻧﻘﺮ ﻋﻠﻰ Login ﻓﻲ ﺍﻟﺮﻛﻦ
ﺍﻟﻌﻠﻮﻱ ﺍﻷﻳﻤﻦ ﻣﻦ ﺍﻟﺼﻔﺤﺔ ﻟﺘﻔﺘﺢ
ﻟﻚ ﺻﻔﺤﺔ ﺗﺴﺠﻴﻞ ﺍﻟﺪﺧﻮﻝ ﻭﻛﻤﺎ
ﻫﻮ ﻣﻌﺘﺎﺩ ﻓﻲ ﺍﻟﺒﺮﻳﺪ ﺍﻹﻟﻜﺘﺮﻭﻧﻲ
ﻟﻜﻨﻚ ﻫﻨﺎ ﺳﺘﺪﺧﻞ ﺃﺳﻤﻚ ﻭﻛﻠﻤﺔ
ﺍﻟﻤﺮﻭﺭ ﺍﻟﺘﻲ ﺍﺧﺘﺮﺗﻬﺎ ﻟﻬﺬﺍ ﺍﻟﻤﻮﻗﻊ..
ﻧﺘﻤﻨﻰ ﺍﻥ ﻧﻜﻮﻥ ﻗﺪ ﻭﻓﻘﻨﺎ ﺑﺎﻟﻄﺮﺡ .

مع تمنياتي بالتوفيق :طه عبدالوهاب
‏ ‏ شكر خاص ل أ:تامر ابراهيم

------------------------------------
رجوع>
--------
<body> put your tag <xml> </body> </html><img alt="J" src="http://taha.hexat.com/images/_2.jpg"/><br /></div> <style type="text/css"> #xt_auth_container { position: static; display: inline; display: inline-block; text-align: right; margin: 3px 0; padding: 0; width: 100%; height: auto; border: none; } .xt_auth_view { position: static; display: inline; display: inline-block; text-align: right; margin: 0; padding: 0; width: auto; height auto; border: none; } .xt_auth_action { text-align: left; position: static; display: inline; zoom: 1; display: inline-block; vertical-align: top; margin: 0 5px 0 0; padding: 0 5px; height: 20px; width: auto; border: none; -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; background-color: #2e2e2e; background-color: rgba(0,0,0,0.4); !background-color: #2e2e2e; font: 600 12px/20px "Helvetica Neue","HelveticaNeue",Helvetica,Arial,sans-serif; text-decoration: none; -webkit-text-shadow: 1px 1px 0 rgba(0,0,0,0.08); -moz-text-shadow: 1px 1px 0 rgba(0,0,0,0.08); -o-text-shadow: 1px 1px 0 rgba(0,0,0,0.08); text-shadow: 1px 1px 0 rgba(0,0,0,0.08); color: #fff; -webkit-user-select: none; } .xt_auth_action > * { vertical-align: top; } .xt_auth_action:hover { background-color: #1f1f1f; background-color: rgba(0,0,0,0.6); } .xt_auth_action:link, .xt_auth_action:visited, .xt_auth_action:active, .xt_auth_action:hover { text-decoration: none; color: #fff; } .xt_auth_icon, .xt_auth_avatar { position: static; display: inline; display: inline-block; width: 13px; height: 13px; margin: 3px 1px 0 0; padding: 0; vertical-align: top; border: 0; } .xt_auth_icon { background-image: url(http://xtgem.com/images/authbar/auth_sprite_v2.png); margin-right: 0; } .xt_auth_icon_enchanted .xt_auth_icon { background-size: 103px; /* margin: 4px 2px 0 0; */ } /* join & subscribe */ .xt_auth_join .xt_auth_icon, .xt_auth_subscribe .xt_auth_icon { background-position: -92px 13px; } /* inbox */ .xt_auth_inbox .xt_auth_icon { background-position: -78px 13px; } /* rate */ .xt_auth_rate .xt_auth_icon { background-position: 0 14px; } /* unrate */ .xt_auth_unrate .xt_auth_icon { background-position: -13px 14px; } /* star */ .xt_auth_star .xt_auth_icon { background-position: -26px 13px; } /* unstar */ .xt_auth_unstar .xt_auth_icon { background-position: -39px 13px; } /* repost */ .xt_auth_repost .xt_auth_icon { background-position: -52px 12px; margin-top: 4px; } /* reposted */ .xt_auth_reposted .xt_auth_icon { background-position: -65px 12px; margin-top: 4px; } /* join & subscribe */ .xt_auth_icon_enchanted .xt_auth_join .xt_auth_icon, .xt_auth_icon_enchanted .xt_auth_subscribe .xt_auth_icon { background-position: 11px 0.5px; width: 12px; } /* inbox */ .xt_auth_icon_enchanted .xt_auth_inbox .xt_auth_icon { background-position: 25px 1px; } /* rate */ .xt_auth_icon_enchanted .xt_auth_rate .xt_auth_icon { background-position: 0 0; } /* unrate */ .xt_auth_icon_enchanted .xt_auth_unrate .xt_auth_icon { background-position: -13px 0; } /* star */ .xt_auth_icon_enchanted .xt_auth_star .xt_auth_icon { background-position: 77px 0; } /* unstar */ .xt_auth_icon_enchanted .xt_auth_unstar .xt_auth_icon { background-position: 64px 0; } /* repost */ .xt_auth_icon_enchanted .xt_auth_repost .xt_auth_icon { background-position: 51px 1px; margin: 3px 0 0 0; } /* reposted */ .xt_auth_icon_enchanted .xt_auth_reposted .xt_auth_icon { background-position: 39px 1px; margin: 3px 0 0 0; } /* hidding */ .xt_auth_unstar, .xt_auth_unsubscribe, .xt_auth_unrate { display: none; } .xt_auth_action_star_active .xt_auth_unstar, .xt_auth_action_rate_active .xt_auth_unrate, .xt_auth_action_subscribe_active .xt_auth_unsubscribe { display: inline-block; } .xt_auth_action_star_active .xt_auth_star, .xt_auth_action_rate_active .xt_auth_rate, .xt_auth_action_subscribe_active .xt_auth_subscribe { display: none; } #xt_auth_container { position: fixed; } html { padding-top: 20px; } #xt_auth_container { top: 0; left: 0; } #xt_auth_container, .xt_auth_view, .xt_auth_icon, .xt_auth_avatar { max-height: none !important; max-width: none !important; min-width: none !important; min-width: none !important; opacity: 1 !important; text-indent: 0 !important; visibility:visible !important; } </style><div id='xt_auth_container'><div class='xt_auth_view xt_auth_not_logged'><a href='https://xtgem.com/auth/login?redir=VjFZNWJIRk5RMEpHVkZWV1JrdHpkbEpVUzNOSU1FTkRVREJQV2toVlVWWlhTM053&s=VjFkVmJuVkpWVXBHVldWTlIwb3hWMUpLVVVJPQ%3D%3D&is_a=0&is_f=0&via=New+authbar' target='_parent' class='xt_auth_action xt_auth_login'>Log in</a></div></div> <script type="text/javascript"> (function () { var doc = document; var body = doc.body; var xhr_done_auth = true; doc.addEventListener ? window.addEventListener( 'load', init, false ) : window.attachEvent( 'onload', init ); function init () { doc = document; body = doc.body; var el_auth = doc.getElementById( 'xt_auth_container' ); doc.addEventListener ? el_auth.addEventListener( 'click', hook_xhr_action, false ) : el_auth.attachEvent( 'onclick', hook_xhr_action ); if ( 'backgroundSize' in doc.body.style ) { if ( window.devicePixelRatio && window.devicePixelRatio > 1 ) { el_auth.className += ' xt_auth_icon_enchanted'; } } } // bind xhr links function hook_xhr_action ( e ) { var e = e || window.event; var target = e.target || e.srcElement; target = target.className == 'xt_auth_icon' ? target.parentNode : target; if ( target.getAttribute( 'data-xhr' ) ) { var url = target.href; url = url + (url.indexOf( '?' ) == -1 ? '?via_ajax=1' : '&via_ajax=1'); load_data({ url: url, xhr_done: xhr_done_auth, callback: handle_xhr_response }); (e.preventDefault) ? e.preventDefault() : e.returnValue = false; return false; } } function handle_xhr_response ( xhr ) { function handle_error ( xhr ) { window.location.href = window.location.href; } function handle_success ( xhr ) { var wrapper = document.getElementById( 'xt_auth_container' ); var tmp_class = wrapper.className; var current_action = xhr.response.split( ';' )[1]; var actions = { bookmark: 'xt_auth_action_star_active', vote: 'xt_auth_action_rate_active', subscribe: 'xt_auth_action_subscribe_active' }; for ( key in actions ) { if ( !actions.hasOwnProperty( key ) ) continue; if ( current_action.indexOf( key ) == -1 ) continue; wrapper.className = current_action.indexOf( 'un' ) == -1 ? tmp_class + ' ' + actions[key] : tmp_class.replace( (' ' + actions[key]), '' ); } } xhr.response = xhr.response ? xhr.response : xhr.responseText; (xhr.status != 200 || xhr.response.indexOf( 'ERR;') != -1 ) ? handle_error(xhr) : handle_success(xhr); } //load_data( { url: url, method: method, data: data, async: async, xhr_done: xhr_done, callback: callback }); function load_data( settings ) { var async = settings.async ? !!settings.async : true, url = settings.url ? settings.url.toString() : false, method = settings.method ? settings.method.toUpperCase() : 'GET', callback = settings.callback ? settings.callback : false, data = settings.data ? settings.data.toString() : '', xhr_done = settings.xhr_done ? settings.xhr_done : null, xhr; // xhr in progress or url not provided -> exit if ( !( (xhr_done == true || xhr_done == null) && url ) ) return; if ( typeof XMLHttpRequest !== 'undefined' ) { xhr = new XMLHttpRequest(); } else { try { xhr = new XMLHttpRequest("MSXML2.XmlHttp.5.0") || new XMLHttpRequest("MSXML2.XmlHttp.4.0") || new XMLHttpRequest("MSXML2.XmlHttp.3.0") || new XMLHttpRequest("MSXML2.XmlHttp.2.0") || new XMLHttpRequest("Microsoft.XmlHttp"); } catch ( e ) {} } // if xhr object does not supported or url not given, exit xhr.onreadystatechange = function () { if ( xhr.readyState != 4 ) return; if ( xhr_done != null ) xhr_done = true; callback ? callback( xhr ) : null; } xhr.open( method, url, async ); if ( method === 'POST' ) { xhr.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" ); xhr.send( data ); } else { xhr.send( null ); } if ( xhr_done != null ) xhr_done = false; }; })(); </script></body></html>