var tabterpilih = '';
var onprocess = false;
var page = '0';
var filter = '';
var infodiv = false;

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var xmlhttp = createRequestObject();

function getPage(page)
{
    sendRequest('rpc.php', 'hal=' + page, 'Loading data', 'isi');
}

function sendRequest(url, teks, message, target_id)
{
    if (!teks) return false;
    if (onprocess) return false;
    xmlhttp.open('post', url, true);
    xmlhttp.onreadystatechange = function() {
        if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))
        {
	     onprocess = false;
	    
             eval("var decoded_data = " + xmlhttp.responseText);
             if (decoded_data['error'].length)
             {
                document.getElementById("message").innerHTML = decoded_data['error'];
                document.getElementById("message").style.color = '#f00';
             }
             else
             if (decoded_data['message'].length)
             {
                document.getElementById("message").innerHTML = decoded_data['message'];
                document.getElementById("message").style.color = '#0a0';
             }
             if (decoded_data['isi'].length)
             {
                document.getElementById(target_id).innerHTML = decoded_data['isi'];
             }
             if (decoded_data['judul'].length)
             {
                document.title = decoded_data['judul'];
             }
             if (decoded_data['code_exec'].length)
             {
                eval(decoded_data['code_exec']);
             }
             document.getElementById("progress").style.visibility = 'hidden';
	     document.getElementById("progress").style.display = 'none';
        }
        return false;
    }
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send(teks);
    document.getElementById("message").style.innerHTML = '';
    document.getElementById("progress").innerHTML = message;
    document.getElementById("progress").style.visibility = 'visible';
    document.getElementById("progress").style.display = 'block';
    window.scroll(0, 0);
    onprocess = true;
    return false;
}

function openTab(tab, page, content_id)
{
    setTabHeight(tabterpilih, '25px');
    setTabHeight(tab, '26px');
    setTabBG(tabterpilih, 'b');
    setTabBG(tab, '');
    tabterpilih = tab;
    sendRequest('rpc.php', 'hal=' + page + '&tab=' + tab, 'Loading tab', content_id);
}

function setTabHeight(tabid, height)
{
    setHeight('a' + tabid, height);
    setHeight('b' + tabid, height);
    setHeight('c' + tabid, height);
}

function setHeight(divid, height)
{
    var v = document.getElementById(divid);
    if (v)
	v.style.height = height;
}

function setTabBG(tabid, bg)
{
    setBG('a' + tabid, 'images/tab_1' + bg + '.jpg');
    setBG('b' + tabid, 'images/tab_2' + bg + '.jpg');
    setBG('c' + tabid, 'images/tab_3' + bg + '.jpg');
}

function setBG(divid, bg)
{
    var v = document.getElementById(divid);
    if (v)
	v.style.background = 'url(' + bg + ')';
}

function refreshKode()
{
	switch(tabterpilih)
	{
		case 'Jadwal_Adzantab_utama' : refreshKodeAdzan(); break;
		case 'Random_Ayattab_utama' : refreshKodeAyat(); break;
		case 'Tanggal_Hijriahtab_utama' : refreshKodeHijriah(); break;
		case 'Asmaul_Husnatab_utama' : refreshAsmaulHusna(); break;
		case 'Countertab_utama' : refreshCounter(); break;
	}
}

function refreshKodeAdzan()
{
	var kota = document.getElementById('citylist').value;
	var jenis = document.getElementById('jenis');
	var tampilan = document.getElementById('tampilan');
	var panel = document.getElementById('panelimage');
	var fore = document.getElementById('fore').value;
	var back = document.getElementById('back').value;
	var border = document.getElementById('border').value;
	if (jenis.checked)
	{
		var tampilanstr = tampilan.checked ? "text1" : "text2";
		var kode = '&lt;script type="text/javascript" src="http://www.mahesajenar.com/scripts/adzan.php?kota='+kota+'&type='+tampilanstr+'" &gt; &lt;/script&gt;';
		document.getElementById("kodediv").innerHTML = kode;
		panel.style.display = 'none';
	}
	else
	{
		panel.style.display = 'block';
		var tampilanstr = tampilan.checked ? "image1" : "image2";
		var addparam = '';
		if (fore.length) addparam += '&text=' + fore.substring(1);
		if (back.length) addparam += '&bg=' + back.substring(1);
		if (border.length) addparam += '&border=' + border.substring(1);
		var kode = '&lt;img src="http://www.mahesajenar.com/scripts/adzan.php?kota='+kota+'&type='+tampilanstr+addparam+'" /&gt;';
		document.getElementById("kodediv").innerHTML = kode;
	}
	selectCode("kodediv");
}

function refreshKodeAyat()
{
	var jeda = document.getElementById('jeda').value;
	var jumlah = document.getElementById('jumlah').value;
	var jenis = document.getElementById('jenis');
	var panel = document.getElementById('panelimage');
	var panel2 = document.getElementById('paneltext');
	var fore = document.getElementById('fore').value;
	var back = document.getElementById('back').value;
	var border = document.getElementById('border').value;
	var surah = document.getElementById('surah').value;
	var lebar = document.getElementById('lebar').value;
	var tampilanstr = '';
	if (jenis.checked)
	{
		if (jeda >= 5)
		{
			tampilanstr = 'r=' + jeda;
			if ((jumlah >= 5) && (jumlah <= 100))
			{
				tampilanstr += '&n=' + jumlah;
			}
		}
		var kode = '&lt;script type="text/javascript" src="http://www.mahesajenar.com/scripts/ayat.php?'+tampilanstr+'" &gt; &lt;/script&gt;';
		document.getElementById("kodediv").innerHTML = kode;
		panel.style.display = 'none';
		panel2.style.display = 'block';
	}
	else
	{
		panel.style.display = 'block';
		panel2.style.display = 'none';
		var addparam = '';
		if (fore.length) addparam += '&text=' + fore.substring(1);
		if (back.length) addparam += '&bg=' + back.substring(1);
		if (border.length) addparam += '&border=' + border.substring(1);
		if (surah.length) addparam += '&sc=' + surah.substring(1);
		if (lebar > 10) addparam += '&c=' + lebar;
		var kode = '&lt;img src="http://www.mahesajenar.com/scripts/ayatimg.php?'+addparam+'" /&gt;';
		document.getElementById("kodediv").innerHTML = kode;
	}
	selectCode("kodediv");
}


function refreshAsmaulHusna()
{
	var jenis = document.getElementById('jenis');	
	var yesno1 = document.getElementById('nama');
	var yesno2 = document.getElementById('desc');
	var yesno3 = document.getElementById('addlink');
	var syesno1 = document.getElementById('yesno1');
	var syesno2 = document.getElementById('yesno2');
	var syesno3 = document.getElementById('yesno3');
	var lebar = document.getElementById('lebar').value;
	var panel = document.getElementById('panelimage');
	var panel2 = document.getElementById('paneltext');	
	var tampilanstr = '';
	var addparam = '';
	var imgparam = '';
	if (jenis.checked)
	{
		var fore = document.getElementById('fore2').value;
		var back = document.getElementById('back2').value;
		var border = document.getElementById('border2').value;
		var ket = document.getElementById('ket2').value;
		addparam = '&lt;style type="text/css"&gt;\n#asmaulhusna_div { padding: 5px; width: auto}\n'
		if (fore.length) addparam += '#asmaulhusna_asma { color:' + fore +'; }\n';
		if (back.length) addparam += '#asmaulhusna_div { background-color:' + back +'; }\n';
		if (border.length) addparam += '#asmaulhusna_div { border: 1px ' + border +' solid; }\n';
		if (ket.length) addparam += '#asmaulhusna_arti { color:' + ket +'; }\n';
		addparam += '&lt;/style&gt;\n';
		kode = addparam + '&lt;script type="text/javascript" src="http://www.mahesajenar.com/scripts/asmaulhusna.php?type=text"&gt;&lt;/script&gt;';
		panel.style.display = 'none';
		panel2.style.display = 'block';
	}
	else
	{
		var fore = document.getElementById('fore').value;
		var back = document.getElementById('back').value;
		var border = document.getElementById('border').value;
		var ket = document.getElementById('ket').value;		
		if (fore.length) addparam += '&text=' + fore.substring(1);
		if (back.length) addparam += '&bg=' + back.substring(1);
		if (border.length) addparam += '&border=' + border.substring(1);
		if (ket.length) addparam += '&desc=' + ket.substring(1);
		if (yesno1.checked) addparam += '&n=1';
		syesno1.innerHTML = yesno1.checked ? 'Ya' : 'Tidak';
		syesno2.innerHTML = yesno2.checked ? 'Ya' : 'Tidak';
		syesno3.innerHTML = yesno3.checked ? 'Ya' : 'Tidak';
		imgparam = lebar.length ? 'width="'+lebar+'"' : 'width="200"';
		if (yesno2.checked) addparam += '&k=1';
		var kode = '&lt;img src="http://www.mahesajenar.com/scripts/asmaulhusna.php?'+addparam+'" '+imgparam+' border="0" alt="Asmaul Husna" /&gt;';
		if (yesno3.checked)
			kode = '&lt;a href="http://www.mahesajenar.com/scripts/widgets/" title="Asmaul Husna"&gt;'+kode+'&lt;/a&gt;';
		panel.style.display = 'block';
		panel2.style.display = 'none';
	}
	document.getElementById("kodediv").innerHTML = kode;
	selectCode("kodediv");
}

function refreshKodeHijriah()
{
	var tz = document.getElementById('tz').value;
	var jenis = document.getElementById('jenis');
	var tampilan = document.getElementById('tampilan');
	var panel = document.getElementById('panelimage');
	var panel2 = document.getElementById('paneltext');
	var fore = document.getElementById('fore').value;
	var back = document.getElementById('back').value;
	var border = document.getElementById('border').value;
	if (jenis.checked)
	{
		var tampilanstr = tampilan.checked ? "jadwal" : "line";
		var kode = '&lt;script type="text/javascript" src="http://www.mahesajenar.com/scripts/hijriah.php?tz='+tz+'&type='+tampilanstr+'" &gt; &lt;/script&gt;';
		document.getElementById("kodediv").innerHTML = kode;
		panel.style.display = 'none';
		panel2.style.display = 'block';
	}
	else
	{
		panel.style.display = 'block';
		panel2.style.display = 'none';
		var addparam = '';
		if (fore.length) addparam += '&text=' + fore.substring(1);
		if (back.length) addparam += '&bg=' + back.substring(1);
		if (border.length) addparam += '&border=' + border.substring(1);
		var kode = '&lt;img src="http://www.mahesajenar.com/scripts/hijriah.php?tz='+tz+'&type=img'+addparam+'" /&gt;';
		document.getElementById("kodediv").innerHTML = kode;
	}
	selectCode("kodediv");
}

function refreshCounter()
{
	var jenis = document.getElementById('jenis');
	var panel = document.getElementById('panelimage');
	var fore = document.getElementById('fore').value;
	var back = document.getElementById('back').value;
	var border = document.getElementById('border').value;
	var lebar = document.getElementById('lebar').value;	
	var tanggal = document.getElementById('tanggal').value;
	var jam = document.getElementById('jam').value;
	var judul = escape(document.getElementById('judul').value);
	var tz = escape(document.getElementById('tz').value);
	if (jenis.checked)
	{
		var tampilanstr = 'text';
		var kode = '&lt;script type="text/javascript" src="http://www.mahesajenar.com/scripts/counter.php?t='+tanggal+' '+jam+'&j='+judul+'&tz='+tz+'&type='+tampilanstr+'" &gt; &lt;/script&gt;';
		document.getElementById("kodediv").innerHTML = kode;
		panel.style.display = 'none';
	}
	else
	{
		panel.style.display = 'block';
		var tampilanstr = 'image';
		var addparam = '';
		if (fore.length) addparam += '&text=' + fore.substring(1);
		if (back.length) addparam += '&bg=' + back.substring(1);
		if (border.length) addparam += '&border=' + border.substring(1);
		if (lebar > 10) addparam += '&c=' + lebar;
		var kode = '&lt;img src="http://www.mahesajenar.com/scripts/counter.php?t='+tanggal+' '+jam+'&j='+judul+'&tz='+tz+'&type='+tampilanstr+addparam+'" /&gt;';
		document.getElementById("kodediv").innerHTML = kode;
	}
	selectCode("kodediv");
}

function goPreview()
{
    var tDiv = document.getElementById("kodediv");
    var FirstElement = tDiv.firstChild;
    var v = FirstElement.nodeValue;
    var tFrame = document.getElementById("previewdiv");
    var doc = tFrame.contentDocument;
    if (doc == undefined || doc == null)
          doc = tFrame.contentWindow.document;
	v = '<html><body>'+v+'</body></html>';
    doc.open();
    doc.write(v);
    doc.close();
}

function selectCode(objId)
{
    deselectCode();
    if (document.selection) 
    {
       var range = document.body.createTextRange();
       range.moveToElementText(document.getElementById(objId));
       range.select();
    }
    else if (window.getSelection) 
    {
       var range = document.createRange();
       range.selectNode(document.getElementById(objId));
       window.getSelection().addRange(range);
    }
}

function deselectCode() 
{
    if (document.selection)
        document.selection.empty();
    else if (window.getSelection)
        window.getSelection().removeAllRanges();
}


function showInfo(link)
{
	if (!infodiv)
	{
		infodiv = document.createElement('DIV');
		infodiv.id = 'infodiv';
		infodiv.className = 'floatdiv';
		infodiv.style.display='none';
		document.body.appendChild(infodiv);
		sendRequest('rpc.php', 'tab=getinfo', 'Loading info', 'infodiv');
		infodiv.innerHTML = 'Loading info...';
		infodiv.style.left = getLeftPos(link) + 30 + 'px';
		infodiv.style.top = getTopPos(link) + link.offsetHeight + 2 + 'px';
	}
	if (infodiv.style.display=='none')
		infodiv.style.display='block';
}

function hideInfo()
{
	if (infodiv)
		infodiv.style.display='none';
}


// retrieve object's absolute Y position	
function getTopPos(inputObj)
{
	var returnValue = inputObj.offsetTop;
	while((inputObj = inputObj.offsetParent) != null){
		returnValue += inputObj.offsetTop;
	}
	return returnValue;
}

// retrieve object's absolute X position
function getLeftPos(inputObj)
{
	var returnValue = inputObj.offsetLeft;
	while((inputObj = inputObj.offsetParent) != null) returnValue += inputObj.offsetLeft;
	return returnValue;
}
