Ext.BLANK_IMAGE_URL = 'lib/ext-2.2.1/resources/images/default/s.gif';
var client;
var level;
var toolBarWidth;
$(document).ready(function() {
	Ext.getUrlParam = function(param) {
	   var params = Ext.urlDecode(location.search.substring(1));
	   return param ? params[param] : params;
	};
	client = Ext.getUrlParam('client');
	getMenuStructure();
	resizeFooter();
	$(window).bind("resize", resizeWindow);
		function resizeWindow( e ) {
			resizeFooter();
		}

	//load the client stylesheet, which will also set variables in the variable divs
	var styleSheet = client + "/" + client + ".css";
	applyJQueryTheme(client);
	switchStylestyle(styleSheet);
	$("#header").load(client + "/header.html");		
	$.getScript(client + "/" + client + ".js");
	getClerkMessage(client);
//	buildSearchToolBar();
});



function switchStylestyle(styleSheet) {
		//$('link[title="clientStyleSheet"]').attr('href', styleSheet);
		$('#clientStyleSheet').attr('href', styleSheet);
		/*
        $('link[rel*=style]').each(function(i)
        {
                if (this.getAttribute('title') == "clientStyleSheet") {
					this.disabled = true;
					this.setAttribute('href',styleSheet);
					this.disabled = false;
				}
        });
		*/
}


function applyJQueryTheme(client) {
//		var styleURL = client + '/jquery-theme-1.7/css/custom-theme/jquery-ui-1.7.custom.css'
		var styleURL = client + '/jquery-ui-1.7.2.custom/css/custom-theme/jquery-ui-1.7.2.custom.css';
		//$('link[title="themeroller"]').attr('href', styleURL)
		$('#themeroller').attr('href', styleURL)
			
        /*
		$('link[rel*=style]').each(function(i)
        {
                if (this.getAttribute('title') == "themeroller") {
					this.disabled = true;
					this.setAttribute('href',styleURL);
					this.disabled = false;
				}
        });
		*/
}


//footer won't resize automatically, and is a few pixles off of what the other pages elements are rendering to. Don't know why.
function resizeFooter() {
	return;
	var headerWidth = $("#header").width();
	$(".footer").width(headerWidth + 57);	
}

function openDialog(){
	$('#dialog').dialog({
		autoOpen: true,
		buttons: {
			"Ok": function(){
				$(this).dialog("close");
			},
			"Cancel": function(){
				$(this).dialog("close");
			}
		}
	});
}

function getMenuStructure() {
	var inputString = "";
	Ext.Ajax.request({
		url:'/TLM/tlm2Control?transaction=getMODClientMenu&tlmID=0&client=' + client,
		success: function(inboundJSON) {
			eval("accordionArray = " + inboundJSON.responseText);
			checkMeetingDates($('#topAccordion'),accordionArray,0);
		},
		failure: function(inboundJSON, ajaxCall) {
			Ext.MessageBox.alert('Error',inboundJSON.responseText,function(){return;}); 
			return;
		}
	});
}

function checkMeetingDates(parentElement,accordionArray,level) {
	Ext.Ajax.request({
		url: client + '/' + client + 'Meetings.html',
		success: function(obj1,obj2,obj3){
			createAccordion($('#topAccordion'),accordionArray,0,true);
		},
		failure: function(obj1,obj2,obj3) {
			createAccordion($('#topAccordion'),accordionArray,0,false);
		}
	});
	
}

function createAccordion(parentElement,accordionArray,level,includeMeetings) {
	var inputString = "<div class='accordion'>";
	if (level == 0) {
		inputString += getAssistanceAccordion();
		if (includeMeetings) {
			inputString += getMeetingDatesAccordion();
		}
	}
	Ext.each(accordionArray,function(item,index,allItems){
		if (Ext.type(item) != 'function') {
			var tlmID = item.tlmID;
			var folderName = '';
			var tempVar = item.folderName;
			folderName = tempVar;
			
			var isLeaf = item.leaf;
			var isPacket = item.isPacket;
			var packetSecurity = item.ePacketSecurity;
			inputString += '<div>';
			inputString += '<h3 class="acc1" tlmID="' + tlmID + '"  isLeaf=' + isLeaf + ' isStatic=false isPacket='+isPacket+' packetSecurity='+packetSecurity+' ><a href="#" ';
			if (level > 0) {
				inputString += 'class="subaccordion" ';
			}
			inputString += '>';
			inputString += folderName
			inputString += '</a></h3>';
			
			if (isLeaf == true) {
				inputString += '<div class="accordionLeaf"></div>';
			}
			else {
				inputString += '<div><p></p></div>';
			}

		}
		
	},this);
	if (level == 0) {
		inputString += getEmailAccordion();
	}
	parentElement.append(inputString);
	activateAccordion();
}

function activateAccordion() {
	$(".accordion").accordion({
		header: "h3.acc1"
        ,alwaysOpen: false
        ,active: true
        ,clearStyle: true
		,animated: false
		,change: function(event, ui) {
			$(".accordionLeaf").css('display','none');
			$(".ui-selected").removeClass("ui-selected");
			var tlmID  = ui.newHeader.attr('tlmID');
			var isLeaf = ui.newHeader.attr('isLeaf');
			var isStatic = ui.newHeader.attr('isStatic');
			var isPacket = ui.newHeader.attr('isPacket');
			var packetSecurity = ui.newHeader.attr('packetSecurity');
			if (isStatic == "true") {
				return;
			}
			if (isPacket == "true") {
				if (!ePacketAuthorized && packetSecurity == "true") {
					displayLoginWindow(tlmID);
					return;
				}
			}
			Ext.get('workArea').dom.innerHTML = '';
			if (isLeaf == "true") {
				Ext.get('workArea').dom.innerHTML = '';
				loadFolderTree(tlmID);
				return;
			} 
			if (!tlmID) {return;}
			var isRendered = ui.newHeader.attr('rendered');
			if ( isRendered == "true") {
				return;
			}
			Ext.Ajax.request({
				url:'/TLM/tlm2Control?transaction=getMODClientMenu&tlmID='+tlmID+'&client=' + client,
				success: function(inboundJSON) {
					eval("accordionArray = " + inboundJSON.responseText);
					ui.newHeader.attr('rendered',true);
					createAccordion(ui.newContent,accordionArray,1,false);
				},
				failure: function(inboundJSON, ajaxCall) {
					Ext.MessageBox.alert('Error',inboundJSON.responseText,function(){return;}); 
					return;
				}
			});
		}
	});	
	
}

function getAssistanceAccordion() {
	var inputString = '<div>';
	inputString += '<h3 class="acc1" isStatic=true><a onClick="showAssistance();">';
	inputString += 'Helpful Information'
	inputString += '</a></h3>';
	inputString += '<div><p>Helpful Information</p></div>';
	return inputString
}

function getMeetingDatesAccordion() {
	var inputString = '<div>';
	inputString += '<h3 class="acc1" isStatic=true onClick="showMeetingDates();"><a href="#">';
	inputString += 'Meeting Dates'
	inputString += '</a></h3>';
	inputString += '<div class="accordionLeaf"></div>';
	return inputString
}

function showAssistance() {
    var checkExist = Ext.getCmp('assistanceWindow');
    if (checkExist) {
		checkExist.show();
        return;
    }	

    var assistanceWindow = new Ext.Window({
        title:'Helpful Information',
        id:'assistanceWindow',
		renderTo:Ext.getBody(),
		closeAction:'destroy',
		autoLoad:{url:'helpful_info.html'},
		animateTarget:Ext.getBody(),
		animCollapse:true,
        plain: true,
        hideBorders: true,
		constrainHeader:true,
		width:540,
		height:400,
		autoScroll:true,
		buttonAlign: 'center',
	    listeners: 
	          { hide: { fn:function()
	                {
                        assistanceWindow.destroy();
	                }
	          	}  
			  }
    });
    assistanceWindow.show();
}

function showMeetingDates() {
    var checkExist = Ext.getCmp('meetingWindowWindow');
    if (checkExist) {
		checkExist.show();
        return;
    }	
	var meetingString;
	var meetingsURL = client + '/' + client + 'Meetings.html';
	Ext.Ajax.request({
		url: meetingsURL,
		success: function(response) {
			meetingString = response.responseText;
			//if this is a full HTML document, then it is in the new Calendar format and needs it's own window
			//if it isn't, then it is just a collection of divs we read in and display
			if (meetingString.indexOf('<html') > -1) {
				window.open(meetingsURL,'windowNew','toolbar=no,location=no,status=yes,menubar=no,scrollbars= yes,resizable=yes,width=600,height=800');
				return;
			}
		    var meetingWindow = new Ext.Window({
		        title:'Meeting Dates',
		        id:'meetingWindowWindow',
				constrainHeader:true,
				renderTo:Ext.getBody(),
				layout:'fit',
				closeAction:'destroy',
		        html:meetingString,
				animateTarget:Ext.getBody(),
				animCollapse:true,
		        plain: true,
		        hideBorders: true,
				constrainHeader:true,
				width:400,
				height:480,
				autoScroll:true,
				buttonAlign: 'center',
			    listeners: 
			          { hide: { fn:function()
			                {
		                        meetingWindow.destroy();
			                }
			          	}  
					  }
		    });
		    meetingWindow.show();
			meetingWindow.doLayout();
		}
	})


}

function getEmailAccordion() {
	var inputString = '<div>';
	inputString += '<h3 class="acc1" isStatic=true><a href="#" onclick="createEmailForm();">';
	inputString += 'Email Us'
	inputString += '</a></h3>';
	inputString += '<div class="accordionLeaf"></div>';
	return inputString
}

function createEmailForm() {
	Ext.get('workArea').dom.innerHTML = '';
	displayEmailWindow(client,'Public Facing Page');
}

function sendEmail(aForm) {
		/* DELETE THIS IF YOU USE FORMMAIL*/
		var eBody = $('#emailBody').attr('value');
		var eSubject = $('#subjectLine').attr('value');
		var emailString = 'mailTo:rwhall@clinecta.com?SUBJECT=' + eSubject + '&body=' + eBody;
		aForm.action = emailString;
		return true;
}

function launchAssistance() {
	Ext.MessageBox.alert('***DEBUG>','Launch window with tabs and static content from Kevin');
}
function getClerkMessage(client) {
	var subClientInfo = '';
	Ext.Ajax.request({
		url:'/TLM/tlm2Control?transaction=getClerkMessage&subClientName=' + client,
		success: function(inboundJSON) {
			eval("subClientInfo = " + inboundJSON.responseText);
			$('#messageFromClerk').html(subClientInfo.message);
//			$(subClientInfo.message).appendTo('#messageFromClerk');
		},
		failure: function(inboundJSON, ajaxCall) {
			Ext.MessageBox.alert('Error',inboundJSON.responseText,function(){return;}); 
			return;
		}
	});	
	
}

