
function trim(s) { return rtrim(ltrim(s)); }
function ltrim(s) { return s.replace(/^\s+/, ''); }
function rtrim(s) { return s.replace(/\s+$/, ''); }

function randomNumber (m,n)
{
	m = parseInt(m);
	n = parseInt(n);
	return Math.floor( Math.random() * (n - m + 1) ) + m;
}

function IntToStr(v,len,radix)
{
	var r=parseInt(v).toString(radix);
	len-=r.length;
	var i;
	for(i=0;i<len;i++) r='0'+r;
	return r;
}

function TestSupport()
{
	var cd=new Date();
	var s=IntToStr(cd.getUTCFullYear(),4,10);
	s+="."+IntToStr(cd.getUTCMonth()+1,2,10);
	s+="."+IntToStr(cd.getUTCDate(),2,10);
	s+=" "+IntToStr(cd.getUTCHours(),2,10);
	s+=":"+IntToStr(cd.getUTCMinutes(),2,10);
	s+=":"+IntToStr(cd.getUTCSeconds(),2,10);
	document.cookie = "SDATE="+s; 
//	alert(document.cookie);
}

function isValidEmail (email, strict)
{
	if ( !strict ) email = email.replace(/^\s+|\s+$/g, '');
	return (/^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i).test(email);
}

function ACEnter()
{
	TestSupport();

	obj_form=document.forms.formACEnter;

	var val=trim(obj_form.acname.value);
	if(val.length<1) return;
	obj_form.acname.value=val;

	val=obj_form.acpassword.value;
	if(val.length<1) return;

	obj_form.submit();
}

function storeCaret(text)
{
//	if (text.createTextRange) {
//		text.caretPos = document.selection.createRange().duplicate();
//	}
}

/*var selText='';

function refSel(get) {
	if (get) selText = getSel();
	else selText = '';
}*/

function getSel()
{
	var t=document.forms.msg_form.msg_text;
	if(t.selectionStart != undefined) {
		var sel_before, sel_after, sel;
		sel_before = t.value.substr(0, t.selectionStart);
		return t.value.substr(t.selectionStart, t.selectionEnd - t.selectionStart);

    } else if (window.document.getSelection) {
		text = window.document.getSelection();

	} else if (document.selection && document.selection.createRange) {
		var range = document.selection.createRange();
		return range.text;
	}

	return '';
}

function insAtCursor(text)
{
	var t=document.forms.msg_form.msg_text;
	t.focus();

	if(t.selectionStart != undefined) {
		var start = t.selectionStart;
		var end   = t.selectionEnd;
		var sel1  = t.value.substr(0, start);
		var sel2  = t.value.substr(end);
		t.value   = sel1 + text + sel2;
		if(start==end) t.setSelectionRange(start+text.length, start+text.length);
		else t.setSelectionRange(start, start+text.length);

	} else if (document.selection && document.selection.createRange) {
		var r = document.selection.createRange();
		r.text = text;

	} else{
		t.value += text;
	}

	setTimeout(function() { t.focus() }, 100);
}

function MsgAddText(text)
{
	insAtCursor(text);
	return;

	var t=document.forms.msg_form.msg_text;
//alert(t);

/*	if (t.createTextRange && t.caretPos) {
		var caretPos = t.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
	}
	else*/
	if(t.selectionStart != undefined) {
		var sel_before = t.value.substr(0, t.selectionStart);
		var sel_after = t.value.substr( t.selectionEnd);
		t.value = sel_before + text + sel_after;
		t.setSelectionRange(sel_before.length + text.length, sel_before.length + text.length);
	}
	else t.value += text;
}

function MsgAddTag(tag_start,tag_end)
{
	insAtCursor(tag_start + getSel() + tag_end);
	return;

	var t=document.forms.msg_form.msg_text;

/*	if (t.createTextRange && t.caretPos) {
		var caretPos = t.caretPos;
		caretPos.text = tag_start + caretPos.text + tag_end;

//		var sel = document.selection.createRange();
//		sel.text = tag_start + sel.text + tag_end;
	}
	else*/
	if(t.selectionStart != undefined) {
		var sel_before, sel_after, sel;
		sel_before = t.value.substr(0, t.selectionStart);
		sel = t.value.substr(t.selectionStart, t.selectionEnd - t.selectionStart);
		sel_after = t.value.substr(t.selectionEnd);
		t.value = sel_before + tag_start + sel + tag_end + sel_after;
		t.setSelectionRange(sel_before.length, sel_before.length + tag_start.length + sel.length + tag_end.length);
	}
	else t.value += tag_start + tag_end;
}

function ShowHide(id)
{
	var item = document.getElementById(id);

	if(item.style.display == "none") item.style.display = "";
	else item.style.display = "none";
}

function getXmlHttp()
{
	var xmlhttp;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  
		} catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function ScoreChange()
{
	var v="/innerscore";
	var t=document.getElementById("sc_type");
	v+="?type="+t.value;
	t=document.getElementById("sc_period");
	v+="&period="+t.value;
	t=document.getElementById("sc_server");
	v+="&server="+t.value;
	v+="&page=1";

	var req = getXmlHttp();

	req.onreadystatechange=function() {
		if(req.readyState != 4) return;
		if(req.status != 200) return;

		var t=document.getElementById("sc_cont");
		t.innerHTML=req.responseText;

		req=null;
	}

	req.open('GET', v, true);
	req.send(null);

//	var t=document.getElementById("sc_cont");
//	t.innerHTML="";
}

function ScorePage(p)
{
	var v="/innerscore";
	var t=document.getElementById("sc_type");
	v+="?type="+t.value;
	t=document.getElementById("sc_period");
	v+="&period="+t.value;
	t=document.getElementById("sc_server");
	v+="&server="+t.value;
	v+="&page="+p;

	var req = getXmlHttp();

	req.onreadystatechange=function() {
		if(req.readyState != 4) return;
		if(req.status != 200) return;

		var t=document.getElementById("sc_cont");
		t.innerHTML=req.responseText;

		req=null;
	}

	req.open('GET', v, true);
	req.send(null);

//	var t=document.getElementById("sc_cont");
//	t.innerHTML="";
}

function ScoreFind()
{
	var boundary=""+Math.random()+""+Math.random();

	var v="/innerscore";
	var t=document.getElementById("sc_type");
	v+="?type="+t.value;
	t=document.getElementById("sc_period");
	v+="&period="+t.value;
	t=document.getElementById("sc_server");
	v+="&server="+t.value;
	v+="&page=1";

	t=document.getElementById("sc_find");
	var p="--"+boundary+"\r\n";
	p+="Content-Disposition: form-data; name=\"find\"\r\n\r\n";
	p+=t.value+"\r\n";
	p+="--"+boundary+"--\r\n";

	var req = getXmlHttp();

	req.onreadystatechange=function() {
		if(req.readyState != 4) return;
		if(req.status != 200) return;

		var t=document.getElementById("sc_cont");
		t.innerHTML=req.responseText;

		req=null;
	}

	var srh="multipart/form-data; boundary="+boundary;

	req.open('POST', v, true);
	req.setRequestHeader("Content-Type", srh);
	req.send(p);
}

var g_LoadServerTime=0;

function GameSessionTime(servertime,sstart,speriod,str_continue,str_begin)
{
	var cd = new Date();
	var ct=cd.getHours()*60*60+cd.getMinutes()*60+cd.getSeconds();
	if(g_LoadServerTime==0) g_LoadServerTime=ct;

	var st=servertime+ct-g_LoadServerTime;

	var hour_period=Math.floor(speriod/(60*60));
    if((speriod % (60*60))!=0) hour_period++;

    var t=st-sstart;
    if(t<0) t=24*60*60-sstart+st;

    t=t % (hour_period*60*60);

	var r="";
    if(t<speriod) {
		//t=speriod-t;
		r+=str_continue+": ";
	} else {
		t=hour_period*60*60-t;
		r+=str_begin+": ";
	}

	var v=Math.floor(t / (60*60));
	if(v<10) r+="0";
	r+=v+":";

	t=t % (60*60);
	v=Math.floor(t / 60);
	if(v<10) r+="0";
	r+=v+":";

	v=t % 60;
	if(v<10) r+="0";
	r+=v;

	return r;
}

