Difference between revisions of "User:ThomasV/vector.js"

From Bitcoin Wiki
Jump to: navigation, search
(Created page with "<script type="text/javascript" src="http://sanescreen.org/converter/bitcoin_converter.js"></script>")
 
(test)
 
Line 1: Line 1:
<script type="text/javascript" src="http://sanescreen.org/converter/bitcoin_converter.js"></script>
+
/*
 +
Author : ThomasV
 +
*/
 +
 
 +
function getElementsByClassName(oElm, strTagName, strClassName) {
 +
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
 +
    var arrReturnElements = new Array();
 +
    strClassName = strClassName.replace(/\-/g, "\\-");
 +
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
 +
    var oElement;
 +
    for( var i=0; i< arrElements.length; i++ ) {
 +
        oElement = arrElements[i];
 +
        if(oRegExp.test(oElement.className)){
 +
            arrReturnElements.push(oElement);
 +
        } 
 +
    }
 +
    return (arrReturnElements);
 +
}
 +
 
 +
 
 +
/*  A timestamp is added to the url, to prevent cache effects */
 +
function add_xc_script(){
 +
    var timestamp = new Date().getTime();
 +
    var request_url = "http://sanescreen.org/converter/bitcoin_rate.js?h="+timestamp;
 +
    var scriptObj = document.createElement("script");
 +
    scriptObj.setAttribute("type", "text/javascript");
 +
    scriptObj.setAttribute("src", request_url);
 +
    scriptObj.setAttribute("id", "xc");
 +
    var headLoc = document.getElementsByTagName("head").item(0);
 +
    headLoc.appendChild(scriptObj);
 +
}
 +
 
 +
 
 +
function bitcoin_converter_callback( ) {
 +
 
 +
  var c = getElementsByClassName(document,"span","usd_to_btc");
 +
  for(var i=0; i<c.length; i++) {
 +
    address = c[i].title;
 +
    var pstr = c[i].innerHTML.split(" ");
 +
    var usd_price = parseFloat(pstr[0]);
 +
    var add_unit = false;
 +
    if(pstr.length>1) {
 +
        if( pstr[1]=="USD") {
 +
          add_unit = true;
 +
        } else {
 +
  alert("error");
 +
          return;
 +
        }
 +
    }
 +
    var price = Math.round(100*usd_price/self.btc_usd)/100.;
 +
    var price_u = "" + price;
 +
    if(add_unit) price_u = price_u + " BTC";
 +
    if(address) {
 +
      price_u = "<a href='javascript:show_bitcoin_address("+price+",\""+address+"\");'>" + price_u + "</a>";
 +
    }
 +
    c[i].innerHTML = price_u ;
 +
    c[i].title = usd_price + " USD";
 +
  }
 +
 
 +
  var c = getElementsByClassName(document,"span","btc_to_usd");
 +
  for(var i=0; i<c.length; i++) {
 +
    address = c[i].title;
 +
    var pstr = c[i].innerHTML.split(" ");
 +
    var btc_price = parseFloat(pstr[0]);
 +
    var add_unit = false;
 +
    if(pstr.length>1) {
 +
        if( pstr[1]=="BTC") {
 +
          add_unit = true;
 +
        } else {
 +
          alert("error");
 +
          return;
 +
        }
 +
    }
 +
    var price = btc_price*self.btc_usd;
 +
    if(price < 1) precision = 1000.; else precision = 100.;
 +
    price = Math.round(precision*price)/precision;
 +
    var price_u = "" + price;
 +
    if(add_unit) price_u = price_u + " USD";
 +
    if(address) {
 +
      price_u = "<a href='javascript:show_bitcoin_address("+price+",\""+address+"\");'>" + price_u + "</a>";
 +
    }
 +
    c[i].innerHTML = price_u ;
 +
    c[i].title = btc_price + " BTC";
 +
  }
 +
 
 +
 
 +
}
 +
 
 +
function show_bitcoin_address(amount, address){
 +
  alert("This item can be purchased with Bitcoins.\nPrice: "+amount+" Bitcoins\nAddress: "+address+"\n\nVisit http://www.bitcoin.org for more information.");
 +
}
 +
 
 +
addOnloadHook( add_xc_script );

Latest revision as of 21:14, 22 January 2011

/*
Author : ThomasV
*/

function getElementsByClassName(oElm, strTagName, strClassName) {
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement; 
    for( var i=0; i< arrElements.length; i++ ) {
        oElement = arrElements[i];
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements);
}


/*  A timestamp is added to the url, to prevent cache effects */
function add_xc_script(){
    var timestamp = new Date().getTime(); 
    var request_url = "http://sanescreen.org/converter/bitcoin_rate.js?h="+timestamp;
    var scriptObj = document.createElement("script");
    scriptObj.setAttribute("type", "text/javascript");
    scriptObj.setAttribute("src", request_url);
    scriptObj.setAttribute("id", "xc");
    var headLoc = document.getElementsByTagName("head").item(0);
    headLoc.appendChild(scriptObj);
}


function bitcoin_converter_callback( ) {

  var c = getElementsByClassName(document,"span","usd_to_btc");
  for(var i=0; i<c.length; i++) {
    address = c[i].title;
    var pstr = c[i].innerHTML.split(" ");
    var usd_price = parseFloat(pstr[0]);
    var add_unit = false;
    if(pstr.length>1) { 
        if( pstr[1]=="USD") {
           add_unit = true;
        } else {
	   alert("error");
           return;
        }
    }
    var price = Math.round(100*usd_price/self.btc_usd)/100.;
    var price_u = "" + price;
    if(add_unit) price_u = price_u + " BTC";
    if(address) {
       price_u = "<a href='javascript:show_bitcoin_address("+price+",\""+address+"\");'>" + price_u + "</a>";
    }
    c[i].innerHTML = price_u ;
    c[i].title = usd_price + " USD";
  }

  var c = getElementsByClassName(document,"span","btc_to_usd");
  for(var i=0; i<c.length; i++) {
    address = c[i].title;
    var pstr = c[i].innerHTML.split(" ");
    var btc_price = parseFloat(pstr[0]);
    var add_unit = false;
    if(pstr.length>1) { 
        if( pstr[1]=="BTC") {
           add_unit = true;
        } else {
           alert("error");
           return;
        }
    }
    var price = btc_price*self.btc_usd;
    if(price < 1) precision = 1000.; else precision = 100.; 
    price = Math.round(precision*price)/precision;
    var price_u = "" + price;
    if(add_unit) price_u = price_u + " USD";
    if(address) {
       price_u = "<a href='javascript:show_bitcoin_address("+price+",\""+address+"\");'>" + price_u + "</a>";
    }
    c[i].innerHTML = price_u ;
    c[i].title = btc_price + " BTC";
  }


}

function show_bitcoin_address(amount, address){
  alert("This item can be purchased with Bitcoins.\nPrice: "+amount+" Bitcoins\nAddress: "+address+"\n\nVisit http://www.bitcoin.org for more information.");
}

addOnloadHook( add_xc_script );