$(function()
{
	Date.firstDayOfWeek = 7;
	Date.format = 'mm/dd/yyyy';
	$('.date-pick').datePicker();
	$('.date-pick').dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT);
	
	$("#startClock").clockpick(
	{ 
		starthour : 1,
		endhour : 23,
		valuefield: 'startTime',
		minutedivisions: 12,
		useBgiframe: true 
	});
	
	$("#endClock").clockpick(
	{ 
		starthour : 1,
		endhour : 23,
		valuefield: 'endTime',
		minutedivisions: 12,
		useBgiframe: true 
	});
});

function clear(id){
	document.getElementById(id).value = "";
}

function what(){
	$("#what").show("slow");
}


function closeWhat(){
	$("#what").hide("slow");
}

function showForm(element){
	if(element.checked) 
		document.getElementById("subsForm").style.display = "block";
	else
		document.getElementById("subsForm").style.display = "none";
}

function subscribe(postfield, id){

	message = document.getElementById("aweber_msg");
	var randomnumber = Math.floor(Math.random()*1000001);
	mail = document.getElementById("aweberEmail").value;
	
	
	message.innerHTML = "<img src='../images/loading.gif'>";	
	if(!email_checker(mail))
	{
		message.innerHTML = "Invalid email format. ";
		return false;
	}
	else{
		arguments = "postfield="+postfield+"&email="+mail+"&rand="+randomnumber; 
		  $.ajax({ 
			 type: "GET", 
			 url: "ajax/aweber.ajax.php",  
			 data: arguments, 
			 success: function(msg){ 
				alert(msg);
				message.innerHTML = "";	
			 } 
			}); 	
	}
	
}

function validateInput(){
		name = trimAll(document.getElementById("subs_name").value);
		email = trimAll(document.getElementById("subs_email").value);
		
		message = document.getElementById("sub_msg");
		if(name != "" || email != ""){
			//check email format
			if(!email_checker(email))
			{
				message.innerHTML = "Invalid email format. ";
				return false;
			}
			else{
				message.innerHTML = "";
				return true;
			}
		}
		else{
			message.innerHTML = "Please don't leave anything empty";
			return false;
		}
		
}

function alternate(id){
 if(document.getElementsByTagName){  
   var table = document.getElementById(id);  
   var rows = table.getElementsByTagName("tr");  
   for(i = 1; i < rows.length; i++){          
	//manipulate rows
     if(i % 2 == 0){
       rows[i].className = "even";
     }else{
       rows[i].className = "odd";
     }      
   }
 }
}

function showSubscribeForm(id){
	document.getElementById(id).style.display = "block";
}

function hideSubscribeForm(id){
	document.getElementById(id).style.display = "none";
}


function updateStatus(setToStatus){
	ids = "";
	eventCheck = document.getElementsByName('eventCheckbox');
	
	for($i=0; $i<eventCheck.length; $i++){
		if(eventCheck[$i].checked == true)
			ids += eventCheck[$i].value + "|";
	}	
	
	if(ids != ""){
	
	message = document.getElementById("update_span");
	message.style.display = "block"; 
	message.innerHTML = "<img src='images/loading.gif'>";	
	
	arguments = "idSet="+ids+"&status="+setToStatus; 
			  $.ajax({ 
				 type: "GET", 
				 url: "ajax/updateEventStatus.ajax.php",  
				 data: arguments, 
				 success: function(msg){ 
					message.innerHTML = "event status updated!";
					window.location.reload(true);
				 } 
			}); 		
	}
}

function checkAll(){

	eventCheck = document.getElementsByName('eventCheckbox');
	
	if(document.getElementById('checkAll').checked == true){
		for($i=0; $i<eventCheck.length; $i++){
			eventCheck[$i].checked = true;
		}	
	}
	else{
		for($i=0; $i<eventCheck.length; $i++){
			eventCheck[$i].checked = false;
		}	
	}
}

function activateOtherInput(element){
	if(element.checked ==  true){
		document.getElementById("otherInput").readOnly = false
	}
	else{
		document.getElementById("otherInput").value = "";
		document.getElementById("otherInput").readOnly = true;
		}
}

function activateEarlyInput(element){
	if(element.checked ==  true){
		document.getElementById("earlyInput").readOnly = false
	}
	else{
		document.getElementById("earlyInput").value = "";
		document.getElementById("earlyInput").readOnly = true;
		}
}

function activateRegularInput(element){
	if(element.checked ==  true){
		document.getElementById("regularInput").readOnly = false
	}
	else{
		document.getElementById("regularInput").value = "";
		document.getElementById("regularInput").readOnly = true;
		}
}

function deactivateOtherOptions(element){
	if(element.checked ==  true){
		document.getElementById("earlyInput").readOnly = true;
		document.getElementById("regularInput").readOnly = true;
		document.getElementById("earlyInput").value = "";
		document.getElementById("regularInput").value = "";
		document.getElementById("earlyCheck").checked = false;
		document.getElementById("regularCheck").checked = false;
		document.getElementById("regularCheck").disabled = true;
		document.getElementById("earlyCheck").disabled = true;
	}
	else{
		document.getElementById("regularCheck").disabled = false;
		document.getElementById("earlyCheck").disabled = false;	
	}
}

function trimAll(sString){ 
     while (sString.substring(0,1) == ' '){ 
          sString = sString.substring(1, sString.length); 
     } 
     while (sString.substring(sString.length-1, sString.length) == ' '){ 
          sString = sString.substring(0,sString.length-1); 
     } 
     return sString; 
}

function checkTimeFormat(time){
	 re = /^\d{1,2}:\d{2}$/; 
	 if(!time.match(re)) 
	 { 
		return false;
	 }
	 else
	 {
		nums = time.split(":");
		if(nums[0] > 23 || nums[1] > 59)
		{
			return false;
		}
		else
		{
			return true;
		}
	 }
}

//function compareTime(time1, time2){
function compareTime(time1, time2){
	num1 = time1.split(" ");
	num2 = time2.split(" ");
	
	if(num1[1] == "PM" && num2[1] == "AM")
	{
		return false;
	}
	else if(num1[1] == "AM" && num2[1] == "PM")
	{
		return true;
	}
	else{
		hour1 = num1[0].split(":");
		hour2 = num2[0].split(":");
		
		if(parseInt(hour1[0]) > parseInt(hour2[0]))
		{
			return false;
		}
		else
		{
			if(parseInt(hour2[0]) >= parseInt(hour1[0]) && parseInt(hour2[1]) >= parseInt(hour1[1]))
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
}

function email_checker(email){
	if(email == ""){
		return false;
	}
	else{
		if(email.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi)){
			return true;
		}
		else{
			return false;
		}
	}
}

 
 function prePrompt(){
	document.getElementById('divLoader').style.width='100%';
	document.getElementById('divLoader').style.height='100%';
	document.getElementById('divLoader').innerHTML = "<img src='/events/images/preload.gif'>";	
 }
 
 function postPrompt(){
	document.getElementById('divLoader').style.width='0%';
	document.getElementById('divLoader').style.height='0%';
	document.getElementById('divLoader').innerHTML = "";
 }

function getModes(){
	modes = "";
	
	checkMode = document.getElementsByName("mode");
	
	for($i=0; $i<checkMode.length; $i++)
	{
		if(checkMode[$i].checked && checkMode[$i].value != "Other")
		{
			modes += checkMode[$i].value+", ";
		}	
	}	
	
	
	modes = modes.slice(0,-2); 
	
	if(document.getElementById("otherCheck").checked)
	{
		modes += ", "+document.getElementById("otherInput").value;
	}
	
	return modes;
}

function getFees(){
	fees = "";
	regular = document.getElementById("regularInput").value;
	early = document.getElementById("earlyInput").value;
	
	if(document.getElementById("freeCheck").checked){
		return "free";
	}
	else{
		if(early == "" && regular == ""){
			return "";
		}
		else if(early != "" && regular == ""){
			return "Early Bird: "+early;
		}
		else if(early == "" && regular != ""){
			return "Regular Fee: "+regular;
		}
		else if(early != "" && regular != ""){
			return "Early Bird: "+early+"<br/>Regular Fee: "+regular;
		}
	}
}
 
function addEvent(where,eventId){	
	if(validateForm())
	{
		message = document.getElementById("error_message");
		var randomnumber = Math.floor(Math.random()*1000001);
			
		startdate = document.getElementById("startDate").value;
		enddate = document.getElementById("endDate").value;
		starttime = trimAll(document.getElementById("startTime").value);
		endtime = trimAll(document.getElementById("endTime").value);
		presenter_name = trimAll(document.getElementById("presenter").value);
		event_title = trimAll(document.getElementById("title").value);
		event_city = trimAll(document.getElementById("city").value);
		event_state = trimAll(document.getElementById("state").value);
		event_sponsor = trimAll(document.getElementById("sponsor").value);
		contact_info = trimAll(document.getElementById("contact").value);
		timezone = document.getElementById("timeZone").value;
		event_country = document.getElementById("country").value;
		mail = trimAll(document.getElementById("email").value);
		web = trimAll(document.getElementById("website").value);
		mailChecked = document.getElementById("checkMail").checked;
		
		modes = getModes();
		fees = getFees();
		if(where == "add"){
			inc = document.getElementById("incNews").checked;
			sign = document.getElementById("signNews").checked
			three = document.getElementById("threeMons").checked;
		}
		
		arguments = "startdate="+startdate+"&enddate="+enddate+"&starttime="+starttime+"&endtime="+endtime+"&presenter_name="+presenter_name+"&event_title="+event_title+"&event_city="+event_city+"&event_state="+event_state+"&event_sponsor="+event_sponsor+"&contact_info="+contact_info+"&timezone="+timezone+"&event_country="+event_country+"&mail="+mail+"&modes="+modes+"&rand="+randomnumber+"&mailChecked="+mailChecked+"&web="+web+"&fees="+fees+"&where="+where; 
		
		if(where == "add"){
			arguments += "&incNews="+inc+"&signNews="+sign+"&threeMons="+three;
		}
		if(where == "update"){
			arguments += "&event_id="+eventId;
		}
		
		message.innerHTML = "<img src='images/loading.gif'>";	
		  $.ajax({ 
			 beforeSend: function(){
			   prePrompt();
			 },
			 complete: function(){
			   postPrompt();
			 },
			 type: "GET", 
			 url: "/events/ajax/addEvent.ajax.php",  
			 data: arguments, 
			 success: function(msg){ 
				 message.innerHTML = msg;
			 } 
			}); 
	}
	
}

function validateForm(){
	selectedMode = false;
	message = document.getElementById("error_message");
	
	startdate = document.getElementById("startDate").value;
	enddate = document.getElementById("endDate").value;
	starttime = trimAll(document.getElementById("startTime").value);
	endtime = trimAll(document.getElementById("endTime").value);
	presenter_name = trimAll(document.getElementById("presenter").value);
	event_title = trimAll(document.getElementById("title").value);
	event_city = trimAll(document.getElementById("city").value);
	event_state = trimAll(document.getElementById("state").value);
	event_sponsor = trimAll(document.getElementById("sponsor").value);
	contact_info = trimAll(document.getElementById("contact").value);
	other_mode = trimAll(document.getElementById("otherInput").value);
	mail = trimAll(document.getElementById("email").value);
	
	timezone = document.getElementById("timeZone").value;
	event_country = document.getElementById("country").value;
	
	//check if there was at least 1 delivery mode selected
	
	checkMode = document.getElementsByName("mode");
	
	for($i=0; $i<checkMode.length; $i++){
		if(checkMode[$i].checked)
		{
			selectedMode = true;
		}	
	}	
	
	//make sure the none of the fields were empty
	//if(startdate == '' || enddate == '' || starttime == '' || endtime == '' || presenter_name == '' || event_title == '' || event_city == '' || event_state == '' || event_sponsor == '' || contact_info == '' || mail == '')
	if(startdate == '' || enddate == '' || presenter_name == '' || event_title == '' || mail == '')
	{
		message.innerHTML = "Spaces with this symbol <img src='images/bullet.jpg'> are mandatory.";
		return false;
	} 
	else
	{
		//if other mode was checked
		if(document.getElementById("otherCheck").checked && other_mode == '')
		{
		message.innerHTML = "* You have checked the \"Other\" Delivery Mode option, Delivery Name is required.";
		return false;
		}
		else
		{
			//force user to select at least one Delivery Mode
			if(selectedMode)
			{
				 //check for time format	
				 /*
				 if(!checkTimeFormat(starttime) || !checkTimeFormat(endtime)) 
				 { 
					message.innerHTML = "* Invalid time format on Start/End Time.";
					return false;
				 }
				 else
				 {
				 */
				 
					//start date must not be greater on end date
					var start  = new Date(startdate);
					var end  = new Date(enddate);
					if (start > end)
					{
						message.innerHTML = "* Start Date cannot be later than End Date. ";
						return false;
					}
					else{
						 if(starttime != "" || endtime != ""){
							//start time must not be greater on end time
							if(!compareTime(starttime, endtime))
							{
								message.innerHTML = "* Start Time cannot be later than End Time. ";
								return false;
							}
							else
							{
								//check email format
								if(!email_checker(mail))
								{
									message.innerHTML = "* Invalid email format. ";
									return false;
								}
								else{
									message.innerHTML = "";
									return true;
								}
							}
						}
						else
						{
							//check email format
							if(!email_checker(mail))
							{
								message.innerHTML = "* Invalid email format. ";
								return false;
							}
							else{
								message.innerHTML = "";
								return true;
							}
						}
					}
					

				 //}
			}
			else
			{
				message.innerHTML = "* You must select at least one Delivery Mode.";
				return false;
			}
		}
				
	}
	
		
}
