function ResetSponsorList()
{
	if (document.getElementById('sponsor_id').value != 'Dummy'){
		document.getElementById('sponsor_id').value = 'Dummy';
		}
	if (document.getElementById('select_form').value != 'Default'){
		document.getElementById('select_form').value = 'Default';
		}
}

function clearDate()
{
	document.getElementById('internal_deadline').value='';	
}

function addSponsor()
{
		var spon = document.getElementById('addSponsors');
		if (spon.style.display != 'block')
		{
			spon.style.display = 'block';
			$("#addSponsors").show();
			$("#sponsor_name_label").show();
			$("#sponsor_name_text").show();
			$("#sponsor_acr_label").show();
			$("#sponsor_acr_text").show();
			$("#sponsor_url_label").show();
			$("#sponsor_url_text").show();
			$("#sponsor_add").show();
			document.getElementById('a1').innerHTML = "Cancel";
			//document.getElementById('sponsor_url_text').innerHTML = "http://";
		}
		else
		{
			spon.style.display = 'none';
			$("#addSponsors").hide();
			$("#sponsor_name_label").hide();
			$("#sponsor_name_text").hide();
			$("#sponsor_acr_label").hide();
			$("#sponsor_acr_text").hide();
			$("#sponsor_url_label").hide();
			$("#sponsor_url_text").hide();
			$("#sponsor_add").hide();
			document.getElementById('a1').innerHTML = "Add Sponsor";
		}
}

var edit=false;

function saveChanges(sponsor_id)
{
	// Save via AJAX
	
	var id = 'sponsor_'+sponsor_id;
	var row = document.getElementById(id);
	var name = row.getElementsByTagName("td")[0];
	var inputValue1 = name.getElementsByTagName("input")[0].value;
	var acronym = row.getElementsByTagName("td")[1];
	var inputValue2 = acronym.getElementsByTagName("input")[0].value;
	var url = row.getElementsByTagName("td")[2];
	var inputValue3 = url.getElementsByTagName("input")[0].value;
	
	if(empty(stripSpaces(inputValue1)) || empty(stripSpaces(inputValue2)))
	{
		alert( "Incomplete/Missing fields: Please Enter the Sponsor's Name and Acronym" );
		return;
	}	
	else
	{
		var sponsor_url = checkurl(url.getElementsByTagName("input")[0]);
		
		if(!sponsor_url)
		{
			alert(" Incorrect url format. ");
			return;
		}		
		
		capWords(inputValue1);
		var Sname = document.getElementById('sponsor_name').value;
		var sacr = inputValue2;
		var surl = inputValue3;
		
		addToTableAfterEdit(sponsor_id,Sname,sacr,surl);
		
		showButtons(sponsor_id, 'edit');
		edit=false;
	}
	
}

function cancelChanges(sponsor_id)
{
	var id = 'sponsor_'+sponsor_id;
	var row = document.getElementById(id);
	var name = row.getElementsByTagName("td")[0];
	var inputValue1 = name.getElementsByTagName("input")[0].value;
	var acronym = row.getElementsByTagName("td")[1];
	var inputValue2 = acronym.getElementsByTagName("input")[0].value;
	var url = row.getElementsByTagName("td")[2];
	var inputValue3 = url.getElementsByTagName("input")[0].value;
	name.innerHTML = inputValue1;
	acronym.innerHTML = inputValue2;
	url.innerHTML = inputValue3;
	
	showButtons(sponsor_id, 'edit');	
	edit=false;
}

function editSponsorInfo(sponsor_id)
{
		edit = true;
		//var name = $("#sponsor_" + sponsor_id + " td.name");
		var id = 'sponsor_'+sponsor_id;
		var row = document.getElementById(id);
		var name = $(row.getElementsByTagName("td")[0]);
		var acronym = $(row.getElementsByTagName("td")[1]);
		var url = $(row.getElementsByTagName("td")[2]);
		
		var text = $('<input type ="text" name="sponsor_name" />');
		text.val(name.text());
		name.empty();
		name.append(text);
		
		var text = $('<input type ="text" name="sponsor_acr" />');
		text.val(acronym.text());
		acronym.empty();
		acronym.append(text);
		
		var text = $('<input type ="text" name="sponsor_url" />');
		text.val(url.text());
		url.empty();
		url.append(text);

		showButtons(sponsor_id, 'save_cancel');
}

function deleteSponsor(sponsor_id)
{
	var optionSelected = confirm("Do you want to delete this sponsor ?");
	if(optionSelected == true)
	{
		removeSponsorFromTable(sponsor_id);
	}
	else
	{
		if(edit)
		{
			cancelChanges(sponsor_id);
		}
		
	}
	showButtons(sponsor_id, 'edit');
}


function showButtons(sponsor_id, showClass)
{
		var actions = $("#sponsor_" + sponsor_id + " td.actions");
		actions.find("input").hide();
		actions.find("input." + showClass).show();
		actions.find("input[class*='always_show']").show();
		
}

function stripSpaces(x) {
	if (x.length > 0)
		{
		    while (x.substring(0,1) == ' '){ 
			    x = x.substring(1);
		    }
		    return x;
		}
	else
	{
		y = '';
		return y;
	}
}

function empty(x) { if (x.length > 0) return false; else return true; }

function hidetable()
{
		if (!empty(stripSpaces(document.getElementById('sponsor_name').value))) 
		{
			$("#addSponsors").hide();
			$("#sponsor_name_label").hide();
			$("#sponsor_name_text").hide();
			$("#sponsor_acr_label").hide();
			$("#sponsor_acr_text").hide();
			$("#sponsor_url_label").hide();
			$("#sponsor_url_text").hide();
			$("#sponsor_add").hide();
			document.getElementById('a1').innerHTML = "Add Sponsor";
		}
		else
		{
			alert("Incomplete/Missing fields: Please Enter the Sponsor's Name");
		}	
}


function updateTable()
{
	var sname = document.getElementById('sponsor_name').value;
	var sacr = document.getElementById('sponsor_acr').value;
	var surl = document.getElementById('sponsor_url').value;
	if(empty(stripSpaces(sname)) || empty(stripSpaces(sacr)))
	{
		alert( "Incomplete/Missing fields: Please Enter the Sponsor's Name and Acronym" );
		return;
	}
	else
	{
		var sponsor_url = checkurl(document.getElementById('sponsor_url'));
		if(!sponsor_url)
		{
			alert(" Incorrect url format. ");
			return;
		}		
		
		capWords(sname);
		var Sname = document.getElementById('sponsor_name').value;
		addToTable(Sname,sacr,surl);
		hidetable();
	}
	
}

function capWords(sname) {
	
	var inputString = sname; // The input text field
	var tmpStr, tmpChar, preString, postString, strlen;
	tmpStr = inputString.toLowerCase();
	stringLen = tmpStr.length;
	if (stringLen > 0)
	{
	  for (i = 0; i < stringLen; i++)
	  {
	    if (i == 0)
		{
	      tmpChar = tmpStr.substring(0,1).toUpperCase();
	      postString = tmpStr.substring(1,stringLen);
	      tmpStr = tmpChar + postString;
	    }
	    else
		{
	      tmpChar = tmpStr.substring(i,i+1);
	      if (tmpChar == " " && i < (stringLen-1))
		  {
	      tmpChar = tmpStr.substring(i+1,i+2).toUpperCase();
	      preString = tmpStr.substring(0,i+1);
	      postString = tmpStr.substring(i+2,stringLen);
	      tmpStr = preString + tmpChar + postString;
	      }
	    }
	  }
	}
	document.getElementById('sponsor_name').value = tmpStr;
}


function addToTable(sname,sacr,surl) {
//	alert("name = "+sname+" acr = "+sacr+" url = "+surl);
	
	var success = function(response) {

	var sponsor_list = $("#sponsor_id");
	if(sponsor_list[0] == null)
	{
		modified_callback(response);
	}
	else
	{
		callback_function(response);
	}
	
	}
	
	$.post("addsponsor.php", { sponsor_name: sname, sponsor_acr: sacr, sponsor_url: surl }, success, "json");

}

function addSponsorRows(sponsor)
{
	var tr = $("<tr></tr>").attr("id", "sponsor_" + sponsor.sponsor_id);
	var dummyCell = $("<td></td>").text("This is some dummy text");
	tr.append(dummyCell);
	$("#datatable tbody").append(tr);
}

function addToTableAfterEdit(sid,sname,sacr,surl) {
	
//	alert("id = "+sid+" name = "+sname+" acr = "+sacr+" url = "+surl);
	
	$.post(
			"updatesponsorinfo.php",
			{ sponsor_id: sid, sponsor_name: sname, sponsor_acr: sacr, sponsor_url: surl },
			function(response) {
				if(response.status == 1)
				{
					$("#sponsor_" + sid + " .name").text(sname);
					$("#sponsor_" + sid + " .acronym").text(sacr);
					$("#sponsor_" + sid + " .url").text(surl);
				}
				else
				{
					alert("Error deleting sponsor!");
				}
			},
			"json"
		);
}

function removeSponsorFromTable(sid) {
	
//	alert("id = "+sid+" name = "+sname+" acr = "+sacr+" url = "+surl);
	$.post(
		"deletesponsor.php",
		{ sponsor_id: sid },
		function(response) {
			if(response.status == 1)
			{
				$("#sponsor_" + sid).remove();
			}
			else
			{
				alert("Error deleting sponsor!");
			}
		},
		"json"
	);
}

function callback_function(data)
{
	var sCode = data['status'];
	var newSponsorId = data['sid'];
	var newSponsorName = data['sname'];
	var newSponsorAcr= data['sacr'];
	var newSponsorUrl = data['surl'];
	
	if(sCode == 1)
	{	
		//alert("callback 1");
		addSponsorToList(newSponsorId, newSponsorName);
	}
	else if(sCode == -2)
	{
		var sponsor_list = $("#sponsor_id");
		var sponsorOptions = sponsor_list.children();
		
		alert("Sponsor already exists.");
		
		if(newSponsorId != 9999)
		{
			var found = false;
			for(var i = 1; i < sponsorOptions.length; i++)
			{
				if($(sponsorOptions[i]).val() == newSponsorId)
				{
					sponsor_list[0].selectedIndex = i;
					break;
				}
			}
			if(!found)
			{
				//alert("callback 2");
				addSponsorToList(newSponsorId, newSponsorName);
			}
		}
	}
	else
	{
		alert("Error adding sponsor!"); 
	}
}

function modified_callback(data)
{
	var sCode = data['status'];
	var newSponsorId = data['sid'];
	var newSponsorName = data['sname'];
	var newSponsorAcr= data['sacr'];
	var newSponsorUrl = data['surl'];
	
	if(sCode == 1)
	{	
		//alert("callback 1");
		addSponsorRow(newSponsorId,newSponsorName,newSponsorAcr,newSponsorUrl);
	}
	else if(sCode == -2)
	{
		alert("Sponsor already exists.");
	}
	else
	{
		alert("Error adding sponsor!"); 
	}
}

function addSponsorToList(sponsor_id, sponsor_name)
{
	//alert("addSponsorToList");
	
	var sponsor_list = $("#sponsor_id");
	var sponsorOptions = sponsor_list.children();
	var newOption = $("<option></option>").val(sponsor_id).text(sponsor_name);
	if(sponsorOptions.length < 2)
	{
		sponsor_list.append(newOption);
		sponsor_list[0].selectedIndex = 0;
	}
	else
	{
		for(var i = 1; i < sponsorOptions.length; i++)
		{
			soption = sponsorOptions[i].text;
			if(sponsor_name < soption)
			{
				newOption.insertBefore(sponsorOptions[i]);
				sponsor_list[0].selectedIndex = i;
				break;
			}
			else if(sponsor_id == sponsorOptions[i].val)
			{
				sponsor_list[0].selectedIndex = i;
				break;
			}
		}
	}
}

function addSponsorRow(sid,sn,sac,sur)
{
//	var table = document.getElementById('datatable');
//	var lastRow = table.rows.length; 
//	var row = table.insertRow(lastRow);

	//alert(sid);
	//alert("addSponsorRow");
	
	var editButton = "<input type=\"button\" name=\"editSponsor\" class=\"edit button\" value=\"Edit\" onclick=\"editSponsorInfo("+sid+");\" />";
	var deleteButton ="<input type=\"button\" name=\"delete_sponsor\" class=\"delete always_show button\" value=\"Delete\" onclick=\"deleteSponsor("+sid+");\" />"; 

	var saveButton = "<input type=\"button\" name=\"save\" class=\"save_cancel button\" value=\"Save\" onclick=\"saveChanges("+sid+");\" style=\"display: none\" />";
	var cancelButton = "<input type=\"button\" name=\"cancel\" class=\"save_cancel button\" value=\"Cancel\" onclick=\"cancelChanges("+sid+");\" style=\"display: none\" />";

	var tr = $("<tr></tr>").attr("id", "sponsor_" + sid);
	var cell1 = $("<td align=\"left\" colspan=\"2\" class=\"name \"></td>").text(sn);
	var cell2 = $("<td align=\"left\" class=\"acronym\"></td>").text(sac);
	var cell3 = $("<td align=\"left\" class=\"url\"></td>").text(sur);
	var cell4 = $("<td class=\"actions\" align=\"left\" colspan=\"4\"></td>").html(editButton + saveButton + cancelButton + deleteButton);
	tr.append(cell1);
	tr.append(cell2);
	tr.append(cell3);
	tr.append(cell4);
	$("#datatable tbody").append(tr);
}


function addSponsorRows(sponsor)
{
	var tr = $("<tr></tr>").attr("id", "sponsor_" + sponsor.sponsor_id);
	var dummyCell = $("<td></td>").text("This is some dummy text");
	tr.append(dummyCell);
	$("#datatable tbody").append(tr);
}

function removeSponsorFromList(sponsor_id)
{
	var sponsor_list = $("#sponsor_id option[value='" + sponsor_id + "']");
	sponsor_list.remove();
}

function selectUploadForm()
{
	var formSelectBox = document.getElementById("select_form");
	formSelectBox.selectedIndex = 0;
}
function selectFormFromList()
{
	var formUploadBox = document.getElementById("form_id");
	formUploadBox.value = '';
}

function checkform()
{
	var returnval = true;
	
	var formSelectBox = document.getElementById("select_form");
	var formUploadBox = document.getElementById("form_id");
	
	if(formSelectBox.selectedIndex == 0 && formUploadBox.value == '')
	{
		returnval = false;
	}
	
	return returnval;
}

function checkurl(input)
{
	//var validformat = /^(http(s?):\/\/|ftp:\/\/{1})((\w+\.){1,})\w{2,}$/i;
	var validformat = /^((http|https|ftp):\/\/)?(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?/i;
	//var validformat = /^((https|ftp|gopher|telnet|file|notes|ms-help):(\/\/))?([\w\d:#@%\/;$()~_?\+-=\\\.&]*)$/;
	//var validformat = /^((http|https):\/\/)+\w{3,}.\w{2,}.\w{3}$/;
	var returnval=false;

	if(input.value)
	{
		if (!validformat.test(input.value))
		{
			//alert("Invalid URL Format. Please correct and submit again.")
			returnval=false;
		}
		else
			returnval=true;
	}
	else
		returnval=true;
	
	return returnval;
}

function checkdate(input)
{
	var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
	var returnval=false;
	if (!validformat.test(input.value))
	{
		//alert("Invalid Date Format. Please correct and submit again")
		//returnval=false;
	}
	else
	{ 
		//Detailed check for valid date ranges
	var monthfield=input.value.split("/")[0];
	var dayfield=input.value.split("/")[1];
	var yearfield=input.value.split("/")[2];
	var dayobj = new Date(yearfield, monthfield-1, dayfield);
	if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
	{
		//alert("Invalid Day, Month, or Year range detected. Please correct and submit again")
		//returnval=false;
	}
	else 
		returnval=true;
	}
	//if (returnval==false) input.select()
	
	return returnval;
}

//function get_form()
//{
//	alert("HI");
//	var href='';
//	
//	var formSelectBox = document.getElementById("select_form");
//	var formSelectedId = formSelectBox.selectedIndex;
//	if(formSelectedId == 0)
//		alert("Select form from list");
//	else
//	{
//		href = 'includes/get_lsp_form.php?form_id='+formSelectedId;
//		return href;
//	}
//}


function submitform()
{
	var error='';
	var formSelectBox = document.getElementById("select_form");
	var formUploadBox = document.getElementById("form_id");	
	
	var flag=0;
	if (empty(stripSpaces(document.getElementById('lsp_title').value)) || 
		empty(stripSpaces(document.getElementById('lsp_acronym').value)) ||
		stripSpaces(document.getElementById('sponsor_id').value) == "Dummy" ||
		empty(document.getElementById('sponsor_deadline').value) ||
		empty(stripSpaces(document.getElementById('internal_deadline_note').value)) ||
		(formSelectBox.selectedIndex == 0 && formUploadBox.value == '')
		){
			flag=1;
	}
	else{
		flag=0;
	}
	
	if(flag == 1)
	{
		alert(" Incomplete/Missing information: Please Enter all Fields Completely ");
		return;
	}	
		
	else if(flag ==0)
	{
		var validated = true;
		
		var lsp_url = checkurl(document.getElementById('lsp_url'));
		
		//alert('url : '+document.getElementById('lsp_url').value);
		if(!lsp_url)
		{
			alert(" Incorrect url format. ");
			validated = false;
		}
		
		var internal_deadline = document.getElementById('internal_deadline').value;
		if(internal_deadline != '')
		{
				internal_deadline = checkdate(document.getElementById('internal_deadline'));
				if(!internal_deadline)
				{
					alert(" Incorrect date format. ");
					validated = false;
				}
				
		}
	
		var sponsor_deadline = checkdate(document.getElementById('sponsor_deadline'));
		
		//alert("1 : " +internal_deadline+ " 2 : "+sponsor_deadline);
		
		if(!sponsor_deadline)
		{
			alert(" Incorrect date format. ");
			validated = false;
		}
		
//		var form_selection = checkform();
//		
//		if(!form_selection)
//		{
//			alert(" Please select form from list OR Upload new form ");
//			validated = false;
//		}
			
		if (validated)
		{
			document.newlsp.submit();			
		}
		
		
//			document.newlsp.submit();
	}
	
	//document.newlsp.submit();
	
}


