// common vars:
var loadingImage = 'ReadySkins/common/images/loading.gif';

function isEmpty(str){str = str||""; return (str.replace(/\s/g,"").length==0)}

function isDate(str){
	str = str||"";
	//var bCorrectFormat = str.search(/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/)!=-1;
	var bCorrectRange = false;
	var aDate = str.split("/");
	var cDate = new Date(aDate[2],(aDate[1]>>0)-1,aDate[0]);
		str = (aDate[0]>>0)+"/"+(aDate[1]>>0)+"/"+aDate[2];
	var bCorrectFormat = cDate.getDate()+"/"+(cDate.getMonth()+1)+"/"+cDate.getFullYear() == str;
	if(bCorrectFormat){
		str = aDate[2]+"/"+aDate[1]+"/"+aDate[0];
		var year = new Date( str ).getFullYear();
		var currYear = new Date().getFullYear();
		bCorrectRange = year>=1900 && year<=currYear;
	}
	return bCorrectRange && bCorrectFormat;
}
function isMail(str){str = str||""; return str.search(/^([\w\.\-])+@(([\w\-]{2,})+\.)+([a-z0-9]{2,})+$/i)!=-1}

function changeOpac(opacity, id) {
	var object = document.getElementById(id);
	if(!object) return;
	object = object.style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}
//
// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
//
function addLoadEvent(func){	
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}

}

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}

//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
	var now = new Date();
	var exitTime = new Date().getTime() + numberMillis;
	//while ( new Date().getTime() < exitTime ) ;
}

function addLoadingBox(){
	// preload and create loader image
	var imgPreloader = new Image();
	
	// if loader image found, create link to hide lightbox and create loadingimage
	imgPreloader.onload = function(){
		var objLoadingImage = document.createElement("img");
		objLoadingImage.src = loadingImage;
		
		var objLoadingText = document.createElement("h1");
		objLoadingText.innerHTML = "Loading...";
		
		var objLoadingBox = document.createElement("div");
		objLoadingBox.setAttribute('id','objLoadingBox');
		objLoadingBox.style.position = 'absolute';
		objLoadingBox.style.zIndex = '150';
		objLoadingBox.style.width = '350px';
		objLoadingBox.style.height = '200px';
		
		objLoadingBox.appendChild(objLoadingText);
		objLoadingBox.appendChild(objLoadingImage);
		var objBody = document.getElementsByTagName("body").item(0);
		objBody.insertBefore(objLoadingBox, objBody.firstChild);
		
		imgPreloader.onload = function(){};	//	clear onLoad, as IE will flip out w/animated gifs
		return false;
	}

	imgPreloader.src = loadingImage;
}

function showLoadingBox(){	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	var objLoadingBox = document.getElementById("objLoadingBox");
	
	// center objLoadingBox if it exists
	if (objLoadingBox) {
		var h = parseInt(objLoadingBox.style.height,10);
		var w = parseInt(objLoadingBox.style.width,10);
		objLoadingBox.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - h) / 2) + 'px');
		objLoadingBox.style.left = (((arrayPageSize[0] - 20 - w) / 2) + 'px');
		objLoadingBox.style.display = 'block';
	}
	return objLoadingBox;
}


function hideLoadingBox(){
	var objLoadingBox = document.getElementById("objLoadingBox");
	if(objLoadingBox)
		objLoadingBox.style.display = 'none';
	return objLoadingBox;
}

function expandNode(oButton,bHidePrev){
	bHidePrev = !!bHidePrev;
	if(bHidePrev && window.obToHide)
		window.obToHide.style.display = "none";
	var id = oButton.id.split("_")[1]>>0;
	if((oButton.nodeName).toLowerCase()=="a")
		oButton.innerHTML = oButton.innerHTML=="+"?"-":"+";
	var obj = document.getElementById("nodeBlock_"+id);
	if(obj){
		obj.style.display = obj.style.display=="none"?"":"none";
		window.obToHide = obj;
	}
	return false;
}

function hardyStoppingCounter(){
	var arrC = document.cookie;
	var cValue = 1;
	if( arrC.indexOf("HARDYStoppingCounter") != -1 ){
		arrC = arrC.split(";");
		for(var i=0;i<arrC.length;i++){
			if( (arrC[i]||"").indexOf("HARDYStoppingCounter=")!=-1 ){
				cValue = arrC[i].replace(/HARDYStoppingCounter=/gi,"");
				cValue = cValue>>0;
				break;
			}
		}
		cValue = cValue+1;
	}
	var now = new Date(); now.setFullYear(now.getFullYear()+10);
	document.cookie = "HARDYStoppingCounter="+cValue+";"+
					  "expires=" + now.toGMTString()+";"+
					  "path=/;";
					  //"domain=www.hardstore.com;";
}

function resizeMe(obj){
	var height;
	if(obj){
		height = obj.contentWindow.document.body.scrollHeight;
		obj.style.height = height+"px";
	}
	return height;
}

function getFlashPlayerVersionObject(){
	return deconcept.SWFObjectUtil.getPlayerVersion();
}

function hasFlashPlayerVersion(v){
	var v = (v||"").toString().split(".");
	var major = v[0]>>0;
	var minor = v[1]>>0;
	var rev = v[2]>>0;
	var o = getFlashPlayerVersionObject();
	return o.major>=major && o.minor>=minor && o.rev>=rev;
}

var timerSolvingBox = null;
function startBoxSolving(parentID,element,opacType,opacIndex){
	opacType = opacType||"+";
	opacIndex = opacIndex>>0||0;
	if(opacIndex>100){
		clearTimeout(timerSolvingBox);
		setTimeout("startBoxSolving('"+parentID+"',document.getElementById('"+element.id+"'),'-',100);",3000);
		return;
	}else if(opacIndex<0){
		element.style.display = "none";
		element = get_nextsibling(element);
		opacType = '+';
		opacIndex = 0;
	}
	var first = document.getElementById(parentID).getElementsByTagName("div")[0];
	if( !element )
		element = first;
	element.style.display = "block";
	changeOpac(opacIndex,element.id);
	eval("opacIndex = opacIndex "+opacType+" 10;");
	timerSolvingBox = setTimeout("startBoxSolving('"+parentID+"',document.getElementById('"+element.id+"'),'"+opacType+"',"+opacIndex+");",100);
}

function get_nextsibling(o){
	var x = o.nextSibling;
	while ( x && x.nodeType!=1 )
  		x = x.nextSibling;
	return x;
}

// TOOLTIPS ***********************
function enableTooltips(id){
	var links,i,h;
	if(!document.getElementById || !document.getElementsByTagName) return;
	h = document.createElement("span");
	h.id = "btc";
	h.setAttribute("id","btc");
	h.style.position = "absolute";
	document.body.appendChild(h);
	var obj = document;
	if(id != null)
		obj = document.getElementById(id);
	links = obj.getElementsByTagName("a");
	for(i=0;i<links.length;i++)
	    Prepare(links[i]);
	links = obj.getElementsByTagName("area");
	for(i=0;i<links.length;i++)
	    Prepare(links[i]);
	links = obj.getElementsByTagName("span");
	for(i=0;i<links.length;i++)
	    Prepare(links[i]);
}
	
function Prepare(el){
	var tooltip,t;
	t = el.getAttribute("title");
	if(t==null || t.length==0) return;
	t = t.replace(/\\r\\n/g,"<br />");
	el.removeAttribute("title");
	tooltip = CreateEl("span","tooltip");
	tooltip.innerHTML = t;//appendChild(document.createTextNode(t));
	el.tooltip = tooltip;
	el.onmouseover = showTooltip;
	el.onmouseout = hideTooltip;
	el.onmousemove = Locate;
}
	
function showTooltip(e){
	document.getElementById("btc").appendChild(this.tooltip);
	Locate(e);
}

function hideTooltip(e){
	var d=document.getElementById("btc");
	if(d.childNodes.length>0) d.removeChild(d.firstChild);
}

function CreateEl(t,c){
	var x = document.createElement(t);
	x.className = 'tooltip';
	return(x);
}

function Locate(e){
	var posx=0,posy=0;
	if(e==null) e = window.event;
	if(e.pageX || e.pageY){
	    posx = e.pageX;
		posy = e.pageY;
	}else if(e.clientX || e.clientY){
	    if(document.documentElement.scrollTop){
	        posx = e.clientX+document.documentElement.scrollLeft;
	        posy = e.clientY+document.documentElement.scrollTop;
	    }else{
	        posx = e.clientX+document.body.scrollLeft;
	        posy = e.clientY+document.body.scrollTop;
	    }
	}
	var width = 200;
	if((posx+width)>=window.document.body.offsetWidth)
		posx = posx-width;
	document.getElementById("btc").style.top = (posy+10)+"px";
	document.getElementById("btc").style.left = (posx)+"px";
	document.getElementById("btc").style.width = width+"px";
}

//********************************