//*****************************************************************************
// Copyright 2007 - 2009 Starscale Inc.

$.ajaxSetup({timeout:10000});ibi.assertNamespace("ibi.Ajax");ibi.Ajax.ExpectedLoggedIn=null;ibi.Ajax.LastKnownServerTime=null;ibi.Ajax.Request=function(options){var appErrorFunc=options.error||function(){}
options.error=function(xhr,textStatus,error){if(xhr.status==403){window.location.reload();}else{appErrorFunc(xhr,textStatus,error);}};if(options.data==undefined){options.data=null;}
$.ajax(options);};ibi.Ajax.PhixRequest=function(phix,success,error,opts){var options={type:"POST"};$.extend(options,opts);options.url=phix.uriPath;options.dataType='json';options.dataFilter=function(data,type){if(type=="json"&&data.substr(0,2)=="/*"){return data.substring(2,data.length-2);}else{return data;}}
options.success=function(data,textStatus){if(data.Status==phix.Status.Success){return success(data);}else{return error(data.Status);}};options.error=function(request,status,excp){return error(phix.Status.GeneralFailure,request,status,excp);};ibi.Ajax.Request(options);};ibi.Ajax.UIPhixRequest=function(idPrefix,phix,success,error,options){if(idPrefix.charAt(0)!="#"){idPrefix="#"+idPrefix;}
var mainDiv=$(idPrefix);var progDiv=$(idPrefix+"Progress");var errDiv=$(idPrefix+"Error");if(mainDiv.length==0||progDiv.length==0||errDiv.length==0){throw"ibi.Ajax.UIPhixRequest missing elements in DOM for "+idPrefix;}
mainDiv.hide();errDiv.hide();progDiv.show();var errFunc=function(status){if(typeof(error)=='string'){errDiv.html(error);}else{var leaveUI=error(status,errDiv);}
if(!leaveUI){errDiv.show();progDiv.hide();}}
var succFunc=function(json){if(success){var leaveUI=success(json,mainDiv);}
if(!leaveUI){mainDiv.show();progDiv.hide();}}
ibi.Ajax.PhixRequest(phix,succFunc,errFunc,options);};