﻿var onlineUrl = "http://87.118.122.77/CENTROasp/Default.aspx";
var callbackObject ;
var oldDomain;

addLoadEvent(ApiOnLoad); 

function ApiOnLoad()
{
    if ((window.location.href.indexOf('ApiLogedIn') >-1) &&( window.location.href.indexOf('#') >-1))
    {
    callbackObject = JSONstring.toObject(window.location.hash.replace('#',''))
    window.location.hash = '';
    }
    
    if ((window.location.href.indexOf('AdToShop') >-1) &&( window.location.href.indexOf('#') >-1))
    {
    callbackObject = JSONstring.toObject(window.location.hash.replace('#',''))
    window.location.hash = '';
    }
}

function ClearApiData()
{
    ApiOnLoad();
}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
       
      
      if (oldonload) {
        oldonload();
      }
      
       func();
    }
  }
}


function ShowBGOnlineExt
    (
    KBA_NR , 
    BG_AUTHENTICATION_KEY,
    BG_AUTHENTICATION_URL,
    AUTHENTICATION_callBack,
    ART_callBack,
    par1,
    par2,
    par3,
    par4,
    par5){
    
    var donline = new DigitalOnline();
    donline.callerUrl = window.location.href;
    if(KBA_NR)
    donline.KBA_NR = KBA_NR;
    
    if (BG_AUTHENTICATION_KEY)
    donline.BG_AUTHENTICATION_KEY = BG_AUTHENTICATION_KEY;
    
    if (BG_AUTHENTICATION_URL)
    donline.BG_AUTHENTICATION_URL = BG_AUTHENTICATION_URL;
    
    if(AUTHENTICATION_callBack)
    donline.AUTHENTICATION_callBack = AUTHENTICATION_callBack;
    
    if(ART_callBack)
    donline.ART_callBack = ART_callBack;
    
    if(par1)
    donline.par1 = par1;
    if(par2)
    donline.par2 = par2;
    if(par3)
    donline.par3 = par3;
    if(par4)
    donline.par4 = par4;
    if(par5)
    donline.par5 = par5;
   
    donline.ShowExt();
 }

 function ShowBGOnlineMask(
    KBA_NR,
    BG_Bestellsystem_URL,
    BG_BestellSystem_Art,  //coller itp
    ubergabeart, //do naszego, do ichniego koszyka
    BG_Warenkorbsystem_URL,
    AUTHENTICATION_callBack,
    ART_callBack,
    par1,
    par2,
    par3,
    par4,
    par5,
    BG_Webshop_Url,
    BG_Webshop_User,
    BG_Webshop_Pass,
    BG_Webshop_AUTO, 
    BG_Bestellsystem_User,
    BG_Bestellsystem_Pass
 )
 {
    var donline = new DigitalOnline();
    donline.callerUrl = window.location.href;
    donline.KBA_NR = KBA_NR;
    if (BG_Bestellsystem_URL)
        donline.BG_Bestellsystem_URL = BG_Bestellsystem_URL;
    if(BG_BestellSystem_Art)
        donline.BG_BestellSystem_Art = BG_BestellSystem_Art;
    if(ubergabeart)
        donline.ubergabeart = ubergabeart;
    if(BG_Warenkorbsystem_URL)
        donline.BG_Warenkorbsystem_URL = BG_Warenkorbsystem_URL;
    if(AUTHENTICATION_callBack)
        donline.AUTHENTICATION_callBack = AUTHENTICATION_callBack;
    if(ART_callBack)
        donline.ART_callBack = ART_callBack;
    if(par1)
        donline.par1 = par1;
    if(par2)
        donline.par2 = par2;
    if(par3)
        donline.par3 = par3;
    if(par4)
        donline.par4 = par4;
    if(par5)
        donline.par5 = par5;
    if(BG_Webshop_User)
        donline.BG_Webshop_User = BG_Webshop_User;
    if(BG_Webshop_Pass)
        donline.BG_Webshop_Pass = BG_Webshop_Pass;
    if(BG_Webshop_Url)
        donline.BG_Webshop_Url = BG_Webshop_Url;
    if(BG_Bestellsystem_User)
        donline.BG_Bestellsystem_User = BG_Bestellsystem_User;
    if(BG_Bestellsystem_Pass)
        donline.BG_Bestellsystem_Pass = BG_Bestellsystem_Pass
    if(BG_Webshop_AUTO!=null)
        {
        donline.BG_Webshop_AUTO = BG_Webshop_AUTO
        donline.BG_Webshop_AUTO_SET = true;
        }
    donline.ShowMask();
 }
 
  
  
  function BGOnlineLogOut()
  {
    var donline = new DigitalOnline();
    var logoutObject = new Object();
    logoutObject.logoutMe = true;
    logoutObject.closeMe = true;
    CreatePostForm("LogOut",logoutObject,donline.target,donline.url,true,true);
  }
  

 function DigitalOnline()
 {
    this.url = onlineUrl;
    this.target = "_CentroDigitalNETVB";
    this.KBA_NR = "";
    this.BG_AUTHENTICATION_KEY = "";
    this.BG_AUTHENTICATION_URL = "";
    this.BG_Bestellsystem_URL = "";
    this.BG_BestellSystem_Art = "";
    this.BG_Bestellsystem_User = "";
    this.BG_Bestellsystem_Pass = "";
    this.ubergabeart = 0;
    this.BG_Warenkorbsystem_URL = "";
    this.BG_Warenkorbsystem_ART = "";
    this.AUTHENTICATION_callBack= false;
    this.ART_callBack = false;
    this.par1 = null;
    this.par2 = null;
    this.par3 = null;
    this.par4 = null;
    this.par5 = null;
    this.BG_Webshop_Url = '';
    this.BG_Webshop_User = '';
    this.BG_Webshop_Pass = '';
    this.BG_Webshop_AUTO = false;
    this.showMask = false;
    this.callerUrl = "";
 }
 
 DigitalOnline.prototype.ShowExt = function(){this.showMask = false;this.SendPostForm();};
 DigitalOnline.prototype.ShowMask = function(){this.showMask = true;this.SendPostForm();};
 DigitalOnline.prototype.SendPostForm = function ()
 {
    CreatePostForm("JsonData",this,this.target,this.url,true,true);
  };
 
 function CreatePostForm(name,object,target,url,clear,doSubmit)
 {
    var body = document.getElementsByTagName('body')[0];
     var form = document.createElement('form');
     var input = document.createElement('input');
     form.setAttribute('name', "myexternalform");
     form.setAttribute('method', "POST");
     form.setAttribute('style', 'display:none;');
     form.setAttribute('target', target);
     form.setAttribute('action', url);
     input.setAttribute('name', name);
     input.setAttribute('value', JSONstring.make(object));
     input.setAttribute('style', 'display:none;');
     input.style.display = "none";
     form.appendChild(input);
     body.appendChild(form);
     if (doSubmit)
         form.submit();
     if (clear) 
         body.removeChild(form);   
     return form;
 }
 
JSONstring={
	compactOutput:true, 		
	includeProtos:false, 	
	includeFunctions: true,
	detectCirculars:false,
	restoreCirculars:false,
	make:function(arg,restore) {
		this.restore=restore;
		this.mem=[];this.pathMem=[];
		return this.toJsonStringArray(arg).join('');
	},
	toObject:function(x){
		if(!this.cleaner){
			try{this.cleaner=new RegExp('^("(\\\\.|[^"\\\\\\n\\r])*?"|[,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t])+?$')}
			catch(a){this.cleaner=/^(true|false|null|\[.*\]|\{.*\}|".*"|\d+|\d+\.\d+)$/}
		};
		if(!this.cleaner.test(x)){return {}};
		eval("this.myObj="+x);
		if(!this.restoreCirculars || !alert){return this.myObj};
		if(this.includeFunctions){
			var x=this.myObj;
			for(var i in x){if(typeof x[i]=="string" && !x[i].indexOf("JSONincludedFunc:")){
				x[i]=x[i].substring(17);
				eval("x[i]="+x[i])
			}}
		};
		this.restoreCode=[];
		this.make(this.myObj,true);
		var r=this.restoreCode.join(";")+";";
		eval('r=r.replace(/\\W([0-9]{1,})(\\W)/g,"[$1]$2").replace(/\\.\\;/g,";")');
		eval(r);
		return this.myObj
	},
	toJsonStringArray:function(arg, out) {
		if(!out){this.path=[]};
		out = out || [];
		var u; // undefined
		switch (typeof arg) {
		case 'object':
			this.lastObj=arg;
			if(this.detectCirculars){
				var m=this.mem; var n=this.pathMem;
				for(var i=0;i<m.length;i++){
					if(arg===m[i]){
						out.push('"JSONcircRef:'+n[i]+'"');return out
					}
				};
				m.push(arg); n.push(this.path.join("."));
			};
			if (arg) {
				if (arg.constructor == Array) {
					out.push('[');
					for (var i = 0; i < arg.length; ++i) {
						this.path.push(i);
						if (i > 0)
							out.push(',\n');
						this.toJsonStringArray(arg[i], out);
						this.path.pop();
					}
					out.push(']');
					return out;
				} else if (typeof arg.toString != 'undefined') {
					out.push('{');
					var first = true;
					for (var i in arg) {
						if(!this.includeProtos && arg[i]===arg.constructor.prototype[i]){continue};
						this.path.push(i);
						var curr = out.length; 
						if (!first)
							out.push(this.compactOutput?',':',\n');
						this.toJsonStringArray(i, out);
						out.push(':');                    
						this.toJsonStringArray(arg[i], out);
						if (out[out.length - 1] == u)
							out.splice(curr, out.length - curr);
						else
							first = false;
						this.path.pop();
					}
					out.push('}');
					return out;
				}
				return out;
			}
			out.push('null');
			return out;
		case 'unknown':
		case 'undefined':
		case 'function':
			if(!this.includeFunctions){out.push(u);return out};
			arg="JSONincludedFunc:"+arg;
			out.push('"');
			var a=['\n','\\n','\r','\\r','"','\\"'];
			arg+=""; for(var i=0;i<6;i+=2){arg=arg.split(a[i]).join(a[i+1])};
			out.push(arg);
			out.push('"');
			return out;
		case 'string':
			if(this.restore && arg.indexOf("JSONcircRef:")==0){
				this.restoreCode.push('this.myObj.'+this.path.join(".")+"="+arg.split("JSONcircRef:").join("this.myObj."));
			};
			out.push('"');
			var a=['\n','\\n','\r','\\r','"','\\"'];
			arg+=""; for(var i=0;i<6;i+=2){arg=arg.split(a[i]).join(a[i+1])};
			out.push(arg);
			out.push('"');
			return out;
		default:
			out.push(String(arg));
			return out;
		}
	}
};