var emba_randomnumber=Math.floor(Math.random()*10001);
var emba_host="http://www.embedarticle.com";
var emba_js_host="http://js.embedarticle.com";
var emba_widget_host = "http://widget.embedarticle.com";

window["emba_copy_num"] = emba_randomnumber;

if(typeof(embaURL) != 'undefined') {
	window[window["emba_copy_num"]+"_url"] = embaURL;
}
if(typeof(embaPub) != 'undefined') {
	window[window["emba_copy_num"]+"_pub"] = embaPub;
}
if(typeof(embaWordLength) != 'undefined') {
	window[window["emba_copy_num"]+"_wordlength"] = embaWordLength;
} else {
	window[window["emba_copy_num"]+"_wordlength"] = 15;
}

addEventSimple(document.getElementsByTagName('body')[0], 'copy', "saveCopy");
addEventSimple(document.getElementsByTagName('body')[0], 'copy', "saveCopy");

function saveCopy() {
	var embaTxt = getSelectionHTML().toString();
	var embaHash = SHA1(embaTxt);
	if(stripHTML(embaTxt).split(" ").length > window[window["emba_copy_num"]+"_wordlength"]) {
			embaSplitText(embaTxt, embaHash);
	}
}

function stripHTML(content) {
	var matchTag = /<(?:.|\s)*?>/g;
	return content.replace(matchTag, "");
}

function embaSplitText(embaTxt, embaHash) {
	var start = 0;
	var pos = 0;
	while(embaTxt.slice(start,start+500)!="") {
		var img = new Image(0, 0)
		img.name='embaSnipParts';
		img.src=emba_host+"/article/snip_part?pos="+pos+"&code="+embaHash+"&text="+encodeURIComponent(embaTxt.slice(start,start+500));
		//img.style.display='hidden';
		document.getElementsByTagName('body')[0].appendChild(img);
		start += 500;
		pos +=1;
	}
	embaCPShowDialog(embaHash);
}

function addEventSimple(obj,evt,fn) {
    if (obj.addEventListener)
        obj.addEventListener(evt,eval(fn),false);
    else if (obj.attachEvent)
        obj.attachEvent('on'+evt,eval(fn));
}

function getSelText() {
	var txt = '';
	if (window.getSelection) {
		txt = window.getSelection();
	} else if (document.getSelection) {
		txt = document.getSelection();
	} else if (document.selection) {
		txt = document.selection.createRange() //.text;
	} else return;
	return txt.getRangeAt(0);
}

getSelectionHTML = function () {
  var userSelection;
  if (window.getSelection) {
    // W3C Ranges
    userSelection = window.getSelection();
    // Get the range:
    if (userSelection.getRangeAt)
      var range = userSelection.getRangeAt(0);
    else {
      var range = document.createRange();
      range.setStart(userSelection.anchorNode, userSelection.anchorOffset);
      range.setEnd(userSelection.focusNode, userSelection.focusOffset);
    }
    // And the HTML:
    var clonedSelection = range.cloneContents();
    var div = document.createElement ('div');
    div.appendChild (clonedSelection);
    return div.innerHTML;
  } else if (document.selection) {
    // Explorer selection, return the HTML
    userSelection = document.selection.createRange ();
    return userSelection.htmlText;
  } else {
    return '';
  }
};

function embaGetURL(link_random) {
	if (typeof(window[link_random+"_url"]) == 'undefined') {
		return window.location.href;
	} else {
		return window[link_random+"_url"];
	}
}

function embaGetPub(link_random){
	if(typeof(window[link_random+"_pub"]) == 'undefined') {
		return "";
	} else {
		return "pub="+window[link_random+"_pub"]+"&";
	}
}

function embaCPShowDialog(embaTxt) {
	var link_random = window["emba_copy_num"] //.gsub('link_','');
	if (document.getElementById('emba_light_'+link_random).style.display == 'none') {
		//hide all elements
		var embaElements = document.getElementsByName('emba_white_content');
		var i = 0;
        while (i < embaElements.length) {
        	embaElements[i].style.display = 'none';
        	i++;
        }
		embaElements = document.getElementsByName('emba_bg');
		var i = 0;
        while (i < embaElements.length) {
        	embaElements[i].style.display = 'none';
        	i++;
        }
		document.getElementById('emba_loading_'+link_random).style.display = 'block';
		document.getElementById('emba_article_content_'+link_random).src = emba_js_host+'/article/snip?'+ embaGetPub(window["emba_copy_num"]) +'id=' + encodeURIComponent(embaGetURL(window["emba_copy_num"]))+"&title="+encodeURIComponent(document.title)+"&code="+encodeURIComponent(embaTxt);
		document.getElementById('emba_light_'+link_random).style.display = 'block';
		document.getElementById('emba_bg_'+link_random).style.display = 'block';
	}
}

function embaHideDialog(link) {
	var embaElements = document.getElementsByName('emba_white_content');
	if(embaElements.length == 0) {
		embaElements = getElementsByName_iefix('div','emba_white_content');
	}
	var i = 0;
    while (i < embaElements.length) {
    	embaElements[i].style.display = 'none';
    	i++;
    }
	embaElements = document.getElementsByName('emba_bg');
	if(embaElements.length == 0) {
		embaElements = getElementsByName_iefix('div','emba_bg');
	}
	var i = 0;
    while (i < embaElements.length) {
    	embaElements[i].style.display = 'none';
    	i++;
    }
	
	document.getElementById('emba_bg_'+link.rel).style.display = 'none';
	document.getElementById('emba_light_'+link.rel).style.display = 'none';
}

function getElementsByName_iefix(tag, name) {
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0, iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}


function SHA1 (msg) {
 
	function rotate_left(n,s) {
		var t4 = ( n<<s ) | (n>>>(32-s));
		return t4;
	};
 
	function lsb_hex(val) {
		var str="";
		var i;
		var vh;
		var vl;
 
		for( i=0; i<=6; i+=2 ) {
			vh = (val>>>(i*4+4))&0x0f;
			vl = (val>>>(i*4))&0x0f;
			str += vh.toString(16) + vl.toString(16);
		}
		return str;
	};
 
	function cvt_hex(val) {
		var str="";
		var i;
		var v;
 
		for( i=7; i>=0; i-- ) {
			v = (val>>>(i*4))&0x0f;
			str += v.toString(16);
		}
		return str;
	};
 
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	};
 
	var blockstart;
	var i, j;
	var W = new Array(80);
	var H0 = 0x67452301;
	var H1 = 0xEFCDAB89;
	var H2 = 0x98BADCFE;
	var H3 = 0x10325476;
	var H4 = 0xC3D2E1F0;
	var A, B, C, D, E;
	var temp;
 
	msg = Utf8Encode(msg);
 
	var msg_len = msg.length;
 
	var word_array = new Array();
	for( i=0; i<msg_len-3; i+=4 ) {
		j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
		msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
		word_array.push( j );
	}
 
	switch( msg_len % 4 ) {
		case 0:
			i = 0x080000000;
		break;
		case 1:
			i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
		break;
 
		case 2:
			i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
		break;
 
		case 3:
			i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8	| 0x80;
		break;
	}
 
	word_array.push( i );
 
	while( (word_array.length % 16) != 14 ) word_array.push( 0 );
 
	word_array.push( msg_len>>>29 );
	word_array.push( (msg_len<<3)&0x0ffffffff );
 
 
	for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {
 
		for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
		for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);
 
		A = H0;
		B = H1;
		C = H2;
		D = H3;
		E = H4;
 
		for( i= 0; i<=19; i++ ) {
			temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
 
		for( i=20; i<=39; i++ ) {
			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
 
		for( i=40; i<=59; i++ ) {
			temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
 
		for( i=60; i<=79; i++ ) {
			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}
 
		H0 = (H0 + A) & 0x0ffffffff;
		H1 = (H1 + B) & 0x0ffffffff;
		H2 = (H2 + C) & 0x0ffffffff;
		H3 = (H3 + D) & 0x0ffffffff;
		H4 = (H4 + E) & 0x0ffffffff;
 
	}
 
	var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);
 
	return temp.toLowerCase();
 
}

document.write("<style type=\"text/css\">");
document.write(".embafacebox { position: absolute; top: 0; left: 0; z-index: 100; text-align: left; font: 12px Arial, Helvetica, sans-serif; } .embafacebox .emba_popup { position: relative; } .embafacebox table { border-collapse: collapse; } .embafacebox td { border-bottom: 0; padding: 0; } .embafacebox .emba_body { background: #E5E5E5; width: 390px; } .embafacebox .loading { text-align: center; } .embafacebox .image { text-align: center; } .embafacebox img { border: 0; margin: 0; } .embafacebox .embafooter { background-color:#E5E5E5; padding: 5px 5px 5px 0; margin-top: -7px; text-align: right; } .embafacebox .embatl, .embafacebox .embatr, .embafacebox .embabl, .embafacebox .embabr, .embafacebox .embab { height: 0; min-height:0; width: 0; overflow: hidden; padding: 0; } .facebox_hide { z-index:-100; } .embafacebox_overlayBG {position: fixed; top: 0px; left: 0px; height:100%; width:100%; background-color: #000; z-index: 1000; opacity:0.6; filter:alpha(opacity=60); } * html .embafacebox_overlayBG { /* ie6 hack */ position: absolute; height: expression(document.body.scrollHeight &gt; document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); }")

//positioning
document.write(".embafacebox { position: fixed; top:50%; left:50%; margin-left:-190px; margin-top:-120px; z-index:1001; width: 390px; }")
document.write(".embafacebox .embafooter a.emba_close{ color:#FFF; text-decoration: none; margin: 2px; margin-bottom: 5px; padding:2px; border-top:1px solid #8194BD; border-left:1px solid #8194BD; border-bottom:1px solid #0E1F5B; border-right:1px solid #0E1F5B; background-color: #6079AB;}")
document.write(".embafacebox .embafooter a.emba_close:visited{ color:#FFF; text-decoration: none;}")
document.write("* html body {height: 100%;}");
document.write("* html .embafacebox_overlayBG {position:absolute; top: expression( ( 0 + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );}");
document.write("* html .embafacebox { position: absolute; _margin-left:-180px; _margin-top:-155px; _padding: 2px; _background-color: #E5E5E5; top: expression( ( 250 + ( ignoreMe2 = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );}");
document.write("</style>");


document.write("<div id=\"emba_bg_"+window["emba_copy_num"]+"\" class=\"embafacebox_overlayBG emba_bg\" name=\"emba_bg\" style=\"display:none\"></div>");
document.write("<div class=\"embafacebox emba_white_content\" id=\"emba_light_"+window["emba_copy_num"]+"\" name=\"emba_white_content\" style=\"display:none\">");
document.write("	<div class=\"emba_popup\">");
document.write("		<table>");
document.write("			<tbody>");
document.write("				<tr>");
document.write("					<td class=\"emba_body\">");
document.write("						<div class=\"emba_content\">");
document.write("							<img src=\""+emba_host+"/images/spinner.gif\" id=\"emba_loading_"+window["emba_copy_num"]+"\" style=\"display:none;\">");
document.write("							<iframe id=\"emba_article_content_"+window["emba_copy_num"]+"\" style=\"height:195px; width:100%;*width:100%;margin-bottom:-10px\" frameborder=\"0\" onload=\"document.getElementById('emba_loading_"+window["emba_copy_num"]+"').style.display='none';\"></iframe>");
document.write("						</div>");
document.write("						<div class=\"embafooter\">");
document.write("							<strong>No?</strong> Then click here to <a href=\"#\" class=\"emba_close\" onclick=\"embaHideDialog(this);return false;\" rel=\""+window["emba_copy_num"]+"\">Close</a>");
document.write("						</div>");
document.write("					</td>");
document.write("				</tr>");
document.write("			</tbody>");
document.write("		</table>");
document.write("	</div>");
document.write("</div>");
