/***
 * Fügt ein Object hinzu und öffnet das Options Fenster
 *
 * @param {String} OBJPFAD
 * @param {String} PRODUCT_ID
 * @param {String} BEFESTIGUNGS_ID
 */
function o2cAddObject(OBJPFAD,PRODUCT_ID,BEFESTIGUNG_ID,HOTSPOT) {
	
	// Löscht den zuvor erstellten HotSpot
	if(HotSpotId>0 && HOTSPOT) { 
		document.o2cPlayer.CurrentObject = HotSpotId; 
		document.o2cPlayer.ObjectShow(false); 
	} /* else {
		document.o2cPlayer.CurrentObject = document.o2cPlayer.AddObject(Fileadmin[0]+OBJPFAD);
		document.o2cPlayer.ObjectSetUserData(document.o2cPlayer.CurrentObject,PRODUCT_ID+',360,'+KlickObjPlayer+','+BEFESTIGUNG_ID);
	}*/
	// Speichert Hot-Spot
	if(HOTSPOT) { 
		// Speichert die HotSpotId zwischen
		document.o2cPlayer.CurrentObject = OBJPFAD;
		HotSpotId = document.o2cPlayer.CurrentObject;
		AddProduct = HOTSPOT;
		document.o2cPlayer.ObjectSetUserData(document.o2cPlayer.CurrentObject,PRODUCT_ID+',360,0');
	} else {
		document.o2cPlayer.CurrentObject = document.o2cPlayer.AddObject(Fileadmin[0]+OBJPFAD);
		var o2cObjectHs = document.o2cPlayer.ObjectGetPositionAsString(document.o2cPlayer.CurrentObject).split('/');
		var o2cHsPos = o2cObjectDatabaseCache.split('|');
		o2cObjectHs[12] = o2cHsPos[0];
		o2cObjectHs[13] = o2cHsPos[1];
		o2cObjectHs[14] = o2cHsPos[2];
		o2cObjectHs = o2cObjectHs.join('/');
		document.o2cPlayer.ObjectSetPositionFromString(document.o2cPlayer.CurrentObject,o2cObjectHs);
		document.o2cPlayer.ObjectTurn(0,1,0,o2cHsPos[4]);
		document.o2cPlayer.ObjectTurn(0,0,1,o2cHsPos[3]);
		// Speichert das o2c-Objekt ins o2cSave Array
		document.o2cPlayer.ObjectSetUserData(document.o2cPlayer.CurrentObject,PRODUCT_ID+','+o2cHsPos[3]+'|'+o2cHsPos[4]+','+KlickObjPlayer+','+BEFESTIGUNG_ID);
		SaveNew(document.o2cPlayer.CurrentObject,PRODUCT_ID,o2cHsPos[3]+'|'+o2cHsPos[4],OBJPFAD,true,BEFESTIGUNG_ID,KlickObjPlayer);
	}
	document.o2cPlayer.ObjectShow(true);

return document.o2cPlayer.CurrentObject;

} // function


/***
 * Löscht ein Objekt
 */
function o2cDeleteObject(objectID) {
	if(objectID>1) {
		var caching = document.o2cPlayer.CurrentObject;
		document.o2cPlayer.CurrentObject = objectID;                           
		document.o2cPlayer.ObjectDelete();
		SaveOverwrite(document.o2cPlayer.CurrentObject,'DEL');
		document.o2cPlayer.CurrentObject = caching;
	} else {
		alert('Objekt kann nicht gelöscht werden.');
	} 
} // function


/***
 * 
 *
 * @param {String} objID
 * @param {objXYZ} objXYZ
 * @param {objTurn} objTurn
 */
function o2cSetPosition(objID,objXYZ,objTurn) {
	// Ermittelt die Aktuellen und Korrigierten Koordinaten
	var CurrentPosition = document.o2cPlayer.ObjectGetPositionAsString(objID).split('/');
	var CurrentPOPosition = document.o2cPlayer.ObjectGetPositionAsString(CacheObjID).split('/');
	var ObjectData = document.o2cPlayer.ObjectGetUserData(objID).split(',');
	var ObjectPOData = (!document.o2cPlayer.ObjectGetUserData(CacheObjID)) ? new Array() : document.o2cPlayer.ObjectGetUserData(CacheObjID).split(',');	
//	var CorrectPosition = (objXYZ) ? objXYZ.split('|') : ObjectData[3].split('|');
	var CorrectPosition = objXYZ.split('|');
				
				
	var CurrentPositionX = parseFloat(CurrentPosition[12]);	
	var CurrentPositionY = parseFloat(CurrentPosition[13]);	
	var CurrentPositionZ = parseFloat(CurrentPosition[14]);	
	
	var CurrentPOPositionX = parseFloat(CurrentPOPosition[12]);
	var CurrentPOPositionY = parseFloat(CurrentPOPosition[13]);
	var CurrentPOPositionZ = parseFloat(CurrentPOPosition[14]);
									
	var CorrectPositionX = parseFloat(CorrectPosition[0]);
	var CorrectPositionY = parseFloat(CorrectPosition[1]);
	var CorrectPositionZ = parseFloat(CorrectPosition[2]);						

	// Änder die Koordinaten bei einer 180 Grad drehung!
	if(ObjectPOData[1] == 180) {
		if(CorrectPositionX < 0) 
			CorrectPositionX = Math.abs(CorrectPositionX);
		else
			CorrectPositionX *= -1; 
			
		if(CorrectPositionY < 0) 
			CorrectPositionY = Math.abs(CorrectPositionY);
		else
			CorrectPositionY *= -1;
	} // if

	// Änder die Koordinaten bei einer 90 Grad drehung!
	if(ObjectPOData[1] == 90) {
		var NewCorrectPositionX = CorrectPositionY;
		var NewCorrectPositionY = CorrectPositionX; 
						
		if(NewCorrectPositionX < 0) 
			NewCorrectPositionX = Math.abs(NewCorrectPositionX);
		else
			NewCorrectPositionX *= -1;
			
		CorrectPositionX = NewCorrectPositionX;
		CorrectPositionY = NewCorrectPositionY;
	} // if
	
	// Änder die Koordinaten bei einer 270 Grad drehung!
	if(ObjectPOData[1] == 270) {
		var NewCorrectPositionX = CorrectPositionY;
		var NewCorrectPositionY = CorrectPositionX; 
						
		if(NewCorrectPositionY < 0) 
			NewCorrectPositionY = Math.abs(NewCorrectPositionY);
		else
			NewCorrectPositionY *= -1;
			
		CorrectPositionX = NewCorrectPositionX;
		CorrectPositionY = NewCorrectPositionY;
	} // if
		
	// Setzt die Koordinaten richtig
	CurrentPosition[12] = (objXYZ) ? (CurrentPOPositionX + CorrectPositionX) : (CurrentPositionX + CorrectPositionX);
	CurrentPosition[13] = (objXYZ) ? (CurrentPOPositionY + CorrectPositionY) : (CurrentPositionY + CorrectPositionY);
	CurrentPosition[14] = (objXYZ) ? (CurrentPOPositionZ + CorrectPositionZ) : (CurrentPositionZ + CorrectPositionZ);
			
	// Wandelt das Positions Array in eine Zeichenkette und übergibt es an o2c	
	var NewPosition = CurrentPosition.join('/');	
	document.o2cPlayer.ObjectSetPositionFromString(objID,NewPosition);	
	
	// alert(objID + ' <- ObjID|Vorher: ' + ObjectData[1]);
	
	// Dreht das Objekt in die Ausgewhälte Position und speichert diese im Objekt ab
		switch(objTurn) {
			case 'N':	
				var NewTurn = 270-ObjectData[1];
				ObjectData[1] = 270;
				var DeActButton = new Array('O','S','W');
				break;
			case 'O':		
				var NewTurn = 180-ObjectData[1];
				ObjectData[1] = 180;
				var DeActButton = new Array('N','S','W');
				break;
			case 'S':	
				var NewTurn = 90-ObjectData[1];
				ObjectData[1] = 90;
				var DeActButton = new Array('O','N','W');
				break;
			case 'W':	
				var NewTurn = 360-ObjectData[1];
				ObjectData[1] = 360;
				var DeActButton = new Array('O','S','N');
				break;
		} // switch
		document.o2cPlayer.ObjectTurn(0,0,1,NewTurn);
		document.o2cPlayer.ObjectSetUserData(objID,ObjectData);
				
		// Makiert die aktuelle Ausrichtung und Demakiert die anderen Buttons
		iframenavigation.document.getElementsByName(objTurn)[0].style.color = '#FF0000';
		iframenavigation.document.getElementsByName(DeActButton[0])[0].style.color = '';
		iframenavigation.document.getElementsByName(DeActButton[1])[0].style.color = '';
		iframenavigation.document.getElementsByName(DeActButton[2])[0].style.color = ''; // #2c2e34
	 		
        // Macht das Object sichtbar
		document.o2cPlayer.ObjectShow(true);

        // Bounding BOX PASCAL
        // setBoundingBox(objID);

        // NewFunc: Überschreibt vorhandene Einträge in dem o2cSave Array
		SaveOverwrite(objID,'POS',ObjectData[1]);
		// Ende NewFunc	
} // function
