﻿
function getPostsForCategory(categoryID)
{
    //remove the current target results
    clearTarget();
    if (categoryID == 0) return;
    toggleWaiting();
    var url = 'services/BlogService.svc/GetPostsForCategory';
    var oArgs = '{"CategoryID" : ' + categoryID + '}';
    makeAjaxRequest(url, oArgs, 'blogpostselectresults');
}

var xmlHttp = oResponseTarget = null;
function initXmlHttp()
{
    try
    {
        xmlHttp = new XMLHttpRequest();
    }
    catch (e)
    {
        try
        {
            xmlHttp = new ActiveXObject('Microsoft.XmlHttp');
        }
        catch (e)
        {
            alert('Your browser doesn\'t support AJAX.  Feature unavailable.');
            return;
        }
    }
}

function makeAjaxRequest(url, oArgs, targetID, oTarget)
{
    //make sure there is a target
    if (oTarget) oResponseTarget = oTarget
    else oResponseTarget = document.getElementById(targetID);
    if (oResponseTarget == null) {
        alert('No target specified for result');
        return;
    }
    //make sure the XMLHttpRequest object is initialized
    if (xmlHttp == null) initXmlHttp();
    // Send the HTTP request
    xmlHttp.open('POST', url, true);
    xmlHttp.setRequestHeader('Content-type', 'application/json');
    xmlHttp.send(oArgs);
    //set the result handler - must do this here because IE forgets
    xmlHttp.onreadystatechange= setTargetHTML;
}

function setTargetHTML() {
     if(xmlHttp.readyState == 4)
     {
          var result = null;
          result = deserialize(xmlHttp.responseText);
          if (oResponseTarget.tagName == 'INPUT' || oResponseTarget.tagName == 'TEXTAREA') oResponseTarget.value = result.d;
          else oResponseTarget.innerHTML = result.d;
          toggleWaiting();
     }
}

function clearTarget() {
    if (oResponseTarget == null) return;
          if (oResponseTarget.tagName == 'INPUT' || oResponseTarget.tagName == 'TEXTAREA') oResponseTarget.value = '';
          else oResponseTarget.innerHTML = '';
}

var oWaiting = null;
function toggleWaiting() {
    if (oWaiting == null) oWaiting = document.getElementById('waiting');
    oWaiting.style.display = (oWaiting.style.display == 'none') ? 'block' : 'none';
}

//the following is lifted out of the script autogenerated by the scriptmanager and cleaned up
function deserialize(data) {
    var _dateRegEx = new RegExp('(^|[^\\\\])\\"\\\\/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)\\\\/\\"', 'g');
    var exp = data.replace(_dateRegEx, "$1new Date($2)");
    return eval('(' + exp + ')');
}