function widgetEdicionaSharer() {

	this.load = function(widgetEdicionaOptions) {
		
		//check if the needed functions are ready
		this.check();
		
		//get all the buttons in the page.
		var ediciona_buttons = document.getElementsByClassName ('ediciona-share-button');
		var ediciona_buttons_length = ediciona_buttons.length;

		
		var ediciona_button;
		
		for (var i = 0; i < ediciona_buttons_length; i++) {

			ediciona_button = ediciona_buttons[i];

			//process the buttons to make the get style
			this.styleButton(ediciona_button)

			//convert the urls to the share to the value needed and get the values to pass to the webservice
			this.processData(ediciona_button);
		}
		
	}

	this.styleButton = function(ediciona_button) {
		var text = ediciona_button.firstChild;
		ediciona_button.target = '_blank';
		ediciona_button.style.textDecoration = 'none';
		ediciona_button.style.margin = '1px 0';
		ediciona_button.style.display = 'block';
		

		var ediciona_button_type = this.getAttributeValue(ediciona_button, 'type');

		while (ediciona_button.hasChildNodes()) {
			ediciona_button.removeChild(ediciona_button.firstChild);
		}

		if (ediciona_button.id == '') {
			ediciona_button.id = 'ESB-'+Math.floor(Math.random()*171);
		}
		
		if (ediciona_button_type == "button-box") {
			this.createButtonBox(ediciona_button,text);
		} else {
			this.createPanelBox(ediciona_button,text);
		}

		return true;
	}

	this.createButtonBox = function(ediciona_button,text) {

		ediciona_button.style.height = '60px';
		ediciona_button.style.width = '100px';

		var ediciona_button_count = document.createElement('div');
		//style of the span
		ediciona_button_count.style.backgroundColor = '#ffffff';
		ediciona_button_count.style.border = '1px solid #980033';
		ediciona_button_count.style.color = '#980033';
		ediciona_button_count.style.fontSize = '20px';
		ediciona_button_count.style.fontWeight= "bold";
		ediciona_button_count.style.padding = '2px 5px';
		ediciona_button_count.style.textDecoration = 'none';
		ediciona_button_count.style.fontFamily = "Ariral,Verdana";
		ediciona_button_count.style.margin = "0";
		ediciona_button_count.style.display = "block";
		ediciona_button_count.style.width = "50px";
		ediciona_button_count.style.height = "26px";
		ediciona_button_count.style.textAlign = "center";

		ediciona_button_count.className = 'ediciona_button_count';
		ediciona_button_count.id = ediciona_button.id + '_count';
		ediciona_button_count.appendChild(document.createTextNode('0'));
		ediciona_button.appendChild(ediciona_button_count);


		var ediciona_button_text = document.createElement('div');
		//style of the span
		ediciona_button_text.style.background = 'url("http://www.ediciona.com/img/ediciona_12.png") no-repeat scroll 4px 1px #980033';
		ediciona_button_text.style.border = '1px solid #980033';
		ediciona_button_text.style.color = '#D0DEE7';
		ediciona_button_text.style.fontSize = '9px';
		ediciona_button_text.style.fontWeight= "bold";
		ediciona_button_text.style.padding = '3px 0px 2px 15px';
		ediciona_button_text.style.margin = '2px 0 0 0';
		ediciona_button_text.style.textDecoration = 'none';
		ediciona_button_text.style.fontFamily = "Ariral,Verdana";
		ediciona_button_text.style.width = "45px";
		ediciona_button_text.style.height = "14px";
		ediciona_button_count.style.display = "block";


		ediciona_button_text.className = 'ediciona_button_text';
		ediciona_button_text.id = ediciona_button.id + '_text';
		ediciona_button_text.appendChild(document.createTextNode(text.nodeValue));
		ediciona_button.appendChild(ediciona_button_text);

		

		var ediciona_button_break = document.createElement('br');
		ediciona_button_break.style.margin = '1px 0';
		ediciona_button.appendChild(ediciona_button_break);

		return true;

	}

	this.createPanelBox = function(ediciona_button,text) {

		ediciona_button.style.height = '24px';
		ediciona_button.style.width = '150px';

		var ediciona_button_text = document.createElement('div');
		//style of the span
		ediciona_button_text.style.background = 'url("http://www.ediciona.com/img/ediciona_12.png") no-repeat scroll 4px 1px #980033';
		ediciona_button_text.style.border = '1px solid #980033';
		ediciona_button_text.style.color = '#D0DEE7';
		ediciona_button_text.style.fontSize = '11px';
		ediciona_button_text.style.fontWeight= "bold";
		ediciona_button_text.style.padding = '2px 3px 2px 15px';
		ediciona_button_text.style.margin = '0';
		ediciona_button_text.style.textDecoration = 'none';
		ediciona_button_text.style.fontFamily = "Ariral,Verdana";
		ediciona_button_text.style.width = "55px";
		ediciona_button_text.style.height = "20px";
		ediciona_button_text.style.display = "inline";
		
		ediciona_button_text.className = 'ediciona_button_text';
		ediciona_button_text.id = ediciona_button.id + '_text';
		ediciona_button_text.appendChild(document.createTextNode(text.nodeValue));
		ediciona_button.appendChild(ediciona_button_text);

		var ediciona_button_count = document.createElement('div');
		//style of the span
		ediciona_button_count.style.backgroundColor = '#ffffff';
		ediciona_button_count.style.border = '1px solid #980033';
		ediciona_button_count.style.color = '#980033';
		ediciona_button_count.style.fontSize = '11px';
		ediciona_button_count.style.fontWeight= "bold";
		ediciona_button_count.style.padding = '2px 5px';
		ediciona_button_count.style.margin = '0';
		ediciona_button_count.style.textDecoration = 'none';
		ediciona_button_count.style.fontFamily = "Ariral,Verdana";
		ediciona_button_count.style.margin = "0 5px 0 2px";
		ediciona_button_count.style.width = "30px";
		ediciona_button_count.style.height = "20px";
		ediciona_button_count.style.display = "inline";
		
		ediciona_button_count.className = 'ediciona_button_count';
		ediciona_button_count.id = ediciona_button.id + '_count';
		ediciona_button_count.appendChild(document.createTextNode('0'));
		ediciona_button.appendChild(ediciona_button_count);

		var ediciona_button_break = document.createElement('br');
		ediciona_button_break.style.margin = '1px 0';
		ediciona_button.appendChild(ediciona_button_break);

		return true;

	}

	this.processData = function(ediciona_button) {
		var ediciona_url = this.getAttributeValue(ediciona_button, 'url');
		var actualUrl = window.location;

		if (ediciona_url == false) {
			ediciona_url = actualUrl;

		}
		ediciona_button.href += "?url="+ediciona_url;

		//send the petition via JSONP
		var s = document.createElement("script");
		s.type = "text/javascript";
		s.src = "http://widget.ediciona.com/jsonp/sharer_"+ediciona_button.id+"_"+ediciona_url;
		ediciona_button.appendChild(s);
	}

	this.getAttributeValue = function(elem, attributeName) {
		var nAttributes = elem.attributes.length;
		for (var i = 0; i < nAttributes; i++) {
			if (elem.attributes[i].name == attributeName) {
				return elem.attributes[i].value;
			}
		}
		return false;
	}


	this.check = function() {

		if (document.getElementsByClassName == undefined) {
			document.getElementsByClassName = function(className) {
				var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
				var allElements = document.getElementsByTagName("*");
				var results = [];

				var element;
				for (var i = 0; (element = allElements[i]) != null; i++) {
					var elementClass = element.className;
					if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
						results.push(element);
				}

				return results;
			}
		}
	}



}


