// Globale Objekte
// Sitelogger
var loggerRequest;
var loggerUrl = '../services/createlogentry.asp'; 

// Webformulare ------------------------------------------------------------------------------------------------------------------------
var xmlFormRequest;
var xmlFormUrl = '../services/webform_ajax.asp'; 
var xmlFormHtmlIdTarget = ''; 

// Adresssuche ------------------------------------------------------------------------------------------------------------------------
var adressSearchRequest;
var adressSearchLastSearchString = '';
var adressSearchUrl = '../services.client/part_of_adresslist.asp'; 
var adressHtmlIdTarget = ''; 

// ObjectPicker ---------------------------------------------------------------------------------------------------------------------
var objectPickerRequest;
var objectPickerLastSearchString = '';
var objectPickerUrl = '../object/object_picker_ajax.asp'; 
var objectPickerHtmlIdTarget = ''; 

// Moegliche Tabellen eines Feldes ermitteln: wird vom Objektpicker verwendet --------------------------------------
var tablesForFieldRequest;
var tablesForFieldUrl = '../services/getTablesForObjectField_json.asp'; 
var tablesForFieldHtmlIdTarget = ''; 

// ObjectPicker ---------------------------------------------------------------------------------------------------------------------
var logonInfoRequest;
var logonInfoUrl = '../services/getLogonInfo_ajax.asp'; 
var logonInfoHtmlIdTarget = ''; 

// Permission-Editor ------------------------------------------------------------------------------------------------------------------
var permissionEditRequest;
var permissionEditUrl = '../system/object_permission_ajax.asp'; 
var permissionEditHtmlIdTarget = ''; 

//get FolderContent ------------------------------------------------------------------------------------------------------------------
var getFolderContentRequest;
var getFolderContentEditUrl = '../services/getFolderContent_ajax.asp'; 
var getFolderContentHtmlIdTarget = ''; 

//getStatesOfObject ------------------------------------------------------------------------------------------------------------------
var getStatesRequest;
var getStatesUrl = '../services/getStatesOfObject_ajax.asp'; 
var getStatesHtmlIdTarget = ''; 

//getDeliverySchedules------------------------------------------------------------------------------------------------------------------
var getDeliSched;
var getDeliSchedUrl = '../services.client/product_variant.asp'; 
var getDeliSchedHtmlIdTarget = ''; 

//Newsletter ===========================================================================================================================
//createAndDeployNewsletterOrder------------------------------------------------------------------------------------------------------------------
var createDeployNLOrder;
var createDeployNLUrl = '../newsletter/createAndDeployNewsletterOrder.asp'; 

//load Statistic Data ------------------------------------------------------------------------------------------------------------------
var loadStatInfoRqs;
var loadStatInfoUrl = '../system/site_report_service_ajax.asp'; 
var loadStatInfoObj ; 

//load desc of content ------------------------------------------------------------------------------------------------------------------
var loadsContentRqs;
var loadsContentUrl = '../services/load_s_content.asp'; 
var loadsContentObj ; 


// Generelle Methode zum erstellen eines request-objektes
 function ajaxManager() {
  var request;
  var versions=new Array("MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHttp");

  if (document.getElementById) {
   if (window.XMLHttpRequest) {
    request=new XMLHttpRequest();
   } 
   if(window.ActiveXObject){
    for (var i=0;i<versions.length;i++) {
     try{
      request = new ActiveXObject(versions[i]);
     }
     catch(exception){
     }
    }
   }    
  }
 return request;
 }
 
 // Zeigt das animierte GIF waehrend dem Warten auf die Serverantwort
 function showLoadingIcon(){
	var posx = document.body.offsetWidth / 2;
	var posy = document.body.offsetHeight / 2;
	var icon = document.getElementById('ajaxloadingicon');
	icon.style.left = posx  + "px";
	icon.style.top = posy  + "px";
	showElement('ajaxloadingicon');
 }
 function hideLoadingIcon(){
	hideElement('ajaxloadingicon');
 }
 

// erstellt per HTTP request einen Logeintrag fuer ein Objekt
 function createLogentry( id ) {
	loggerRequest=ajaxManager();
	if (loggerRequest) {
		var requestUrl = loggerUrl + '?id=' + id ;
		loggerRequest.open("GET", requestUrl, true);
		loggerRequest.onreadystatechange = handlerCreateLogentry;
		loggerRequest.send(null);
	}
 }

 function handlerCreateLogentry() {
	if (loggerRequest.readyState == 4) {
		if(loggerRequest.status == 200) {
		}

	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Ruft den Service fuer das Suchen nach Adressen auf
 function searchInAdresses( searchFor, aclassId, stylesheet, htmlId ) {
	if (adressSearchLastSearchString != searchFor) {
		adressSearchLastSearchString = searchFor;	
		adressHtmlIdTarget = htmlId; 
		adressSearchRequest=ajaxManager();
		if (adressSearchRequest) {
			showLoadingIcon();
			var requestUrl = adressSearchUrl + '?classid='+aclassId+'&searchFor='+searchFor+'&xslt='+stylesheet;
			adressSearchRequest.open("GET", requestUrl, true);
			adressSearchRequest.onreadystatechange = handlerSearchInAdresses;
			adressSearchRequest.send(null);
		}
	}
 }
 
 function handlerSearchInAdresses() {
	if (adressSearchRequest.readyState == 4) {
		if(adressSearchRequest.status == 200) {
			hideLoadingIcon();
			var resultText = adressSearchRequest.responseText;
			//alert(resultText);
			var elem = document.getElementById(adressHtmlIdTarget);
			elem.innerHTML = resultText;
		}
	}
}
 
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Methoden fuer den Object-Picker
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function objectPickerSearch( searchFor, htmlId ) {
	if (objectPickerLastSearchString != searchFor) {
		objectPickerLastSearchString = searchFor;	
		objectPickerHtmlIdTarget = htmlId; 
		objectPickerRequest=ajaxManager();
		var table = document.getElementById('ajaxpickertable').value;

		if (objectPickerRequest) {
			showLoadingIcon();
			var requestUrl = objectPickerUrl + '?table='+table+'&searchFor='+searchFor;
			objectPickerRequest.open("GET", requestUrl, true);
			objectPickerRequest.onreadystatechange = handlerObjectPickerSearch;
			objectPickerRequest.send(null);
		}
	}
 }
 
function handlerObjectPickerSearch() {
	if (objectPickerRequest.readyState == 4) {
		if(objectPickerRequest.status == 200) {
			hideLoadingIcon();
			var resultText = objectPickerRequest.responseText;
			//alert(resultText);
			var elem = document.getElementById(objectPickerHtmlIdTarget);
			elem.innerHTML = resultText;
		}
	}
}
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// ermittelt die möglichen Tabellen, aus welchen fuer ein Feld ein Objekt ausgewaehlt werden kann
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function getTablesForObjectField( fieldName, htmlId) {
	tablesForFieldHtmlIdTarget = htmlId; 
	tablesForFieldRequest=ajaxManager();

	if (tablesForFieldRequest) {
		showLoadingIcon();
		var requestUrl = tablesForFieldUrl + '?fieldname='+fieldName;
		tablesForFieldRequest.open("GET", requestUrl, true);
		tablesForFieldRequest.onreadystatechange = handlerGetTablesForObjectField;
		tablesForFieldRequest.send(null);
	}
 }

function handlerGetTablesForObjectField() {
	if (tablesForFieldRequest.readyState == 4) {
		if(tablesForFieldRequest.status == 200) {
			hideLoadingIcon();
			var resultText = tablesForFieldRequest.responseText;
			tables = eval( '(' + resultText +')');
			// Select feld fuellen
			addElementsToSelectBox(tables, tablesForFieldHtmlIdTarget);
		}
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Benutzerinfo anforden, anmelden, abmelden
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function logonInfo( htmlId, mode, u1, u2) {
	logonInfoHtmlIdTarget = htmlId; 
	logonInfoRequest=ajaxManager();

	if (logonInfoRequest) {
		showLoadingIcon();
		var requestUrl = logonInfoUrl + '?mode='+mode+'&u1='+u1+'&u2='+u2;
		logonInfoRequest.open("GET", requestUrl, true);
		logonInfoRequest.onreadystatechange = handlerLogonInfo;
		logonInfoRequest.send(null);
	}
 }

function handlerLogonInfo() {
	if (logonInfoRequest.readyState == 4) {
		if(logonInfoRequest.status == 200) {
			hideLoadingIcon();
			var resultText = logonInfoRequest.responseText;
			var elem = document.getElementById(logonInfoHtmlIdTarget);
			elem.innerHTML = resultText;
		}
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Permission-Editor
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function permissionEdit( htmlId, id, acid, role, who, command) {
	permissionEditHtmlIdTarget = htmlId; 
	permissionEditRequest=ajaxManager();

	if (permissionEditRequest) {
		showLoadingIcon();
		var requestUrl = permissionEditUrl + '?id='+id+'&acid='+acid+'&role='+role+'&who='+who+'&command='+command;
		permissionEditRequest.open("GET", requestUrl, true);
		permissionEditRequest.onreadystatechange = handlerPermissionEdit;
		permissionEditRequest.send(null);
	}
 }

function handlerPermissionEdit() {
	if (permissionEditRequest.readyState == 4) {
		if(permissionEditRequest.status == 200) {
			hideLoadingIcon();
			var resultText = permissionEditRequest.responseText;
			var elem = document.getElementById(permissionEditHtmlIdTarget);
			elem.innerHTML = resultText;
		}
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// getFolderContent
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function getFolderContent( htmlId, id) {
	getFolderContentHtmlIdTarget = htmlId; 
	getFolderContentRequest=ajaxManager();

	if (getFolderContentRequest) {
		showLoadingIcon();
		var requestUrl = getFolderContentEditUrl + '?id='+id;
		getFolderContentRequest.open("GET", requestUrl, true);
		getFolderContentRequest.onreadystatechange = handlerGetFolderContent;
		getFolderContentRequest.send(null);
	}
 }

function handlerGetFolderContent() {
	if (getFolderContentRequest.readyState == 4) {
		if(getFolderContentRequest.status == 200) {
			hideLoadingIcon();
			var resultText = getFolderContentRequest.responseText;
			var elem = document.getElementById(getFolderContentHtmlIdTarget);
			elem.innerHTML = resultText;
		}
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// loadsContent
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function loadsContent( obj, id) {
	loadsContentObj = obj;
	loadsContentRqs=ajaxManager();

	if (loadsContentRqs) {
		showLoadingIcon();
		var requestUrl = loadsContentUrl + '?id='+id;
		loadsContentRqs.open("GET", requestUrl, true);
		loadsContentRqs.onreadystatechange = handlerLoadsContent;
		loadsContentRqs.send(null);
	}
 }

function handlerLoadsContent() {
	if (loadsContentRqs.readyState == 4) {
		if(loadsContentRqs.status == 200) {
			hideLoadingIcon();
			var resultText = loadsContentRqs.responseText;
			loadsContentObj.innerHTML = resultText;
		}
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// getStatesOfObject
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function getStatesOfObject( htmlId, id) {
	getStatesHtmlIdTarget = htmlId; 
	getStatesRequest=ajaxManager();

	if (getStatesRequest) {
		showLoadingIcon();
		var requestUrl = getStatesUrl + '?id='+id;
		getStatesRequest.open("GET", requestUrl, true);
		getStatesRequest.onreadystatechange = handlerGetStatesOfObject;
		getStatesRequest.send(null);
	}
 }

function handlerGetStatesOfObject() {
	if (getStatesRequest.readyState == 4) {
		if(getStatesRequest.status == 200) {
			hideLoadingIcon();
			var resultText = getStatesRequest.responseText;
			var elem = document.getElementById(getStatesHtmlIdTarget);
			elem.innerHTML = resultText;
		}
	}
}

// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// getDeliverySchedules
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function getDeliverySchedules( htmlId, id) {
	getDeliSchedHtmlIdTarget = htmlId; 
	getDeliSched=ajaxManager();

	if (getDeliSched) {
		showLoadingIcon();
		var requestUrl = getDeliSchedUrl + '?id='+id;
		getDeliSched.open("GET", requestUrl, true);
		getDeliSched.onreadystatechange = handlerGetDeliverySchedules;
		getDeliSched.send(null);
	}
 }

function handlerGetDeliverySchedules() {
	if (getDeliSched.readyState == 4) {
		if(getDeliSched.status == 200) {
			hideLoadingIcon();
			var resultText = getDeliSched.responseText;
			var elem = document.getElementById(getDeliSchedHtmlIdTarget);
			elem.innerHTML = resultText;
			showElement(getDeliSchedHtmlIdTarget);
		}
	}
}


// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Newsletter
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

// erstellt einen Sendeauftrag
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 function createAndDeployNewsletterOrder( amhid, testMode) {
	createDeployNLOrder=ajaxManager();

	if (createDeployNLOrder) {
		showLoadingIcon();
		var requestUrl = createDeployNLUrl + '?amhid='+amhid+'&testmode='+testMode;
		createDeployNLOrder.open("GET", requestUrl, true);
		createDeployNLOrder.onreadystatechange = handlerCreateAndDeployNewsletterOrder;
		createDeployNLOrder.send(null);
	}
 }

function handlerCreateAndDeployNewsletterOrder() {
	if (createDeployNLOrder.readyState == 4) {
		if(createDeployNLOrder.status == 200) {
			hideLoadingIcon();
			var resultText = createDeployNLOrder.responseText;
			var objects = eval( '(' + resultText +')');
			//alert(resultText);
			// Resultat verarbeiten
			addElementsToMailOrderStateWindow(objects);
		}
	}
}


// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// Web Formulare
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 function xmlForm( htmlId, id, urlParam ) {
	xmlFormHtmlIdTarget = htmlId; 
	xmlFormRequest=ajaxManager();

	if (xmlFormRequest) {
		showLoadingIcon();
		var requestUrl = '';
		
		if (id == null) {
			requestUrl = xmlFormUrl + urlParam;
		} else {
			requestUrl = xmlFormUrl + '?id='+id;
		}
		
		xmlFormRequest.open("GET", requestUrl, true);
		xmlFormRequest.onreadystatechange = handlerXmlForm;
		xmlFormRequest.send(null);
	}
 }

function handlerXmlForm() {
	if (xmlFormRequest.readyState == 4) {
		if(xmlFormRequest.status == 200) {
			hideLoadingIcon();
			var resultText = xmlFormRequest.responseText;

			var elem = document.getElementById(xmlFormHtmlIdTarget);
			elem.innerHTML = resultText;

			//var elem = document.getElementById(xmlFormHtmlIdTarget).firstChild;
			//elem.nodeValue = resultText;
			

		}
		
	}
}

 
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// load Statistic Data
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 function loadStatInfo( obj, yyyy, mm, hhId, type, id) {
    if (id == null ) {id = "";}   
	loadStatInfoObj = obj; 
	loadStatInfoRqs=ajaxManager();

	if (loadStatInfoRqs) {
		//showLoadingIcon();
		var requestUrl = loadStatInfoUrl + '?year='+yyyy + '&month=' + mm + '&hostheaderid=' + hhId + '&type=' + type + '&id=' + id;
		loadStatInfoRqs.open("GET", requestUrl, true);
		loadStatInfoRqs.onreadystatechange = handlerLoadStatInfo;
		loadStatInfoRqs.send(null);
	}
 }

function handlerLoadStatInfo() {
	if (loadStatInfoRqs.readyState == 4) {
		if(loadStatInfoRqs.status == 200) {
			//hideLoadingIcon();
			var resultText = loadStatInfoRqs.responseText;
			loadStatInfoObj.innerHTML = resultText;
            loadStatInfoObj.loaded = true;
			
		}
	}
}
 
 
 
