var recentHash = "";
var barCounter;
var caller;
var checkSavedText;
var iAmLogged;
var addThis = 1;

window.onload = function() {
	collapseInfoDump();
	listenDblClick();
	showLogBox();
	//initialiseStateFromURL();
	var poller = setInterval(pollHash, 500);
	checkSavedText = setInterval(checkSave, 333);
	detectLogin();
}

function checkSave() {
	if($('.modList').children('.yes')) {
		$('.modList').children('.yes').parent().animate({ width: $('.modList').children('.yes').parent().width() }, 500, function () {
			$('.modList').children('.yes').parent().animate({ opacity:0 }, 500, function () {
				$('.modList').children('.yes').parent().animate({ height: 0, width: 0 }), 100 
			});
		});
	}
}

/*function initialiseStateFromURL() {
	var initialTab = window.location.hash;
	if (initialTab != "") {
		//var thisFunc = openTab(initialTab);
	}
}*/

function pollHash() {
	if(window.location.hash==recentHash) {			
		/*if(window.location.pathname == "/it/prodotti" && window.location.hash == "") {
			reloadPage("it/prodotti"+"#prodotti/prodottiindex,1");
		} else if (window.location.pathname == "/en/products" && window.location.hash == "") {
			reloadPage("en/products"+"#products/productsindex,1");
		} else {
			return; //no changes
		}*/
		return; //no changes
	}
	recentHash = window.location.hash;
	
	//URL has changed, update the UI accordingly
	var thisFunc = openTab(recentHash);
}

function loadTab(tab,target,lang) {
	caller = "";
	var page = tab+","+target;
	//var thisFunc = openTab(page);
	window.location.hash = tab+","+target+","+lang;
}

function openTab(tab) {
	var strRaw = tab;
	var strArray = strRaw.split(",");
	//window.console.log("openTabCalled "+tab);
	//window.console.log(strArray);
	if(strArray[1] != undefined) {
		var arraySwitcher = strArray[1].replace("/%23login", "");
		arraySwitcher = arraySwitcher.replace("%23login", "");
		//window.console.log("> + "+arraySwitcher);
		switch(arraySwitcher) {
			case "0": myTarget = "bodyInterno";
			var thisTarget = document.getElementById(myTarget).childNodes[0].childNodes[0].id;
			var checkFunc = xmlreqGET("/core/base_functions.php?do=loadDiv&page="+strArray[0].replace("#",""),thisTarget);
			break;
			//currently working for EcEngineering only
			case "1":
				var myPageToLoad = strArray[0].replace("#","");
				var myContainerToLoad = myPageToLoad.split("/");
				var container = myContainerToLoad[0];
				var content = myContainerToLoad[1];
				var checkDiv = $('#bodyInterno').find('#prodottiContent');
				var checkTopDiv = $('#prodottiContent').find('#simpleGallery');
				var whatToLoad;
				//window.console.log(myContainerToLoad[0]+","+myContainerToLoad[1]+","+myContainerToLoad[2]);
					if (myContainerToLoad[1] == undefined) {
						whatToLoad = myContainerToLoad[0];
					} else {
						whatToLoad = myContainerToLoad[1];
					}
				if(checkDiv.length == 1 && checkTopDiv.length != 1) {
					//window.console.log("/core/base_functions.php?do=loadDiv&page="+whatToLoad);
					$('#prodottiContent').load("/core/base_functions.php?do=loadDiv&page="+whatToLoad);
				} else {
					if (strArray[2] == "it") {
						//window.console.log(strArray[2]+"/prodotti"+"#prodotti/"+whatToLoad+",1");
						reloadPage(strArray[2]+"/prodotti"+"#prodotti/"+whatToLoad+",1");
					} else if (strArray[2] == "en") {
						//window.console.log(strArray[2]+"/products"+"#products/"+whatToLoad+",1");
						reloadPage(strArray[2]+"/products"+"#products/"+whatToLoad+",1");
					}
				}
			break;
		}
		return checkFunc;
	}
}

function doJS(caller) {
	//alert (caller);
	var myDivTarget = document.getElementById("messageHolder");
	var myDivBtnTarget = document.getElementById("buttonPlace");
	switch(caller) {
		case "showPC":
		myDivTarget.style.display = "block";
		myDivBtnTarget.style.display = "block";
		iAmLogged = 1;
		break;
		case "hide":
		myDivTarget.style.display = "none";
		myDivBtnTarget.style.display = "none";
		iAmLogged = 0;
		break;
	}
}

function reloadPage(thisPage) {
	/*if(("/"+thisPage == window.location.pathname) && (thisPage.indexOf("#") != -1)) {
		window.console.log("fromReloadPage");
		$('#prodottiContent').load("/core/base_functions.php?do=loadDiv&page="+thisPage);
	} else {*/
		window.location.href = "/"+thisPage;
	//}
}

function showDiv(divName) {
	var thisDiv = document.getElementById(divName);
	thisDiv.style.display = "block";
}

function hideDiv(divName) {
	var thisDiv = document.getElementById(divName);
	thisDiv.style.display = "none";
}

function nullThis(inputName) {
	//alert(inputName);
	var thisObj = document.getElementsByName(inputName)[0];
	thisObj.value = "";
	thisObj.style.color = "#000";
}

function detectLogin() {
	if ( window.addEventListener )
	window.addEventListener('hashchange', showLogBox, false);
	else if ( window.attachEvent )
	window.attachEvent( 'hashchange', showLogBox );
}

function showLogBox() {
	var checkHasher = window.location.hash;
	if (checkHasher.indexOf("login") != -1) {
		 iAmLogged = 1;
	}
	var loginBox = document.getElementById("header");
	var mainBox = document.getElementById("main");
	var wrapper = document.getElementById("wrapperPage");
	if(iAmLogged == 1) {
	//
		loginBox.style.display = "block";
		mainBox.style.marginTop = "80px"; //specific stylishis mod
		var newHeight = parseFloat((wrapper.scrollHeight+100)*1.3) + "px";
		wrapper.style.height = newHeight;
		$('#header').load("/modules/login/functions/funclist.php?show=login");
		doJS('showPC'); 
	} else {
		xmlreqGET("/empty.php","header");
		loginBox.style.display = "none";
		mainBox.style.marginTop = "";
		wrapper.style.height = "auto";
		doJS('hide'); 
	}
}

function collapseInfoDump() {
	var warningTarget = document.getElementById("warningModules");
	var checkNoes = document.getElementsByTagName("li");
	var collapser = document.getElementById("infoDumper");
	var noesCounter = 0;
	for (var n = 0; n < checkNoes.length; n++) {
		if (checkNoes[n].className == "no") {
			noesCounter++;
		}
	}
	if (noesCounter > 0) {
		warningTarget.innerHTML = "ci sono stati errori";
	} else {
		warningTarget.innerHTML += "caricato correttamente";
		collapser.style.display = "none";
	}
}

function showInfoDumper() {
	var buttonTarget = document.getElementById("buttonPlace");
	var collapsed = document.getElementById("infoDumper");
	if (collapsed.style.display == "none") {
		collapsed.style.display = "block";
		buttonTarget.innerHTML = "chiudi";
	} else if (collapsed.style.display == "block") {
		collapsed.style.display = "none";
		buttonTarget.innerHTML = "apri";
	}
}

//<![CDATA[

// Uncomment the following code to test the "Timeout Loading Method".
// CKEDITOR.loadFullCoreTimeout = 5;

function listenDblClick() {
	if ( window.addEventListener )
		document.body.addEventListener( 'dblclick', onDoubleClick, false );
	else if ( window.attachEvent )
		document.body.attachEvent( 'ondblclick', onDoubleClick );
}

function showThisEditor(thisDiv) {
	replaceDiv( thisDiv );
	var myButton = thisDiv.replace("edit","warn");
	messageSendData(myButton,thisDiv);
}

function showThisEditorMenu(thisDiv,menuID) {
	//window.console.log(thisDiv);
	var myButton = thisDiv.replace("edit","warn");
	//messageSendData(myButton,thisDiv);*/
	xmlreqGET('/modules/login/functions/infoBox.php?show=menuChange&menu='+menuID,'arrow');
	Position.set('arrow',Position.getCenter2(myButton));
}

function saveMenu(myLabel,myMenu) {
	var myText = $('textarea[name=area'+myLabel+']').val();
	/*window.console.log(myText);*/
	$('#arrow').load('/core/save.php?do=saveMenu', {'myLabelSave':myLabel,'myMenuSave':myMenu,'myTextSave':myText}, function () {
		xmlreqGET('/modules/login/functions/infoBox.php?show=menuChange&menu='+myMenu,'arrow');
	});
}

function deleteMenu(myLabel,myMenu) {
	var myText = $('textarea[name=area'+myLabel+']').val();
	/*window.console.log(myText);*/
	$('#arrow').load('/core/save.php?do=eraseMenu', {'myLabelSave':myLabel,'myMenuSave':myMenu,'myTextSave':myText}, function () {
		xmlreqGET('/modules/login/functions/infoBox.php?show=menuChange&menu='+myMenu,'arrow');
	});
}

function addMenu(myLabel,myMenu,order) {
	$('#label'+myLabel).after('<div class="menuItem glow" id="add"><div class="editWarning"><div class="modList"><span onclick="saveMenu(null,'+myMenu+')" class="salva">aggiungi</span></div></div><textarea cols="30" rows="2" name="area">'+addThis+'</textarea></div>');
	addThis++;
}

function onDoubleClick( ev )
{
	// Get the element which fired the event. This is not necessarily the
	// element to which the event has been attached.
	var element = ev.target || ev.srcElement;
	// Find out the div that holds this element.
	//element = element.parentNode;
	if (element.nodeName.toLowerCase () == 'img') {
		element = element.parentNode;
	}
	
	if ( element.nodeName.toLowerCase() == 'div' && ( element.className.indexOf( 'editable' ) != -1 ) ) {
		replaceDiv( element.id );
		var thisButtonChange = element.id;
		var myButton = thisButtonChange.replace("edit","warn");
		messageSendData(myButton,thisButtonChange);
	}
}

var editor;

function replaceDiv( div,newName )
{
	if ( editor ) {
		var passThis = editor.name;
		packUpDataSText(passThis.replace("edit","warn"),passThis);
	}
	var myHolder = document.getElementById(div).parentNode.parentNode.parentNode.id;
	if (myHolder == "inPagePic" || myHolder == "headerInterno" || myHolder == "footerInterno") {
		editor = CKEDITOR.replace( div,{
    	    toolbar : 'ImgToolbar',
			filebrowserBrowseUrl : '/ckfinder/ckfinder.html',
			filebrowserImageBrowseUrl : '/ckfinder/ckfinder.html?type=Images',
			filebrowserUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
			filebrowserImageUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
			filebrowserWindowWidth : '800',
 			filebrowserWindowHeight : '500'
    	} );
	} else {
		editor = CKEDITOR.replace( div,{
    	    toolbar : 'MyToolbar',
			filebrowserBrowseUrl : '/ckfinder/ckfinder.html',
			filebrowserImageBrowseUrl : '/ckfinder/ckfinder.html?type=Images',
			filebrowserFlashBrowseUrl : '/ckfinder/ckfinder.html?type=Flash',
			filebrowserUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files',
			filebrowserImageUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images',
			filebrowserFlashUploadUrl : '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash',
			filebrowserWindowWidth : '1000',
 			filebrowserWindowHeight : '700'
    	} );
	}
}

var thisButtonSet;
function messageSendData(target,source) {
	//alert(target+","+source);
	var thisModule = document.getElementById(target).parentNode.id;
	var thisPassingModule;
	if (thisModule=="newsBody") {
		thisPassingModule = "News";
	} else {
		thisPassingModule = "SimpleText";
	}
	if(!thisButtonSet) {
		thisButtonSet = document.getElementById(target).innerHTML;
	}
	document.getElementById(target).innerHTML = "<div class=\"modList\"><span onclick=\"packUpDataSText('"+target+"','"+source+"','"+thisPassingModule+"');\" class=\"salva\">Invia Modifica</span></div>";
}
/*function messageSendData(target,source) {
	//window.console.log(target+","+source);
	if(!thisButtonSet) {
		thisButtonSet = document.getElementById(target).innerHTML;
	}
	document.getElementById(target).innerHTML = "<div class=\"modList\"><span onclick=\"packUpDataSText('"+target+"','"+source+"');\" class=\"salva\">Invia Modifica</span></div>";
}*/

function packUpDataSText(target,source,module) {
	if (!editor) {
		return;
	}
	var myDivArgument = source.replace("edit","warn");
	var myDivItem = source.replace("edit","");
	document.getElementById(target).innerHTML = thisButtonSet;
	//var thisString = source.id;
	var myTextTarget;
	if(module == "SimpleText") {
		myTextTarget = source.replace("edit","stext");
	} else if (module == "News") {
		var thisSourceToEdit = document.getElementById("newsBlockTitleBigger").innerHTML;
		myTextTarget = thisSourceToEdit.replace("/[^\w\d_ -]/si","_");
	}
	//alert(source+">>"+editor.getData());
	var myChanges = new Array(myTextTarget, editor.getData(), module);
	editor.destroy();
	editor = null;
	collectChanges(myChanges);
}
/*function packUpDataSText(target,source) {
	if (!editor) {
		return;
	}
	var myDivArgument = source.replace("edit","warn");
	var myDivItem = source.replace("edit","");
	document.getElementById(target).innerHTML = thisButtonSet;
	var myTextTarget = source.replace("edit","stext");
	var myChanges = new Array(myTextTarget, editor.getData(), "SimpleText");
	editor.destroy();
	editor = null;
	collectChanges(myChanges);
}*/

var changesListArray = new Object();

function collectChanges(changesList) {
	changesListArray[changesList[0]] = changesList;
	document.getElementById("warnModder").innerHTML = "ci sono modifiche da salvare <span class=\"salva\" onClick=\"javascript:sendToEngine('all');\">Salva tutte</span>";
	var myContent = "";
	var myContent2 = "";
	for (var Control in changesListArray) {
		myContent+="<div id=\"warn"+changesListArray[Control][0]+"\"><ul class=\"modList\"><li class=\"no\">"+changesListArray[Control][2]+"/"+changesListArray[Control][0]+" modificato <span class=\"salva\" onClick=\"javascript:sendToEngine('"+[Control]+"');\">Salva</span></li></ul></div>";
		myContent2="<div id=\"warn"+changesListArray[Control][0]+"\"><ul class=\"modList\"><li class=\"no\">testo modificato <span class=\"salva\" onClick=\"javascript:sendToEngine('"+[Control]+"');\">Salva</span></li></ul></div>";
	}
	var lowerBox = document.getElementById("changesCollector");
	var upperButtonBox = changesListArray[Control][0].replace("stext","");
	var upperBox = document.getElementById("warn"+upperButtonBox);
	lowerBox.innerHTML = myContent;
	upperBox.innerHTML += myContent2;
}

function sendToEngine(index) {
	switch (index) {
		case "all": xmlreqPOST("/core/save.php", changesListArray, "warnModder");
		break;
		default: xmlreqPOST("/core/save.php", changesListArray[index], "warn"+changesListArray[index][0]);
		break;
	}
}

function changeMeta(metaTag) {
	var myNewInputField = $('#'+metaTag).parent();
	var myNewInputFieldText = $('#'+metaTag).html();
	$('#'+metaTag).hide('fast', function () {
		//window.console.log("clicked: ", myNewInputField, myNewInputField.attr('onclick'));
		myNewInputField.attr({'onclick':''});
		switch(metaTag) {
			case "metaKeywords": showIt = "keywords";
			break;
			case "metaDescription": showIt = "description";
			break;
			case "metaTitle": showIt = "titolo";
			break;
		}
		myNewInputField.html(showIt+': <span onclick="saveMeta(\''+metaTag+'\')" class="menuSmallBtn">salva</span><br><div id="'+metaTag+'New"><textarea cols="30" rows="5" name="'+metaTag+'" id="'+metaTag+'Input">'+myNewInputFieldText+'</textarea></div>');
	});
}

function saveMeta(thisMetaTag) {
	var showIt;
	var myOldInputField = $('#'+thisMetaTag+'New').parent();
	var myOldInputFieldText = $('#'+thisMetaTag+'Input').val();
	$('#'+thisMetaTag+'Input').hide('fast', function () {
		switch(thisMetaTag) {
			case "metaKeywords": showIt = "keywords";
			break;
			case "metaDescription": showIt = "description";
			break;
			case "metaTitle": showIt = "titolo";
			break;
		}
		$.ajax({type: "POST", url: "/core/save.php?do=saveMeta", data: ({ keywords: $('#metaKeywordsInput').val(), description: $('#metaDescriptionInput').val(), seoTitle: $('#metaTitleInput').val() }), success: function(data) {
				$('#'+thisMetaTag+'New').parent().attr({'onclick':'javascript:changeMeta("'+thisMetaTag+'");'});
				$('#'+thisMetaTag+'New').parent().html(showIt+': <span class="smallMessage">(clicka per modificare)</span><br><div id="'+thisMetaTag+'">'+myOldInputFieldText+'</div>');
			}
		});
	});
}

	//]]>
