function id(v) { return( document.getElementById(v) ); }
function $(v) { return(id(v)); }
function hidebox() { setdisplay('none'); after(); }
function showbox(flink) {  before(flink); setdisplay('block'); }
function setdisplay(o) {
	$('overlay').style.display=o;
	$('box').style.display=o;
}
function before(flink) {
	if(self.pageYOffset){
		yPos=self.pageYOffset;
	}else if(document.documentElement && document.documentElement.scrollTop){
		yPos=document.documentElement.scrollTop;
	}else if(document.body){
		yPos=document.body.scrollTop;
	}
	window.scrollTo(0,0);
	document.getElementsByTagName('body')[0].style.overflow='hidden';
	setTimeout('delayredirect()',2000);
	GoTo=flink;
}
function after() {
	window.scrollTo(0,yPos);
	document.getElementsByTagName('body')[0].style.overflow='auto';
	$('frame').src='';
}
function delayredirect(){
	window.location=GoTo;
}
function hideid(o) { $(o).style.display='none'; }
function showid(o) { $(o).style.display=''; }
var yPos=null;
var GoTo=null;

/**
* Link stats functionality
*/

// class="statLink"

function statLinks() {
	as = getElementsByClassName(document, 'a', 'statLink');
	for(var i=0; i<as.length; i++) {
		if (as[i].href) {
			as[i].onclick = stat_link;
		}
	}
}
function stat_link() {
// check l, cid and olid ie Link, img, ContentID and OptionalLinkID
	var img = getElementsByClassName(this, 'img', 'articleImage');
	var params = 'l='+this.href;
	if (this.id && this.id != '') params = params + '&olid=' + this.id;
	if (img) params = params + '&img=' + img[0].src;
	qs = new Querystring();
	var cid = qs.get('x', '');
	if (cid != '') params = params + '&cid=' + cid;
	var url = 'http://www.randapp.com/polls/remote.php?'+params;
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport){

			var response = transport.responseText || "no response text";
			//alert("Success! \n\n" + response);
			return true;
		},
		onFailure: function(){
			
			//alert('Something went wrong...');
			//return false;
			
			// This should be raported to webadmin! Link should still work, thats why returning true.
			return true;
		}
	});
}
/* Client-side access to querystring name=value pairs
	Version 1.2.4
	30 March 2008
	Adam Vandenberg
*/
function Querystring(qs) { // optionally pass a querystring to parse
	this.params = {};
	this.get = Querystring_get;
	
	if (qs == null);
		qs = location.search.substring(1,location.search.length);

	if (qs.length == 0) 
		return;

// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
// split out each name=value pair
	for (var i=0;i<args.length;i++) {
		var pair = args[i].split('=');
		var name = unescape(pair[0]);
		
		var value = (pair.length==2)
			? unescape(pair[1])
			: name;
		
		this.params[name] = value;
	}
}

function Querystring_get(key, default_) {
	var value=this.params[key];
	return (value!=null) ? value : default_;
}

function getElementsByAttribute(oElm, strTagName, strAttributeName, strAttributeValue) {
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)", "i") : null;
	var oCurrent;
	var oAttribute;
	
	for(var i=0; i<arrElements.length; i++){
		oCurrent = arrElements[i];
		oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
		if(typeof oAttribute == "string" && oAttribute.length > 0){
			if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){
			arrReturnElements.push(oCurrent);
			}
		}
	}
	return arrReturnElements;
}

function getElementsByClassName(oElm, strTagName, oClassNames) {
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
