var Cacoo=Cacoo||{};
Cacoo.settings={baseUrl:""};
Cacoo.Messages={regexp:/\{(\d)\}/g,get:function(B,D){var A=Array.prototype.slice.apply(arguments);
var B=A.shift();
var C=Cacoo.Resources[B];
return C&&C.replace(this.regexp,function(){return A[arguments[1]]||""
})
}};
Cacoo.notify=function(D,A){if(!D||D.length==0){return 
}var B=$.extend({color:"#fff",fontSize:"1.5em",background:"#ef63a2",top:"250px",padding:"10px 0",margin:"0",speed:500,opacity:0.9,wait:2000},A);
var C=$("<div>");
C.css({position:"absolute",top:B.top,left:"0px",width:"100%","font-size":B.fontSize,"text-align":"center",color:B.color,background:B.background,padding:B.padding,margin:B.margin,opacity:B.opacity,"z-index":9999,display:"none"});
C.text(D);
$("body").append(C);
setTimeout(function(){C.fadeIn(B.speed)
},0);
setTimeout(function(){C.fadeOut(B.speed,function(){$(this).remove()
})
},B.wait)
};
Cacoo.ajax=function(D){var C=D.success;
var B=D.error;
D.success=function(G,E){if(C){var F=G?$.secureEvalJSON(G):"";
C(F,E)
}};
D.error=function(F,H,G){var E=F.responseText;
if(B&&!B(E?$.secureEvalJSON(E):"")){return 
}switch(F.status){case 0:A(Cacoo.Messages.get("serverNotConnected"));
break;
case 401:A(Cacoo.Messages.get("unauthorized"));
break;
case 400:A(Cacoo.Messages.get("badRequest"));
break;
default:A(Cacoo.Messages.get("applicationError",F.status));
break
}};
$.ajax(D);
function A(E){Cacoo.notify(E,{background:"#ff9999"})
}};
Cacoo.clone=function(B){var A=function(){};
A.prototype=B;
return new A
};
Cacoo.findIndex=function(C,B){for(var A=0;
A<C.length;
A++){if(B(C[A])){return A
}}return -1
};
Cacoo.parseQueryString=function(A){var I={};
var E=A.indexOf("?");
if(E<0){return I
}var B=A.slice(E+1).split("&");
for(var D=0;
D<B.length;
D++){var C=B[D].split("=");
var H=C[0];
var F=decodeURIComponent(C[1]);
var G=I[H];
if(G){G.push(F)
}else{I[H]=[F]
}}return I
};
Cacoo.buildQueryString=function(E){E=E||{};
var D="?";
for(var C in E){var A=Array.prototype.concat(E[C]);
for(var B=0;
B<A.length;
B++){D+=C;
D+="=";
D+=encodeURIComponent(A[B]);
D+="&"
}}return D.substring(0,D.length-1)
};
Cacoo.removeQueryString=function(B){var A=B.lastIndexOf("?");
if(A<0){return B
}return B.substring(0,A)
};