$(document).ready(function(){
	clearFlashMessage();	
	$("a.gohome").click(function(){
		history.go(-1);
		return false;
	});
	$("#UserEmail").focus(function(){
		if($("#UserEmail").val()=="Email Address"){
			$("#UserEmail").val("");
		}	
	});
	$("#UserPassword").focus(function(){
		$("#passwordinitlabel").hide();
	});
	$("#UserPassword").change(function(){
		$("#passwordinitlabel").hide();
	});
	$("#passwordinitlabel").click(function(){
		$("#passwordinitlabel").hide();
		$("#UserPassword").focus();
	});
	$(".dblueheader").corner("4px top");
	$(".corner-top").corner("4px top");
	$(".bluetab").corner("4px top");
	lineUpCols();
});

function lineUpCols(){
	var minheight=500;
	if($("#right").height()<minheight) {
		$("#grouplistpadder").height(0);
		$("#grouplistpadder").height(minheight-$("#left").height());
	}else{
		$("#grouplistpadder").height(0);
	}
	if($("#left div.jScrollPaneContainer").height()){
		$("#grouplistpadder").hide();
	}else{
		$("#grouplistpadder").show();
	}

	if($("#left").height() && $("#right").height()){
		if($("#left").height()<$("#right").height()){
			moveit=0;
			var heres=location.href.split("/");
			var here=heres[heres.length-1];
			if(here=="testactivity") moveit=-12;
			else if(here.substr(0,4)=="help") moveit=7;
			else if(here=="change_password") moveit=10;
			else if(selectedgroup!=undefined && selectedgroup>0) {
				moveit=15;
				$("#downloadpdf_" + selectedtest).height("auto");
				if($("#dd_"+selectedtest).height()>$("#dm_"+selectedtest).height()){
					$("#downloadpdf_" + selectedtest).height($("#downloadpdf_" + selectedtest).height() + $("#dd_"+selectedtest).height() -$("#dm_"+selectedtest).height()-1 );
					//alert($("#dd_"+selectedtest).height());
					//alert($("#dm_"+selectedtest).height());
				}
			}
			else moveit=10;
			
			moveit+=2; //accounting for the extra shadow that we added
			
			var newpadderheight=$("#right").height()-$("#left").height()+moveit;
			//$("#debug").html($("#debug").html()+"setting to:"+newpadderheight+"<br/>");
			$("#grouplistpadder").height(newpadderheight);
			//$("#debug").html($("#debug").html()+"padder:"+$("#grouplistpadder").height()+"<br/>");
		}
	}
	setTimeout(function(){ lineUpCols(); },4000);
}

function clearFlashMessage(){
	if($("#flashMessage").length!=0) {
		setTimeout(function(){ $("#flashMessage").hide("slow"); },5000);
	}
}

var testtodelete=0;
var testselected=false;

function do_table(){ 
	//set height of table so that it always fits first 4 in perfectly
	$('#testtable').height(
		$("#info_0").height() + 8 +
		(($("#info_1").height()>0) ? $("#info_1").height()+8 : 0) + 
		($("#info_2").height()>0? $("#info_2").height()+8:0)+
		($("#info_3").height()>0?$("#info_3").height()+8:0)
	);
	$("#test_header_item_name").width($("#info_0").width()+$("#number_0").width()+2);
	$('#testtable').jScrollPane({dragMaxHeight:"26", scrollbarWidth:"15", showArrows : true, animateTo:true}); //does 
	$("#right").css("visibility","visible"); //show it to the user	
}

function load_testgroup(group_id, test_id, runit){
	$(".rightcontent").hide();
	$("#right").show();
	group_id=parseFloat(group_id);
	$(".groupli").removeClass("selected"); //remove selected class from all
	$(".groupli").addClass("entry"); //remove selected class from all
	$("#homelink").removeClass("selected"); //remove selected class home link
	if(group_id>0){
		$("#groupli_" + group_id).addClass("selected"); //add selected class to the selected item
		$("#groupli_" + group_id).removeClass("entry"); //add selected class to the selected item
		$("#right").html("Loading"); //put loading html in place while we are loading
		selectedgroup=window.location.hash = group_id; //set the hash in the url so page can be bookmarked
		$("#delete_selected").show();
		$("#right").css("visibility","hidden"); //hide it while we resize the tables
		$("#right").load("/test_groups/view/"+group_id,{ajax:true},function(returnval){ //load the groups
			$(".corner-top").corner("4px top");
			$(".bluetab").corner("4px top");
			if(returnval=="") location.href="/users/home";
			$(".testinfotext").hide();		
			$("#SiptestTestGroupId").val(group_id);
			$("#add_test_group_link").click(function(){
				$("#homeform").html(""); // delete the form from the home screen so that we don't have duplicate ids
				$("#right-addedittest").load("/siptests/add",{ajax:true},function(){
					if(selectedgroup){
						$("#SiptestTestGroupId").val(selectedgroup);
						$("#fftest_group_id").val(selectedgroup);
					}
					$("#SiptestQuickForm").show();
					$("#homeeditbutton").show();
					$("#homeclosebutton").hide();
					$("#SiptestFullForm").hide();
					siptestForm();
					$(".yesguidelines").hide();
					$("#teststableoutside").hide();
					$("#alltestinfo").hide();
					$("#right-addedittest").show();
					$("#hide_guidelines").show();
					$("#add_test_group_link").hide();
					$("#SiptestName").val($("#nexttest").val());
					$(".noguidelines").hide();
					$("#show_guidelines").show();
				});	
				return false;	
			});
			$(".edit_test_link").click(function(){
				$("#homeform").html(""); // delete the form from the home screen so that we don't have duplicate ids
				test_id=this.id.replace("edit_test_link_","");
				$("#right-addedittest").load("/siptests/edit/"+test_id,{ajax:true},function(){
					$("#teststableoutside").hide();
					$(".noguidelines").hide();
					$("#right-addedittest").show();
					$("#homeeditbutton").hide();
					$("#SiptestQuickForm").hide();
					$("#hide_guidelines").show();
					$("#add_test_group_link").hide();
					$("#alltestinfo").hide();
					$(".noguidelines").hide();
					siptestForm();
				});
				return false;	
			});				

			$("tr.rowclick").click(function(){
				showTest(this.id.replace("row_",""));
			});
			
			$("tr.rowclick").mouseover(function(){
				$(this).addClass("over");
			});
			$("tr.rowclick").mouseout(function(){
				$(this).removeClass("over");
			});
			
			$(".delete_test_link").fancybox({
				autoDimensions:true,
				padding:0,
				onComplete:function(){
					$(".popupheader").corner("top 4px");
					$(".popupbody").corner("bottom 4px");
					
					$(".cancelpopup").click(function(){$("#fancybox-close").click(); return false;});
					$("#delete_test_final").click(function(){
						$.post($(this).attr("href"),{ajax:true},function(returnval){
							if($.trim(returnval)=="_OK_"){
								$("#fancybox-close").click();
								load_testgroup(selectedgroup);
							}
						});
						return false;
					});				
				}	
			});
			
			$(".deleteplanlink").fancybox({
				autoDimensions:true,
				padding:0,
				onComplete:function(){
					$(".popupheader").corner("top 4px");
					$(".popupbody").corner("bottom 4px");
					
					$(".cancelpopup").click(function(){$("#fancybox-close").click(); return false;});
				}	
			});
			
			$("#tests_datatable a.leaving").click(function(){
				$("#right").html("<p>Loading test information - please wait</p>");
			});
			
			$("a.detailslink").click(function(){
				var c=this.id.split("_");
				$(".detailsmenu li.selected").removeClass("selected");
				$("#"+this.id).parent().addClass("selected");
				$(".homegreybox_"+c[1]).hide();
				$("#"+ c[0].replace("link","_") +c[1]).show();
				if(c[0]=="datalink" && $("#notloadeddata_"+c[1]).val()==1){
					$("#"+ c[0].replace("link","_") +c[1]).load("/siptests/results/"+c[1],{ajax:true},function(){
						$(".channels_div").corner("4px");
					});
				}
				//leftScrollPane();
				lineUpCols();
				return false;
			});
			
			$(".yesguidelines").hide();
			$("#alltestinfo").show();
			$("#show_guidelines").click(function(){
				$(".yesguidelines").show();
				$(".noguidelines").hide();
				$("#alltestinfo").hide();
				$("#right-addedittest").hide();
				return false;
			});
			$("#hide_guidelines").click(function(){
				$(".noguidelines").show();
				$("#right-addedittest").hide();
				$(".yesguidelines").hide();
				$("#add_test_group_link").show();
				$("#alltestinfo").show();
				return false;
			});
			
			do_table();//resize the table
			notes_ajax_form();
			$(".channels_div").corner("4px");
			
			
			if(test_id!=undefined && test_id!=0 && test_id!=""){
				showTest(test_id);
			}else if($("#inittest").val()>0){
				showTest($("#inittest").val());
			}else{
				showTest(0);
			}
			
			$(".duplicatelink").fancybox({
				padding:0,
				titleShow:false,
				onComplete:function(){
					$(".cancelpopup").click(function(){$("#fancybox-close").click(); return false;});
					$(".popupheader").corner("top 4px");
					$(".popupbody").corner("bottom 4px");
				}			
			});
			var renamingtestid;		
			$('a#renametest').fancybox({
				padding:0,
				onComplete:function(){
					$(".popupheader").corner("top 4px");
					$(".popupbody").corner("bottom 4px");
					renamingtestid=$("#SiptestId").val();
					renameTestForm();
				},
				onClosed:function(){
					$.post("/siptests/cancel_rename/"+renamingtestid,{ajax:true});
				}
			});
			$('a.run_test_link').fancybox({
				padding:0,
				onComplete:function(){
					$(".cancelpopup").click(function(){$("#fancybox-close").click(); return false;});
					$(".popupheader").corner("top 4px");
					$(".popupbody").corner("bottom 4px");
				}
			});
			$('a#renametest').click();
			if(runit!=undefined && runit==true) $("#run_test_link_"+test_id).click();
		});
	}else{
		$("#delete_selected").hide();
		$("#right").css("visibility","hidden"); //hide it as we have no group any more
	}
}

function renameTestForm(){
	$('#RenameTestForm').ajaxForm(function(returnval) { 
		d=$.trim(returnval).split("_");
		if(d[0]=="OK"){
			$("#fancybox-close").click();
			load_testgroup(selectedgroup,d[1]);
		}else{
			$("#fancybox-inner").html(returnval);
			renameTestForm();	
		}
	});
}
function showTest(id){
	selectedtest=id;
	$("tr.rowclick").removeClass("selected");
	$("#row_"+id).addClass("selected");
	$(".testinfotext").hide();
	$(".homegreybox_"+id).hide();
	$(".detailsmenu li.selected").removeClass("selected");
	$("#recommendationslink_"+id).parent().addClass("selected");	
	$("#testinfotext_"+ id).show(0,function(){
		if(id>0){
			$("#recommendations_" +id).show(0,function(){
				leftScrollPane();
			});	
		}
	});
	if(id>0) $('#testtable')[0].scrollTo("#row_" + id);
	lineUpCols();
}
function registerForm(){
	$('#UserAddForm').ajaxForm(function(returnval) { 
		$("#register-inside").html(returnval);
		registerForm();
	});
	formErrors();
	$('#UserAddForm').attr('autocomplete', 'off');
}

function formErrors(){
	$('form.fancy input').focus(function(){
		$(".error-message").hide();
	});
	$(".error-message").click(function(){
		$(".error-message").hide();
	});
	$('.fancy-error-message').corner("4px");
	$('.fancy-error-message').each(function(){
		if(this.id){
			$("#"+this.id).after("<img src='/img/RedErrorArrow.png' style='z-index:999; position:absolute; margin-top:-37px; margin-left:200px'/>");
		}
	});
	$('.fancy-error-message').css("border","solid 1px #E23136");
	
}

function notes_ajax_form(){
	$('.notesform').ajaxForm(function(returnval) { 
		if(returnval=="OK"){
			alert("You have saved your notes");
		}else{
			alert("There was a problem saving your notes. Please try again or report this error if it continues.");
		}
	});
}

function changeButtons(){
	if($("#SiptestIsRemote").attr("checked")){
		$("#remotetestinfo").show();
		$("#reminderinfo").hide();
		$("#sendtest-green").show();
		$("#sendtest-grey").hide();
		$("#runtest-green").hide();
		$("#runtest-grey").show();			
		$("#savetest-grey").show();
		$("#savetest-green").hide();
		$("#wb4").removeClass("disabled");
		$("#wb3").addClass("disabled");	
		$("#wb3").removeClass("semidisabled");		
		$("#wb4").removeClass("semidisabled");
		recaptcha();		
		
	}else if($("#reminder_check").attr("checked")){
		$("#remotetestinfo").hide();
		$("#reminderinfo").show();
		$("#savetest-green").show();
		$("#savetest-grey").hide();
		$("#runtest-green").hide();
		$("#runtest-grey").show();			
		$("#sendtest-green").hide();
		$("#sendtest-grey").show();
		if($("#SiptestHasReminder").attr("checked")){
			$("#reminderdetails").show();
		}else{
			$("#reminderdetails").hide();
		}
		$("#wb3").removeClass("disabled");
		$("#wb4").addClass("disabled");	
		$("#wb3").removeClass("semidisabled");		
		$("#wb4").removeClass("semidisabled");		
		
	}else{
		$("#remotetestinfo").hide();
		$("#reminderinfo").hide();
		$("#savetest-green").hide();
		$("#savetest-grey").show();
		$("#runtest-green").show();
		$("#runtest-grey").hide();			
		$("#sendtest-green").hide();
		$("#sendtest-grey").show();
		$("#wb3").removeClass("disabled");		
		$("#wb4").removeClass("disabled");		
		$("#wb3").addClass("semidisabled");		
		$("#wb4").addClass("semidisabled");		
		
	}
}

function changeRemote(){
	if($("#SiptestIsRemote").attr("checked")) $("#reminder_check").attr("checked",false);
	changeButtons();
}
function changeReminder(){
	if($("#reminder_check").attr("checked")) $("#SiptestIsRemote").attr("checked",false);
	changeButtons();
}
function formSetButtonsGrey(){
	$(".testformbuttonsgreen").hide();
	$(".testformbuttonsgrey").show();
}
function run_test_form(){
	$('#editandrunform').ajaxForm(function(returnval) { 
		if(returnval.substr(0,6)=="_PASS_"){
			window.location.href="/siptests/run/"+selectedtest;
		}else{
			$("#run_test_box").html(returnval);
			run_test_form();
		}
	});
}

function recaptcha(){
Recaptcha.create("6LfaMbwSAAAAAAGbwsgcz10Lf4EQI4yZZKC9oVu3",
   "recaptcha", 
   {  
     theme: "red",
     callback: Recaptcha.focus_response_field 
   }
 );
}


var days=new Array("Mon","Tues","Weds","Thurs","Fri","Sat","Sun");
var months=new Array("Jan","Feb","Mar","Apr","May","June","Jul","Aug","Sep","Oct","Nov","Dec");
/*
* ajax functions for main test form
*/
function siptestForm(where){
	$(".dblueheader").corner("4px top");
	$(".bluetab").corner("4px top");
	
	/*
	* sets default date for date picker
	*/
	var defaultdate=new Date($("#initdate").val());
	$("#datepicker").datepicker({ 
		dateFormat: 'yy-mm-dd', 
		minDate:0, 
		defaultDate: defaultdate,
		showOn: 'button',
		buttonImage: '/img/edit.png',
		buttonImageOnly: true,
		onClose: function(dateText,inst){
			dateobject=$("#datepicker").datepicker("getDate");
			$("#dateselecteddate").html(dateobject.getDate() + " " + months[dateobject.getMonth()]+ " " +dateobject.getFullYear());
			$("#time").show();
		}
 	});
 	
 	$("#datepicker").css("visibility","hidden");
	$("#datepicker").width("1px");
	$("#time").hide();
	
	if(selectedgroup){
		$("#SiptestTestGroupIdDiv").hide();
		$("#testplantt").hide();
		$("#save").show();
	}else{
		$("#SiptestTestGroupIdDiv").show();
		$("#testplantt").show();
		$("#save").hide();
	}

	$(".hidden").hide();
	$('#SiptestForm').ajaxForm(function(returnval) { 
		if(returnval.substr(0,5)=="_RUN_"){
				items=returnval.split("_");
				load_testgroup(items[2],items[3],true);
				//$("#run_test_link_"+items[2]).click();
				//location.href="/siptests/run/"+items[2];
		}else if(returnval.substr(0,6)=="_PASS_"){
			var tempgroupdetails=returnval.split("_");
			if(tempgroupdetails[2] && tempgroupdetails[2]!=selectedgroup)	selectedgroup=tempgroupdetails[2]; 
			$("#groupslistdiv").load("/test_groups/grouplist/",{ajax:true},function(){
				load_testgroup(selectedgroup,tempgroupdetails[3]);
				group_list_actions();
				
			});
		}else{
			if(where=="home"){
				$("#homeform").html(returnval);			
				siptestForm("home");
			}else{
				$("#right-addedittest").html(returnval);
				siptestForm();
			}
			formErrors();
			$("#SiptestQuickForm").hide();
		}
	});
	
	$('textarea').focus(function(){
		if($(this).val()=="Enter your email address(es) for reminders separated by line breaks"){
			$(this).val("");
		}
		return true;
	});
	
	$("#SiptestIsRemote").change(function(){
		changeRemote();
	});
	
	
	$("#SiptestHasReminder").change(function(){
		changeReminder();
		if($("#SiptestHasReminder").attr("checked")){
			$("img.ui-datepicker-trigger").click();
		}
	});
	
	$("#reminder_check").change(function(){
		changeReminder();
	});
	changeButtons();
	
	$("#homeeditbutton").click(function(){
		$("#homeeditbutton").hide();
		$("#homeclosebutton").show();
		$("#SiptestQuickForm").hide();
		$("#SiptestFullForm").show();
		return false;
	});
	$("#homeclosebutton").click(function(){
		$("#homeclosebutton").hide();
		$("#homeeditbutton").show();
		$("#SiptestQuickForm").show();
		$("#SiptestFullForm").hide();
		return false;
	});
	
	$(".shadow-3").corner("4px bottom");
	$(".channels").corner("4px");
	
	$("a.quickformruntestnowbutton").fancybox({
		autoDimensions:true,
		padding:0,
		onComplete:function(){
			$(".popupheader").corner("top 4px");
			$(".popupbody").corner("bottom 4px");
			$(".cancelpopup").click(function(){$("#fancybox-close").click(); return false;});
			$("a.runtestnow").click(function(){
				$("#fancybox-close").click(); 
				$("#SiptestQuickAddForm").submit();
				return false;
			});				
		}	
	});
	
	clearFlashMessage();
}

function initialiseStateFromURL(){
	var hash=window.location.hash.replace("#","");
	if(hash=="addtestplan"){
		showAddGroup();
	}else{
		d=hash.split("-");
		initgroup=d[0];
		
		if(selectedgroup!=initgroup){
			selectedgroup=initgroup;
			load_testgroup(selectedgroup,(d[1]!=undefined?d[1]:""));
		}	
	}
}
function groupListOvers(){
		$("li.groupli").mouseover(function(){ 
			$(this).addClass("over");
		});
		$("li.groupli").mouseout(function(){ 
			$(this).removeClass("over");
		});
}	
	
function group_list_actions(){
	groupListOvers();
	$("li.groupli").click(function(){ //so user can click on the whole of the li
		group_id=this.id.replace("groupli_","");
		load_testgroup(group_id);
		return false;
	});
	$("a.grouplink").click(function(){ // user clicks on the actual link in the li
		group_id=this.id.replace("grouplink_","");
		load_testgroup(group_id);
		return false;
	});
	$(".delete_group").click(function(){
		$("#deletegroupname").html($("#testgroupname").val());
		loadPopup('delete_group_box');
		return false;
	});
}

var scrollerExists=false;
function leftScrollPane(){
	var rh=$("#right").height();
	//$("#debuginfo").html($("#debuginfo").html() + "<br/>rh:" + rh );
	$('#groupslistdiv').jScrollPaneRemove();
	//$("#debuginfo").html($("#debuginfo").html() + "<br/>gl:" + $('#grouplist').height() );
	if(rh-50<$('#grouplist').height()){
		$('#groupslistdiv').height(rh-50);
		$('#groupslistdiv').jScrollPane({dragMaxHeight:"26", scrollbarWidth:"15", showArrows : true, scrollbarWidth:12}); //does 
		$("#left div.jScrollPaneContainer").width("212px");
		$("#left div.jScrollPaneContainer").css("position","absolute");
		$("#left div.jScrollPaneContainer").css("margin-top","67px");
	}
	
}
function testPlanLibHeader(){
	$("#testplanlibheader").mouseover(function(){
		$("#testplanlibheader").addClass("over"); 
		$("#plusbutton").width(20);
		$("#plusbutton").css("margin-top","0px");
	});
	$("#testplanlibheader").mouseout(function(){	
		$("#testplanlibheader").removeClass("over");
		$("#plusbutton").width(15);		
		$("#plusbutton").css("margin-top","2px");
	});
}
function add_group_form(){
	$('#TestGroupAddForm').ajaxForm(function(returnval) { 
		if(returnval.substr(0,6)=="_PASS_"){ //form passes validation
			newid="";
			for(i=6;i<returnval.length;i++){
				char=returnval.charAt(i);
				if(char==":"){
					charstrip=i;
					i=returnval.length;
				}
				else newid=newid+char;
			}
			$("#groupslistdiv").html(returnval.substr(charstrip+1)); 
			group_list_actions();
			add_group_form();
			selectedgroup=window.location.hash = newid; //set the hash in the url so page can be bookmarked
			$("#groupslistdiv").load("/test_groups/grouplist/",{ajax:true},function(){
				load_testgroup(selectedgroup);
				group_list_actions();
			});
		}else{ // form has validation errors so return to the pop-up
			$("#right-addgroup").html(returnval); 
			add_group_form();
			formErrors();
		}
	}); 
	$("#createtestsforplan").change(function(){
		changeGroupAddFormTests();
	});
	changeGroupAddFormTests();
}
function changeGroupAddFormTests(){
	if($("#createtestsforplan").attr("checked")){
		$("#addgrouptestdetails").show();
		$("#createplansubmit1").hide();
		$("#createplansubmit1grey").show();
	}else{
		$("#addgrouptestdetails").hide();
		$("#createplansubmit1").show();
		$("#createplansubmit1grey").hide();
	}
}

function remove_table(){ //removes the custom scrollpane and re-adds it
	$('#testtable').jScrollPaneRemove();
	do_table();
}

function changeChart(chartimage,id, type){
	$("#graphsmenu_" + id + " a.chartlinks").removeClass("selected");
	$("#graphsmenu_" + id + " a."+type+"link").addClass("selected");
	$("#chart_"+id).attr("src","/img/charts/"+chartimage);
}

var javaTestCounter=0;
function checkJava(remote){
	if(remote==undefined) var remote=false;
	var fail=false;
	if(BrowserDetect.browser=="Chrome" && BrowserDetect.OS=="Mac"){
		noJava(remote);
	}else{
		$.post("/users/get_javastatus",{ajax:true},function(returnval){
			if(returnval=="no"){
				if(javaTestCounter<5){
					javaTestCounter++;
					setTimeout(checkJava,500);	
				}else{
					noJava(remote);
				}
			}
		});	
	}
}
function noJava(remote){
	if(remote=="remote"){
		$("#runremotebefore").load("/pages/nojava/remote:true",{ajax:true},function(){

		});		
	}else{
		$("#helpmessage").load("/pages/nojava");
	}
	
}
