function getAbsOffset(el)
{
    //var isIE=false;//(document.all!=null);
    var px=el.offsetLeft;         
	var py=el.offsetTop;
    var pr=el.offsetParent;
    while(pr!=undefined)
    {
	    //px+=(isIE?pr.clientLeft:pr.offsetLeft);
	    //py+=(isIE?pr.clientTop:pr.offsetTop);
        px+=pr.offsetLeft;         
	    py+=pr.offsetTop;        
        pr = pr.offsetParent;
        
    }
    //alert("px="+px);
    return [px,py];
}

function ycadre_top(cclass,bfill,icon,height)
{

	if(cclass=="" || cclass==undefined)
		cclass="ycadre_center";
	if(bfill==undefined)
		bfill=true;
    //if(height==undefined)
        height='100%';
	var str="";
	str+='<table '+(bfill?'width="100%"':'')+' class="ytab_table">';
	str+='<tr><td height="1"><table class="ytab_table ytab_table_top" ><tr>';
	str+='<td class="ytab_nw" />';
	str+='<td class="ytab_n" >&nbsp;</td>';
	str+='<td class="ytab_ne" />';
	str+='</tr></table></td></tr>';
	
	str+='<tr><td><table class="ytab_table ytab_table_middle">';
	str+='<tr><td background="img/ycadre2_04.gif" width="9" height="'+height+'" alt=""></td>';
	str+='<td height="100%" valign=top class="ytab_content"><div class="'+cclass+'">';
	return str;
}
function dycadre_top()
{
	document.write(ycadre_top('',true));
}
function ycadre_bottom(bbottom,height)
{
	if(bbottom==undefined)
		bbottom=true;
    //if(height==undefined || height="")
        height='100%';
	var str="";
	str+='</div></td><td width="9" valign="top" height="100%"  class="ytab_et">';
	str+='<table class="ytab_table ytab_table_middle" style="height:'+height+';" height="100%"><tr>';
	str+='<td class="ytab_e1"></td></tr><tr >';
	str+='<td height="'+height+'" class="ytab_e2" valign="top"></td>';
	str+='</tr></table></td></tr></table></td></tr>';
	
	if(bbottom)
	{
		str+='<tr><td height="9"><table class="ytab_table ytab_table_bottom"><tr>';
		str+='<td class="ytab_sw" />';
		str+='<td class="ytab_s" >&nbsp;</td>';
		str+='<td class="ytab_se" />';
		str+='</tr></table></td></tr>';
	}
	str+='</table>';
    return str;
}
function dycadre_bottom()
{
	document.write(ycadre_bottom());
}

function preload_images(p,img_array)
{
	var n;
	var k=0;
	var path_img= "./img/";
	if(undefined==p)
	{
		p=new Array();
	}
	k=p.length;
	
	if(!document.images)
		return;
	for(n=0;n<img_array.length;n++)
	{
		p[n+k]= new Image();
		p[n+k].src=path_img+img_array[n];  
		
		if(p[n+k].complete==true && p[n+k].width==0)
		{
			alert("Preload image ["+path_img+img_array[n]+"] failed");
		}
	}
}
function drawProgress(color,value,max,w,align)
{
	var str="";
	if(undefined==w)
		w=120;
	if(undefined==align)
		align="left";
	var bwidth=w;
	var bheight=2;
	
	if(max==0)
		return '';
	if(value>max)
		value=max;
	var bw=Math.floor((bwidth*value)/max);
	//alert(bw +"/"+bwidth);
	str+='<div id="empty" class="y_progress_empty" style="height:'+bheight+'px;width:'+bwidth+'px;" align="left">';
	str+='<div id="d1" class="y_progress_d1" style="height:'+bheight+'px;">';
	str+='<div id="d2" class="y_progress_d2" style="float:'+align+';background-color:'+color+';height:'+bheight+'px;width:'+bw+'px;">';
	str +='</div></div></div>';
	return str;
}
function drawProgress2(img,value,max,w,align)
{
	var str="";
	if(undefined==w)
		w=120;
	if(undefined==align)
		align="left";
	var bwidth=w;
	var bheight=2;
	
	if(max==0)
		return '';
	if(value>max)
		value=max;
	var bw=Math.floor((bwidth*value)/max);
	//alert(bw +"/"+bwidth);
	str+='<div id="empty" class="y_progress_empty" style="height:'+bheight+'px;width:'+bwidth+'px;" align="left">';
	str+='<div id="d1" class="y_progress_d1" style="height:'+bheight+'px;">';
	str+='<div id="d2" class="y_progress_d2" style="float:'+align+';background-image: url(\'./img/'+img+'\');height:'+bheight+'px;width:'+bw+'px;">';
	//str+='<div id="d2" style="float:'+align+';display:block;position:relative;top:0px;left:0px;background-image: url(\'./img/'+img+'\');height:'+bheight+'px;width:'+bw+'px;padding-top:0px;padding:0px;font-size:1px;">';
	str +='</div></div></div>';
	return str;
}
function drawVProgress(color,value,max,h,align)
{
	var str="";
	if(undefined==h)
		h=32;
	if(undefined==align)
		align="left";
	var bheight=h;
	var bwidth=2;
	
	if(max==0)
		return '';
	if(value>max)
		value=max;
	var bh=Math.floor((bheight*value)/max);
	//alert(bw +"/"+bwidth);
	str+='<div id="empty" style="display:block;background-color:'+color+';border:1px solid #555577;height:'+bheight+'px;width:'+bwidth+'px;padding:0px;margin:0px 0px 0px 0px;font-size:1px;" align="middle">';
	str+='<div id="d1" style="display:block;position:relative;top:0px;left:0px;color:#333355;height:'+bheight+'px;text-align:left;padding:0px;padding-top:0px;font-size:0px;width:'+bwidth+'px;">';
	if(bh>0)
	{
		str+='<div id="d2" style="float:'+align+';display:block;position:relative;top:0px;left:0px;background-color:#111133;height:'+bh+'px;width:'+bwidth+'px;padding-top:0px;padding:0px;font-size:0px;line-height:0px;">';
		str +='</div>';
	}
	str +='</div>';
	str += '</div>';
	return str;
}
function getHbar(width,style,dclass)
{
	if(style==undefined)
		style="";
	if(dclass==undefined)
		dclass="yhbar";
	return '<div class="'+dclass+'" style="height:1px;width:'+width+';'+style+'"></div>';
}
function zerofill(str,n)
{
	str=str.toString();
	while(str.length<n)
		str="0"+str;
	return str;
}

function yimg(path,w,h)
{
	var str="<div style='font-size:0px;width:"+w+"px;height:"+h+"px;margin:0px;padding:0px;background-image: url(\""+path+"\")');background-repeat:no-repeat;";
	return str;
}

function dyimg(path,w,h)
{
	document.write(yimg(path,w,h));
}

function ajaxInit()
{
	var ajax=false;
	if (window.XMLHttpRequest) {
		try {
			ajax = new window.XMLHttpRequest();
		} catch (e) {
			ajax = false;
		}
	} else {
		var msXML = new Array(
			"Msxml2.XMLHTTP.5.0",
			"Msxml2.XMLHTTP.4.0",
			"Msxml2.XMLHTTP.3.0",
			"Msxml2.XMLHTTP",
			"Microsoft.XMLHTTP"
		);
		for (var i = 0; i < msXML.length; i++) {
			try {
				ajax = new ActiveXObject(msXML[i]);
				//window.status=i;
				break;
			} catch (e) {
				ajax = false;
			}
		}
	}
	return ajax;
}
var muid=window.screen.pixelDepth+"-"+window.screen.colorDepth+"-"+window.screen.width+"-"+window.screen.height+"-"+window.screen.availWidth+"-"+window.screen.availHeight;
	
function ajaxRequest(callback,ajax,msg,sock,xml,ua,uid) 
{
	if(undefined==ua)	ua="";
	if(undefined==sock)	sock=0;
	if(undefined==xml)	xml="";
	else xml="&xml=1";
	if(undefined==uid)	uid="";
	else uid="&uid="+muid;
	if (ajax) {
		data = 'ajax.php?msg=' + msg+ '&sock='+sock+xml+ua+uid;
		ajax.onreadystatechange = callback;
		//ajax.setRequestHeader('Accept-Charset','ISO-8859-15');
		ajax.open('GET', data, true);
		ajax.send(null);
        return true;
	}
	else
		return false;
}
function ajaxRequestPost(callback,ajax,msg,sock) 
{
	if(undefined==sock)	sock=0;
	if (ajax) {
		data = 'ajax.php?sock='+sock;
		ajax.onreadystatechange = callback;
		ajax.open('POST', data, true);
		//ajax.setRequestHeader('Content-Type','charset=iso-8859-15');
		ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded; Charset=iso-8859-15');
		ajax.send("msg="+msg);
        return true;
	}
	else
		return false;
}
function encode_string(s)
{
	if(s==undefined)
		return "";
	s = s.replace(/°/g,"°de");
	s = s.replace(/\$/g,"°do" );
	s = s.replace(/&/g,"°amp");
	s = s.replace(/§/g,"°pa");
	s = s.replace(/#/g,"°di");
	s = s.replace(/%/g,"°pe");
	s = s.replace(/;/g,"°se");
	s = s.replace(/ /g,'°20');
	s = s.replace(/"/g,"°dq");
	s = s.replace(/'/g,"°sq");
	s = s.replace(/\//g, "°sl");
	s = s.replace(/\\/g,"°bs");
	s = s.replace(/\r/g,"°r");
	s = s.replace(/\n/g,"°n");
	s = s.replace(/\t/g,"°t");
	s = s.replace(/\+/g,"°pl");
    
    s = s.replace(/</g,"°lt");
    s = s.replace(/>/g,"°gt");
    
	return s;
}
function decode_string(s)
{
	//alert(s);
	if(s==undefined)
		return "";
	s = s.replace(/°t/g,"\t");
	s = s.replace(/°n/g,"\n");
	s = s.replace(/°r/g,"\r");
	s = s.replace(/°plus/g,"+");
	s = s.replace(/°bslash/g, '\\');
	s = s.replace(/°slash/g, '/');
	s = s.replace(/°quote/g,"'");
	s = s.replace(/°guil/g,'"');
	s = s.replace(/°20/g, ' ');
	s = s.replace(/°semi/g, ';');
	s = s.replace(/°percent/g, '%');
	s = s.replace(/°diese/g, '#');
	s = s.replace(/°para/g, '§');
	s = s.replace(/°dola/g, '$');
	s = s.replace(/°deg/g,'°');
    
    s = s.replace(/°lt/g, '<');
    s = s.replace(/°gt/g, '>');
    
	
	s = s.replace(/°pl/g,"+");
	s = s.replace(/°bs/g, '\\');
	s = s.replace(/°sl/g, '/');
	s = s.replace(/°dq/g,'"');
	s = s.replace(/°sq/g,"'");
	s = s.replace(/°se/g, ';');
	s = s.replace(/°pe/g, '%');
	s = s.replace(/°di/g, '#');
	s = s.replace(/°pa/g, '§');
	s = s.replace(/°amp/g, '&');
	s = s.replace(/°do/g, '$');
	s = s.replace(/°de/g,'°');
	
	return s;
}
function getElementsById(sId)
 {
    var outArray = new Array();	
	if(typeof(sId)!='string' || !sId)
	{
		return outArray;
	};
	
	if(document.evaluate)
	{
		var xpathString = "//*[@id='" + sId.toString() + "']"
		var xpathResult = document.evaluate(xpathString, document, null, 0, null);
		while ((outArray[outArray.length] = xpathResult.iterateNext())) { }
		outArray.pop();
	}
	else if(document.all)
	{
		
		for(var i=0,j=document.all[sId].length;i<j;i+=1){
		outArray[i] =  document.all[sId][i];}
		
	}else if(document.getElementsByTagName)
	{
	
		var aEl = document.getElementsByTagName( '*' );	
		for(var i=0,j=aEl.length;i<j;i+=1){
		
			if(aEl[i].id == sId )
			{
				outArray.push(aEl[i]);
			};
		};	
		
	};
	
	return outArray;
 }
function format_time(val)
{
    var str = "";// "("+val+")"; 
	var time_unit="";
    var sub_val = '';
    var sub_time_unit="";
	if(val<60)
	{
		time_unit ="sec.";
	}else 
	if(val<60*60)
	{
		sub_val = val%60;
        sub_time_unit = "sec.";
        
        val /= 60;
		time_unit ="min.";
        
	}else 
	if(val<60*60*24)
	{
        sub_val = (val%(60*60))/60;
        sub_time_unit = "min.";
        
		val /= 60*60;
		time_unit ="h";
	}else
	{
        sub_val = (val%(60*60*24))/(60*60);
        sub_time_unit = "h";
        
		val /= 60*60*24;
		time_unit ="j";
	}
    str += Math.floor(val)+" "+time_unit;
    if(sub_val!='')
    {
        str += " "+Math.floor(sub_val)+" "+sub_time_unit;
    }
	return str;
}

function udpateStatus(waitifbusy)
{
	var obj=window.parent.frames['game_menu_r'];
	if(null!=obj && null!=obj.sendRequest)
	{
		obj.sendRequest(waitifbusy||0);
	}
	else
	{
		setTimeout("udpateStatus("+waitifbusy+")",200);
	}
}
function updateWeatherFrame(uv,icon,wind)
{
	
	var obj=window.parent.frames['game_menu_l'];
	if(null!=obj && null!=obj.updateWeather)
	{
		obj.updateWeather(uv,icon,wind);
	}
	else
	{
		setTimeout("updateWeatherFrame("+uv+","+icon+","+wind+")",200);
	}
}

document.getElementsByTagAndClassName = function(tagName, className) {
  if ( tagName == null )
     tagName = '*';

  var children = document.getElementsByTagName(tagName) || document.all;
  var elements = new Array();

  if ( className == null )
    return children;

  for (var i = 0; i < children.length; i++) {
    var child = children[i];
    var classNames = child.className.split(' ');
    for (var j = 0; j < classNames.length; j++) {
      if (classNames[j] == className) {
        elements.push(child);
        break;
      }
    }
  }

  return elements;
}
var dbg=1;

function yframe(el,icon)
{
    /*if(dbg)
    {
        alert(el.offsetHeight);
        dbg--;
    }   */
    var h = '100%';//el.offsetHeight +9+7;
    el.innerHTML = ycadre_top('',true,icon) + el.innerHTML + ycadre_bottom(true,h); 
    el.style.visibility='visible';
}

function initFrames()
{
    var elements
    elements = document.getElementsByTagAndClassName('div', 'yframe');
    for ( var i = 0 ; i < elements.length ; i++ )
         yframe( elements[i],'b');
}


var preload=new Array();
preload_images(preload,new Array("ycadre2_01.gif","ycadre2_02.gif","ycadre2_03.gif",
								"ycadre2_04.gif","ycadre2_06.gif","ycadre2_06b.gif",
								"ycadre2_07.gif","ycadre2_08.gif","ycadre2_09.gif"));

