//namespace
if (typeof GP == "undefined") { var GP = {}; }
if (typeof GP.stat == "undefined") { GP.stat = {}; }

/** common functions for stat module */
GP.stat.Util=(function() {
	var $E=YAHOO.util.Event, $D=YAHOO.util.Dom, $=YAHOO.util.Dom.get
	var hashPrefix

	var setHashPrefix = function(prefix) {
		hashPrefix = prefix || '#url='
	}

	/**
	 * Deletes hash signs ("#url=") if there are ones in the given url
	 * and returns the result
	 * @param url s - enhashed (or not) statistics url
	 * @return url - surely dehashed statistics url
	 */
	var dehashUrl = function(s,hp) {
		return s.replace(hp || hashPrefix,'')
	}
	
	/**
	 * Inserts hash sign ("#url=") if there is no one after "stat/" into the given url
	 * and returns the result
	 * @param url s - statistics url
	 * @return url - enhashed statistics url
	 */
	var enhashUrl = function(s) {
		var r = dehashUrl(s)
		return r.replace("stat/","stat/"+hashPrefix)
	}
	
	/**
	 * Extracts and returns hash part (after hash sign)
	 * @param url s - statistics url
	 * @return string - hash part
	 */
	var extractHash = function(s) {
		var i = s.lastIndexOf(hashPrefix)
		if (i<0) return s
		return s.substr(i+hashPrefix.length)
	}
	
	/**
	 * Makes full enhashed url from given hash part
	 * @param string s - hash part
	 * @return url - url
	 */
	var urlizeHash = function(s) {
		return "/stat/"+hashPrefix+s
	}
	
	/**
	 * look through given element and enhash all found links
	 */
	var enhashLinks = function(items) {
		$D.batch(items, function (item) {
			if (item) $D.batch(item.getElementsByTagName('a'), function (node) { node.href = enhashUrl(node.href) }) }  )
	}
	
	var createSpaceHolder = function (width, height) {
		var holder = document.createElement('img');
		holder.src = '/s/stat/img/spc.gif'
		holder.width = width;
		holder.height = height;
		return holder;
	}
	
	var init  = function () {
		
	}
	
	return {
		init:init,
		setHashPrefix:setHashPrefix,
		dehashUrl:dehashUrl,
		enhashUrl:enhashUrl,
		extractHash:extractHash,
		urlizeHash:urlizeHash,
		enhashLinks:enhashLinks,
		createSpaceHolder:createSpaceHolder
	}
})()