// http://www.dexign.net/post/2008/07/16/jQuery-To-Call-ASPNET-Page-Methods-and-Web-Services.aspx

function PageMethod(pagePath, fn, paramArray, successFn, errorFn) {
	if (pagePath == '/')	// Override for default
		pagePath = 'default.aspx';
		
	if (pagePath.indexOf("http://") == -1)
		pagePath = 'http://' + window.location.host + '/' + pagePath

	var paramList = '';
	if (paramArray.length > 0)
	{
		for (var i=0; i<paramArray.length; i+=2)
		{
			if (paramList.length > 0) paramList += ',';
			paramList += '"' + paramArray[i] + '":"' + paramArray[i+1].replace(/"/g, '\\\"') + '"';
		}
	}
	paramList = '{' + paramList + '}';
	
	//Call the page method
	$.ajax({
	    type: "POST",
	    url: pagePath + '/' + fn,
	    contentType: "application/json; charset=utf-8",
	    data: paramList,
	    dataType: "json",
	    success: successFn,
	    error: errorFn
	})
;}

function GenericFail(xml, options, msg) {
	alert(xml.statusText + ": " + xml.responseText + " - " + options + " / " + msg.d);
}

function PopulateDDL(ddl_ID, response) {
	var myObject= eval("("+response.d+")");
	$("#" + ddl_ID + ">option").remove();
	for (var i=0;i<=myObject.length-1;i++) { 
		$("#" + ddl_ID).append($('<option></option>').val(myObject[i].ID).html(myObject[i].Value));
	}
}
