
var someThingChanged=false;
if(!loggedInRedirectPage)
	var loggedInRedirectPage = '';

function currencyFormat(fld, milSep, decSep, e) 
{
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.event) ? e.keyCode : e.which;
	if (whichCode == 13 || whichCode == 8 || whichCode == 0) return true;  

	key = String.fromCharCode(whichCode);  // Get key value from key code

	if(!key.match(/\d+/)) return false;
	
	/* checking decimal charactor existence and it is already into string or not";*/

	numval = fld.value.replace(/0?[^\d]+/ig,'');

	if(decSep != "" && numval.length < 2)
		newval = "0" + decSep + numval.slice(-2);
	else
	{
		if(decSep != "" )
		{
			var firstpart = numval.slice(0,-1);
			var secondpart = numval.slice(-1);
			newval = "";
			
			while(firstpart.length > 3)
			{
				newval = milSep + firstpart.slice(-3) + newval;
				firstpart = firstpart.slice(0,-3);
			}
			
			newval = firstpart + newval ;
			newval += decSep + secondpart;		
		}
		else
		{
			var firstpart = numval.slice(0,-2);
			var secondpart = numval.slice(-2);
			newval = "";
			
			while(firstpart.length > 3)
			{
				newval = milSep + firstpart.slice(-3) + newval;
				firstpart = firstpart.slice(0,-3);
			}
			
			newval = firstpart + newval + milSep + secondpart ;
			newval = newval.replace(/^,?/,'');		
		}
	}

	

	fld.value = newval;

	return true;
}


/**

function for adding party

@args : num			Number of divs

*/

var lastNum = 1;	//Number of divs showing initially

function add_party_div(value)
{
	/**/
	
	var num = parseInt(value); //Getting numeric valye of text box
	
	if(isNaN(num)) 
		return;			//If not a number then return
	
		
	//Element.hide($('party_container'));
	
	for(var i=lastNum ; i > num ;i-- )
		Element.remove('party' + i);		//Remove divs if it is less then previous number
	
	i++;
	
	var html = "";
		
	for(;i<=num ;i++)
	{
		//Generating neccesary html to insert

		html += '<div id="party' + i + '" class="party">';
		html += 'Party ' + i + ':<br>';
		html += 'Name: <input type="text" size="40" name="party'+i+'_Name" value=""><br>';
		html += 'Date of Birth: <input type="text" size="14" name="party'+i+'_DOB" value="" >';
		html += '&nbsp;<img src="images/cal.gif" align="top" onClick="popUpCalendar(this, document.ac_form.party'+i+'_DOB, \'dd-mm-yyyy\', 0)" width="16" height="16" >';						
		html += '<br/></div>';

	}

	$('party_container').innerHTML += html;	 //Inserting generated HTML into parent division
	
	lastNum = num;		//Assigning num to last num
}

PartyDivs = Class.create();

PartyDivs.prototype = {

		classname : 'party',		
		totaldivs : 1,
		container : null,
		uid : null,

		initialize : function(container,options) {
			//initializing the startup divs

			Object.extend(this, options || {});
			this.uid = new Date().getTime();
			this.container = $(container);

			this.createDivs();
		},
		addDiv : function(id){
				var self=this;
				/*html = '<fieldset><legend>Party ' + id + '</legend>';
				html += '<div id="party' + i + '" class="'+ this.classname +'"><table><tr><td colspan=2>';
				html += '<input type="button" value="Insert After" id="btndel_'+this.uid+'_'+id+'">&nbsp;';
				html += '<input type="button" value="Insert Before">&nbsp;';
				html += '<input type="button" value="Delete">&nbsp;';
				html += '</td></tr><tr><td>';
				html += 'Name: </td><td><input type="text" size="40" name="party'+id+'_Name" value=""></td></tr>';
				html += '<tr><td>Date of Birth: </td><td><input type="text" size="14" name="party'+id+'_DOB" value="" >';
				html += '&nbsp;<img src="images/cal.gif" align="top" onClick="popUpCalendar(this, document.ac_form.party'+id+'_DOB, \'dd-mm-yyyy\', 0)" width="16" height="16" ></td></tr>';			
				html += '</table><br/></div></fieldset>';

				return html;*/
				
				var div = document.createElement('div');
				div.setAttribute("id","party" + i);
				var fieldset = document.createElement('fieldset');
				var legend = document.createElement('legend');
				legend.appendChild(document.createTextNode('Party ' + id));
				fieldset.appendChild(legend);
				var table = document.createElement('table');
				var tbody = document.createElement('tbody');
				var tr = document.createElement('tr');
				var td = document.createElement('td');
				 if (td.colSpan)
					  td.colSpan="7";
				 else
					  td.setAttribute("colspan", "7");
				var button = document.createElement('input');
				button.setAttribute('type','button');
				button.setAttribute('value','Insert Before');
				button.onclick = function ()
								{
									self.insetBefore(id);
								};
				td.appendChild(button);

				var button = document.createElement('input');
				button.setAttribute('type','button');
				button.setAttribute('value','Insert After');
				button.onclick = function ()
								{
									self.insetAfter(id);
								};
				td.appendChild(button);

				var button = document.createElement('input');
				button.setAttribute('type','button');
				button.setAttribute('value','Delete');
				button.onclick = function ()
								{
									self.removeMe(id);
								};
				td.appendChild(button);

				tr.appendChild(td);
				tbody.appendChild(tr);
			
				tr = document.createElement('tr');
				td = document.createElement('td');
				td.appendChild(document.createTextNode('Name:'));
				tr.appendChild(td);

				td = document.createElement('td');
				var input = document.createElement('input');
				input.setAttribute('name',"party"+id+"_Name");
				input.setAttribute('id',"party"+id+"_Name");
				input.setAttribute('size',"40");
				td.appendChild(input);
				
				tr.appendChild(td);
				tbody.appendChild(tr);

				tr = document.createElement('tr');
				td = document.createElement('td');
				td.appendChild(document.createTextNode('Date of Birth:'));
				tr.appendChild(td);

				td = document.createElement('td');
				var input = document.createElement('input');
				input.setAttribute('name',"party"+id+"_DOB");
				input.setAttribute('id',"party"+id+"_DOB");
				input.setAttribute('size',"14");
				td.appendChild(input);

				var img = new Image();
				img.src = 'images/cal.gif';
				img.onclick = function() {
					popUpCalendar(this, document.ac_form.elements['party'+id+'_DOB'], 'dd-mm-yyyy', 0)
					};				
				img.setAttribute("align",'top');
				img.style.paddingLeft = '4px';
				td.appendChild(img);
				
				tr.appendChild(td);
				tbody.appendChild(tr);

				table.appendChild(tbody);
				fieldset.appendChild(table);

				div.appendChild(fieldset);
				
				return div;
		},
		createDivs : function(){
			for (var i=1;i<=this.totaldivs ; i++)
			{
				this.container.appendChild(this.addDiv(i));
			}	
		},
		insetBefore : function(id)
		{
			this.container.appendChild(this.addDiv(++this.totaldivs));
			for(var i=this.totaldivs;i>id;i--)
			{
				this._copyData(i,i-1);
			}
		},
		insetAfter : function(id)
		{
			this.container.appendChild(this.addDiv(++this.totaldivs));
			for(var i=this.totaldivs;i>id+1;i--)
			{
				this._copyData(i,i-1);
			}

		},
		removeMe : function(id)
		{
			if(this.totaldivs == 1 )
			{
				alert('Could not delete last section.');
				return false;
			}

			for(var i=id ; i<this.totaldivs ; i++)
			{
				this._copyData(i,i+1);
			}
			this.container.removeChild(this.container.lastChild);
			this.totaldivs--;
		},
		_copyData : function(toid,fromid)
		{
			document.ac_form.elements['party'+toid+'_DOB'].value = document.ac_form.elements['party'+fromid+'_DOB'].value;
			document.ac_form.elements['party'+toid+'_Name'].value = document.ac_form.elements['party'+fromid+'_Name'].value;

			document.ac_form.elements['party'+fromid+'_DOB'].value = '';
			document.ac_form.elements['party'+fromid+'_Name'].value = '';
		}

};

	   function toggleSlide() {
		  if ( showing )
			 { slideMenuUp(); showing = false; }
		  else
			 { slideMenuDown(); showing = true; }
	   }

	   function slideMenuUp() {
		  saveHeight = menu.offsetHeight;

		  menu.style.overflow = "hidden";
		  new Rico.Effect.Size( menu, null, 1, 120, 8 );

	   }

	   function slideMenuDown() {
		  new Rico.Effect.Size( menu, null, saveHeight, 120, 8, {complete:function() { $(menu).style.overflow = "visible"; }} );
	   }

		function accord() 
		{ 
			//new Rico.Accordion( 'sub_accordionPanel', {panelHeight:'auto',onLoadShowTab:0} );
			new Rico.Accordion( 'accordionPanel', {panelHeight:'auto',onLoadShowTab:-1} );
			//var partydiv = new PartyDivs('party_container',{totaldivs:1});
			Element.hide('loadingBar');
			Element.show('accordionPanel');
			if($('area_children'))
				show_children(0);
			
			if(loggedin==1)
				get_values(document.ac_form,2);

			Event.observe(document,'keyup',madeChanges);
			Event.observe(document,'click',madeChanges);

		}


		var url = "ajax_handler.php";

		function submit_form(form_obj,use_ajax,del_val)
		{
			if(loggedin == 0)
			{
				alert("You are not logged in.\n\nPlease sign in (at top right of screen).");
				return false;
			}

			if(parseInt(del_val)==1)
			{
				if(!confirm("Are you sure you want to clear this form\n and delete all the information you have saved?"))
					return false;
				
			}
			
			if(parseInt(del_val)==1)
				var params='act=clear_answer&';
			else if(parseInt(use_ajax)==2)
				var params='act=submit_answer&';
			else
				var params='act=save_answer&';

			for(var i=0;i<form_obj.elements.length;i++)
			{
				/*if(form_obj.elements[i].id.match(/^chkdate_/))
				{
					if(!is_date(form_obj.elements[i].value,'dd-mm-yyyy') && !is_empty(form_obj.elements[i].value))
					{
						if(form_obj.elements[i].title)
							alert(form_obj.elements[i].title);
						else
							alert("Please enter a right date (dd-mm-yyyy)");
						form_obj.elements[i].focus();
						return false;
					}
				}*/
				
				if(form_obj.elements[i].type.toLowerCase() == 'checkbox')
				{
					if(!form_obj.elements[i].checked)
					{
						form_obj.elements[i].value = 'F';
						/*if(parseInt(use_ajax) != 1)
							form_obj.elements[i].checked = true;*/
					}
					else
						form_obj.elements[i].value = 'T';
				}
				if(form_obj.elements[i].type.toLowerCase() == 'radio' && !form_obj.elements[i].checked)
				{
					continue;
				}

				if(parseInt(del_val)==1)
				{
					params += form_obj.elements[i].name + "=&";
					if(form_obj.elements[i].type.toLowerCase() != 'submit' && form_obj.elements[i].type.toLowerCase() != 'button' && form_obj.elements[i].type.toLowerCase() != 'reset')
					form_obj.elements[i].value = "";
				}
				else
					params += form_obj.elements[i].name + "=" +form_obj.elements[i].value + "&";
			}

			if(parseInt(use_ajax) >= 1)
			{
				if(parseInt(del_val)==1)
					Element.update('loadingBar','Deleting...');
				else
					Element.update('loadingBar','Saving...');
				Element.show('loadingBar');
				if(parseInt(use_ajax) == 2)
					params +="act1=make_csv";
				else
					params +="act1=save_data";
				params+='&mn='+$("matter_number").value;

				new Ajax.Request(
						url,
						{
							method: 'POST'
							,parameters : params
							,onComplete : function (req) {
									Element.hide('loadingBar');
									
									if(req.responseText.indexOf("NO_MATTER")!=-1)
									{
										var win = new Window('modal_window', {className: "family", title: "New Matter", width:430, height:100, zIndex:150, opacity:1, resizable: false,draggable:false,maximizable: false, minimizable: false})
										//win.getContent().innerHTML = "Hi"
										Element.hide('new_matter_inner');
										win.setHTMLContent($("new_matter").innerHTML);
										win.setDestroyOnClose();
										win.showCenter();
										win.show(true);	
										return;
									}
									else if(req.responseText.indexOf("<fieldset")!=-1)
									{
										var win = new Window('modal_window', {className: "family", title: "New Matter", width:430, height:210, zIndex:150, opacity:1, resizable: false,draggable:false,maximizable: false, minimizable: false})
										//win.getContent().innerHTML = "Hi"
										Element.show('new_matter_inner');
										var html = $("new_matter").innerHTML.replace('--MATTER-NUMBER--',req.responseText);
										win.setHTMLContent(html);
										win.setDestroyOnClose();
										win.showCenter();
										win.show(true);	
										return;
									}
									else if(parseInt(use_ajax) == 2)
										alert("Your details have been submitted.\n\n A completed form will be emailed to you shortly");	
									else if(parseInt(use_ajax) == 3)
										get_values(form_obj,1);	

									someThingChanged = false;
								}
						}
				)
				return false;
			}
			else
				return true;
		}


		function sign_in()
		{
			// debug($('modal_window_content'))
			var win = new Window('modal_window', {className: "family", title: "Sign in", width:200, height:130, zIndex:150, opacity:1, resizable: false,draggable:false,maximizable: false, minimizable: false })
			//win.getContent().innerHTML = "Hi"
			win.setHTMLContent($("div_login").innerHTML);
			win.setDestroyOnClose();
			win.showCenter();
			win.show(true);	
		}

		
		function login()
		{
			if(!is_email($('userEmail').value))
			{
				alert('Please enter the email adddress and password you signed up with.');
				$('userEmail').focus();
				return false;
			}

			if(is_empty($('userPwd').value))
			{
				alert('Please enter the email adddress and password you signed up with.');
				$('userPwd').focus();
				return false;
			}
			
			$('userEmail').disabled = true;
			$('userPwd').disabled = true;

			var params = "act=login&userEmail="+$('userEmail').value+"&userPwd="+$('userPwd').value;
			submit_it(params,'ajax_msg','login');
			return false;
		}

		function new_matter()
		{
			if(is_empty($('matterNumber').value))
			{
				alert('Please enter the matter number.');
				$('matterNumber').focus();
				return false;
			}

			$('matterNumber').disabled = true;
			$('client').disabled = true;
			$('description').disabled = true;

			var params = "act=add_matter&matterNumber="+$('matterNumber').value+"&client="+$('client').value+"&description="+$('description').value;
			submit_it(params,'ajax_msg','add_matter');
			return false;
		}

		function submit_it(params,div,act)
		{
			new Ajax.Request(
					url,
					{
						method: 'post'
						,parameters : params
						,onComplete : function (req) { handle_response(req,div,act)}
					}
			)
		}

		function handle_response(req,div,act)
		{

			if(act=='login' && req.responseText=='success')
			{
				if(!is_empty(loggedInRedirectPage) && loggedInRedirectPage)
				{
					location.href = loggedInRedirectPage;
					return true;
				}

				$('div_sign').innerHTML = "<b>" + $('userEmail').value + "</b> | <a href='settings.html' >Settings</a> | <a href='logout.php' >Sign Out</a>";
				loggedin = 1;
				Windows.focusedWindow.hide();
				get_values(document.ac_form,1);
				return;
			}
			else if(act=='login')
			{
				$('userEmail').disabled = false;
				$('userPwd').disabled = false;

				//alert(req.responseText.replace('<br>',"\n"));
				$(div).innerHTML = req.responseText;

				Windows.focusedWindow.updateWidth();
				Windows.focusedWindow.updateHeight();

				return;
			}

			if(act=='fpwd')
			{
				$('userEmail1').disabled = false;
				$(div).innerHTML = req.responseText;

				if(req.responseText.indexOf('password')!=-1)
				{
					Element.hide('div_forgot_pwd_inner');
					Element.show('div_forgot_pwd_ok');
				}

				Windows.focusedWindow.updateWidth();
				Windows.focusedWindow.updateHeight();

				return false;
			}

			if(act=='signup')
			{
				$('userEmail2').disabled = false;
				$('userPwd2').disabled = false;
				//alert(req.responseText);
				
				if(req.responseText.indexOf('Thank')!=-1)
				{
					Element.hide('div_signup_inner');
					$('ajax_msg_signup').className = 'msgblack';
					Element.show('div_signup_ok');
				}
				$(div).innerHTML = req.responseText;

				Windows.focusedWindow.updateWidth();
				Windows.focusedWindow.updateHeight();

				return;
			}

			if(act=='add_matter')
			{
				$('matterNumber').disabled = false;
				$('client').disabled = false;
				$('description').disabled = false;
				
				if(req.responseText.indexOf('Error')!=-1)
				{
					alert(req.responseText);
				}
				else
				{
					$('matter_number').value = trim(req.responseText);
					Windows.focusedWindow.hide();
					submit_form(document.ac_form,1);
				}

				Windows.focusedWindow.updateWidth();
				Windows.focusedWindow.updateHeight();

				return;
			}
		}

		function forgot_password()
		{
			Windows.focusedWindow.hide(true);
			//Windows.focusedWindow.destroy();

			var win = new Window('modal_window1', {className: "family", title: "Forgot Password", width:205, height:90, zIndex:150, opacity:1, resizable: false,draggable:false,maximizable: false, minimizable: false})
			//win.getContent().innerHTML = "Hi"
			win.setHTMLContent($("forgot_pwd").innerHTML);
			win.setDestroyOnClose();
			win.showCenter();
			win.show(true);	

		}

		function forgot_pwd()
		{
			if(!is_email($('userEmail1').value))
			{
				alert('Enter the email address you signed up with.');
				$('userEmail1').focus();
				return false;
			}

			$('userEmail1').disabled = true;

			var params = "act=fpwd&userEmail="+$('userEmail1').value;
			submit_it(params,'ajax_msg_fpwd','fpwd');
			return false;
		}

		function sign_up()
		{
			Windows.focusedWindow.hide(true);
			//Windows.focusedWindow.destroy();

			var win = new Window('modal_window2', {className: "family", title: "Sign Up", width:205, height:120, zIndex:150, opacity:1, resizable: false,draggable:false,maximizable: false, minimizable: false})
			//win.getContent().innerHTML = "Hi"
			win.setHTMLContent($("div_signup").innerHTML);
			win.setDestroyOnClose();
			win.showCenter();
			win.show(true);	

		}

		function signup()
		{
			if(!is_email($('userEmail2').value))
			{
				alert('Please enter your email address and create a password');
				$('userEmail2').focus();
				return false;
			}

			if(is_empty($('userPwd2').value))
			{
				alert('Please enter your email address and create a password');
				$('userPwd2').focus();
				return false;
			}

			$('userEmail2').disabled = true;
			$('userPwd2').disabled = true;

			var params = "act=signup&userEmail="+$('userEmail2').value+"&userPwd="+$('userPwd2').value;
			submit_it(params,'ajax_msg_signup','signup');
			return false;
		}


function get_values(theForm,getMatter)
{
	if(loggedin == 0)
	{
		alert("You are not logged in.\n\nPlease sign in (at top right of screen).");
		return false;
	}

	if(someThingChanged && getMatter!=2)
	{
		if(confirm("Do you want to Save this answer set or Get your previous answers?.\nClick OK to Save or Cancel to Get previous answers."))
		{
			someThingChanged = false;
			submit_form(document.ac_form,3);
			return false;
		}
	}

	someThingChanged = false;

	Element.update('loadingBar','Loading Answers...');
	Element.show('loadingBar');	
	var params = "act=getval&mn=";
	
	if(!getMatter)
		params +=$('matter_number').value;

	new Ajax.Request(
			url,
			{
				method: 'post'
				,parameters : params
				,onComplete : function (req) { 
					
					if(req.responseText.indexOf("NO_MATTER")!=-1)
					{
						Element.hide('loadingBar');
						return;
					}
					else if(req.responseText.indexOf("<fieldset")!=-1)
					{
						var win = new Window('modal_window', {className: "family", title: "Select Matter", width:430, height:150, zIndex:150, opacity:1, resizable: false,draggable:false,maximizable: false, minimizable: false})
						//win.getContent().innerHTML = "Hi"
						Element.show('select_matter');
						var html = $("select_matter").innerHTML.replace('--MATTER-NUMBER--',req.responseText);
						win.setHTMLContent(html);
						win.setDestroyOnClose();
						win.showCenter();
						win.show(true);	
						return;
					}

					var get_arr = req.responseText.split("@#"); 

					
					var questions = get_arr[0].split(",");
					var answers = get_arr[1].split(",");

					for(var i=0;i<questions.length;i++)
					{

						if(typeof(theForm.elements[questions[i]]) != "undefined")
						{
							if(theForm.elements[questions[i]].length > 0 && theForm.elements[questions[i]].type != 'select-one')
							{
								for(var j=0;j<theForm.elements[questions[i]].length;j++){
									if(theForm.elements[questions[i]][j].value == answers[i])
									{
										theForm.elements[questions[i]][j].checked= true;
										theForm.elements[questions[i]][j].click();
									}
								}
							}
							else if(theForm.elements[questions[i]].type != undefined)
							{
								if(theForm.elements[questions[i]].type =='select-one')
								{
									for(var j=0;j<theForm.elements[questions[i]].options.length;j++){
										if(theForm.elements[questions[i]].options[j].value == answers[i])
										{
											theForm.elements[questions[i]].options[j].selected = true;
										}
									}
								}
								else if(theForm.elements[questions[i]].type =='text')
								{
									theForm.elements[questions[i]].value= answers[i];
								}
								else if(theForm.elements[questions[i]].type =='checkbox' && answers[i]=='T' )
								{
									theForm.elements[questions[i]].checked =  true;
								}
								else
								{
									theForm.elements[questions[i]].value= answers[i];
								}

								//alert(theForm.elements[questions[i]].type +":"+ theForm.elements[questions[i]].click);


								//break;
							}
							//alert(theForm.elements[questions[i]].type.toLowerCase());
						}
						
					}
					Element.hide('loadingBar');
					someThingChanged = false;
				}
			}
	)
}


function show_div(div,elfocus)
{
	Element.show(div);
	if(elfocus != undefined)
		document.forms[0].elements[elfocus].focus();
}

function hide_div(div)
{
	Element.hide(div);
}

function select_matter(val,act)
{
	Windows.focusedWindow.hide();

	$('matter_number').value = trim(val);
	
	if(act=='getval')
	{
		get_values(document.ac_form);
	}
	else if(act=='save_answer')
	{
		submit_form(document.ac_form,1);
	}
	else if(act=='submit_answer')
	{
		submit_form(document.ac_form,2);
	}
	else if(act=='clear_answer')
	{
		submit_form(document.ac_form,1,1);
	}
}

function check_date(obj,msg)
{
	if(!is_date(obj.value,'dd-mm-yyyy') && !is_empty(obj.value))
	{
		if(msg)
			alert(msg);
		else
			alert("Please enter a right date (dd-mm-yyyy)");
		obj.focus();
		return false;
	}
	return true;
}

function display_date(date)
{
	var months = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
	var dateval = date.split(/[-\/]/);
	
	var date = new Date();
	date.setFullYear(dateval[2],dateval[1]-1,dateval[0]);

	return date.getDate()+" "+months[date.getMonth()]+", "+date.getFullYear();

}

function madeChanges(e)
{
	if(!e) e= window.event;

	var ele =Event.element(e);
	if(ele.form != document.ac_form) return;

	if(Event.isLeftClick(e)){
		switch(Event.element(e).type){
			case 'select-one':
			case 'radio':
			case 'checkbox':
			someThingChanged = true;
			break;
		}
	}else{
			switch(Event.element(e).type){
			case 'text':
			case 'textarea':
			someThingChanged = true
			break;
			}
	}
}


function openRem(data)
{
	var win=window.open('','mywin','toolbar=0,status=0,height=300,width=450,scrollbars=yes');
	win.document.write("<p align='justify' style='font-family:verdana;font-size:11px;'>"+data+"</p><p align='center'><a href='javascript:window.close()'>Close</a>");
	win.moveTo(win.screen.width/2-200,win.screen.height/2-200);
}

function postForm(url,params){
	url+="?";
	if (params != undefined)
	{
		for( key in params)
		{
			url+=key+"="+params[key]+"&";
		}
	}
	location.href=url;
}