//var xmlhttp =  createRequestObject();
var xmlhttp =  null;
var refresh_time = 1000;
var req_timer;
var upload_inprogress = false;
var req_inprogress = false;
var getinfo = false;
var ajax_canceled = false;
var succeeded = false;
var searching = false;
var sendtofriend = false;

var iTotal, iRead, iStatus, sessionid, dtstart;

function enableControls(active)
{
      var form = document.forms[0];
      for(i = 0; i < form.length; i++)
      {
          form.elements[i].disabled = !active;
      }
}

function check_types() {
        var allowed_type = /(\.jpg)|(\.gif)|(\.jpeg)$/i;
        var fieldname = /^filename/;
		var empty_check = false;
        with(document.forms[0])
        {
                for(i=0 ; i < elements.length ; i++)
                {
                        if(!elements[i].value.match(allowed_type) &&
                            elements[i].name.match(fieldname) &&
                            elements[i].value.length)
                        {
                                alert('File yang bisa diupload: .jpg, .jpeg, atau .gif');
                                return false;
                        }

						if (elements[i].name.match(fieldname) && elements[i].value.length > 2)
						{
							empty_check = true;
						}
                }
        }

		// checking if no file will uploaded
		if (empty_check === false)
		{
			alert('Tidak ada foto yang akan di-upload. Silahkan klik Browse untuk memilih foto yang akan di-upload');
			return false;
		}

        return true;
}

function beginUpload()
{
		if (checkEmail('uEmail') === false)
			return false;

		if (getCheckedValue(document.forms['fupload'].elements['pornStat']) == "-1")
		{
			alert ('Kategorikan foto Anda dengan benar apakah mengandung pornografi atau tidak. Foto yang tidak benar kategorinya akan dihapus.');
			return false;
		}

        if (check_types() === false)
                return false;

        // after images are uploaded
        if (succeeded)
        {
            var currentTime = new Date();
            var hours = currentTime.getHours();
            var minutes = currentTime.getMinutes();
            var sec = currentTime.getSeconds();
            var randomnumber = Math.floor(Math.random()*11);
            document.location='index.php?category='+ document.getElementById('category').value +'&uEmail='+ document.getElementById('uEmail').value +'&h='+randomnumber+'_'+minutes+'&m='+hours+'_'+sec;
            return false;
        }

        if (upload_inprogress) return;

        sessionid = document.forms[0].sessionid.value;
        iTotal = -1;
        iRead = 0;
        iStatus = 1;
        dtstart = -1;

        document.getElementById("begin").disabled = true;

        document.location = '#successbar';
        document.getElementById("waitmsg").innerHTML = "Silahkan tunggu.. sedang proses..";
        document.getElementById("status").innerHTML = "";

		var tempDiv = document.getElementById("progresslayer").innerHTML;
		document.getElementById("progresslayer").innerHTML = '';
		document.getElementById("resultlayer").innerHTML = '';
        document.getElementById("resultlayer").innerHTML = tempDiv;

        req_inprogress = false;
        req_timer = setInterval("refreshProgress()", refresh_time);
        getinfo = false;
        document.forms[0].submit();
}

// create object
function createRequestObject() {

/*
    var ro = null;
	if (typeof XMLHttpRequest != "undefined") {
		ro = new XMLHttpRequest();
	} else {
		try {
			ro = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				ro = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {
			}
		}
	}

	return ro;
*/

	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// this should work for all browsers except IE6 and older
	try {
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	}
	catch(e) {
		// assume IE6 or older
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
			try {
				// try to create XMLHttpRequest object
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch (e) {}
		}
	}
	// return the created object or display an error message
	if (!xmlHttp)
		alert("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp;
}

function submitRequest(reqList)
{
	xmlhttp = createRequestObject();

	try
	{
		/* The callback function */
		xmlhttp.onreadystatechange = responseHandler;

		xmlhttp.open('get', reqList, true);

	}
	catch (e)
	{
		alert('Catch: '+ e);
	}

    xmlhttp.send(null);
	return false;
}

function responseHandler()
{
   if (ajax_canceled) return;
   if (xmlhttp.readyState == 4)
   {
       req_inprogress = false;
       if (xmlhttp.status == 200)
       {
           if (getinfo)
           {
               showInfo(xmlhttp.responseText);
           }
           else if (searching)
           {
               displayPage(xmlhttp.responseText);
           }
           else if (sendtofriend)
           {
                  responseInfo(xmlhttp.responseText);
           }
           else
           {
               readResponse(xmlhttp.responseText);
           }
       }
	   else
	   {
		   alert("error: "+ xmlhttp.status);
	   }
   }
   else
	{
	   //alert("error: "+ xmlhttp.readyState);
	}
}

function refreshProgress() {
    if (req_inprogress) return;

    var reqList = '/cgi-bin/progress.cgi';
    reqList += "?iTotal=" + escape(iTotal);
    reqList += "&iRead=" + escape(iRead);
    reqList += "&iStatus=" + escape(iStatus);
    reqList += "&sessionid=" + escape(sessionid);
    reqList += "&dtstart=" + escape(dtstart);
    req_inprogress = true;
    submitRequest(reqList);
}

function readResponse(responseText) {
    var items = new Array();
    // response is: iTotal|iRead|iStatus|dtstart|percent|msg
    items = responseText.split("|");

    iTotal = items[0];
    iRead = items[1];
    iStatus = items[2];
    dtstart = items[3];

    var percent = items[4];
    var msg = items[5];

    if (iStatus == "2")
    {
        // completed
        clearInterval(req_timer);
		var tempDiv = document.getElementById("successlayer").innerHTML;
		document.getElementById("successlayer").innerHTML = '';
		document.getElementById("resultlayer").innerHTML = '';
        document.getElementById("resultlayer").innerHTML = tempDiv;

        getinfo = true;
        var reqURL = "/getinfo.php?uEmail="+ escape(document.getElementById('uEmail').value) +"&pornStat="+ escape(getCheckedValue(document.forms['fupload'].elements['pornStat'])) +"&i=" + sessionid;
        submitRequest(reqURL);
    }
    else
    if (iStatus == "4")
    {
        // completed with error
        clearInterval(req_timer);
        enableControls(false);
        document.getElementById("begin").disabled = false;
        document.getElementById("begin").value = "Upload Foto Lain";
        upload_inprogress = false;
        succeeded = true;
		var tempDiv = document.getElementById("successlayer").innerHTML;
		document.getElementById("successlayer").innerHTML = '';
		document.getElementById("resultlayer").innerHTML = '';
        document.getElementById("resultlayer").innerHTML = tempDiv;
        document.getElementById("successbar").innerHTML = "Upload key is incorrect";
    }
    else
    {
        // update progress
        if (percent > 5)
            document.getElementById("progressbar").style['width'] = percent+'%';
        else
            document.getElementById("progressbar").style['width'] = '5%';
        items = percent.split(".");
        percent = items[0];
        if (items.length > 1)
            percent += '.' + items[1].substr(0,2);
        document.getElementById("progressvalue").innerHTML = percent+'%';
        document.getElementById("status").innerHTML = msg;
    }
}

function showInfo(responseText)
{
    var items = new Array();
    // response is: status|msg
    items = responseText.split("|");
    enableControls(false);
    document.getElementById("begin").disabled = false;
    document.getElementById("begin").value = "Upload Foto Lain";
    upload_inprogress = false;
    succeeded = true;
    if (items[0] == "OK")
    {
        document.getElementById("successbar").innerHTML = responseText.substring(3, responseText.length - 3);
    }
    else
    {
        document.getElementById("successbar").innerHTML = responseText;
    }
    
    document.location = '#successbar';
}

function goSearch()
{
         var txt = document.getElementById("txtsearch").value;
         if (!txt.length)
         {
              alert('no text to search');
              return false;
         }
         searching = true;
         var reqURL = "imagesearch.php?page=0&txt=" + txt;
         submitRequest(reqURL);
         return false;
}

function changePage(url)
{
         searching = true;
         var reqURL = "imagesearch.php?" + url;
         submitRequest(reqURL);
}

function displayPage(responseText)
{
         document.getElementById("searchresult").innerHTML = responseText;
         searching = false;
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "-1";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "-1";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}

	return "-1";
}

function checkEmail(myID) {

	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/.test(document.getElementById(myID).value))
	{
		return true;
	}

	alert("Email Anda tidak valid, silahkan cek kembali email Anda.");

	return false;
}

function changeDisplay(id) {

	var f = document.getElementById('fnumber');
	if (!f)
	{
		fnumber = 20;
	}
	else
	{
		fnumber = f.value;
	}

	for (j = 1; j <= fnumber; j++)
	{
		for (i = 1; i <= 5; i++)
		{
			var d = document.getElementById('link'+ i +''+ j);
			if (d)
				d.style.display = 'none';

			var a = document.getElementById('alink'+ i +''+ j);
			if (a)
				a.style.fontWeight = 'normal';
		}
	}

	var dis = document.getElementById(id);
	dis.style.display = (dis.style.display == 'inline' ? 'none' : 'inline');
	var disa = document.getElementById('a'+ id);
	disa.style.fontWeight = 'bold';
}

/*
 * 
*/
 function sendToFriendData(button) {
  
      var name = document.getElementById('nameFriend').value;
      var email = document.getElementById('emailFriend').value
      var url = document.getElementById('url').value;
      var allow = false;
      var allow2 = false;
      var copy = 0;
      if (document.getElementById('idcopy').checked)
      {
            copy = 1;
      }
      
      if (name == '')
      {
          boxError('sendToFriend', 'Nama tidak boleh kosong.');
          return false;
      }
      /* set name sender to cookie, set it to 30 minutes*/
      createCookie2('cSenderTmp', name, 30);
        
      
      if (email == '')
      {
          boxError('sendToFriend', 'Email tidak boleh kosong.');
          return false;
      }
      
      /* set email to cookie, set it to 30 minutes*/
      createCookie2('cEmailTmp', email, 30);
      
      var variable = 'a=sendtofriend&name='+ name +'&email='+ email +'&url='+ url +'&copy='+ copy;
      for (i = 1; i <= 5; i++)
      {
          var x = document.getElementById('recipient'+ i).value;
          variable += '&recipient'+ i +'='+ x;
          
          if (x != '')
          {
              createCookie2('cDestNameTmp'+ i, x, 30);
              allow = true;
          }
      }
      for (i = 1; i <= 5; i++)
      {
          var y = document.getElementById('rem'+ i).value;
          variable += '&rem'+ i +'='+ y;

          if (y != '')
          {
              createCookie2('cDestEmailTmp'+ i, y, 30);
              allow2 = true;
          }
      }
      
      if ((! allow) || (! allow2))
      {
          boxError('sendToFriend', 'Nama dan Email tujuan tidak boleh kosong.');
          return false;
      }
    
    button.disabled = true;
    button.value = '  Proses...';
    sendtofriend = true;
    submitRequest('/services.php?'+ variable);
    
    return true;
 }

/*
      read cookie
*/ 
function readCookie(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;
}

 /*
        Create cookie by minutes
*/ 
function createCookie2(name,value,minute)
{
	if (minute)
	{
		var date = new Date();
		date.setTime(date.getTime()+(minute*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/; domain=kapanlagi.com";
}

/*
        set default email from cookie (cookie will deleted where it goes 30 minutes
        to1 = sender
        to2 = email
*/
function setEmailSender(cookie1, cookie2, to1, to2) {
        if (readCookie(cookie1) != null)
        {
                var senderFriend = document.getElementById(to1);
                if (senderFriend) senderFriend.value = readCookie(cookie1);
        }
        if (readCookie(cookie2) != null)
        {
                var emailFriend = document.getElementById(to2);
                if (emailFriend) emailFriend.value = readCookie(cookie2);
        }
}

 /*
    show message with red color
 */
 function boxError(id, msg) {
      document.getElementById(id).innerHTML = '<div style="background:#FF0000; color: #FFFFFF; padding:2px;">'+ msg +'</div>';
 }


/*
      view info
*/
function responseInfo(response) {
      document.getElementById('sendToFriend').innerHTML = response;
      sendtofriend = false;
      var button = document.getElementById('submitform');
      button.disabled = false;
      button.value = '   Kirim   ';
}

function sshowimg() {
      var big_title = "Klik untuk melihat ukuran sebenarnya.";
      var small_title = "Klik untuk melihat standard.";
      
      var img_div = document.getElementById("img_div");
      if (img_div && real_image > 800) {
            var img_width = img_div.style.width.replace(/[^0-9]/g, "");
            if (img_width == real_image) {
                  img_div.style.width = "800";
                  img_div.title = big_title;
                  img_div.alt = big_title;
            }
            else {
                  img_div.style.width = real_image;
                  img_div.title = small_title;
                  img_div.alt = small_title;
            }
      }
}