/**
 * @category  DeWeM
 * @author    DeWeM Team <admin@dewem.com>
 * @copyright	Copyright (C) 2011 dewem.com, All rights reserved.
 * @license		GNU General Public License version 3; see LICENSE.txt or http://www.gnu.org/licenses/gpl-3.0.html
 * @link      http://www.dewem.com 
 * THIS PROGRAM IS DISTRIBUTED "AS IS";. NO WARRANTY OF ANY KIND IS 
 *	EXPRESSED OR IMPLIED. YOU USE AT YOUR OWN RISK. I WILL NOT BE LIABLE FOR DATA 
 *	LOSS, DAMAGES, HACKING, SPAMMING, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS 
 *	WHILE USING OR MISUSING THIS SOFTWARE. 
 */

function newElementDewem(){
	sendDewemAjaxRequest('Shell.php', 'newElement', '', '');	
}
function editElementDewem(){
	sendDewemAjaxRequest('Shell.php', 'editElement', '', '');	
}
function newWorkelDewem(){
	sendDewemAjaxRequest('Shell.php', 'newWorkel', '', '');	
}
function editWorkelDewem(){
	sendDewemAjaxRequest('Shell.php', 'editWorkel', '', '');	
}
function newAreaDewem(){
	sendDewemAjaxRequest('Shell.php', 'newArea', '', '');	
}
function editAreaDewem(){
	sendDewemAjaxRequest('Shell.php', 'editArea', '', '');	
}
function newPageDewem(){
	sendDewemAjaxRequest('Shell.php', 'newPage', '', '');
}
function editPageDewem(){
	sendDewemAjaxRequest('Shell.php', 'editPage', '', '');
}
var zIndexGlobalDewem = 10;

function createDewemDiv(newDivElementId){
	if (!document.getElementById(newDivElementId)){
		var newDivForElement = document.createElement('div');
		
		newDivForElement.id = newDivElementId;
		newDivForElement.style.top = document.getElementById('MenuDewem').style.top;
		newDivForElement.style.left = document.getElementById('MenuDewem').style.left;
		newDivForElement.style.position = 'absolute';
		var bodyNode = document.getElementsByTagName('body')[0];
		var displayResponse = document.getElementById('displayResponseDewem');
		bodyNode.insertBefore( newDivForElement, displayResponse);
		
		return newDivForElement;
	}else{
		var newDivForElement = document.getElementById(newDivElementId);
		newDivForElement.style.top = document.getElementById('MenuDewem').style.top;
		newDivForElement.style.left = document.getElementById('MenuDewem').style.left;
		newDivForElement.style.position = 'absolute';
		return newDivForElement;
	}
}
function createBaseElementDivDewem(elementDewemName){
	var newDivElementId = 'BaseElementForm_Default_El'+ elementDewemName;
	var elementDiv = createDewemDiv(newDivElementId);
	elementDiv.className = 'BaseElementAttrForm' ;
}
function baseElementMenusDewem(elementDewemName){
	if (!elementDewemName){
		alert('Set the name of the Element, please!');
		return;
	}
	createBaseElementDivDewem(elementDewemName);
	sendDewemAjaxRequest('Shell.php', 'createDewemElement', 'elementDewemName', elementDewemName);
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}
function createDewemElement(){
	var elementDewemName = document.getElementById('createElementName').value; 
	if (!isValidId(elementDewemName)){
		return;
	}
	baseElementMenusDewem(elementDewemName);
}

function editDewemElement(){
	var elementDewemName = document.getElementById('editElementNameDewem').value;
	baseElementMenusDewem(elementDewemName);
}
function rightClickDewem(e) {
	if (e.srcElement){
		var eventSource = e.srcElement;
	}else{
		var eventSource = e.target;
	}
	var ElementName = eventSource.tagName;
	sendDewemAjaxRequest('Shell.php', 'outputMenu', '', '');
	var menu = document.getElementById('MenuDewem');
	menu.style.position = 'absolute';
	menu.style.display = 'block';
	menu.style.left =  getXDewem(e)+'px'; 
	menu.style.top = getYDewem(e)+'px';
	menu.style.visibility = 'visible';
}
var bVDewem  = parseInt(navigator.appVersion);
var bNSDewem = navigator.appName=="Netscape";
var bIEDewem = navigator.appName=="Microsoft Internet Explorer";
var bOPDewem = navigator.appName == "Opera";

if (bIEDewem){
	var tempSplited = navigator.appVersion.split("MSIE");
	var ieVersionDewem = parseFloat(tempSplited[1]);
}

function clickDewem(e) {
	e = (e) ? e : window.event;
	var srcEl = e.srcElement? e.srcElement : e.target; 
	if ( srcEl.id == 'HourGlassDewem' ) {
		return false;
	}
	if (e.ctrlKey){
		return true;
	}
	if ( (bNSDewem || bOPDewem) && e.which == 3) {
		rightClickDewem(e);
		return false;
	}else if (bIEDewem && e.button==2){
		rightClickDewem(e);
		return false;
    }
	return true;
}
function menuOnMouseoverDewem(menuElement){  //menuElement
	menuElement.style.backgroundColor = "#c2c2c2";
	if (bNSDewem){
		menuElement.style.opacity = '.70';
	}else if (bIEDewem){
		menuElement.style.filter = 'alpha(opacity=70)';
	}
}
function menuOnMouseoutDewem(menuElement){
	menuElement.style.backgroundColor = "#ebebeb";
	if (bNSDewem){
		menuElement.style.opacity = '1';
	}else if (bIEDewem){
		menuElement.style.filter = 'alpha(opacity=100)';
	}
}

function createWorkelDewem(){
	var workelName = document.getElementById('createWorkelName').value;
	if (!workelName){
		alert('Set the name of the Element, please!');
		return;
	}
	if (!isValidId(workelName)){
		return;
	}
	var elementDewemName = document.getElementById('editElementNameDewem').value;
	if (!elementDewemName){
		alert('Set the name of the Element, please!');
		return;
	}
	var workelDivName = 'WorkelForm_'+workelName+'_El'+elementDewemName;	
	var workelDiv = createDewemDiv(workelDivName);
	workelDiv.className = 'WorkelAttrForm' ;
	sendDewemAjaxRequest('Shell.php', 'createWorkel', 'elementDewemName,workelName', elementDewemName+','+workelName);
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function editDewemWorkel(workelDewemName){
	if (!workelDewemName){
		workelDewemName = document.getElementById('editElementNameDewem').value;
	}
	if (!workelDewemName){
		alert('Set the name of the Element, please!');
		return;
	}
	var workelDewemNameArr = workelDewemName.split('_');
	var workelDivName = 'WorkelForm_'+workelDewemNameArr[1]+'_El'+workelDewemNameArr[0];
	var workelDiv = createDewemDiv(workelDivName);
	workelDiv.className = 'WorkelAttrForm' ;
	sendDewemAjaxRequest('Shell.php', 'createWorkel', 'elementDewemName,workelName', workelDewemNameArr[0]+','+workelDewemNameArr[1]);
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function createAreaDewem(){
	var elementDewemName = document.getElementById('editElementNameDewem').value;
	if (!elementDewemName){
		alert('Set the name of the Workel, please!');
		return;
	}
	var areaName = document.getElementById('createAreaName').value;
	if (!areaName){
		alert('Set the name of the Area, please!');
		return;
	}
	if (!isValidId(areaName)){
		return;
	}
	var areaDewemNameArr = elementDewemName.split('_');
	var areaDivName = 'AreaForm_'+areaName;
	var areaDiv = createDewemDiv(areaDivName);
	areaDiv.className = 'AreaAttrForm' ;
	sendDewemAjaxRequest('Shell.php', 'createArea', 'elementDewemName,workelName,areaName', 
		areaDewemNameArr[0]+','+areaDewemNameArr[1]+','+areaName);
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}
function createPageDewem(){
	var elementDewemName = document.getElementById('editElementNameDewem').value;
	if (!elementDewemName){
		alert('Set the name of the Area, please!');
		return;
	}
	var pageName = document.getElementById('createPageName').value;
	if (!pageName){
		alert('Set the name of the Page, please!');
		return;
	}
	if (!isValidId(pageName)){
		return;
	}
	var pageDivName = 'PageForm_'+pageName;
	var pageDiv = createDewemDiv(pageDivName);
	pageDiv.className = 'PageAttrForm' ;
	var webDir = document.getElementById('webDirLabelMenuDewem').innerHTML;
	sendDewemAjaxRequest('Shell.php', 'createPage', 'areaName,pageName,webDir', 
		elementDewemName+','+pageName+','+webDir);
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function editDewemArea(areaName){
		if (!areaName){
			areaName = document.getElementById('editElementNameDewem').value;
		}
		if (!areaName){
			alert('Set the name of the Element, please!');
			return;
		}
		var areaDivName = 'AreaForm_'+areaName;
		var areaDiv = createDewemDiv(areaDivName);
		areaDiv.className = 'AreaAttrForm' ;
		sendDewemAjaxRequest('Area.php', 'editArea', areaDivName, areaName);
		document.getElementById('MenuDewem').style.visibility = 'hidden';
}
function submitPasteDewem(){
	sendDewemAjaxRequest('Shell.php', 'paste', '', '');
}
function submitPasteDoDewem(art, oldName){
	var pasteName = document.getElementById('editElementNameDewem').value;
	if (!pasteName){
		alert('Set the copy\'s name, please!');
		return;
	}
	if (!isValidId(pasteName)){
		return;
	}
	if (art == 'area'){
		var areaDivName = 'AreaForm_'+pasteName;
		var areaDiv = createDewemDiv(areaDivName);
		areaDiv.className = 'AreaAttrForm' ;
		sendDewemAjaxRequest('Shell.php', 'pasteDo', 'newName', pasteName);
	}else if(art == 'page'){
		var pageDivName = 'PageForm_'+pasteName;
		var pageDiv = createDewemDiv(pageDivName);
		pageDiv.className = 'PageAttrForm' ;
		if (!idOldPage){
			var idOldPage = '';
		}
		var webDir = document.getElementById('webDirLabelMenuDewem').innerHTML;
		sendDewemAjaxRequest('Shell.php', 'pasteDo', 'newName,webDir', 
			pasteName+','+webDir);
		
	}else{
		var workelDewemNameArr = oldName.split('_');
		var workelDivName = 'WorkelForm_'+pasteName+'_El'+workelDewemNameArr[0];
		var workelDiv = createDewemDiv(workelDivName);
		workelDiv.className = 'WorkelAttrForm' ;
		sendDewemAjaxRequest('Shell.php', 'pasteDo', 'newName', pasteName);
	}
	
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function getHelpDewem(event, helpThema){
	var event = (event) ? event : window.event;
	var helpDivName = 'dewemHelpBox';
	var helpDiv = createPhpAreaDewem(helpDivName);
	helpDiv.className = helpDivName;
	helpDiv.style.top = getYDewem(event)+'px';
	helpDiv.style.left = getXDewem(event)+'px';
	helpDiv.style.visibility = 'visible';
	var keyNames = helpDivName;
	var keyValues = helpThema;
	if (helpThema == 'dynamElementDewem'){
		helpThema = document.getElementById('editElementNameDewem').value;
		keyNames = helpDivName +','+'tag';
		keyValues = helpThema +',1';
	}
	sendDewemAjaxRequest('Shell.php', 'getHelpDewem', keyNames, keyValues);
}

function outputUploadDewem(){
	var dewemUploadBox = document.getElementById('dewemUploadBox');
	if (!dewemUploadBox){
		dewemUploadBox = createDewemDiv('dewemUploadBox');
	}
	dewemUploadBox.className = 'dewemUploadForm' ;
	var dewemUploadExt = document.getElementById('dewemUploadExt');
	if (!dewemUploadExt) {
		sendDewemAjaxRequest('Shell.php', 'outputUpload', '', '');
	}else{
		var dewemUploadExtVal = dewemUploadExt.value;
		var dewemUploadDir = document.getElementById('uploadDirLabelMenuDewem').innerHTML;
		sendDewemAjaxRequest('Shell.php', 'outputUpload', 'dewemUploadBox,dewemCurrentWebDir', 
				dewemUploadExtVal+','+dewemUploadDir);
	}
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function outputImportDewem(){
	var dewemImportBox = document.getElementById('dewemImportBox');
	if (!dewemImportBox){
		dewemImportBox = createDewemDiv('dewemImportBox');
	}
	dewemImportBox.className = 'dewemUploadForm' ;
	var dewemImportExt = document.getElementById('dewemImportExt');
	if (!dewemImportExt) {
		sendDewemAjaxRequest('Shell.php', 'outputImport', '', '');
	}else{
		var dewemImportExtVal = dewemImportExt.value;
		sendDewemAjaxRequest('Shell.php', 'outputImport', 'dewemImportBox', dewemImportExtVal);
	}
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function showHelpForElementDewem(){
	var showHelpDiv = document.getElementById('helpSelectElementDewem');
	var editElementNameDewem = document.getElementById('editElementNameDewem');
	showHelpDiv.title = 'Help for element '+ editElementNameDewem.value;
}
function uploadDewemFile(obj){
	showHourGlassDewem();
	var dewemUploadForm = document.getElementById('dewemUploadForm');
	var dewemUploadExt = document.getElementById('dewemUploadExt').value;
	var dewemUploadDir = document.getElementById('uploadDirLabelMenuDewem').innerHTML;
	dewemUploadForm.action = 'Shell.php?phpMethodName=outputUpload&dewemUploadBox='
		+dewemUploadExt+'&uploadFileInIFrame=1&dewemCurrentWebDir='+dewemUploadDir;
	dewemUploadForm.submit();
}

function finishUpload(){
	var uploadErrs = document.getElementById('outStandardErrorDewem');
	if (uploadErrs){
		var innerUploadErrs = uploadErrs.innerHTML;
		//alert(innerUploadErrs);
		var uploadStatusEl = document.getElementById('dewemUploadStatus');
		parent.document.getElementById('outStandardErrorDewem').innerHTML = innerUploadErrs;
		if (!uploadStatusEl){
			hideHourGlassDewem();
			return;
		}
		var uploadStatus = uploadStatusEl.value;
		alert(uploadStatus);
	}
	hideHourGlassDewem();
	parent.document.getElementById('outputUploadDewem').onclick();
}

function changeDewemUploadExt(){
	showHourGlassDewem();
	outputUploadDewem();
}

function delUpFileDewem(deleteFile){
	if ( !confirm('Are you sure to delete the File \"'+ deleteFile+'\"?') ){
		return;
	}
	showHourGlassDewem();
	var dewemUploadExt = document.getElementById('dewemUploadExt');
	var dewemUploadExtVal = dewemUploadExt.value;
	var dewemUploadDir = document.getElementById('uploadDirLabelMenuDewem').innerHTML;
	sendDewemAjaxRequest('Shell.php', 'deleteUpload', 'dewemUploadBox,deleteFile,dewemCurrentWebDir'
			, dewemUploadExtVal+','+deleteFile+','+dewemUploadDir);
}
function delZipFileDewem(deleteFile){
	if ( !confirm('Are you sure to delete the File \"'+ deleteFile+'\"?') ){
		return;
	}
	showHourGlassDewem();
	var dewemImportExt = document.getElementById('dewemImportExt');
	var dewemImportExtVal = dewemImportExt.value;
	sendDewemAjaxRequest('Shell.php', 'deleteBackup', 'dewemImportBox,deleteFile', dewemImportExtVal+','+deleteFile);
}
function importZipFileDewem(importFile){
	if ( !confirm('Are you sure to import/restore the data from file \"'+ importFile
		+'\"? Warning, if you select ok - all the data from this backup will replace your current data accordingly!') ){
		return;
	}
	showHourGlassDewem();
	var dewemImportExt = document.getElementById('dewemImportExt');
	var dewemImportExtVal = dewemImportExt.value;
	sendDewemAjaxRequest('Shell.php', 'importZipFile', 'dewemImportBox,importFile', dewemImportExtVal+','+importFile);
}

function webDirControlDewem(event, boundControl, webDir){
	showHourGlassDewem();
	var webDirsDiv = createDewemDiv('dewemWebDirsControlBox');
	webDirsDiv.className = 'dewemWebDirsControlForm' ;
	
	var dewemCurrentWebDir = document.getElementById('dewemCurrentWebDir');
	var keysStr = '';
	var valsStr = '';
	if (dewemCurrentWebDir) {
		keysStr = 'dewemCurrentWebDir';
		valsStr = dewemCurrentWebDir.value;
	}
	if (webDir){
		valsStr = webDir; 
	}
	if (boundControl){
		keysStr = keysStr + ',' + 'boundControl';
		valsStr = valsStr + ',' + boundControl;
		var event = (event) ? event : window.event;
		webDirsDiv.style.top = getYDewem(event)+'px';
		webDirsDiv.style.left = getXDewem(event)+'px';
	}else{
		document.getElementById('MenuDewem').style.visibility = 'hidden';
	}
	sendDewemAjaxRequest('Shell.php', 'outputWebDirsControl', keysStr, valsStr);
}
function subWebDirControlShow(subDir){
	showHourGlassDewem();
	var dewemCurrentWebDir = document.getElementById('dewemCurrentWebDir');
	var dewemCurrentWebDirVal = dewemCurrentWebDir.value;
	var newSubDir = dewemCurrentWebDirVal + subDir;
	var keysStr =  'dewemCurrentWebDir';
	var valsStr = newSubDir;
	var boundControl = document.getElementById('dewemWebDirBoundControl');
	if (boundControl){
		keysStr = keysStr + ',' + 'boundControl';
		valsStr = valsStr + ',' + boundControl.value;
	}
	sendDewemAjaxRequest('Shell.php', 'outputWebDirsControl', keysStr, valsStr);
	return false;
}
function currentWebDirControlShow(currentDir){
	showHourGlassDewem();
	var keysStr =  'dewemCurrentWebDir';
	var valsStr = currentDir;
	var boundControl = document.getElementById('dewemWebDirBoundControl');
	if (boundControl){
		keysStr = keysStr + ',' + 'boundControl';
		valsStr = valsStr + ',' + boundControl.value;
	}
	sendDewemAjaxRequest('Shell.php', 'outputWebDirsControl', keysStr, valsStr);
	return false;
}
function delWebDirDewem(subDir){
	showHourGlassDewem();
	var dewemCurrentWebDir = document.getElementById('dewemCurrentWebDir');
	var dewemCurrentWebDirVal = dewemCurrentWebDir.value;
	var keysStr =  'dewemCurrentWebDir,subDir';
	var valsStr = dewemCurrentWebDirVal+','+subDir;
	var boundControl = document.getElementById('dewemWebDirBoundControl');
	if (boundControl){
		keysStr = keysStr + ',' + 'boundControl';
		valsStr = valsStr + ',' + boundControl.value;
	}
	sendDewemAjaxRequest('Shell.php', 'delWebDir', keysStr, valsStr);
	
}
function showConfirmWebDirAddDewem(){
	var confirmWebDirAddDewem = document.getElementById('confirmWebDirAddDewem');
	confirmWebDirAddDewem.style.display = 'inline';
	confirmWebDirAddDewem.style.backgroundImage = 'url(../img/confirm.png)';
}
function confirmWebDirAddDewem(){
	var dewemNewWebDir = document.getElementById('dewemNewWebDir').value;
	if ( dewemNewWebDir == '' ){
		alert('Set the name of the new Dir, please!');
		return;
	}
	if (!isValidId(dewemNewWebDir)){
		return;
	}
	var dewemCurrentWebDir = document.getElementById('dewemCurrentWebDir');
	var dewemCurrentWebDirVal = dewemCurrentWebDir.value;
	var keysStr =  'dewemCurrentWebDir,newDir';
	var valsStr = dewemCurrentWebDirVal+','+dewemNewWebDir;
	var boundControl = document.getElementById('dewemWebDirBoundControl');
	if (boundControl){
		keysStr = keysStr + ',' + 'boundControl';
		valsStr = valsStr + ',' + boundControl.value;
	}
	sendDewemAjaxRequest('Shell.php', 'createWebDir', keysStr, valsStr);
	
}
function setWebDirForControlDewem(boundControl, subDir){
	var boundControlEl = document.getElementById(boundControl);
	if (!boundControlEl){
		alert('The Box, that called this WebDirs Control, was closed! Exit.');
		document.getElementById('dewemWebDirsControlBox').style.visibility = 'hidden';
		return;
	}
	var dewemCurrentWebDir = document.getElementById('dewemCurrentWebDir');
	var dewemCurrentWebDirVal = dewemCurrentWebDir.value;
	if (subDir){
		boundControlEl.innerHTML = dewemCurrentWebDirVal + subDir+'/';
	}else{
		boundControlEl.innerHTML = dewemCurrentWebDirVal ;
	}
	document.getElementById('dewemWebDirsControlBox').style.visibility = 'hidden';
	var boundConfirmId = boundControl+'_Confirm';
	var boundConfirm = document.getElementById(boundConfirmId);
	if(boundConfirm){
		boundConfirm.style.display = 'inline';
		boundConfirm.style.backgroundImage = 'url(../img/confirm.png)';
		if (boundControl == 'webDirEditPageLabelMenuDewem' || boundControl =='uploadDirLabelMenuDewem'){
			boundConfirm.onclick();
		}
	}
}

function editPageWebDirConfirmDewem(webDirElId, formName){
	var webDirEl = document.getElementById(webDirElId);
	var webDir = webDirEl.innerHTML;
	sendDewemAjaxRequest('Shell.php', 'editPageWebDirConfirm', formName, webDir);
}

function editPageDewemDo(){
	var elementDewemName = document.getElementById('editElementNameDewem').value;
	if (!elementDewemName){
		alert('Set the name of the Page, please!');
		return;
	}
	
	var pageDivName = 'PageForm_'+elementDewemName;
	var pageDiv = createDewemDiv(pageDivName);
	pageDiv.className = 'PageAttrForm' ;
	
	var webDir = document.getElementById('webDirEditPageLabelMenuDewem').innerHTML;
	
	sendDewemAjaxRequest('Shell.php', 'createPage', 'pageName,webDir', 
		elementDewemName+','+webDir);
	document.getElementById('MenuDewem').style.visibility = 'hidden';
}

function showSubmitImportFileDewem(){
	var submitImportFileDewem = document.getElementById('submitImportFileDewem');
	submitImportFileDewem.style.display = 'inline';
	submitImportFileDewem.style.backgroundImage = 'url(../img/confirm.png)';
}
function submitImportFileDewem(){
	alert('This function is not developed yet!');
}
function changeDewemImportExt(){
	showHourGlassDewem();
	outputImportDewem();
}

document.onmousedown=clickDewem;

function onloadDewem(){
	if (window.location.href.indexOf('uploadFileInIFrame=1') != -1 ){
		finishUpload();
	}
}
window.onload = onloadDewem;

document.oncontextmenu = function(e) {
	e = (e) ? e : window.event;
	if (e.ctrlKey){
		return true;
	}
	return false;
};
if (document.layers) {
	window.captureEvents(Event.MOUSEDOWN);
}
if (bNSDewem  && bVDewem<5) {
	window.onmousedown = clickDewem;
}









