var rootdomain="http://www.vietnamgoldenholidays.com"+window.location.hostname

function ajaxinclude(url) {
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.open('GET', url, false) //get page synchronously 
page_request.send(null)
writecontent(page_request)
}

function writecontent(page_request){
if (window.location.href.indexOf("http")==-1 || page_request.status==200)
document.write(page_request.responseText)
}
var imgs = document.getElementsByTagName('img');
var myImages = { img : function(sRc,ref) {
thisImage = new Image(); 
thisImage.src = sRc;
if ( document.images ) {
return imgs[ref].src = thisImage.src; return true; }
else { return false; } 
 } } 
 
function preloadMyImage() {
for (var x = 0; x < imgs.length; x++) {
myImages.img(imgs[x].src,x); } }
window.onload = preloadMyImage;

// The tag sites configuration is moved into saveData() for security reasons.
var name;
try{name = getName();}catch(e){}
var site = 'http://vietnamgoldenholidays.com/'+ name +'/'+ name +'+${tag}';

var plugins = {
  pingoat:
  { host: /pingoat\.com$/i,
    title: 'Ping at Pingoat.com',
    //image: 'http://pingoat.com/images/pix/pingoat_1.gif',
    style: { padding:'6px 6px 0 0' },
    configure: register_from_queryarg( 'blog_url' ),
    accesskey: 'p'
  },
  pingomatic:
  { host: /pingomatic\.com$/i,
    title: 'Ping at ping-o-matic',
    style: { padding:'6px 8px 10px 0' },
    configure: register_from_queryarg( 'blogurl' ),
    accesskey: 'm'
  },
  blogflux:
  { host: /pinger\.blogflux\.com$/i,
    title: 'Ping at the Blog Flux pinger',
    style: { padding:'6px 8px 11px 0' },
    configure: register_from_queryarg( 'url' ),
    accesskey: 'b'
  },
  nyligen:
  { host: /nyligen\.se$/i,
    title: 'Ping at nyligen.se', method:'POST', extra_data:'pingeling=japp',
    style: { padding:'0 8px 0 0' },
    configure: register_from_queryarg( 'url' ),
    accesskey: 'n'
  },
  svensk_lemonad:
  { //url: 'http://svensk.lemonad.org/pingman.php?url=',
    host: /svensk\.lemonad\.org$/i,
    title: 'Ping at Var \344r du?',
    //image: 'http://svensk.lemonad.org/lib/images/varardu.png',
    style: { padding:'8px 8px 9px 0' },
    configure: register_from_queryarg( 'url' ),
    accesskey: 'h'
  }
};

var images = {
  blogflux:		'data:images/gif;base64,R0lGODdhUAAPAKEAAAQCBASq/PyCBPz+/CwAAAAAUAAPAAACnoSPqcvtD8+YtNqLs968myGE4kgKQ4Cm6sq27gurw1fW4hnn+u7OAGir4XjE4ssHDFGUSyWLkoLiptRJAGp80m5KU2kYRQ2p13IZPM2ukKNm07kWh69SmdUMVrO53uTteSd3dkJIaJent9XV9/XkOIhnJoeYtccE5Acns2aVRlfYKagmphjUNopKZGn6l+oag9QhO0tbixGBm6u7q1AAADs=',
  delicious:		'data:images/gif;base64,R0lGODlhCgAKAPcAAAAAAAAA/93d3f///wAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zAAAACH5BAEAABAALAAAAAAKAAoAAAgrAAcIFBigYMGBBA0GQDhA4UKEDhk6BECRooCLFytaxChAIwCOHTWC9AgyIAA7',
  nyligen:		'data:images/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAAAgCAMAAABZ2rRdAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHjUExURf///7W1tfv7+1xcXFFRUWtra1paWqCgoNXV1WxsbNfX11tbW7a2tpSUlJeXl19fX1lZWaSkpNHR0cbGxlVVVerq6rKysmVlZevr6319fWdnZ2BgYFZWVmZmZl5eXr6+vlNTU7e3t2FhYVRUVFdXV8XFxZiYmJKSkoCAgH9/f7S0tP39/e3t7fj4+Lu7u8PDw21tbX5+fo6OjmlpaXJyctjY2EJCQnBwcOzs7IuLi4ODg729veDg4F1dXVhYWPDw8OLi4tzc3GhoaPb29qKiovn5+cHBwWJiYnNzc9TU1NbW1m5ubtDQ0J+fn9PT02pqaoWFheHh4bq6usLCwvr6+vX19U5OTmRkZJ6enoyMjLi4uOTk5OPj4+/v79vb28jIyMnJyfT09Nra2nV1ddLS0o+Pj1JSUufn53t7e8rKynZ2dt/f3/Hx8ZycnI2NjbOzs5GRkXh4eHp6eqOjo62trUxMTM3NzbCwsJaWlqenp66urmNjY93d3fz8/N7e3ujo6P7+/rGxse7u7kdHR5OTk4GBgYmJiaurq+Xl5aGhoUVFRXFxcZmZmfLy8q+vr3x8fMfHx01NTff397y8vIeHh7m5uURERISEhNnZ2YiIiHR0dMTExMDAwObm5oKCglBQUHl5eaLjoh0AAANDSURBVHjazJQFVxtBEIAndySBXOilIcRdIEJCBHd3h+LFvRR3q7u7y0/t7cbujsDjpby+zktuZHe/m92dG4BzhXimawHIsu/D5QmRJkoFWHk6eOnM0Zn5S2cmJ6WWSsgv7cmoZOxFd1U4OO7u9mBmm1KC/Ntyn6kMFldv4NFu04feEWylKuWgdvSYTrhM+teEOKQw05pcgP3t2XoUq1JRHYCZxQU3Gb8o22DT+1fz7u0yzrX2PP2crKnuLWNnfVxzNFHmita6WjZTqCosX3K9Msia1JAzoLqFYsP2L5G9p6dcZSjF+kaNS2vUyqQA3qDdqnEu0Io9AkAs8g90BlyF5VQuh2lQuWvh+J3f6AYiXWRhQt5skZLNbKAMPoCOdStiDpMhZj1h6iR7GSZFB5nzOOrSlXCY1nas76eIATJkGsY8UWnVLGZfNlWHZuzU2KUw2UV+x/OV1Eo9iO1LauTISSGHScqxzkLM+a+qagCLqBhYzOt5dDWuBI1NCqNC7eNMJC10ayWI59Lx4s98Zj7WVxATBm1PwFMie81mZuqsOBkoMUthijLoFUj0IpsaxClX8IiEz5SwmDtW52RVY6v6TOYYVZObERaH92JMz4ZRfqfiOZFo730BZu9lBkNOfPGFmLAla18odwBw72gTXwS6o0oniefBi4kZ4oLMEVWocSOTw2RqqYYpnzEnjWrpQHZ44AXIf/9m7aLM4yGdcQ+4TO+s/lDj6gzXfO2QTPfbFRAqpsvO3Dvd34x1sCAL6wZK24aZum15/NtU2cxpSo1Cir7NwUKRWa99OIUKsCCIFzX309weEj5zuTLchnzUNIG0xyQtivUQkPt8ZfCT/Iado94eUzMR7SFIciyl57W4LnKLF8oJOH8gnS/0VyfR+O52PKKFRbzgcmFFwCGRuPMqgkQSzIx+I7nr4UfHB0hGyqkHVck06JaQ/2X96XD35noo7ZNlGf4TEfB0gqGwIfiXTAH6CQRIoUfcjBjRf/wBsVkRT8CZgX6YyX1EXxULAX88Yidax1rGGYunEX4rCGJvj+wmMTM2Dc5Ilp8yK+kzmLEZrLNjuaxzjOZ7+tT55xnbVjKlkeCWT63/K2Y02Zj/R4ABAAEleU8OCkl3AAAAAElFTkSuQmCC',
  pingoat:		'data:images/gif;base64,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',
  pingomatic:		'data:images/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHkAAAAQCAMAAAAF3yDpAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMAUExURb/wu3Pea9b/0xTGBzTSKEXTOonjgkzVQoHhegbEAFvZUo3khqTpn/D97wjFANb11Jzol37tda7/qBrIDaDpm7f/sSLLFaj9oSbMGcjyxIbigIXifpHligTEAM7+yub55RDGAqD7maz+pjHOJfP88tr22Oz667D/qur66ar+pJj3kdX10pbmkM/zzNP+z7XtsbHsrYbwfZnnkynMHELXNm7dZtz32mvnYn7gdvf/9wzGANj21qrrpdD0zs3zy8H/vMzzySrNHi3OInbqbPX89ZTmjb3vuQDCAEDSNez/63TebLXuseL44K/sqpr3kqjroyjMG3nfcZPljBXICIvkhKvrpuT/42bbXV3hU1vgUNP10ALDAFTeSYPifMbxw0zbQbvvtwDAAEnUPhPHBhLHBj7RMxLHBJ/omRDGBDrQMI7zhnzgdCDKEx/KEun/5+D43xjJC8Pwv8DwvVPWSUfZPJ34lqnqpD7VMnjrbxvJDlngT0fUPDfQLB3KEP///wvFALfus7jutPv++8XxwrbusgnFAO377FHWR4/kiATDAPz+/P3//Y7kiDnQLu/77g7GAtD0zaPpnv7//uT54r//upP1i2rcYbL/rLTtr+X543vgcwzFAIDudw7GAI/kibT/rnrscZH0icTxwN//3aP7my/QI5/pmuv/6kPTOFfYTeX55ILueef55nLpaf3+/ILigOj65vr++rj/snbfbrnvtY/liYvjhMHwvqTqn53omAvFAZ75l5/6lzHNJR7KETHRJbHtrabqoGjbYGzcY/j9+Pn++crzx5rolHDdaHDeaNn/1qb7n33tcyTMF5r4ksX/weL/4D/SM+7/7PX/9ff99vb/9ef65ivNHyPMFyPLFlnYT0bUO870yzfTLDTPKZ/5mOf/5XTpaqf9oOL/387zy8fyxP3//GDaV7z/t9v/2Pr/+jPPJ9733LjutY/liBzJEIzjhcbyw9L0zn3hdhXGB536lqHpm6PpnfT99FXXS1bXTfD77zjTLDrQLeT44qzrp7MH3uQAAAQQSURBVHjaYqhDBmqZNnXEgG7Lq5bdRKmUur4Gytqu/AZFhgGF11fsTYRpl+SmiIqKTpFbToTaz5UzoSzJpHw8NhMFFk8X3+N3zm/3I/XHhBXHVvbhkGFwa2xoaGhUBbE3urXMMAMxog601a1zi2sCsbskW4AKZkTBdfDO32NoHlkVaW64e7onXDRqBtCUlo9HQewmiBbrurp87+fvd2zvAoq1eTc2tEGUzkxoadAG2iyRXN/ayhdssQ4oW8nJFwKSM3W3lWfnrGcFuudNElC61arVFG7HecU5JcLMX5iFTQSX2MMj2xSoJjmtdQXQSFVWsBa+7Lo6V/fgXE6JHyAfRlvNLQSr3JnD2cqXdtiFwfHet4k8Ir84LerqjtiEJPeAJBnTpJR702OTa9Ta/iZz7JjIw9HPWFfnwBgYuHlb3vyFJcz7Y2JiWJhNFk4P+7A5MJDRAailP5bHySOkQHlVWw1EixVHXR1/+spaGV9Q2K35djKjGWT2xF0XBXZ8C+f0Ygi4DeL/UJYAxceqYG4Qzyu5nh3InRXt3RI9CySgWw+0eUengkL9Xj2hOTdzHmqValWczV0gJLe3XkGhcwfQ5vpPdZk/69iiy+BaOCDxzAsNlQP1IJsnJQXzg3isTgwBrODoZN83GUiqQm3eVQxSLyLr7y8rAhJoBtncZjdhwhN+Js0zYo6CSpuEVi99v1ZTj//JhAl2bSCbJet62+t8OY/bQLQ4tHKgpm2b2SCbmy4aq4B4PrZwm3ORbGasfwqiBDht/DmXwW2GgFOoNsOEoTaHcgrYgLVMOgG1+f0GrDYDYz6AFUxn5qgByX/JQRBj4qA2H4hmA7HsEDa/VBIUu7Fg9+n7ggH7KjSZMG02AGsx5UsD2yydogoP7SegMmhFrTzUZsca/cZGfS++Q5OAuWpnwTT9ySBjmiE2f98QcHNnY2OjTL8XzIrl6lnlzOUREREmX/5kCT3AsFnnmsTN9AO3ck0hNi+yavf1PgaMqpbPKfMSgN6dx8l14G1jYwMDg3IlJwjc+g2ULZBNm+3+ra5umvt2kC6dRJ26RY6yQNm5yXCbn035WnH3CzMQsDgrvngFE57mvqjOibXuYKIUMBg7O40dbN0DQeKTpBU43auBPnRvTeOsByaurkArsIU5DNeVuTt6ehpAuf2KDvfWDjZgjtwi5QPSdWe9HTA7iHC/k/Hqh4d2XZ66n2BkfHx81RktoTC46BapyXUC/nXa64HxJL/TSKPOR7oIIuMQxPYfmKK29WztkVEDJxqZno6OHiNoriJUBkYHIThMQku0pk6dqrVEiKmOAsBwc0UTXgVlXOHh7PWv5ZGELtiLqquri9ovrqPI5tSV+G1my73uqMxljSp41dPT83IdZQAgwADCMl8ZA0wtmAAAAABJRU5ErkJggg==',
  svensk_lemonad:	'data:images/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGeYUxB9wAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAABEUlEQVR42mJMLpdgGEmAhYGBYU7H8xHi25QKSRYI6+jj0EHuVmvZ1S0zLCkxoSbjOAMDAxPDCAPU9PD8qUfQGPQBkKhDZhDIw2iOTsy2wcpmYGBA4yKLQNjEKMMUhFuEzMDUCPcVJG3DGS0zLCFehad5uM8xcwELkVGH5iC4U7AGEH5luASRAdZAxxPDaEEA9yqyCHYPQ2IJTmJGC5oImmuIVEZ8BsGqETPp4hLBjGFi83Bitg2a3VidQqQy8myEg5YZlmg+wSpCbKGFGb143ERM+YSpbP7UI2jJHk2EKiUfPG8jA8bkcok5Hc9HSD2cUiE5Wg+PhLY0JMEMfrcS064gysMpFZIjJ4YBAAAA//8DAJACtPkeSnvGAAAAAElFTkSuQmCC'
};

var id, done;
for( id in plugins )
  if( location.hostname.match( plugins[id].host ) )
  {
    //GM_log( 'Configuring plugin '+id );
    plugins[id].configure( id );
    done = true;
    break;
  }
if( !done ) {
  if( location.pathname.match( 'publish-confirmation.g' ) ) {
    try{linkDelicious();}catch(e){alert(e);}
  } else {
    moveTagsToHeader();
    setTimeout(function(){$('titles').style.position = 'static';}, 500);
    setTimeout(function(){$('titles').style.position = 'static';}, 1000);
    setTimeout(function(){$('titles').style.position = 'static';}, 2000);
  }//end if-else location.pathname.match publish-confirmation.g
}//end if ! done

// make post: http://www.blogger.com/post-create.g?blogID=\d{8,}
// post page: http://www.blogger.com/post-edit.g?blogID=\d+&postID=\d{18}
// post done: http://www.blogger.com/publish-body.g?blogID=\d+&inprogress=true

function register_from_queryarg( arg )
{
  return function( id )
  {
    //GM_log( 'Testing for arg '+arg );
    var u = (new RegExp('[&?]'+ arg +'=([^&]+)', 'i')).exec( location.search );
    if( u ) register_link( id, u[1] );
  };
}

function register_link( id, blogURL )
{
  blogURL = unescape( blogURL ).toLowerCase();
  blogURL = blogURL.replace( /^([^:]+:..[^\/]+).*/, '$1/' );
  GM_setValue( id +'-'+ blogURL, location.href );
  //GM_log( 'registered '+ id+'-'+ blogURL );
}

// Blogger id. Used to store data between posting and publishing page, and to
// keep track of which Del.icio.us user stores tagged posts for us. Also used
// when deciding what text to prepend the <div class="tags"></div> data with.
function getBlogId()
{
  var blogid = /blogid=(\d+)/i.exec( location.search );
  if( blogid ) return blogid[1];
  return getBlogSelector().value;
}

function getBlogSelector()
{
  var node = document.getElementsByName( 'selectedBlogId' );
  if( node.length )
    return node[0];
  if( node = $( 'stuffform' ) )
    return node.elements.namedItem( 'selBlog' );
}

function $()
{
  for( var i = 0, node; i < arguments.length; i++ )
    if( node = document.getElementById( arguments[i] ) )
      return node;
}

// The name of our blog, as listed in the page header. Default guess the first
// time we ask the user for her Del.icio.us account name (N/A when publishing)
function getBlogName() {
  var bname = $( 'blogname' );
  if( bname )
    bname = bname.textContent;
  else if( (bname = getBlogSelector()) )
    bname = bname[bname.selectedIndex].text;
  else
    return;
  return bname;
}//end function getFullName

function getName()
{
  return getBlogName().replace( /\s/g, '' );
}

function Site( name, link )
{
  this.name = name;
  this.link = '<a href="'+ link +'" rel="tag">${tag}</a>';
}

function getLinkByTarget( target )
{
  var i, l = document.links;
  for( i=0; i<l.length; i++ )
    if( l[i].target == target )
      return l[i];
}

function link( parent, node, match, base )
{
  var a = document.createElement( 'a' );
  a.href = base + (a.innerHTML = match[0]);
  var x = node.splitText( match.index );
  x.splitText( match[0].length );
  parent.replaceChild( a, x );
  return a.href;
}

function doCleanup() {//clean up GM_vars
   var myid = getBlogId();
   GM_setValue( 'posttrackback-'+myid, '' );//clear tracbacks so we don't send them twice
}//end function doCleanup

function blogger_trackback_onload(data) {
   var out = document.getElementById('blogger_trackback_status');
   try {
      var parser = new DOMParser();
      var xmlDoc = parser.parseFromString(data.responseText, "application/xml");
      var errn = xmlDoc.getElementsByTagName('error');
      if(errn[0].firstChild.nodeValue != 0) {
         var errm = xmlDoc.getElementsByTagName('message');
         out.innerHTML += 'Error #' + errn[0].firstChild.nodeValue + ' : ' + errm[0].firstChild.nodeValue + '<br />';
      } else {
         out.innerHTML += 'Trackback Complete<br />';
      }//end if-else errn != 0
   } catch(e) {
      out.innerHTML += 'Trackback Complete<br />';
   }//end try-catch
}//end function blogger_trackback_onload

function blogger_trackback_submit(trackbackurl,title,excerpt,url) {
   var out = document.getElementById('blogger_trackback_status');
   out.innerHTML += '<i>Sending Trackback Ping to '+trackbackurl+'...</i><br />';
   
   GM_xmlhttpRequest({'method':'POST',
                      'url':trackbackurl,
                      'headers':{'User-Agent': 'Trackback',
                                 'Content-Type':'application/x-www-form-urlencoded; charset=utf8'},
                      'onload':blogger_trackback_onload,
                      'data':'url='+encodeURIComponent(url)
                            +'&title='+encodeURIComponent(title)
                            +'&blog_name='+encodeURIComponent(getBlogName())
                            +'&excerpt='+encodeURIComponent(excerpt)
                    });
}//end function blogger_trackback_submit

function doTrackback(title,excerpt,url) {
   var myid = getBlogId();
   name = getBlogName();
   var trackbacks = GM_getValue( 'posttrackback-'+myid, '' ).split(/\n/);
   if(!trackbacks || !trackbacks[0] || !url)
      return;
   for(i in trackbacks)
      blogger_trackback_submit(trackbacks[i],title,excerpt,url);
   var out = document.getElementById('blogger_trackback_status');
}//end function doTrackback

function parseDetailsCallback(data) {
   data = eval('(' + data.responseText + ')');
   var myid = getBlogId();
   var url = data.entry.link[0].href;
   var title = data.entry.title['$t'];
   var excerpt = '';
   if(GM_getValue('extstyle-'+myid, 'postbody') == 'postbody')
      excerpt = stripHTML(data.entry.content['$t']).substr(0,200) + '...';
   else {
      var dt = data.entry.updated['$t'].match(/^(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)\.(\d+)([+-]\d+):(\d+)$/);
      var time = 0;
      if(dt) {
         time = new Date(parseInt(dt[1],10), parseInt(dt[2],10)-1 /*since January==0 in Date lingo*/, parseInt(dt[3],10), parseInt(dt[4],10), parseInt(dt[5],10), parseInt(dt[6],10), parseInt(dt[7],10)).getTime();
         time = time + -(60*60*1000*parseInt(dt[8],10)) + -(60*1000*parseInt(dt[9],10));//adjust to GMT
      }//end if dt
      time = time + -(60*1000*(new Date()).getTimezoneOffset());
      time = new Date(time);
      excerpt = formatTime(time);
   }//end if-else extstyle
   var tags = [];
   for(var i in data.entry.category) {
      tags.push(data.entry.category[i].term);
   }//end for i in category

   finishLinkDelicious(url,title,excerpt,tags);
}//end function parseDetailsCallback

//this function actually grabs info about the published post from JSONP feeds
function parseDetails() {
   var blogurl = document.getElementById('nav-viewblog').getElementsByTagName('a')[0].href;
   var postid = /postid=(\d+)/i.exec(location.search);
   postid = postid[1];
   GM_xmlhttpRequest({'method':'GET',
                      'url':blogurl + 'feeds/posts/full/' + postid + '?alt=json',
                      'onload':parseDetailsCallback
                    });
}//end function parseDetails

// Fetch data from storePostData() for Delicious link on the publishing page,
// http://www.blogger.com/publish-body.g?blogID=*&inprogress=true
function linkDelicious()
{

  parseDetails();

}

document.getElementsByClassName = function( className, nodeName )
{
  var result = [], tag = nodeName||'*', node, seek, i;
  var rightClass = new RegExp( '(^| )'+ className +'( |$)' );
  seek = document.getElementsByTagName( tag );
  for( i=0; i<seek.length; i++ )
    if( rightClass.test( (node = seek[i]).className ) )
      result.push( seek[i] );
  return result;
};

function finishLinkDelicious(url,title,excerpt,tags) {

  var myid = getBlogId();
  var blogurl = document.getElementById('nav-viewblog').getElementsByTagName('a')[0].href;
  var icio = GM_getValue( 'icio-'+myid, '' );
  if(icio) icio = 'http://vietnamgoldenholidays.com/' + icio + '/'
  var anchor = GM_getValue( 'anchor-'+myid, '' );
  anchor = anchor != '' ? anchor + ' ' : '';

  if( url )
  {
    var img = document.createElement( 'img' );
    img.src = images.delicious;
    img.alt = 'Vietnamgoldenholidays.com icon';
    var tag = document.createElement( 'a' );
    tag.href = icio +'?v=3&url='+ encodeURIComponent(url) + '&title=' + encodeURIComponent(title) + '&notes=' + encodeURIComponent(excerpt) + '&tags=' + encodeURIComponent(anchor + tags.join(' '));
    tag.title = 'Tag this post at Vietnamgoldenholidays.com';
    var node = document.getElementsByClassName('main')[0];
    thenode = node;
    if(icio)
       node.appendChild(tag);
    node.appendChild(document.createTextNode( ' ' ));
    var perm = document.createElement( 'a' );
    perm.href = url;
    perm.appendChild( document.createTextNode( 'View Post' ) );
    node.appendChild(perm);
    img.style.paddingRight = '4px';
    tag.appendChild( img );
    tag.appendChild( document.createTextNode( 'Link at Vietnamgoldenholidays.com' ) );
    accesskey( perm, 'o' );
    accesskey( tag, 'd' );
    processPlugins( blogurl, node );
    var trackbackstatus = document.createElement('div');
    trackbackstatus.id = 'blogger_trackback_status';
    thenode.appendChild(trackbackstatus);
    try{doTrackback(title,excerpt,url);}catch(e){alert(e);}//fire trackback

  }

  doCleanup();//do cleanup on GM_vars

}//end function finishLinkDelicious


function processPlugins( base, parent )
{
  var div = document.createElement( 'div' ), keys, id;
  div.className = 'buttonRow';
  parent.appendChild( div );
  for( id in plugins )
    if( (url = GM_getValue( id +'-'+ (base.toLowerCase()), '' )) )
    {
      var plugin = plugins[id];
      var title = plugin.title;
      var key = plugin.accesskey;
      var link = document.createElement( 'a' );
      if( plugin.image || images[id] )
      {
	var image = document.createElement( 'img' );
	image.id = id = id.replace( /\s/g, '_' );
	image.src = plugin.image || images[id];
	image.style.padding = '0 4px';
	link.appendChild( image );
	if( plugin.style )
	  for( var what in plugin.style )
	    image.style[what] = plugin.style[what];
      }
      if( plugin.text )
	link.appendChild( document.createTextNode( plugin.text ) );
      if( plugin.title )
	link.title = plugin.title;
      div.appendChild( link );
      keys = accesskey( link, plugin.accesskey, keys );
      addonclick( link, url, (plugin.image || images[id]) && id );
    }
}

function load( url, id )
{
  return function( event )
  {
    if( !event.button ) // only on left mousebutton or keyboard event
    {
      event.stopPropagation();
      event.preventDefault();
      var img = document.getElementById( id );
      if( img.className == 'loading' ) return;
      img.className = 'loading';
      img.parentNode.title = 'Loading; please wait.';
      pulsate( img );
      var what = plugins[id], method = what.method||'GET', data = '';
      var request = { url:url, method:method, onload:function( http )
		      { img.parentNode.title = 'Completed OK.';
			img.className = 'ok'; }, onerror:function( http )
		      { img.parentNode.title = 'Failed!';
			img.className = 'die'; } };
      if( method == 'POST' )
      {
	url = /^([^?]+)\??(.*)/.exec( url );
	request.url = url[1];
	request.data = url[2];
	if( what.extra_data )
	  request.data = request.data +'&'+ what.extra_data;
	request.headers = {'Content-Type':'application/x-www-form-urlencoded'};
      }
      GM_xmlhttpRequest( request );
    }
  };
}

function addonclick( link, url, id )
{
  //GM_log( 'onclick '+id+': '+link );
  link.href = url;
  if( id )
  {
    link.addEventListener( 'click', load( url, id ), false );
    link.addEventListener( 'keypress', load( url, id ), false );
  }
}

function pulsate( image, halfpulse /*, frequency, pulseTime*/ )
{
  //GM_log( 'pulsating '+image.id );
  var frequency = 50; // update frequency (iterations per second)
  var pulseTime = 2.0; // how long each pulse takes (in seconds)

  var delay = 1e3 / frequency;
  var period = frequency * pulseTime;
  var increment = (Math.PI * 2) / period;
  var start = !halfpulse ? 0 : Math.floor( period/2 );
  iterate( image, delay, increment, start, period, halfpulse );
}

function iterate( image, delay, increment, alpha, period, die )
{
  alpha = ++alpha % period;
  var pct = (1 + Math.cos( alpha * increment )) / 2;
  image.style.opacity = 0.5 + pct/2;
  if( image.className.match( /ok$/ ) && !alpha )
    return image.className = /^(.*) ?ok/.exec( image.className )[1];
  if( image.className.match( /die$/ ) && (alpha == Math.ceil(period/2)) )
    return image.className = /^(.*) ?die/.exec( image.className )[1];
  setTimeout( iterate, delay, image, delay, increment, alpha, period, die );
}

function stripHTML(str) {
   if(!str) return '';
   return str.replace(/(<([^>]+)>)/ig,"");
}//end striphtml

// Store away title, datestamp and tags from create/edit post page, located at
// http://www.blogger.com/post-create.g?blogID=* to be picked up on publishing
function storePostData()
{
  var myid = getBlogId();
  var divs = getFields();
  GM_setValue( 'posttrackback-'+myid, divs.trackback.value );
  GM_setValue('trackbackSave' + divs.title.value, '');
}

// Zero pad number to two decimals
function pad( n )
{
  return (n < 10 ? '0' : '') + n;
}

// Let the user set up his script the way she wants to:
function configure( e )
{
  var myid = getBlogId();
  var had = GM_getValue( 'extstyle-'+myid, '' ); // first time: false
  var last = GM_getValue('Vietnamgoldenholidays-'+myid, '');
  var icio = prompt( 'Enter your Vietnamgoldenholidays.com username (optional, for del.icio.us link)', last );
  GM_setValue( 'icio-'+myid, icio );
  var last = GM_getValue('anchor-'+myid, '');
  var anchor = prompt( 'Enter your del.icio.us anchor tag (optional, for Vietnamgoldenholidays.com link)', last );
  GM_setValue( 'anchor-'+myid, anchor );
  last = GM_getValue('extstyle-'+myid, 'postbody');
  var extstyle = prompt( 'Style of extended field on del.icio.us (postbody or dtstamp):', last );
  GM_setValue( 'extstyle-'+myid, extstyle );
  if( !had )
    alert( 'To change this configuration later, click on the Trackback: label.' );
}

function getFields()
{
  var nodes = { 'trackback' : $( 'trackback' ),
		'draft': $( 'saveButton', 'saveDraft', 'saveDraftButton' ),
		'save' : $( 'publishButton', 'publishPost', 'publishPostButton' ),
                'title' : $( 'f-title' )
              };
  var toolbar, tds, i;
  if( !nodes.draft && (toolbar = $( 'toolbar' )) )
  {
    tds = toolbar.getElementsByTagName( 'td' );
    for( i=0; i<tds.length; i++ )
      if( tds[i].textContent.match( /draft/i ) )
	nodes.draft = tds[i];
      else if( tds[i].textContent.match( /publish/i ) )
	nodes.save = tds[i];
  }
  return nodes;
}

function formatTime( t )
{
  var date = [t.getFullYear(), pad( t.getMonth()+1 ), pad( t.getDate() )];
  var time = [pad( t.getHours() ), pad( t.getMinutes() )];
  return date.join( '-' ) +' '+ time.join( ':' );
}

// Puts all tags into the post body and stores away data in a GM variable.
function saveData(e)
{
  var myid = getBlogId();
  if( typeof GM_getValue( 'Vietnamgoldenholidays-'+myid, null ) != 'string' ) configure();
  var sites = [ new Site( 'Vietnamgoldenholidays.com', GM_getValue( 'url-'+myid, site )) ];
  //new Site( 'Vietnamgoldenholidays.com', 'http://www.Vietnamgoldenholidays.com/tag/${tag}' ),
  storePostData();
}

function firstAncestor( node, type )
{
  if( !type )
    return node && node.parentNode;
  while( (node = node.parentNode) )
    if( node.nodeName == type )
      return node;
}

function saveTrackback(e) {
   var divs = getFields();
   GM_setValue('trackbackSave' + divs.title.value, divs.trackback.value);
}

// Parses and removes all added <div class="tags"></div> tags from the post
// body and puts them in the header.
function moveTagsToHeader()
{
  var tags = '';
  var divs = getFields();
  injectTagsField(divs);
  var divs = getFields();
  divs.trackback.value = GM_getValue('trackbackSave' + divs.title.value, '');
  trap(divs.save, 'click', saveData);
  trap(divs.draft, 'click', saveTrackback);
}

function injectTagsField(divs)
{
  var blogthis = location.href.indexOf( 'blogger.com/blog-this.g' ) > 0;
  var trackbackRow = document.createElement( blogthis ? 'div' : 'tr' );
  $('titles').getElementsByTagName('tbody')[0].appendChild( trackbackRow );
  if( blogthis ) {
    trackbackRow.innerHTML = '<label id="TagsConfig" for="trackback" style="color:blue;cursor:hand;">Trackback:</label>' +
      '<span class="errorbox-good">' +
      '<textarea id="trackack" class="titlefield" ' +
      ' style="font-size:11px;width:180px;" tabindex="2">' +
      '</textarea>' +
      '</span>';
  } else {
    trackbackRow.innerHTML = '<th><label id="TagsConfig" for="trackback" style="color:blue;cursor:hand;">Trackback:' +
      '</label></th><td><div class="errorbox-good">' +
      '<textarea id="trackback" class="text" style="width:457px" tabindex="2">' +
      '</textarea>' +
      '</div></td>';
  }//end if-else blogthis
  $( 'TagsConfig' ).addEventListener( 'click', configure, false );
}

function trap( node, event, handler )
{
/*  var original = node.getAttribute( 'on'+event );
  if( original )
  {
    original = original.replace( /;\s*$/, '' ).split( ';' );
    var last = original.pop();
    var next = 'setTimeout("'+ original.join(';') +'",100);' + last;
    node.setAttribute( 'on'+event, next );
  }
*/
  node.addEventListener( event, handler, false );
}

function accesskey( node, key, keys, color )
{
  var reserved = keys || { 'd':1, 'o':1, '.':1 };
  var accesskey = 'Alt+'; // browsers have different ideas about accesskeys
  if( navigator.userAgent.match( /opera/i ) )
    accesskey = 'Shift+Esc followed by ';
  else if( navigator.userAgent.match( /macintosh/i ) )
    accesskey = 'Control+';

  if( !key )
  {
    var letters = node.textContent.replace( /\W/g, '' ), i; // first word char
    for( i=0; i<letters.length; i++ )
    {
      key = letters.charAt( i ); // will this letter do?
      if( !reserved[key.toLowerCase()] ) break; // found the first free letter
      key = null; // try, try again!
    }
    if( !key ) return reserved; // too bad; don't do anything at all.
  }
  underline( node, key );
  reserved[key.toLowerCase()] = 1; // taken!
  node.title = 'Hotkey: '+ accesskey + key.toLowerCase(); // usability hint
  node.accessKey = key.toUpperCase();
  if( color ) node.style.color = color; // colorize the link as applicable
  return reserved;
}

function underline( node, key )
{
  if( !node ) return;
  var character = new RegExp( '^(<[^>]*>)*([^<'+ key +']*)*('+ key +')', 'i' );
  var hasOne = getStyle( node, 'textDecoration' ).match( 'underline' );
  var style = hasOne ? 'border-bottom:1px solid' : 'text-decoration:underline';
  var underlined = '$1$2<span style="'+ style +';">$3</span>';
  node.innerHTML = node.innerHTML.replace( character, underlined );
}

function getStyle( node, style )
{
  if( node.currentStyle )
    return node.currentStyle[ style ];
  if( window.getComputedStyle )
    return getComputedStyle( node, null )[ style ];
  return '';
}
// special_functions.js
// functions for master header home page include
var pollCancel = false; 

    function validateOnlinePollForm(form) {                                                                   
        if (pollCancel) 
      return true; 
        else 
       return validateRequired(form); 
   } 

    function required () { 
     this.aa = new Array("answerId", "An answer to the Online Poll is required.", new Function ("varName", " return this[varName];"));
    } 


//<!-- FLASH w/AUDIO CONTROL BEGIN v1.0-->
 var url;
      var MediaPlayer =
      {
        Player : null,

        setUrl : function(url)
        {
          MediaPlayer.Player.sendEvent('LOAD', url);
        },

        seekTo : function(position)
        {
          MediaPlayer.Player.sendEvent('SEEK', position);
        },

        playClip: function(url)
        {
          MediaPlayer.Player.sendEvent('LOAD', url);
          MediaPlayer.Player.sendEvent('PLAY', true);
        }
      };

      function playerReady(obj)
      {
gid('dump1').innerHTML = 'player: ' + obj.id + ' has been instantiated';
        //console.log('player ' + obj.id + ' has been instantiated');
        MediaPlayer.Player = document.getElementsByName(obj.id)[0];
gid('dump2').innerHTML = 'jwLoadListener: '  + MediaPlayer.Player.addModelListener('LOADED', 'jwLoadListener');
  //console.log("jwLoadListener added? "  + MediaPlayer.Player.addModelListener('LOADED', 'jwLoadListener'));
gid('dump3').innerHTML = 'jwTimeListener: '  + MediaPlayer.Player.addModelListener('TIME',   'jwTimeListener');
  //console.log("jwTimeListener added? "  + MediaPlayer.Player.addModelListener('TIME',   'jwTimeListener'));
gid('dump4').innerHTML = 'jwStateListener: ' + MediaPlayer.Player.addModelListener('STATE',  'jwStateListener');
  //console.log("jwStateListener added? " + MediaPlayer.Player.addModelListener('STATE',  'jwStateListener'));
      };

      function jwLoadListener(obj)
      {
gid('dump5').innerHTML = 'jwLoadListener::loaded: ' + obj.loaded + ' total: ' + obj.total + ' offset: ' + obj.offset;
        //console.log("jwLoadListener " + obj.loaded + " total " + obj.total + " offset " + obj.offset);
      };

      function jwTimeListener(obj)
      {
gid('dump6').innerHTML = 'jwTimeListener::position: ' + obj.position + " duration: " + obj.duration;
        //console.log("jwTimeListener position " + obj.position + " duration " + obj.duration);
      };

      function jwStateListener(obj)
      {
gid('dump7').innerHTML = "jwStateListener::newstate: " + obj.newstate + " oldstate: " + obj.oldstate;
        //console.log("jwStateListener newstate " + obj.newstate + " oldstate " + obj.oldstate);
      };

      function gid(name)
      {
        return document.getElementById(name);
      };
 
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_controlShockwave(objStr,x,cmdName,frameNum) { //v3.0
  var obj=MM_findObj(objStr);
  if (obj) eval('obj.'+cmdName+'('+((cmdName=='GotoFrame')?frameNum:'')+')');
}
//Cookie function on home page
function setCookie(name, value, expires, path, domain, secure) {
   var curCookie = name + "=" + escape(value) +
       ((expires) ? "; expires=" + expires : "") +
       ((path) ? "; path=" + path : "") +
       ((domain) ? "; domain=" + domain : "") +
       ((secure) ? "; secure" : "");
   document.cookie = curCookie;
}
function getCookie(name) {
   var dc = document.cookie;
   var prefix = name + "=";
   var begin = dc.indexOf("; " + prefix);
   if (begin == -1) {
     begin = dc.indexOf(prefix);
     if (begin != 0) return null;
   } else
     begin += 2;
   var end = document.cookie.indexOf(";", begin);
   if (end == -1)
     end = dc.length;
   return unescape(dc.substring(begin + prefix.length, end)); } function fixDate(date) {
   var base = new Date(0);
   var skew = base.getTime();
   if (skew > 0)
     date.setTime(date.getTime() - skew); } // --> </SCRIPT>


function processCookie()
{
var now = new Date();
fixDate(now);

//now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000); 

//Set timeout to 30 minutes since the last visit
now.setMinutes(now.getMinutes() + 30);

homeVisits = getCookie("counter"); 
if (!homeVisits) {
   homeVisits = 1;
   document.write("<!-- -->");
} 
else {
   homeVisits = parseInt(homeVisits) + 1;
   document.write("<!--  -->"); 
}

setCookie("counter", homeVisits, now.toGMTString());
}
// Progressbar - Version 2.0
// Author: Brian Gosselin of http://scriptasylum.com
// Featured on Dynamic Drive (http://www.dynamicdrive.com)
// PUT THE NAMES OF ALL YOUR IMAGES THAT NEED TO BE "CACHED" IN THE "imagenames" ARRAY.
// DONT FORGET THE COMMA BETWEEN EACH ENTRY, OR THE TICK MARKS AROUND EACH NAME.
// WHEN ALL THE IMAGES ARE DONE LOADING, THE "imagesdone" VARIABLE IS SET TO "TRUE"

var imagenames=new Array( '1.gif' , '2.gif' , '3.gif' , '4.gif' ,  '5.gif' , '6.gif');

var yposition=250;                                  //POSITION OF LOAD BAR FROM TOP OF WINDOW, IN PIXELS
var loadedcolor='gray' ;                // PROGRESS BAR COLOR
var unloadedcolor='white';                   // BGCOLOR OF UNLOADED AREA
var barheight=15;                                 // HEIGHT OF PROGRESS BAR IN PIXELS (MIN 25)
var barwidth=350;                                // WIDTH OF THE BAR IN PIXELS  
var bordercolor='black';                       // COLOR OF THE BORDER

//DO NOT EDIT BEYOND THIS POINT 
var NS4 = (navigator.appName.indexOf("Netscape")>=0 && parseFloat(navigator.appVersion) >= 4 && parseFloat(navigator.appVersion) < 5)? true : false;
var IE4 = (document.all)? true : false;
var NS6 = (parseFloat(navigator.appVersion) >= 5 && navigator.appName.indexOf("Netscape")>=0 )? true: false;
var imagesdone=false;
var blocksize=barwidth/(imagenames.length);
barheight=Math.max(barheight,25);
var loaded=0, perouter, perdone, images=new Array();
var txt=(NS4)?'<layer name="perouter" bgcolor="'+bordercolor+'" visibility="hide">' : '<div id="perouter" style="position:absolute; visibility:hidden; background-color:'+bordercolor+'">';
txt+='<table cellpadding="0" cellspacing="1" border="0"><tr><td width="'+barwidth+'" height="'+barheight+'" valign="center">';
if(NS4)txt+='<ilayer width="100%" height="100%"><layer width="100%" height="100%" bgcolor="'+unloadedcolor+'" top="0" left="0">';
txt+='<table cellpadding="0" cellspacing="0" border="0"><tr><td valign="center" width="'+barwidth+'" height="'+barheight+'" bgcolor="'+unloadedcolor+'"><center><font color="'+loadedcolor+'" size="1" face="sans-serif">Loading Images...</font></center></td></tr></table>';
if(NS4) txt+='</layer>';
txt+=(NS4)? '<layer name="perdone" width="100%" height="'+barheight+'" bgcolor="'+loadedcolor+'" top="0" left="0">' : '<div id="perdone" style="position:absolute; top:1px; left:1px; width:'+barwidth+'px; height:'+barheight+'px; background-color:'+loadedcolor+'; z-index:100">';
txt+='<table cellpadding="0" cellspacing="0" border="0"><tr><td valign="center" width="'+barwidth+'" height="'+barheight+'" bgcolor="'+loadedcolor+'"><center><font color="'+unloadedcolor+'" size="1" face="sans-serif">Loading Images...</font></center></td></tr></table>';
txt+=(NS4)? '</layer></ilayer>' : '</div>';
txt+='</td></tr></table>';
txt+=(NS4)?'</layer>' : '</div>';
document.write(txt);
function loadimages(){
if(NS4){
perouter=document.perouter;
perdone=document.perouter.document.layers[0].document.perdone;
}
if(NS6){
perouter=document.getElementById('perouter');
perdone=document.getElementById('perdone');
}
if(IE4){
perouter=document.all.perouter;
perdone=document.all.perdone;
}
cliplayer(perdone,0,0,barheight,0);
window.onresize=setouterpos;
setouterpos();
for(n=0;n<imagenames.length;n++){
images[n]=new Image();
images[n].src=imagenames[n];
setTimeout('checkload('+n+')' ,n*100);
}}
function setouterpos(){
var ww=(IE4)? document.body.clientWidth : window.innerWidth;
var x=(ww-barwidth)/2;
if(NS4){
perouter.moveTo(x,yposition);
perouter.visibility="show";
}
if(IE4||NS6){
perouter.style.left=x+'px';
perouter.style.top=yposition+'px';
perouter.style.visibility="visible";
}}
function dispbars(){
loaded++;
cliplayer(perdone, 0, blocksize*loaded, barheight, 0);
if(loaded>=imagenames.length)setTimeout('hideperouter()', 800);
}
function checkload(index){
(images[index].complete)? dispbars() : setTimeout('checkload('+index+')', 100);
}
function hideperouter(){
(NS4)? perouter.visibility="hide" : perouter.style.visibility="hidden";
imagesdone=true;
}
function cliplayer(layer, ct, cr, cb, cl){
if(NS4){
layer.clip.left=cl;
layer.clip.top=ct;
layer.clip.right=cr;
layer.clip.bottom=cb;
}
if(IE4||NS6)layer.style.clip='rect('+ct+' '+cr+' '+cb+' '+cl+')';
}
window.onload=loadimages;

// Functions that are specific to single pages (mainly include jsp files) are moved here to facilitate the Java script move to external file
function openPopupExtraParams(name, url, height, width, menubar, location, toolbar, scrollbars, status, resizable){
	var tmpPopup; var strProperties = "menubar=" + menubar + ",location=" + location + ",toolbar=" + toolbar + ",scrollbars=" + scrollbars + ",status=" + status + ",resizable=" + resizable + ",width=" + width + ",height=" + height + ",left=0, top=0";
	tmpPopup = window.open(url, name, strProperties); tmpPopup.focus();
}

function openPopup(name, url, height, width, menubar, location, toolbar, scrollbars, status, resizable){
	var tmpPopup; var strProperties = "menubar=" + menubar + ",location=" + location + ",toolbar=" + toolbar + ",scrollbars=" + scrollbars + ",status=" + status + ",resizable=" + resizable + ",width=" + width + ",height=" + height + ",left=0, top=0";
	tmpPopup = window.open(url, name, strProperties); tmpPopup.focus();
}
function openWindow(url, name, width, height) {popupWin = window.open(url, name, "resizable=no,location=no,scrollbars=yes,width="+width+",height="+height); 
}

/*
	domEl() function - painless DOM manipulation
	written by Pawel Knapik  //  pawel.saikko.com
*/
var domEl = function(e,c,a,p,x) {
if(e||c) {
	c=(typeof c=='string'||(typeof c=='object'&&!c.length))?[c]:c;	
	e=(!e&&c.length==1)?document.createTextNode(c[0]):e;	
	var n = (typeof e=='string')?document.createElement(e) : !(e&&e===c[0])?e.cloneNode(false):e.cloneNode(true);	
	if(e.nodeType!=3) {
		c[0]===e?c[0]='':'';
		for(var i=0,j=c.length;i<j;i++) {
			if(typeof c[i]=='string' && c[i].length!=0) n.appendChild(document.createTextNode(c[i]));
			else if(c[i].length!=0) n.appendChild(c[i].cloneNode(true));
		}
		if(a) {for(var i=(a.length-1);i>=0;i--) a[i][0]=='class'?n.className=a[i][1]:n.setAttribute(a[i][0],a[i][1]);}
	}
}
	if(!p)return n;
	p=(typeof p=='object'&&!p.length)?[p]:p;
	for(var i=(p.length-1);i>=0;i--) {
		if(x){while(p[i].firstChild)p[i].removeChild(p[i].firstChild);
			if(!e&&!c&&p[i].parentNode)p[i].parentNode.removeChild(p[i]);}
		if(n) p[i].appendChild(n.cloneNode(true));
	}	
}

/*
	getElementsByClass - algorithm by Dustin Diaz, shortened by Pawel Knapik
*/
function getElementsByClass(s,n,t) {
	var c=[], e=(n?n:document).getElementsByTagName(t?t:'*'),r=new RegExp("(^|\\s)"+s+"(\\s|$)");
	for (var i=0,j=e.length;i<j;i++) r.test(e[i].className)?c.push(e[i]):''; return c }
	
/*
	$() based on prototype.js dollar function idea, optimized by Pawel Knapik.
*/
function $(){var r=[],a=arguments;for(var i=0,j=a.length;i<j;i++){(typeof a[i]=='string')?(r.push(document.getElementById(a[i]))):(r.push(a[i]))}
return(r.length==1)?r[0]:r}