
// Polar Rose Widget
// http://info.polarrose.com/partners
// http://info.polarrose.com/terms/
// http://info.polarrose.com/partners/#Terms
//
// Copyright (c) 2008, Polar Rose
//
// 2008-10-03
// v 0.8.5

if (!window.polarrosewidget) {
(function(){
this.polarrosewidget = {};

var loaded = {
  dom: false,
  page: false,
  polarrose: false,
  all: false,
  add: function(what) {
    if (what) {
      if (what==='dom' && !this.dom && isBrowserOk()) {
        loadPolarRoseScript(getScriptUrl());
      }
      this[what] = true;
      if (this.dom && this.page && this.polarrose && !this.all) {
        this.all = true;
        if (polarrosewidget.run) {
          polarrosewidget.run();
        }
      }
    }
  }
};

var isBrowserOk = function() {
  // from DOJO, http://www.dojotoolkit.org
  var n = navigator;
  var dua = n.userAgent;
  var dav = n.appVersion;
  var tv = parseFloat(dav);
  var isOpera = (dua.indexOf("Opera") >= 0) ? tv : 0;
  var isSafari = 0;
  var idx = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);
  if (idx) {
    isSafari = parseFloat(dav.split("Version/")[1]) || ( ( parseFloat(dav.substr(idx+7)) >= 419.3 ) ? 3 : 2 ) || 2;
  }
  //var isAIR = (dua.indexOf("AdobeAIR") >= 0) ? 1 : 0;
  var isKhtml = (dav.indexOf("Konqueror") >= 0 || isSafari) ? tv : 0;
  var isMoz = (dua.indexOf("Gecko") >= 0 && !isKhtml) ? tv : 0;
  var isFF = 0;
  var isIE = 0;
  if (isMoz) {
		isFF = parseFloat(dua.split("Firefox/")[1]) || 0;
  }
  if (document.all && !isOpera) {
		isIE = parseFloat(dav.split("MSIE ")[1]) || 0;
  }
  if ((isSafari>=2) || (isFF>=2) || (isIE>=7)) {
    return true;
  } else {
    if (window.console && console.info) {
      console.info("Polar Rose Widget is only supported on Firefox2+, IE7+ and Safari2+.");
    }
    return false;
  }
};

var getScriptUrl = function() {
  var scripts = document.getElementsByTagName("script");
  for (var i=0; i<scripts.length; i++) {
    var src = scripts[i].getAttribute("src");
    if (src && /polarrosewidget[0-9]*\.js/i.test(src)) {
      return src.replace(/polarrosewidget[0-9]*\.js(.*)$/i,"");
    }
  }
  return "";
};

var loadPolarRoseScript = function(scriptUrl) {
  var head = document.getElementsByTagName('head')[0];
  var scriptPolarRose = document.createElement('script');
  scriptPolarRose.setAttribute('type','text/javascript');
  scriptPolarRose.onreadystatechange = function(){
    if (/loaded|complete/.test(this.readyState)) {
      loaded.add('polarrose');
    }
  };
  scriptPolarRose.onload = function(){
    loaded.add('polarrose');
  };
  scriptPolarRose.setAttribute('src',scriptUrl+'polarrose.js');
  head.appendChild(scriptPolarRose);
};

// for bookmarklet... :)
var isPageLoadedLoop = function() {
  if (!loaded.page) {
    if (isPageLoaded()) {
      loaded.add('dom');
      loaded.add('page');
    } else {
      setTimeout(function(){isPageLoadedLoop();}, 1000);
    }
  }
};
var isPageLoaded = function() {
  if (document.images.length > 0) {
    for (var i=0, leni=document.images.length; i<leni; i++) {
      if (!document.images[i].complete) return false;
    }
    return true;
  }
  return false;
};
isPageLoadedLoop();

if (window.addEventListener) {
  document.addEventListener('DOMContentLoaded', function(e){
    loaded.add('dom');
  }, false);  
  window.addEventListener('load', function(e){
    loaded.add('dom');
    loaded.add('page');
  }, false);
} else if (window.attachEvent) {
  document.attachEvent('onreadystatechange', function(e){
    if (/loaded|complete/.test(document.readyState)) {
      loaded.add('dom');
    }
  }, false);
  window.attachEvent('onload', function(e){
    loaded.add('dom');
    loaded.add('page');
  }, false);
};

})();
}
