var members={}
members.settings={}//customization
members.Members = function(){
	this.settings = $.extend({
			loginTitle: 'Strefa osób stowarzyszonych'
			,label_persons:'<b>D</b>ane osobowe'
			,label_places:'<b>B</b>aza obiektów'
			,label_specialists:'<b>B</b>aza fachowców'
			,label_news:'<b>Z</b>apowiedzi'
			,label_documents:'<b>D</b>okumenty'
			,label_logout:"<img src='/modules/layout/red_x.png'/> &#160;wyloguj się"
			,submenuContainerId:'div-bg-left'
			,submenuClasses:'menu-left '
			,moduleHeight:400
			,submenuClassNormal:'menu-left'
			,submenuClassActive:'menu-left-act'
			,wmode:'opaque'
			,showModuleWithMenu:false
			,objectVersion:''
			,zarzadAclGroup:7
			},members.settings||{});
	this.test = 0
	this.subShow = false
	this.hidingSub = false
	this.cookiesLib = new jslt.CookiesLib()
	this.cookieName = "memberToken"
	this.swfAvailable = false
	this.savedPage = ""
	this.token = ""
	this.user = ""
	this.lastSelectedId = ""
	this.selectStateOnSWF = ""
	this.overRef;
	this.calledLogin = false
	this.moduleShowed = false
	this.authorized = false
	this.checkPersistentCookie = function(){
		this.token = this.cookiesLib.readCookie(this.cookieName)
		this.user = this.cookiesLib.readCookie("user")
		if (this.token && this.token != "") {
			this.authorized =true
			this.createMembersMenu()
		}
		if(this.settings.menuItemId){
			var menuItem=$('#'+this.settings.menuItemId)[0]
			if(this.authorized){
				this.savedLogowanieStr=menuItem.innerHTML
				menuItem.innerHTML='informacje'
			}
			menuItem.onclick=function(){
				membersInstance.dispathLogin()
				return false
			}
		}
	}
	this.login = function(){
		this.calledLogin = true
		if (this.subShow) {
			alert("Jesteś już zalogowany")
			return
		}
		if (!this.cookiesLib.checkCookie(true)) {
			alert("Dla  działania modułu wymagane jest włączenie cookies - minimalnie cookies sesyjne")
			return
		}
		this.overRef = new jslt.OverPage()
		var overLay = this.overRef.getLayer(OverPageBrowser.config.opacity, {
			backgroundColor: OverPageBrowser.config.backgroundColor
		})
		overLay.onclick=null
		var aclV = new acl.ACLLoginForm1()
		overLay.innerHTML = aclV.getForm(this.settings.loginTitle)
		this.overRef.setCenter()
		this.overRef.centerContent(document.getElementById("aclForm"), [$("#aclForm").width(), $("#aclForm").height()])
		$("#aclCancel").bind("click", function(){
			membersInstance.cancelLogin()
		})
		$("#aclForm").bind("submit", function(){
			membersInstance.sendLogin()
			return false;
		})
	}
	this.sendClicked=false
	this.sendLogin = function(){
		if(this.sendClicked){return}
		this.sendClicked=true
		document.getElementById("aclFormComunicate").innerHTML="<img src='/modules/layout/loading/black_busy.gif'/> trwa autoryzacja"
		$.ajax({
			type: "POST",
			url: "/modules/amfphp2/json.php?service=cms2.MembersService.login",
			data: "k0=" + document.getElementById("hp01").value + "&k1=" + document.getElementById("hp02").value,
			success: function(json){
				membersInstance.evSendLoginResult(json)
			}
		});
	}
	this.evSendLoginResult = function(result){
		this.sendClicked=false
		document.getElementById("aclFormComunicate").innerHTML=""
		if (result == "" || result == "\"\"") {
			alert("Autoryzacja nie powiodła się")
			return
		}
		var result = eval("(" + result + ")");
		var ar=result.split(",")
		this.token = ar[0];
		this.user = ar[1];
		this.cookiesLib.setCookie(this.cookieName, this.token)
		this.cookiesLib.setCookie("user", this.user)
		this.overRef.hide()
		this.validLoginActions()
	}
	this.logout = function(){
		var mRef=document.getElementById('membersMovie')
		if(mRef){//strona z otworzonym
			mRef.logout()
		}else{
			$.ajax({
			type: "POST",
			url: "/modules/amfphp2/json.php?service=cms2.MembersService.logoutMember",
			success: function(){
				membersInstance.evLogoutComplete()
			}
		});
		}
		
	}
	this.evLogoutComplete = function(){
		this.authorized = false
		this.moduleShowed=false
		this.subShow = false
		this.cookiesLib.setCookie(this.cookieName, '')
		this.cookiesLib.setCookie('user', '')
		if (this.savedPage != "") {
			document.getElementById("content-td").innerHTML = this.savedPage
			members.switchLayoutType(false)
		}
		var submenuContainer=document.getElementById(this.settings.submenuContainerId)
		if(submenuContainer){
			submenuContainer.removeChild(document.getElementById("memberSubmenu"))
		}
		$('#membersHeaderDiv')
		.hide()
		.html('')
		$("#navi_logowanie").show();
		if (this.settings.menuItemId) {
			var menuItem = $('#' + this.settings.menuItemId)[0]
			menuItem.innerHTML = this.savedLogowanieStr
		}
	}
	this.cancelLogin = function(){
		this.overRef.hide()
	}
	this.validLoginActions = function(){
		if(this.moduleShowed){
			return
		}
		this.moduleShowed=true
		this.createSWFHTML()
		if(this.settings.showModuleWithMenu){
			$('#membersSwfOuterDiv').prepend($('<div id="'+this.settings.submenuContainerId+'"></div>')[0])
		}
		this.createMembersMenu()
	}
	this.createMembersMenu = function(){
		$('#membersHeaderDiv')
		.show()
		.html("<b>zalogowany:</b> "+this.user)
		$("#navi_logowanie").hide()
		var subContainer=document.getElementById(this.settings.submenuContainerId)
		if(!subContainer){
			return
		}
		if(this.subShow ){
			return
		}
		if (this.settings.menuItemId) {
			var menuItem = $('#' + this.settings.menuItemId)[0]
			this.savedLogowanieStr=menuItem.innerHTML
			menuItem.innerHTML = 'informacje'
		}
		this.subShow = true
		var wholeDiv = document.createElement("div")
		wholeDiv.id = "memberSubmenu"
		subContainer.appendChild(wholeDiv)
		this.createHTMLRef(wholeDiv, this.settings.label_logout, "logout","logoutLink")
		this.createHTMLRef(wholeDiv, this.settings.label_persons, "persons")
		this.createHTMLRef(wholeDiv, this.settings.label_places, "places")
		this.createHTMLRef(wholeDiv, this.settings.label_specialists, "specialists")
		this.createHTMLRef(wholeDiv, this.settings.label_news, "news")
		this.createHTMLRef(wholeDiv, this.settings.label_documents, "documents")
	}
	this.createSWFHTML = function(){
		var contentRef = document.getElementById("content-td")
		this.savedPage = contentRef.innerHTML
		contentRef.innerHTML = ""
		members.switchLayoutType(true)
		var swfOuterDiv = document.createElement("div")
		swfOuterDiv.id = "membersSwfOuterDiv"
		swfOuterDiv.style.position = "relative"
		contentRef.appendChild(swfOuterDiv)
		var swfInnerDiv = document.createElement("div")
		swfInnerDiv.id = "membersSwfInnerDiv"
		swfInnerDiv.style.position = "absolute"
		swfOuterDiv.appendChild(swfInnerDiv)
		var emb = new PluginEmbeder()
		emb.detectVersion = [9, 0, 0]
		emb.addAttribute("width", "100%")
		emb.addAttribute("height", "100%")
		emb.addAttribute("file", "/modules/Members/MembersView.swf")
		emb.addAttribute("id", "membersMovie")
		emb.addAttribute("allowFullScreen","true")
		emb.addAttribute("wmode", this.settings.wmode)
		emb.addVariable("token", this.token)
		emb.addVariable("user", this.user)
		emb.addVariable("mapsKey", cms2.google.keys.maps)
		emb.addVariable("isHTML", "true")
		emb.addVariable("objectVersion", this.settings.objectVersion)
		emb.addVariable("zarzadAclGroup", this.settings.zarzadAclGroup)
		if (this.selectStateOnSWF != "") {
			emb.addVariable("state", this.selectStateOnSWF)
		}
		swfInnerDiv.innerHTML = emb.getHTML()
		this.setSwfHeight()
	}
	this.createHTMLRef = function(container, label, state, classNamePlus){
		var a = document.createElement("a")
		a.className = this.settings.submenuClasses+" memberMenuItem"
		if(classNamePlus!=undefined){
			a.className+=" "+classNamePlus
		}
		$(a).bind("click", {
			state: state
		}, function(){
			if (state == "logout") {
				membersInstance.logout()
			}
			else {
				membersInstance.showState(state)
			}
		})
		a.innerHTML = label
		a.id = "navi_" + state
		container.appendChild(a)
	}
	this.showState = function(id){
		if (!this.swfAvailable) {
			this.selectStateOnSWF = id
			if (!this.calledLogin) {
				this.calledLogin = true
				this.createSWFHTML()
			}
			else {
				alert("Proszę czekać...")
			}
			return
		}
		//console.log(id)
		document.getElementById("membersMovie").setAplicationState(id)
	}
	this.setSwfAvailable = function(){
		this.swfAvailable = true
		if (this.selectStateOnSWF != "") {
			this.showState(this.selectStateOnSWF)
		}
	}
	this.setSwfHeight = function(heightVal){
		if (typeof heightVal == "undefined") {
			heightVal = this.settings.moduleHeight
		}
		$("#membersSwfOuterDiv").height(heightVal)
		$("#membersSwfInnerDiv").height(heightVal)
	}
	this.evSwfStateChange = function(stateName){
		if (this.lastSelectedId != "") {
			document.getElementById(this.lastSelectedId).className = this.settings.submenuClassNormal
		}
		this.lastSelectedId = "navi_" + stateName
		document.getElementById(this.lastSelectedId).className = this.settings.submenuClassActive
	}
	this.dispathLogin=function(){
		if(this.authorized){
			this.validLoginActions()
		}else{
			this.login()
		}
	}
}
members.startMembers=function(){
	window.membersInstance = new members.Members()
	window.membersInstance.checkPersistentCookie()
	document.getElementById("navi_logowanie").onclick = function(){
		membersInstance.login()
		return false
	}
	if(window.membersInstance.settings.showModuleWithMenu){
		document.getElementById("membersHeaderDiv").onclick = function(){
			membersInstance.validLoginActions()
			return false
		}
	}
}
onLoadQueue.appendOnLoad(members.startMembers)
