function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
  var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  for (i=1; i<a.length;i=i+4){
    if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
    o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
    o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
    v=o.value;t=a[i+2];
    if (o.type=='text'||o.type=='password'||o.type=='hidden'){
      if (r&&v.length==0){err=true}
      if (v.length>0)
      if (t==1){ //fromto
        ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
      } else if (t==2){
        rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
      } else if (t==3){ // date
        ma=a[i+1].split("#");at=v.match(ma[0]);
        if(at){
          cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
          dte=new Date(cy,cm,cd);
          if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
        }else{err=true}
      } else if (t==4){ // time
        ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
      } else if (t==5){ // check this 2
            if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!o1.checked){err=true}
      } else if (t==6){ // the same
            if(v!=MM_findObj(a[i+1]).value){err=true}
      }
    } else
    if (!o.type&&o.length>0&&o[0].type=='radio'){
          at = a[i].match(/(.*)\[(\d+)\].*/i);
          o2=(o.length>1)?o[at[2]]:o;
      if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
      if (t==2){
        oo=false;
        for(j=0;j<o.length;j++){oo=oo||o[j].checked}
        if(!oo){s+='* '+a[i+3]+'\n'}
      }
    } else if (o.type=='checkbox'){
      if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
    } else if (o.type=='select-one'||o.type=='select-multiple'){
      if(t==1&&o.selectedIndex/1==0){err=true}
    }else if (o.type=='textarea'){
      if(v.length<a[i+1]){err=true}
    }
    if (err){s+='* '+a[i+3]+'\n'; err=false}
  }
  if (s!=''){alert('Data diperlukan:\t\t\t\t\t\n\n'+s)}
  document.MM_returnValue = (s=='');
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function goDelQuestion(qid,mid,divid) {
    if (confirm('Hapus Pertanyaan Ini? Anda Yakin?')) {
		
		var theUL = document.getElementById('qlist_'+divid); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-delete-question.php?qid='+qid+'&mid='+mid+'&divid='+divid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
	}
}

function goDelDetQuestion(qid,mid) {
    if (confirm('Hapus Pertanyaan Ini? Anda Yakin?')) {
		
		var theUL = document.getElementById('btn-reply-div'); // the UL
		theUL.innerHTML = '<p>Pertanyaan ini telah dihapus. (-3 Poin)</p>';
		
		xmlhttp.open('get', '/aj-delete-detail-question.php?qid='+qid+'&mid='+mid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
		Hide('q-owner-bar');
		Hide('b_reply');
		
	}
}

function goCloseQuestion(qid,mid,divid,ratingval,casereply) {
    if (confirm('Tutup Pertanyaan Ini? Anda Yakin?')) {
		
		var theUL = document.getElementById('qlist_'+divid); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-close-question.php?qid='+qid+'&mid='+mid+'&divid='+divid+'&rating='+ratingval+'&casereply='+casereply);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
	}
}

function goCloseDetQuestion(qid,mid) {
    if (confirm('Tutup Pertanyaan Ini? Anda Yakin?')) {
		
		var theUL = document.getElementById('btn-reply-div'); // the UL
		theUL.innerHTML = '<p>Pertanyaan ini telah ditutup.</p>';
		
		xmlhttp.open('get', '/aj-close-detail-question.php?qid='+qid+'&mid='+mid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
		Hide('b_reply');
		
	}
}

function goOpenQuestion(qid,mid,divid,ratingval,casereply) {
    if (confirm('Buka Kembali Pertanyaan Ini? Anda Yakin?')) {
		
		var theUL = document.getElementById('qlist_'+divid); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-open-question.php?qid='+qid+'&mid='+mid+'&divid='+divid+'&rating='+ratingval+'&casereply='+casereply);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
	}
}

function goOpenDetQuestion(qid,mid) {
    if (confirm('Buka Kembali Pertanyaan Ini? Anda Yakin?')) {
		
		var theUL = document.getElementById('btn-reply-div'); // the UL
		theUL.innerHTML = '<p>Pertanyaan ini telah dibuka kembali.</p>';
		
		xmlhttp.open('get', '/aj-open-detail-question.php?qid='+qid+'&mid='+mid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
		Show('b_reply');
		
	}
}

function goDelReply(qid,repid,mid,divid) {
	if (confirm('Hapus Jawaban Anda? Anda Yakin?')) {
		
		var theUL = document.getElementById('reply_bar_'+divid); // the UL
		theUL.innerHTML = '<div class="loading replylist">Menghapus.....</div>';
		
		xmlhttp.open('get', '/aj-delete-reply.php?qid='+qid+'&repid='+repid+'&mid='+mid+'&divid='+divid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
	}
}

function goEditReply(qid,repid,mid,divid) {
	
	var theUL = document.getElementById('reply_bar_'+divid); // the UL
	theUL.innerHTML = '<div class="loading replylist"></div>';
		
	xmlhttp.open('get', '/aj-edit-reply-form.php?qid='+qid+'&repid='+repid+'&mid='+mid+'&divid='+divid);
    xmlhttp.onreadystatechange = handleResponse;
    xmlhttp.send(null);
		
}

function goUpdateReply(form,qid,mid,repid) {

	// Check if user input the right data
	var reperrors=''
	if (form.gd_edit_reply.value.length < 20){ reperrors += '- Jawaban terlalu singkat, minimal 20 karakter..\n' }
	if (reperrors) alert('Data diperlukan:\n'+reperrors);
	
	if (!reperrors) {
	
		oldActiveField ="gd_edit_valreply"; oldIndex=0;
		theActiveField ="gd_edit_valreply"; theIndex=0;
		theValue	= '';
		theForm 	= document.frmEditReply;
		theValue	= theForm.gd_edit_reply.value;
		eval('theForm.'+oldActiveField+'.value=theValue');
		
		//alert('Name:    '+theForm.gd_edit_valreply.value);
		
		var theReply = theForm.gd_edit_valreply.value;
		
		var newReply = theReply.replace(
		new RegExp( "\\n", "g" ),
		"[xnline]"
		);
		
		var theUL = document.getElementById('rep_askboxtitle_'+repid); // the UL
		theUL.innerHTML = '<div class="loading archivelist">Mengupdate Jawaban...</div>';
		
		xmlhttp.open('get', '/aj-edit-reply-action.php?qid='+qid+'&mid='+mid+'&repid='+repid+'&reply='+newReply);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
		
		Hide('box_reply_form');
	
	}
	
}

function goReply(form,qid,mid) {

	// Check if user input the right data
	var errors=''
	if (form.gd_reply.value.length < 20){ errors += '- Jawaban terlalu singkat, minimal 20 karakter..\n' }
	if (errors) alert('Data diperlukan:\n'+errors);
	
	if (!errors) {
	
		oldActiveField ="gd_valreply"; oldIndex=0;
		theActiveField ="gd_valreply"; theIndex=0;
		theValue	= '';
		theForm 	= document.frmReply;
		theValue	= theForm.gd_reply.value;
		eval('theForm.'+oldActiveField+'.value=theValue');
		
		//alert('Name:    '+theForm.gd_valreply.value);
		
		var theReply = theForm.gd_valreply.value;
		
		var newReply = theReply.replace(
		new RegExp( "\\n", "g" ),
		"[xnline]"
		);
		
		var theUL = document.getElementById('b_reply'); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-add-reply.php?qid='+qid+'&mid='+mid+'&reply='+newReply);
    	xmlhttp.onreadystatechange = handleResponse;
		Element.hide('new_reply'); new Effect.Appear('new_reply');
    	xmlhttp.send(null);
		
		Hide('b_reply');
	
	}
	
}

function goShowCat() {

	var theUL = document.getElementById('catnav'); // the UL
	theUL.innerHTML = '<div class="loading-nav"><div class="loading-nav-in"></div></div>';
	
	xmlhttp.open('get', '/aj-view-cat.php');
	xmlhttp.onreadystatechange = handleResponse;
	xmlhttp.send(null);

}

function goShowSubCat(catid) {

	var theUL = document.getElementById('catnav'); // the UL
	theUL.innerHTML = '<div class="loading-nav"><div class="loading-nav-in"></div></div>';
	
	xmlhttp.open('get', '/aj-view-subcat.php?catid='+catid);
	xmlhttp.onreadystatechange = handleResponse;
	xmlhttp.send(null);
	
}

function goRefreshFrontPage() {

	xmlhttp.open('get', '/aj-refresh-index.php');
	xmlhttp.onreadystatechange = handleResponse;
	xmlhttp.send(null);

}

var secs
var timerID = null
var timerRunning = false
var delay = 1000

function InitializeTimer()
{
    // Set the length of the timer, in seconds
    secs = 20
    StopTheClock()
    StartTheTimer()
}

function StopTheClock()
{
    if(timerRunning)
        clearTimeout(timerID)
    timerRunning = false
}

function StartTheTimer()
{
    if (secs==0)
    {
        StopTheClock()
        // Here's where you put something useful that's
        // supposed to happen after the allotted time.
        // For example, you could display a message:
        goRefreshFrontPage();
		InitializeTimer();
    }
    else
    {
        self.status = secs
        secs = secs - 1
        timerRunning = true
        timerID = self.setTimeout("StartTheTimer()", delay)
    }
}

function goAddPoinReplyPlus(qid,repid,mid,divid) {
	if (confirm('Berikan Nilai + Untuk Jawaban Ini?')) {
		
		var theUL = document.getElementById('reply_bar_'+divid); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-add-reply-poin-plus.php?qid='+qid+'&repid='+repid+'&mid='+mid+'&divid='+divid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
	}
}

function goAddPoinReplyMin(qid,repid,mid,divid) {
	if (confirm('Berikan Nilai - Untuk Jawaban Ini?')) {
		
		var theUL = document.getElementById('reply_bar_'+divid); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-add-reply-poin-min.php?qid='+qid+'&repid='+repid+'&mid='+mid+'&divid='+divid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
	}
}

function goAddBestReply(qid,repid,mid,divid) {
	if (confirm('Pilih Jawaban Ini Sebagai Jawaban Terbaik?')) {
		
		var theUL = document.getElementById('reply_bar_'+divid); // the UL
		theUL.innerHTML = '<div class="loading archivelist"></div>';
		
		xmlhttp.open('get', '/aj-add-reply-best.php?qid='+qid+'&repid='+repid+'&mid='+mid+'&divid='+divid);
    	xmlhttp.onreadystatechange = handleResponse;
    	xmlhttp.send(null);
	}
}