window.onload = init;

var output_type = 1;
var type;
var http_request;
var cron_title;
var cron_url;
var cron_timezone;
var cron_text;
var container_error;
var contain_error;
var cron_charset;
var container_message;
var step_1_container;
var step_2_1_container;
var step_2_2_container;
var step_2_3_container;
var step_3_container;
var basis;
var page;
var step;
var save_step = 0;
var butt_prev;
var butt_next;
var sel_day;
var sel_month;
var sel_year;
var sel_date;
var ajax_responce = 0;
var is_edit = 0;
var cron_id;
var divs_arr = new Array(6);
	divs_arr[0] = "step_1";
	divs_arr[1] = "step_2_1";
	divs_arr[2] = "step_2_2";
	divs_arr[3] = "step_2_3";
	divs_arr[4] = "step_3";
	divs_arr[5] = "butt_prev";

var hour_id_arr 	= new Array();
var display_arr 	= new Array();
var displ_res_arr = new Array();
var results_arr		= new Array();
var to_show_arr		= new Array();
var hours_arr 		= new Array(24);
	hours_arr["1_1"] = "01";
	hours_arr["1_2"] = "02";
	hours_arr["1_3"] = "03";
	hours_arr["1_4"] = "04";
	hours_arr["1_5"] = "05";
	hours_arr["1_6"] = "06";
	hours_arr["1_7"] = "07";
	hours_arr["1_8"] = "08";
	hours_arr["1_9"] = "09";
	hours_arr["1_10"] = "10";
	hours_arr["1_11"] = "11";
	hours_arr["1_12"] = "12";
	hours_arr["2_1"] = "13";
	hours_arr["2_2"] = "14";
	hours_arr["2_3"] = "15";
	hours_arr["2_4"] = "16";
	hours_arr["2_5"] = "17";
	hours_arr["2_6"] = "18";
	hours_arr["2_7"] = "19";
	hours_arr["2_8"] = "20";
	hours_arr["2_9"] = "21";
	hours_arr["2_10"] = "22";
	hours_arr["2_11"] = "23";
	hours_arr["2_12"] = "00";

var hours_view_arr = new Array(24);
	hours_view_arr["1_1"] = "1 am";
	hours_view_arr["1_2"] = "2 am";
	hours_view_arr["1_3"] = "3 am";
	hours_view_arr["1_4"] = "4 am";
	hours_view_arr["1_5"] = "5 am";
	hours_view_arr["1_6"] = "6 am";
	hours_view_arr["1_7"] = "7 am";
	hours_view_arr["1_8"] = "8 am";
	hours_view_arr["1_9"] = "9 am";
	hours_view_arr["1_10"] = "10 am";
	hours_view_arr["1_11"] = "11 am";
	hours_view_arr["1_12"] = "12 am";
	hours_view_arr["2_1"] = "1 pm";
	hours_view_arr["2_2"] = "2 pm";
	hours_view_arr["2_3"] = "3 pm";
	hours_view_arr["2_4"] = "4 pm";
	hours_view_arr["2_5"] = "5 pm";
	hours_view_arr["2_6"] = "6 pm";
	hours_view_arr["2_7"] = "7 pm";
	hours_view_arr["2_8"] = "8 pm";
	hours_view_arr["2_9"] = "9 pm";
	hours_view_arr["2_10"] = "10 pm";
	hours_view_arr["2_11"] = "11 pm";
	hours_view_arr["2_12"] = "12 pm";

var hours_show_arr = new Array(24);
	hours_show_arr["1"] = "1 am";
	hours_show_arr["2"] = "2 am";
	hours_show_arr["3"] = "3 am";
	hours_show_arr["4"] = "4 am";
	hours_show_arr["5"] = "5 am";
	hours_show_arr["6"] = "6 am";
	hours_show_arr["7"] = "7 am";
	hours_show_arr["8"] = "8 am";
	hours_show_arr["9"] = "9 am";
	hours_show_arr["10"] = "10 am";
	hours_show_arr["11"] = "11 am";
	hours_show_arr["12"] = "12 am";
	hours_show_arr["13"] = "1 pm";
	hours_show_arr["14"] = "2 pm";
	hours_show_arr["15"] = "3 pm";
	hours_show_arr["16"] = "4 pm";
	hours_show_arr["17"] = "5 pm";
	hours_show_arr["18"] = "6 pm";
	hours_show_arr["19"] = "7 pm";
	hours_show_arr["20"] = "8 pm";
	hours_show_arr["21"] = "9 pm";
	hours_show_arr["22"] = "10 pm";
	hours_show_arr["23"] = "11 pm";
	hours_show_arr["24"] = "12 pm";
	
	
var week_arr = new Array(7);
	week_arr["mon"] = i20n[0];
	week_arr["tue"] = i20n[1];
	week_arr["wed"] = i20n[2];
	week_arr["thu"] = i20n[3];
	week_arr["fri"] = i20n[4];
	week_arr["sat"] = i20n[5];
	week_arr["sun"] = i20n[6];
	
var show_week_arr = new Array(7);
	show_week_arr["1"] = "mon";
	show_week_arr["2"] = "tue";
	show_week_arr["3"] = "wed";
	show_week_arr["4"] = "thu";
	show_week_arr["5"] = "fri";
	show_week_arr["6"] = "sat";
	show_week_arr["7"] = "sun";

var thetext;
var text;

function init() {
	if(type == 1 || type == 2){
		step = 1;
		container_error		 	= $('errorMsg');
		contain_error		 		= $('builder_error');
		container_message 	= $('result');
		step_1_container 		= $('step_1');
		step_2_1_container 	= $('step_2_1');
		step_2_2_container 	= $('step_2_2');
		step_2_3_container 	= $('step_2_3');
		step_3_container 		= $('step_3');
		butt_prev						= $('butt_prev');
		butt_next						= $('butt_next');
		page								= $('page');
		blurLinks();
		hide_other_divs();
	}
	if(type == 2){
		edit_start();
	}
	
};

/*
*	Function Next
*/
function next_step() {
	if (step == 1) {
		//title
		cron_title = $("cron_title").value;
		cron_title = trim(cron_title);
		if (cron_title == ""){
			show_error(i20n[7]);
			return false;
		}
		
		//url
		cron_url = $("cron_url").value;
		cron_url = trim(cron_url);
		//var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
		var regexp = /^(http|ftp|https):\/\/(.*)([a-zA-Z0-9]){2,}\.([a-zA-Z_-]){2,}(.*)$/;
		
		if (!regexp.test(cron_url)) {
			show_error(i20n[8]);
			return false;
		} else {
			//alert("no responce = " + ajax_responce);
			//prowerka za obiden address
			var parameters = 'cron_url=' + cron_url + '&action=2';
			//alert(parameters);
			SjaxPostForm2(parameters, 2);
			//alert("responce = " + ajax_responce);
			if(ajax_responce == 1) {
				return false;
			}
		}
		
		//OUTPUT
		//alert(output_type);
			
		//charset
		var char_index = $("cron_charset");
		//cron_charset = char_index.options[char_index.selectedIndex].text;
		cron_charset = char_index.options[char_index.selectedIndex].value;
		if (cron_charset == ""){
			show_error(i20n[9]);
			return false;
		}
		
		//timezone
		var cron_index = $("cron_timezone");
		cron_timezone = cron_index.value;
		cron_text = cron_index.options[cron_index.selectedIndex].text;
		if (cron_timezone == ""){
			show_error(i20n[10]);
			return false;
		}
		
		//basis - tuk trqbwa da slojim funk za iz4istwane na rezultati (pri promqna na basisa se nalaga
		if ($("basis_1").checked) {
			basis = 1;
			text = i20n[11];
		}else if ($("basis_2").checked) {
			basis = 2;
			text = i20n[12];
		}else if ($("basis_3").checked) {
			basis = 3;
			text = i20n[13];
		}else {
			show_error(i20n[14]);
			return false;
		}
		step = 2;
		hide_other_divs();
		show_error("");
		
	} else if (step == 2) { // step 2
		//////////////////////////////////////////////////////// step 2
		
		if ($("times_1_1").checked && basis == 1) {
			times = 1; // single
			show_error("");
		}else if ($("times_1_2").checked && basis == 1) {
			times = 2; // multiple
			show_error("");
		}else if ($("times_2_1").checked && basis == 2) {
			times = 1; // single
			show_error("");
		}else if ($("times_2_2").checked && basis == 2) {
			times = 2; // multiple
			show_error("");
		}else if ($("times_3_1").checked && basis == 3) {
			times = 1; // single
			show_error("");
		}else if ($("times_3_2").checked && basis == 3) {
			times = 2; // multiple
			show_error("");
		} else {
			show_error(i20n[15]);
			return false;
		}
			
		if (hour_id_arr.length == 0) {
			show_error(i20n[16]);
			return false;
		}
		
		if (times == 1 && hour_id_arr.length > 1) {
			show_error(i20n[17]);
			return false;
		}
		
		step = 3;
		hide_other_divs();
		
	} else if (step == 3) {// step 3
		///////////////////////////////////////////////////////// step 3
		//prowerka za korektna data
		var checked_date = chk_date();
		
		if (checked_date) {
			//pliusa iz4ezwa i zatowa go smenqme
			cron_text = cron_text.replace("+", "*");
			// AJAX POST FORM
			if (is_edit == 1) {
				var parameters = 'cron_title=' + cron_title + '&cron_url=' + cron_url + '&timezone=' + cron_timezone + '&timezone_countries=' + cron_text + '&basis=' + basis + '&action=3&results=' + results_arr + '&page=' + page.value + '&lcode=' + global_lcode + '&start_date=' + sel_date + '&display_id=' + display_arr + "&cron_id=" + cron_id + '&cron_charset=' + cron_charset + '&output_type=' + output_type;
				//alert(parameters);return;
				AjaxPostForm2(parameters, 3);
			}	else {
				var parameters = 'cron_title=' + cron_title + '&cron_url=' + cron_url + '&timezone=' + cron_timezone + '&timezone_countries=' + cron_text + '&basis=' + basis + '&action=1&results=' + results_arr + '&page=' + page.value + '&lcode=' + global_lcode + '&start_date=' + sel_date + '&display_id=' + display_arr + '&cron_charset=' + cron_charset + '&output_type=' + output_type;
				
				//alert(parameters);return;
				AjaxPostForm2(parameters, 1);
			}
			
		} else {
			return false;
		}
	}
};


/*
*	Function Show error message
*/
function show_error(message) {
	if (message != "") {
		container_error.style.display = 'block';
		contain_error.innerHTML = '<b>' + message + '</b>';
		contain_error.style.display = 'block';
	} else {
		container_error.style.display = 'none';
		contain_error.innerHTML = '&nbsp;';
		contain_error.style.display = 'none';
	}
};


/*
*	Function Show message
*/
function show_message(message) {
	container_message.innerHTML = message;
};



/*
var next_button = $('next_button');
next_button.onclick = validate;
next_button.onclick = function() { validate(current) };

function validate(param1, param2) {
  alert('next button is clicked!');
}
*/

function previous_step() {
	if (step == 1){
		var back_url = conf_host + 'crons.php?page=' + page.value + '&lcode=' + global_lcode;
		//alert(back_url);
		window.location.href = back_url;
		return false;
	}
	step = step - 1;
	show_error("");
	hide_other_divs();
}

/*
*	Function hiding divs we don't need and shows which we do
*/
function hide_other_divs() {
	
	if (step == 1) {
		to_show_arr =  str_to_arr('butt_prev,step_1', ',');
		$('step1').className = 'stepsCurrent';
		$("step2").className = 'steps';
		$("step3").className = 'steps';
		$("step_title").innerHTML = i20n[18];
		$("step_text").innerHTML = i20n[19];
	} else if (step == 2) {
		
		$(butt_next).innerHTML = i20n[20];
		if (basis == 1) {
			to_show_arr =  str_to_arr('butt_prev,step_2_1', ',');
			clean_array();
		}else if (basis == 2) {
			to_show_arr =  str_to_arr('butt_prev,step_2_2', ',');
			clean_array();
		}else if (basis == 3) {
			to_show_arr =  str_to_arr('butt_prev,step_2_3', ',');
			clean_array();
		}
		save_step = basis;
		$('step1').className = 'steps';
		$("step2").className = 'stepsCurrent';
		$("step3").className = 'steps';	
		$("step_title").innerHTML = i20n[21];
		$("step_text").innerHTML = i20n[22];
		
	} else if (step == 3) {
		
		$(butt_next).innerHTML = i20n[23];
		to_show_arr =  str_to_arr('butt_prev,step_3', ',');
		displ_res();
		$('step1').className = 'steps';
		$("step2").className = 'steps';
		$("step3").className = 'stepsCurrent';	
		$("step_title").innerHTML = i20n[24];
		$("step_text").innerHTML = i20n[25];
		
	}
	
	for(var i = 0; i < divs_arr.length; i++){
		var arr = divs_arr[i];
		if (in_array(arr, to_show_arr)) {
			$(arr).style.display    = 'block';
		}else {
			$(arr).style.display    = 'none';
		}
	}
};

/*
*	ADD HOURS TO ID ARRAY
*/
function add_hours(id, hour) {
	var hour = hour;
	var hour_id = id;
	
	if (hour_id_arr.length > 0) {
			if (in_array(hour_id, hour_id_arr)) {
				for(var i = 0; i < hour_id_arr.length; i++){
					if (hour_id_arr[i] == hour_id) {
						hour_id_arr.splice(i, 1);
						$(hour_id).className = 'hours';
						//alert(hour_id_arr);
					}
				}
				
			} else {
				hour_id_arr.splice(0, 0, hour_id);
				$(hour_id).className = 'hourCurrent';
			}
	}	else {
		hour_id_arr.splice(0, 0, hour_id);
		$(hour_id).className = 'hourCurrent';
	}
	//temporarry
	//show_error(hour_id_arr);
}

/*
* function to show and hide unused week divs
*/
function show_weekday(day) {
	var day_div = day + "_in";
	var day = day;
	var exist = 0;
	var id = 0;
	
	if ($(day_div).style.display == 'none') {
		$(day_div).style.display = 'block';
	}else {
		if (hour_id_arr.length > 0) {
			for(var i = 0; i < hour_id_arr.length; i++){
				var id = hour_id_arr[i];
				id = hour_id_arr[i];
				parts = id.split('_');
				id = parts[0];
				//if (id.match(day)) {// ima izbran 4as ot tozi den -> ne trqbwa da se skriwa
				if (id == day) {// ima izbran 4as ot tozi den -> ne trqbwa da se skriwa
					exist = 1;
				}
			}
			
			if (exist == 1) {
				$(day_div).style.display = 'block';
			}else {
				$(day_div).style.display = 'none';
			}
			
		}else {
			$(day_div).style.display = 'none';
		}
	}
};

/*
* display result
*/
function displ_res(){
	//alert(text);
	//show_error(hour_id_arr);
	hour_id_arr.sort();
	var id;
	var parts;
	var count = 0;
	var big_arr = [];
	for(var i = 1; i <= 40; i++){
		big_arr[i] = "";
	}
	//var selected_hours = "<br>";
	var selected_hours = new Array();
	selected_hours = [];
	
	count = 0;
	//the arr should be always empty
	results_arr = [];
	//empty_array(results_arr);
	//empty_array(display_arr);
	display_arr = [];
	
	
	display_arr = hour_id_arr.slice(0); // - polu4awat razli4ni referencii
		
	if (basis == 1) {
		for (var z in hours_show_arr){
			selected_hours[z] = '<li><span class="hours" >' + hours_show_arr[z] + '</span></li>';
		}
		for(var i in hour_id_arr){
			id = hour_id_arr[i];
			parts = id.split('_');
			if (parts[0] == "hours") {
				var hourr = parts[1] + "_" + parts[2];
					for (var z in hours_show_arr){
						if (hours_view_arr[hourr] == hours_show_arr[z]) {
							selected_hours[z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
						}
					}
				results_arr[count] = "hour_" + hours_arr[hourr];
				count++;
			}
		}
		selected_hours = arr_to_str(selected_hours);
		selected_hours = '<ul class="hours clearfix">' + selected_hours + '</ul>';
	} else if (basis == 2) {
		//////////////////////////////////////////////////////////////////////////////////// 2
		for(var i in hour_id_arr){
			selected_hours = [];
			
			for (var z in hours_show_arr){
				selected_hours[z] = '<li><span class="hours" >' + hours_show_arr[z] + '</span></li>';
			}
			
			id = hour_id_arr[i];
			parts = id.split('_');
			for (var x in show_week_arr) {
				if (parts[0] == show_week_arr[x]) {
					var day = x; // day == number of the day of the week e.g. friday -> day=5;
					var hourr = parts[1] + "_" + parts[2];
					
					if (big_arr[x].length == 0) {
						for (var z in hours_show_arr){
							if (hours_view_arr[hourr] == hours_show_arr[z]) {
								selected_hours[z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
							}
						}
						big_arr[x] = selected_hours.slice(0);
					}else {
						for (var z in big_arr[x]){
							if (hours_view_arr[hourr] == hours_show_arr[z]) {
								big_arr[x][z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
							}
						}
					}
					for (var z in hours_show_arr){
						if (hours_view_arr[hourr] == hours_show_arr[z]) {
							selected_hours[z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
						}
					}
					results_arr[count] = parts[0] + "_" + hours_arr[hourr];
					count++;
				}
			}
		}
		selected_hours = [];
		
		for (var x in big_arr){
			if (big_arr[x].length != 0) {
				var to_str = arr_to_str(big_arr[x]);
				selected_hours = selected_hours + '<br><br>' + week_arr[show_week_arr[x]] + '<br>' + '<ul class="hours clearfix">' + to_str + '</ul>';
			}
		}
		
	} else if (basis == 3) {
		////////////////////////////////////////////////////////////////////////////////////  3
		for(var i in hour_id_arr){
			selected_hours = [];
			
			for (var z in hours_show_arr){
				selected_hours[z] = '<li><span class="hours" >' + hours_show_arr[z] + '</span></li>';
			}
			
			id = hour_id_arr[i];
			parts = id.split('_');
			
			for (var x = 1; x <= 33; x++) {
				if (parts[0] == x) {
					var day = x; // day == number of the day of the week e.g. friday -> day=5;
					var hourr = parts[1] + "_" + parts[2];
					
					if (big_arr[x].length == 0) {
						for (var z in hours_show_arr){
							if (hours_view_arr[hourr] == hours_show_arr[z]) {
								selected_hours[z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
							}
						}
						big_arr[x] = selected_hours.slice(0);
					}else {
						for (var z in big_arr[x]){
							if (hours_view_arr[hourr] == hours_show_arr[z]) {
								big_arr[x][z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
							}
						}
					}
					for (var z in hours_show_arr){
						if (hours_view_arr[hourr] == hours_show_arr[z]) {
							selected_hours[z] = '<li><span class="hourCurrent" >' + hours_show_arr[z] + '</span></li>' ;
						}
					}
					results_arr[count] = parts[0] + "_" + hours_arr[hourr];
					count++;
				}
			}
		}
		selected_hours = [];
		
		for (var x in big_arr){
			if (x == 32) {
				day = i20n[26];
			} else if (x == 33) {
				day = i20n[27];
			} else {
				day = i20n[28] + x;
			}
			if (big_arr[x].length != 0) {
				if (x == 33) {
					var to_str = arr_to_str(big_arr[x]);
					selected_hours = '<br>' + day + '<br>' + '<ul class="hours clearfix">' + to_str + '</ul>' + selected_hours;
				} else {
					var to_str = arr_to_str(big_arr[x]);
					selected_hours = selected_hours + '<br>' + day + '<br>' + '<ul class="hours clearfix">' + to_str + '</ul>';
				}
			}
		}
	}
	//arr_to_str(selected_hours);
	//var to_show = arr_to_str(selected_hours);
	var to_show = selected_hours;
	//alert(selected_hours);
	thetext = "CRON: " + cron_title + "<br>";
	thetext += "URL: " + cron_url + "<br>";
	/*
	no OUTPUT TYPE: for now
	if (output_type == 2) {
		thetext += i20n[29];
	} else {
		thetext += i20n[30];
	}
	*/
	thetext += i20n[31] + cron_charset + "<br>";
	thetext += i20n[32] + cron_text + "<br>";
	show_message(thetext + "<br>" + text + to_show);
};

/*
* To clean unused values
*/
function clean_array() {
	if (save_step != 0) {
		if (save_step != basis) {
			if (hour_id_arr.length > 0) {
				for (var x in hour_id_arr) {
					var id = hour_id_arr[x];
					$(id).className = 'hours';
				}
				hour_id_arr.splice(0, hour_id_arr.length);
			}
		}
	}
};

/*
* To clean unused values
*/
function empty_array(array_name) {
	if (array_name.length > 0) {
		array_name.splice(0, array_name.length);
	}
};

/*
* Start edit
*/
function edit_start() {
	if (basis == 1) {
		$("basis_1").checked = true;
		$("basis_2").checked = false;
		$("basis_3").checked = false;
	}else if (basis == 2) {
		$("basis_2").checked = true;
		$("basis_1").checked = false;
		$("basis_3").checked = false;
	}else if (basis == 3) {
		$("basis_3").checked = true;
		$("basis_2").checked = false;
		$("basis_1").checked = false;
	}
	if (display_arr.length > 0) {
		for(i=0; i < display_arr.length; i++){
			var id = display_arr[i];
			add_hours(id, "02");
		}
	}
	
	if (week_arr.length > 0) {		
		for (var x in week_arr) {
			show_weekday_edit(x);
		}
	}
			
	for(var x = 1; x < 34; x++){
		show_weekday_edit(x);
	}
	
	//ako imame powe4e ot 2 rezultata -> trqbwa da slojim check na TIMES
	if (display_arr.length > 1) {
		$("times_1_2").checked = true;
		$("times_2_2").checked = true;
		$("times_3_2").checked = true;
	} else {
		$("times_1_1").checked = true;
		$("times_2_1").checked = true;
		$("times_3_1").checked = true;
	}
	/*
	//set na prawilen radiobuton za cron_charset
	if (output_type == 2) {
		$("output_type_2").checked = true;
		$("output_type_1").checked = false;
	} else {
		$("output_type_1").checked = true;
		$("output_type_2").checked = false;
	}
	*/
};

/*
* function to show and hide unused week divs on edit
*/
function show_weekday_edit(day) {
	var day_div = day + "_in";
	var day = day;
	var exist = 0;
	var id = 0;
	//alert(hour_id_arr.length);
	
	if (hour_id_arr.length > 0) {
		for(var i = 0; i < hour_id_arr.length; i++){
			id = hour_id_arr[i];
			parts = id.split('_');
			id = parts[0];
			//if (id.match(day)) {// ima izbran 4as ot tozi den -> ne trqbwa da se skriwa
			if (id == day) {// ima izbran 4as ot tozi den -> ne trqbwa da se skriwa
				exist = 1;
			}
		}
		
		if (exist == 1) {
			//alert("block: " + day_div);
			$(day_div).style.display = 'block';
		}else {
			$(day_div).style.display = 'none';
		}
		
	} else {
		$(day_div).style.display = 'none';
	}
	
	//set new post params for ajax
	is_edit = 1;
};


/*
* function check date
*/
function chk_date() {
	sel_year 	= $('year').value;
	sel_month = $('month').value;
	sel_day 	= $('day').value;
	sel_date = sel_year + "," + sel_month + "," + sel_day;
	
	//selected date parsed
	var sel_date_parse = Date.parse(new Date(sel_year, sel_month, sel_day));
	
	var currentTime = new Date();
	var today_month = currentTime.getMonth() + 1;
	var today_day = currentTime.getDate();
	var today_year = currentTime.getFullYear();
	
	// today - parsed
	var today_parse = Date.parse(new Date(today_year, today_month, today_day));
	
	if (sel_date_parse < today_parse) {
		show_error(i20n[33]);
		return false;
	} else {
		sel_date = sel_year + "-" + sel_month + "-" + sel_day;
		return true;
	}
};
