
var bIsIE=(navigator.userAgent.toLowerCase().indexOf('msie')!=-1)?true:false;function GenId(){return "ID"+parseInt(Math.random()*1000000);};function Get(oObj){return typeof oObj=='string'?document.getElementById(oObj):oObj;};function AddTo(sHtml,oElem){var x=oElem?Get(oElem):document.body;var oDiv=document.createElement('div');oDiv.innerHTML=sHtml.join?sHtml.join(''):sHtml;while(oDiv.childNodes.length>0)x.appendChild(oDiv.childNodes[0]);return x;};function Remove(oArr){oArr=oArr instanceof Array?oArr:[oArr];for(var i=0,l=oArr.length;i<l;i++){var oEl=Get(oArr[i]);if(oEl&&oEl.parentNode)oEl.parentNode.removeChild(oEl);}};function HNamespace(){};HNamespace.Define=function(sNamespace,vBlock){if(!sNamespace)return;var aComplexName=sNamespace.split(".");var sCurrentNS,oCurrentNS=window;for(var i=0;i<aComplexName.length;i++){sCurrentNS=aComplexName[i];if(oCurrentNS[sCurrentNS]){oCurrentNS=oCurrentNS[sCurrentNS];}else{oCurrentNS[sCurrentNS]=(i==aComplexName.length-1)?(vBlock?vBlock:{}):{};oCurrentNS=oCurrentNS[sCurrentNS];oCurrentNS.__globalName__="";oCurrentNS.__localName__=sCurrentNS;}}};function GInstanceOf(oObject,oClass){while(oObject!=null){if(oObject==oClass.prototype)return true;oObject=oObject.__proto__;};return false;};function GSafeDelete(oObject){if(!oObject)return;if(oObject.destruct)oObject.destruct();delete oObject;};function GBind(oContext,fFunctor){return function(){return fFunctor.apply(oContext,arguments);}};function GCache(sPath,bFromCache){if(!bFromCache)sPath+="?"+Math.floor(Math.random()*1000);return sPath;};HNamespace.Define("HHyper",{sInternalName:"Hyper",sMajorVer:"",sMinorVer:""});function IndexOf(oArray,vElt){var nLen=oArray.length;var nFrom=Number(arguments[2])||0;nFrom=(nFrom<0)?Math.ceil(nFrom):Math.floor(nFrom);if(nFrom<0)nFrom+=nLen;for(;nFrom<nLen;nFrom++){if(nFrom in oArray&&oArray[nFrom]===vElt)return nFrom;};return -1;};HNamespace.Define("HClass",{aHive:[],GetClassDef:function(sClassName){return this.aHive[sClassName];},Native:function(oClassDef){oClassDef.bIsNative=true;},Define:function(sClassName,oDefine){function HClassDef(){var aCtrStack=[];function CtrRun(oDef){if(!oDef.aClassSuper)return;var oSuper,oProto;for(var i=0;i<oDef.aClassSuper.length;i++){oSuper=oDef.aClassSuper[i];oProto=oSuper.prototype;if(oProto.construct)aCtrStack.push(oProto.construct);CtrRun(oSuper);};return;};CtrRun(HClassDef);for(var i=aCtrStack.length-1;i>=0;i--){aCtrStack[i].apply(this);};if(this.construct)this.construct.apply(this,arguments);return this;};HClassDef.sClassName=sClassName;HClassDef.aClassSuper=[];HClassDef.bIsNative=false;HClassDef.isProperty=function(sName){return(this.prototype[sName]==true);};HClassDef.AddProperty=function(sName,vValue){this.prototype[sName]=vValue;};HClassDef.RemoveProperty=function(sName){if(!this.isProperty(sName))return;delete this.prototype[sName];};HClassDef.Extend=function(){if(!arguments)return;for(var i=0;i<arguments.length;i++)this.aClassSuper.push(arguments[i]);this.prototype=new arguments[0];return this;};HClassDef.Props=function(oClassDef){for(var i in oClassDef)this.AddProperty(i,oClassDef[i]);return this;};HClassDef.Static=function(oClassDef){for(var i in oClassDef)this[i]=oClassDef[i];return this;};if(oDefine){if(oDefine.extend){HClassDef.Extend(oDefine.extend);};if(oDefine["static"]){HClassDef.Static(oDefine["static"]);};if(oDefine.props){HClassDef.Props(oDefine.props);}};this.aHive[sClassName]=HClassDef;HNamespace.Define(sClassName,HClassDef);return HClassDef;}});HClass.Define("HCore.Singleton",{});HClass.Define("HCore.Object",{extend:Object,"static":{aObjectHeap:[],ConstructObject:function(sClassName){var oClassDef=HClass.GetClassDef(sClassName);var oObject=null;if(oClassDef){if(arguments.length==1)oObject=new oClassDef;else oObject=new oClassDef(arguments.splice(0,1));if(oObject){HCore.Object.aObjectHeap.push(oObject);}else{}}else{};return oObject;},RegisterObject:function(oObject,fRelease){},DestructObject:function(oObject){}},props:{InstanceOf:function(oClass){return GInstanceOf(this,oClass);},SafeDelete:function(){GSafeDelete(this)},Clone:function(aProperty){var vProp,oClone=new HCore.Object;if(aProperty)for(var i=0;i<aProperty.length;i++){vProp=aProperty[i];if(this[vProp])oClone[vProp]=this[vProp];}else for(vProp in this){oClone[vProp]=this[vProp];};return oClone;},MethodReference:function(sMethodName){if(!this[sMethodName])return false;return GBind(this,this[sMethodName]);},Bind:function(sMethodName,fFunctor){this[sMethodName]=GBind(this,fFunctor);}}});HClass.Define("HCore.OutputDevice",{extend:HCore.Object,props:{Log:function(){}}});HClass.Define("HCore.ErrorOutputDevice",{extend:HCore.OutputDevice,props:{Error:function(sErrorMessage){}}});HClass.Define("HCore.AlertErrorOutputDevice",{extend:HCore.ErrorOutputDevice,props:{Error:function(sErrorMessage){alert("Error: "+sErrorMessage);}}});HCore.oErrorOutputDevice=new HCore.AlertErrorOutputDevice;HClass.Define("HCore.Event",{extend:HCore.Object,props:{Add:function(){},Remove:function(){}}});HNamespace.Define("HNet",{Protocols:HNamespace.Define("HNet.Protocols",{HTTP:1,FTP:2,FILE:3}),HTTPStatusCode:HNamespace.Define("HNet.HTTPStatusCode",{S_OK:200}),Connect:HClass.Define("HNet.Connect",{extend:HCore.Object,"static":{ExtractProtocolFromUrl:function(sUrl){},HttpErrorHandler:function(nHttpStatus){switch(nHttpStatus){case HNet.HTTPStatusCode.S_NotFound:break;}}},props:{nCurrentProtocol:null,construct:function(){this.nCurrentProtocol=HNet.Protocols.HTTP;}}}),IframeRequest:HClass.Define("HNet.IframeRequest",{extend:HNet.Connect,"static":{aIframeObjects:[],CreateObject:function(){},GetObject:function(){}}}),ScriptRequest:HClass.Define("HNet.ScriptRequest",{extend:HNet.Connect,"static":{Response:{},CreateObject:function(){var oScript=document.createElement("script");oScript.type="text/javascript";oScript.sid=GenId();return oScript;},GetObject:function(){return this.CreateObject();}},props:{oScript:null,isActive:false,construct:function(){},Get:function(sUrl,fCallback){var oThis=this,oScript=HNet.ScriptRequest.GetObject();this.oScript=oScript;oScript.process=true;oScript.callback=fCallback;var cb="cb=HNet.ScriptRequest.Response."+oScript.sid;if(sUrl.indexOf('?')==-1)oScript.src=sUrl+'?'+cb;else if(sUrl.match(/\?[\w\d]+/))oScript.src=sUrl+'&'+cb;else oScript.src=sUrl+cb;HNet.ScriptRequest.Response[oScript.sid]=function(vResponse){oScript.success=true;oScript.process=false;oScript.callback(vResponse);};oScript.onerror=oScript.onload=oScript.onreadystatechange=function(){if(!this.loaded&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){this.loaded=1;this.onerror=this.onload=this.onreadystatechange=null;if(this.process){}else{};Remove(this);delete oThis.oScript;delete HNet.ScriptRequest.Response[this.sid];oThis.isActive=false;}};document.getElementsByTagName('head')[0].appendChild(oScript);this.isActive=true;},Abort:function(){}}}),WNTransport:HClass.Define("HNet.WNTransport",{extend:HNet.Connect,"static":{sBlankUrl:'about:blank',aFrameOnLoad:[],CreateObject:function(){},GetObject:function(){return this.CreateObject();},GetData:function(oFrame){if(oFrame.bAbort)return;var fnCallback=this.aFrameOnLoad[oFrame.id];if(fnCallback){try{fnCallback(oFrame.contentWindow.name);}catch(oEx){};delete this.aFrameOnLoad[oFrame.id];};setTimeout(function(){Remove(oFrame);},0);},OnLoad:function(oFrame){var oWindow=oFrame.contentWindow;try{if(!oFrame.nState&&(oWindow.location==HNet.WNTransport.sBlankUrl||oWindow.location=="javascript:true"))return;}catch(oEx){};if(oFrame.nState){return this.GetData(oFrame);}else oWindow.location=HNet.WNTransport.sBlankUrl;oFrame.nState=1;}},props:{oFrame:null,sFrameName:"",oFrameContainer:null,sUrl:"",sMethod:"",fnCallback:null,construct:function(){},Open:function(sMethod,sUrl,fnCallback){this.sMethod=sMethod;this.sUrl=sUrl;this.fnCallback=fnCallback;},Send:function(vContent){var sMethod=this.sMethod;var sUrl=this.sUrl;var sFrameId="WNTransportIFrame_"+GenId();var oDoc=document;function IFrameHtml(sId){return '<iframe style="display:none" onload="HNet.WNTransport.OnLoad(this)" src="javascript:true" id="'+sId+'" name="'+sId+'"></iframe>';};var oFrame=AddTo(IFrameHtml(sFrameId)).lastChild;HNet.WNTransport.aFrameOnLoad[sFrameId]=this.fnCallback;this.oFrame=oFrame;if(sMethod.match(/GET/i)){oFrame.src=this.sUrl;if(oFrame.contentWindow){oFrame.contentWindow.location.replace(sUrl);}}else if(sMethod.match(/POST/i)){var oForm=null;if(vContent){if(vContent.nodeType){oForm=vContent;}else{oForm=document.createElement("form");var oInput;for(var sName in vContent){var vParam=vContent[sName];if(vParam.type&&vParam.type=="file"){oInput=vParam;if(oInput.parentNode){vParam=vParam.cloneNode(this);vParam.onchange=oInput.onchange;oInput.parentNode.replaceChild(vParam,oInput);};oInput.name=sName;}else{oInput=document.createElement("textarea");oInput.name=sName;oInput.value=vParam;};oForm.appendChild(oInput);document.body.appendChild(oForm);}};if(oForm){oForm.method='post';oForm.action=sUrl;oForm.target=sFrameId;oForm.style.display='none';document.body.appendChild(oForm);oForm.submit();Remove(oForm);}}}else{throw new Error("Method "+sMethod+" not supported with the HNet.WNTransport.");}},Get:function(sUrl,fCallback){this.Open("GET",sUrl,fCallback);this.Send(null);},Post:function(sUrl,vContent,fCallback){this.Open("POST",sUrl,fCallback);this.Send(vContent);},Abort:function(){var oFrame=this.oFrame;oFrame.bAbort=true;oFrame.src="javascript:true";setTimeout(function(){Remove(oFrame);},0);}}})});HNamespace.Define("HSchema",{Types:HClass.Define("HSchema.Types",{})});HNamespace.Define("HWebService",{Client:HClass.Define("HWebService.Client",{"static":{FindCallback:function(oArguments){var fnCallback=null;for(var i=0;i<oArguments.length;i++){if(typeof oArguments[i]=="function"){fnCallback=oArguments[i];break;}};return fnCallback;}},props:{sLocation:"",construct:function(){},ConstructParams:function(oArguments,oParamsStruct){var oParams={};if(oArguments.length>0){if(typeof oArguments[0]=="object"){oParams=oArguments[0];for(sParamName in oParams){if(!oParamsStruct[sParamName])delete oParams[sParamName];else{}}}else{var nCount=0;for(var sParamName in oParamsStruct){oParams[sParamName]=oArguments[nCount];nCount++;}}};return oParams;},ConstructUrl:function(){},ConstructRequest:function(){},ConstructResponse:function(){},Call:function(sMethodName,oRequest){}}}),Provider:HClass.Define("HWebService.Provider",{ConstructService:function(sUrl){}})});HNamespace.Define("HRest",{Client:HClass.Define("HRest.Client",{extend:HWebService.Client,props:{sBindType:"rest",aOperationLocation:null,construct:function(){},ConstructUrl:function(sMethodName){return this.sLocation+(this.aOperationLocation[sMethodName]?this.aOperationLocation[sMethodName]:"");},ConstructRequest:function(oArguments,oParamsStruct){var sRequest='',sSep='';if(oArguments.length>0){if(typeof oArguments[0]=="object"&&oArguments[0]!=null&&oArguments[0]!=undefined){oParams=oArguments[0];for(sParamName in oParams){if(sParamName=="params"){sRequest+=sSep+oParams[sParamName];sSep='&';}else if(oParamsStruct[sParamName]){sRequest+=sSep+sParamName+'='+encodeURIComponent(oParams[sParamName]);sSep='&';}}}else{var nCount=0;for(var sParamName in oParamsStruct){if(typeof oArguments[nCount]=="function")break;if(oArguments[nCount]){sRequest+=sSep+sParamName+'='+encodeURIComponent(oArguments[nCount]);sSep='&';};nCount++;}}};return sRequest;},ConstructResponse:function(sResponse,oOutput){var oResponse={};oResponse=eval('('+sResponse+')');return oResponse;},Call:function(sMethodName,oArguments){var sUrl=this.ConstructUrl(sMethodName);var sRequest=this.ConstructRequest(oArguments);var fnCallback=HWebService.Client.FindCallback(oArguments);}}})});



