/* *****************************************************************************
*                             CENTER DIV ON PAGE
*******************************************************************************/

function position_div_viewport(divRef,width,height){

  var viewportX=document.documentElement.clientWidth;
  var viewportY=document.documentElement.clientHeight;

  divRef.style.top=document.documentElement.scrollTop+(viewportY/2)-(height/2)+'px';
  divRef.style.left=document.documentElement.scrollLeft+(viewportX/2)-(width/2)+'px';
}//end function position_div_viewport



/* *****************************************************************************
*                             HOVER ROW
*******************************************************************************/

function hover_row(){

  // ============================ get reference to stats_table

   var tablesRef=document.getElementsByTagName('table');

   for(var i=0, no_tables=tablesRef.length;i<no_tables;i++){


    if(tablesRef[i].className=='stats_table'){

     // ============================ add class hover_row to tr elements

       trsRef=tablesRef[i].getElementsByTagName('tr');


       for(var i=0, no_trs=trsRef.length;i<no_trs;i++){

            trsRef[i].onmouseover=function(){
                this.className=this.className+' hover_row';
             }

             trsRef[i].onmouseout=function(){
                this.className=this.className.replace(' hover_row', '');
             }

       }//end for
    }
   }//end for
}//end function hover_row


if(window.attachEvent){
   window.attachEvent('onload',hover_row);
}



/* *****************************************************************************
*             GET ELEMENT POSITION  (http://www.quirksmode.org/js/findpos.html)
*******************************************************************************/
findPos=function(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return {positionTop: curtop,positionLeft: curleft};
}//end function findPos


/* *****************************************************************************
*                             GET PAGE DIMENSIONS
*******************************************************************************/

function getPageDimensions(){
  var pageDims=new Object();


  var scrollH = document.documentElement.scrollHeight;
  var scrollW = document.documentElement.scrollWidth;

  var clientW=document.documentElement.clientWidth;
  var clientH=document.documentElement.clientHeight;

  var offsetW=document.getElementsByTagName('body')[0].offsetWidth;
  var offsetH=document.getElementsByTagName('body')[0].offsetHeight;


  //set height
  if (scrollH >= clientH) {
  	pageDims['height'] = scrollH;
  }
  else if(scrollH < clientH){
    pageDims['height'] = clientH;
  }
  else if(scrollH>=offsetH){
  	pageDims['height'] = scrollH;
  }
  else {
  	pageDims['height'] = offsetH;
  }


  //set width
  if (scrollW >= clientW) {
  	pageDims['width'] = scrollW ;
  }
  else if(scrollW < clientW){
     pageDims['width'] = clientW ;
  }
  else if(scrollW>=offsetW){
    pageDims['width'] = scrollW;
  }
  else {
  	pageDims['width'] = offsetW;
  }


return pageDims;
}//end function function getPageDimensions



/* *****************************************************************************
*                            DETAILS DIV
*******************************************************************************/

function show_details(htmlContent,width, height,anchor){

  // ============================ add transparet background

  var dropSheet=document.createElement('div');
  dropSheet.id='dropSheet';
  dropSheet.style.position='absolute';
  dropSheet.style.top='0px';
  dropSheet.style.left='0px';

  dropSheetDims=getPageDimensions();

  dropSheet.style.width=dropSheetDims.width+'px';
  dropSheet.style.height=dropSheetDims.height+'px';

  document.body.appendChild(dropSheet);


  //create iframe
  iframeRef=document.createElement('iframe');
  iframeRef.id="iframeDetails";
  iframeRef.style.width=width+'px';
  iframeRef.style.height=height+'px';
  iframeRef.style.position='absolute';
  iframeRef.style.zIndex="0";
  iframeRef.style.display="none";
  document.body.appendChild(iframeRef);

  position_div_viewport(iframeRef,width, height+20);

  // ============================ create div

  divRef=document.createElement('div');

  //set attributes
  divRef.id="details";
  divRef.style.width=width+'px';
  divRef.style.height=height+'px';
  divRef.style.display="none";

  document.body.appendChild(divRef);

  if(typeof(anchor)=="undefined"){
    divRef.innerHTML='<a href="#" onclick="close_div(this);return false;" id="close">close<\/a>';
  }
  else{
   divRef.innerHTML='<a href="#'+anchor+'" onclick="close_div(this);return false;" id="close">close<\/a>';
  }

  divRef.innerHTML+=htmlContent;


  position_div_viewport(divRef,width, height+20);
  iframeRef.style.display="block";
  divRef.style.display="block";

}//end function show_details



function close_div(aRef){
    aRef.parentNode.parentNode.removeChild(aRef.parentNode);

     //remove transparent div and iframe
     document.body.removeChild(document.getElementById('dropSheet'));
     document.body.removeChild(document.getElementById('iframeDetails'));
}//end function close_div




/* *****************************************************************************
*                           LOADING DIV
*******************************************************************************/


function show_loading_div(img_src,css_src){

  iframeRef=document.createElement('iframe');
  iframeRef.id='iframe_container';
  iframeRef.setAttribute("border", "0");
  iframeRef.setAttribute("frameBorder", "0");

  document.body.appendChild(iframeRef);

  //center iframe
  position_div_viewport(iframeRef,250,500);


  if (iframeRef.contentDocument) {
   	 //w3c
     iframeDoc = iframeRef.contentDocument;
  }
  else if (iframeRef.contentWindow) {
    // For IE5.5 and IE6
    iframeDoc = iframeRef.contentWindow.document;
  }

  iframeDoc.write('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
  iframeDoc.write('<html>');
  iframeDoc.write('<head>');
  iframeDoc.write('<title>Please Wait<\/title>');
  iframeDoc.write('<link type="text/css" rel="stylesheet" href="'+css_src+'iframe.css" \/>');
  iframeDoc.write('<\/head>');
  iframeDoc.write('<body>');
  iframeDoc.write('<div id="loader">');
  iframeDoc.write('Please wait ...<br \/>');
  iframeDoc.write('<img src="'+img_src+'loading.gif" \/>');
  iframeDoc.write('<\/div>');
  iframeDoc.write('</body>');
  iframeDoc.write('</html>');

  var dropSheet=document.createElement('div');
  dropSheet.id='dropSheet';
  dropSheet.style.position='absolute';
  dropSheet.style.top='0px';
  dropSheet.style.left='0px';

  dropSheetDims=getPageDimensions();

  dropSheet.style.width=dropSheetDims.width+'px';
  dropSheet.style.height=dropSheetDims.height+'px';

  document.body.appendChild(dropSheet);

  if(document.getElementById('information_rEdit')){
  // Update textarea content
   if(document.all){
   document.getElementById('information').value=document.getElementById('information_rEdit').contentWindow.document.body.innerHTML;
   }
   else{
     document.getElementById('information').value=document.getElementById('information_rEdit').contentDocument.getElementsByTagName('body')[0].innerHTML;
   }
  }//end if iframe

  document.getElementsByTagName('form')[0].submit();

}//end function show_loading_div



/* *****************************************************************************
*                             SHOW HIDE DIV
*******************************************************************************/

var show_hide_div = function (aId, divId, action, text_show, text_hide){
    aRef=document.getElementById(aId);

    if(action=='show'){
        aRef.firstChild.nodeValue=text_show;
        document.getElementById(divId).style.display='block';
        aRef.onclick=function(){show_hide_div(aId,divId,'hide',text_show, text_hide);};
        //save_div_state(aId,divId);
    }
    else if(action=='hide'){
        aRef.firstChild.nodeValue=text_hide;
        document.getElementById(divId).style.display='none';
        aRef.onclick=function(){show_hide_div(aId,divId,'show',text_show, text_hide);};
        //save_div_state(aId,divId);
    }
}//end function show_hide_div


sfHover = function() {
    if(document.getElementById("main_menu")){
    	var sfEls = document.getElementById("main_menu").getElementsByTagName("LI");

    	for (var i=0; i<sfEls.length; i++) {
    		sfEls[i].onmouseover=function() {
    			this.className+=" sfhover";
    		}
    		sfEls[i].onmouseout=function() {
    			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
    		}
    	}
    }
}

if (window.attachEvent) window.attachEvent("onload", sfHover);


/* *****************************************************************************
*                             MANAGE COOKIES
*******************************************************************************/

createCookie=function (name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}//end function createCookie

readCookie = function(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}//end function readCookie

eraseCookie=function (name) {
	createCookie(name,"",-1);
}//end function eraseCookie




/*
*  DESCRIPTION: matches first sibling element with nodeName=findelement
*  @startPosition: node reference, element from were the search begins
*  @findElement: html tag: node to find
*  @searchType: direction to search; possible values: next, previous
*/
function get_prev_next_Element(startPosition, findElement, searchType){
var elementRef=false;

    if(searchType=='next'){
        nextElement=startPosition.nextSibling;
        while(nextElement){
            if(nextElement.nodeName==findElement){
               elementRef=nextElement;
               break;
            }
            nextElement=nextElement.nextSibling;
        }//end while
    }//end if
    else if(searchType=='previous'){
        prevElement=startPosition.previousSibling;
        while(prevElement){
            if(prevElement.nodeName==findElement){
               elementRef=prevElement;
               break;
            }
            prevElement=prevElement.previousSibling;
        }//end while
    }//end else if


return elementRef
}//end function get_prev_next_Element


/* thank you dan popa for this: http://www.mister-pixel.com/ */
try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}


function toggleDisplay(id) {//asd
	var display = document.getElementById(id).style.display;
	display = display=='none'?'':'none';
	document.getElementById(id).style.display=display;
}

function ajaxreq(url,callback,params) {//asd
	// ajax requests
	var req=false;
	if (typeof XMLHttpRequest!='undefined') {
		req = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		var ax = ["Microsoft.XmlHttp","MSXML2.XmlHttp","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.5.0"];
		while(ax.length && !req) {
			try {req = new ActiveXObject(ax.pop())} catch(e){}
		}
	}	
	if(req){
		req.onreadystatechange=checkstate;
		req.open('POST',url,true);
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length", params.length);
		req.setRequestHeader("Connection", "close");
		req.send(params);
	}
	function checkstate(){
		if(req.readyState==4){
			if(callback){callback(req.responseText)}
			else{eval(req.responseText)}
		}
	}
}
