// www.NicolaZordan.com 11:54 7/27/2007
//-- CryptNZws

function CryptNZ (message,key) {
  return EncryptNZ(key,message);
};

function DeCryptNZ (message,key) {
  return DecryptNZ(key,message);
};

//

var dbg;
function EncryptNZ (key,message) {
  var crypted='';
  // Load Service CryptoNZ in div webServiceCallerDiv
  LoadService();
  // Prepare call to ProjectSelect method
  var callObject = webServiceCallerDiv.createCallOptions();
  callObject.funcName = "Encrypt";
  callObject.async = false;
  callObject.params=new Array();
  callObject.params.key=key;
  callObject.params.message=message;  
//dbg=callObject;
  // Call service
  var oResult = webServiceCallerDiv.CryptoNZ.callService (callObject, "serviceCall");
//dbg=oResult;
//alert('oResult\n['+oResult.errorDetail.string+']');
  // handle Error
  r=ServiceCallCheck(oResult);
  //return r;  
  if (r==null) return r;
  crypted=r.Message;
//alert(text.length+'\n'+crypted.length);
  return crypted;
};


function DecryptNZ (key,message) {
  var decrypted='';
  // Load Service CryptoNZ in div webServiceCallerDiv
  LoadService();
  // Prepare call to ProjectSelect method
  var callObject = webServiceCallerDiv.createCallOptions();
  callObject.funcName = "Decrypt";
  callObject.async = false;
  callObject.params=new Array();
  callObject.params.key=key;
  callObject.params.message=message;  
  // Call service
  var oResult = webServiceCallerDiv.CryptoNZ.callService (callObject, "serviceCall");
  // handle Error
  r=ServiceCallCheck(oResult);
  //return r;  
  if (r==null) return r;
  decrypted=r.Message;
//alert(text.length+'\n'+crypted.length);
  return decrypted;
};


//

var WebServiceDivName='webServiceCallerDiv';
//var WebServiceDivHTML='<div id="'+WebServiceDivName+'" style="behavior:url(webservice.htc);display:none;visibility:hidden;"></div>';
var WebServiceDivHTML='<div id="'+WebServiceDivName+'" style="behavior:url(webservice.htc)"></div>';
function WriteWebServiceDiv () {
  document.write(WebServiceDivHTML);
};


//var WebServiceURL='http://www.ZordanSoftware.com/CryptoNZ/CryptoNZ.asmx';
var WebServiceSite='http://www.ZordanSoftware.com/CryptoNZ/';
//var WebServiceSite='http://localhost/Web/Applications/Asp/WebServices/CryptoNZ/';
var WebServiceService='CryptoNZ.asmx';
var WebServiceURL=WebServiceSite+WebServiceService+'?wsdl';
//WebServiceURL='http://localhost/Web/Applications/ASP/WebServices/CryptoNZ/CryptoNZ.asmx?wsdl';

function LoadService() {
  //webServiceCallerDiv.useService(webServiceURL,webServiceFriendlyName);
  // alert(WebServiceURL);
  var ws=webServiceCallerDiv.useService(WebServiceURL,'CryptoNZ');
  //alert(ws);
};

function ServiceCallCheck (oResult) {
  r=null;
  if (oResult==null) {
    alert('No WebService result data ['+oResult+']');
    return r;
  };
  if (!oResult.error) {
    //alert("Successful call. Result is " + oResult.value);
    r=oResult.value;    
  } else {
    alert("Unsuccessful WebService call \n\n" +
          "Error:     \t  \t" + oResult.errorDetail.code + "\n" + 
          "Description: \t" + oResult.errorDetail.string + "\n" +
          "RawData: \n" + oResult.errorDetail.raw);
  };
//alert('oResult: '+oResult.error+'\n'+oResult.value.message);
  return r;
};


//

function CallServiceMethod(method,key,message) {
  r=null;
  var callObject = webServiceCallerDiv.createCallOptions();
  callObject.async = false;
  callObject.funcName = method; // method: EncryptNZ, DecryptNZ
  callObject.params=new Array();
  callObject.params.key=key;
  callObject.params.message=message;  
  //var oResult = webServiceCallerDiv[webServiceFriendlyName].callService (callObject, "Synchronous Call");
  var oResult = webServiceCallerDiv.CryptoNZ.callService (callObject, "Synchronous Call");
  if (!oResult.error) {
    //alert("Successful call. Result is " + oResult.value);
    r=oResult.value;    
  } else {
    alert("Unsuccessful call. Error is " +
      oResult.errorDetail.string);
  };
  return r;
};


// 


//

WriteWebServiceDiv();

//-- /CryptNZws

