var isDOM = (document.getElementById) ? true : false;                                   // DOM1 browser (MSIE 5+, Netscape 6, Opera 5+, Mozilla 1+)
var isMSIE5 = (isDOM && isMSIE) ? true : false;                                         // MSIE 5+
var isMSIE = (document.all && document.all.item) ? true : false;                        // Microsoft Internet Explorer 4+
var isOpera = (window.opera) ? true : false;                                            // Opera
var isOpera5 = (isOpera && (navigator.userAgent.search(/Opera.5/) != -1 ||
                navigator.userAgent.search(/Opera.6/) != -1)) ? true : false;           // Opera 5+
var isOpera7 = (isOpera && navigator.userAgent.search(/Opera.7/) != -1) ? true : false; // Opera 7+
var isNetscape4 = (document.layers) ? true : false;                                     // Netscape 4.*
var isNetscape = (window.netscape && !isOpera) ? true : false;                          // Netscape
var isNetscape6 = (isDOM && isNetscape) ? true : false;                                 // Netscape 6.*

function showAlertLayer(divID, val){
	if( val == "show" ) window.document.body.style.cursor = "wait";
	else if( val == "hide" ) window.document.body.style.cursor = "default";

	return ShowHideLayers(divID, val);
};

function lineSelected(obj, className){
	obj.className = className;
}
/*
function lineSelected(obj, color, cursor){
	obj.style.background = color;
	obj.style.cursor = cursor;

}
*/

function submit_onchange(elementName, form){
	if (form.elements[elementName].value == "" ){ stop = 0; };
	if ( stop == 1 ){
		stop = 0;
		form.action = "empty.php4";
		return form.submit();
	}
	else
		return false;
}

var check = 0;
function checkInfo(obj, type, page, date_format){
	obj.value = stringTrim(obj.value);
	var name = obj.name;
	var check_value = obj.value;
	var element_title = obj.title;

	if ( check == 0 ){

		if ( !element_title ) element_title = name;
		mess = "Sorry, incorrect data input: \"" + element_title + "\".\n";	

		switch (type ){
			case ("real"):
				if (check_value != ""){
					check_value = check_value * 1;
					test_value = parseFloat(check_value);

					if ( test_value == NaN ) check = 1;

					test_value;
					if ( test_value != check_value ) check = 1;

					if (check == 1) mess += "Please, enter real number.";
					else obj.value = test_value;
				}
				break;
			case ('whole'):
				if (check_value != ""){
					check_value = check_value * 1;
					test_value = parseFloat(check_value);

					if ( test_value == NaN ) check = 1;

					if ( test_value != check_value ) check = 1;

					if (check != 1){
						obj.value = test_value;
						test_value = parseInt(check_value, 10);

						if ( test_value != check_value) check = 1;

						check_value = check_value + "";
						if(check_value.indexOf(".") != -1 || check_value.indexOf(",") != -1 ) check = 1;
					};

					if (check == 1) mess += "Please, enter whole number.";
				};
				break;
			case ('space'):
				if ( check_value.indexOf(" ") != -1 ){
					check = 1;
					mess += "Please, don't use whitespace.";
				};
				break;
			case ('correct'):
				if ( check_value.indexOf('%') != -1 || check_value.indexOf("'") != -1 || check_value.indexOf('"') != -1 ){
					check = 1;
					mess += "Please, don't use symbol: '  \"  \%";
				}
				break;
			case ('login'):
				if ( check_value.indexOf('%') != -1 || check_value.indexOf("'") != -1 || check_value.indexOf('"') != -1 || check_value.indexOf("!") != -1 || check_value.indexOf("&") != -1){
					check = 1;
					mess += "Please, don't use symbol: '  \" !  \% &";
				}
				break;
			case ('date'):
				if ( !check_date_format(check_value, date_format) && check_value != "" ){
					if(date_format == "full") date_format = "MM/DD/YYYY HH24:MI";
					else if(date_format == "short") date_format = "MM/DD/YYYY";
					check = 1;
					mess += "Please, use this format: \"" + date_format + "\"";
				}
				break;
		};
	};

	if ( check == 1 ){
		alert(mess);

		if ((isDOM || isMSIE || ( isNetscape4 && page )) && !isOpera)
			obj.focus();
	}

	if (isNetscape4 && !page)
		setTimeout('check = 0' , 1000);
	else
		check = 0;
}

function checkCalendarDate(year, month, day){
	var checkDate;

	if (year.value != "" && month.value != "" && day.value != ""){
		checkDate =  new Date(year.value, month.value - 1, day.value);

		if (checkDate.getMonth() + 1 != month.value){
			alert("Date of Birth. Wrong date.");
			day.value = "";
			day.focus();
		}
	}
}

function check_date_format(check_date, date_format){	// full format  'MM/DD/YYYY HH24:MI'
														// short format 'MM/DD/YYYY'
	var month = "";
	var day = "";
	var year = "";
	var hh24 = "";
	var mi = "";
	var sl1 = "";
	var sl2 = "";
	var space = "";
	var dbl_point = "";

	check_date = stringTrim(check_date);

	if (date_format == "") date_format = "full";

	if (date_format == "full") dale_length = 16;
	else if (date_format == "short") dale_length = 10;

	if ( check_date != "" && check_date.length == dale_length ){
		if (date_format == "full"){
			month = check_date.substring(0, 2);
			day = check_date.substring(3, 5);
			year = check_date.substring(6, 10);
			hh24 = check_date.substring(11, 13);
			mi = check_date.substring(14, 16);
			sl1 = check_date.substring(2, 3);
			sl2 = check_date.substring(5, 6);
			space = check_date.substring(10, 11);
			dbl_point = check_date.substring(13, 14);
		}
		else if (date_format == "short"){
			month = check_date.substring(0, 2);
			day = check_date.substring(3, 5);
			year = check_date.substring(6, 10);
			sl1 = check_date.substring(2, 3);
			sl2 = check_date.substring(5, 6);
		}

		if ( parseInt(month, 10) && month >= 1 && month <= 12 &&
			parseInt(day, 10) && day >= 1 && day <= 31 &&
			parseInt(year, 10) && year >= 0 && year <= 4000 &&
			sl1 == "/" && sl2 == "/" &&
			(parseInt(hh24, 10) && hh24 >= 0 && hh24 <= 23 &&
			parseInt(mi, 10) && mi >= 0 && mi <= 59 &&
			space == " " && dbl_point == ":" || date_format == "short" )){

			return true;
		}
		else{
			return false;
		};
	}
	else{
		return false;
	};
};

function stringTrim(value){
	var result = "";
	var sub_string = "";

	for (var i = 0; i < value.length; i++)
		if (value.charAt(i) != " "){ result = value.substring(i, value.length); break; };

	sub_string = result;
	result = "";

	for (var i = sub_string.length - 1; i > -1; i--)
		if (sub_string.charAt(i) != " "){ result = sub_string.substring(0, i + 1); break; };

	return result;
};

function checkTimeFormat(checkTime, timeFormat){
	var hour = null;
	var minute = null;
	var second = null;
	
}

function convertTimeToNumber(convertTime){
	var hour = null;
	var minute = null;
	var resultNumber = false;

	convertTime = stringTrim(convertTime);

	if (convertTime != "" && convertTime.length == 5 ){
		hour = convertTime.substring(0, 2) * 1;
		minute = convertTime.substring(3, 5) * 1;
		separator = convertTime.substring(2, 3);
		
		if (hour >= 0 && hour <= 24 && minute >= 0 && minute <= 59 && separator == ":"){
			resultNumber = hour / 24 + minute / 24 / 60;
		}
		
		if (resultNumber > 1 || resultNumber < 0) resultNumber = false;
	}

	return resultNumber;
}

function add_new_row(obj, currency_pair_id, startValue) {
	var current_table = null;
	var current_row = null;

	if (isDOM || isMSIE){
		current_table = obj.parentNode.parentNode.parentNode.parentNode;
		current_row = obj.parentNode.parentNode;
		for (var i = 0; i < current_table.rows.length; i++) if (current_table.rows[i] == current_row) break;
		i++;
	}
	
	if((isDOM || isMSIE) && current_table.innerHTML){
	    current_table.insertRow(i);
	    current_table.rows[i].insertCell(0);
	    current_table.rows[i].insertCell(1);
	    current_table.rows[i].insertCell(2);
	    current_table.rows[i].cells[0].innerHTML = '<input type="text" name="leverage[' + currency_pair_id + '][]" maxlength="38" class="list" onBlur="returnAbsoluteValue(this); checkInfo(this, \'real\', \'\', \'\')">';
	    current_table.rows[i].cells[1].innerHTML = '<input type="text" name="time_from[' + currency_pair_id + '][]" maxlength="5" class="list" value="' + startValue + '" readonly>';
	    current_table.rows[i].cells[2].innerHTML = '<input type="text" name="time_to[' + currency_pair_id + '][]" maxlength="5" class="list" value="24:00" onKeyUp="refreshValues(this, ' + currency_pair_id + ')" onBlur="refreshRows(this, ' + currency_pair_id + ')">';
	}
	else
		alert("Modifying the document structure is not yet possible\n(Browser cannot add or remove HTML elements).\n\nPlease, use IE4+, NN6+, Mozilla1+");
}

function addLastRow(obj, currency_pair_id){
	var current_table = null;
	var current_row = null;

	if (isDOM || isMSIE){
		current_table = obj.parentNode.parentNode.parentNode.parentNode;
		current_row = obj.parentNode.parentNode;
		for (var i = 0; i < current_table.rows.length; i++) if (current_table.rows[i] == current_row) break;
		i++;
	}

	if (i == current_table.rows.length && obj.value != "24:00") add_new_row(obj, currency_pair_id, obj.value);
	else return false;
}

function removeLastRows(obj){
	if (obj.value == "24:00"){
		var current_table = null;
		var current_row = null;
	
		if (isDOM || isMSIE){
			current_table = obj.parentNode.parentNode.parentNode.parentNode;
			current_row = obj.parentNode.parentNode;
			for (var i = 0; i < current_table.rows.length; i++) if (current_table.rows[i] == current_row) break;
			i++;
		}

		if((isDOM || isMSIE) && current_table.innerHTML){
			var m = current_table.rows.length;
			var k = i;

			for (k; k < m; k++){
				current_table.deleteRow(i);
			}
		}
		else
			alert("Modifying the document structure is not yet possible\n(Browser cannot add or remove HTML elements).\n\nPlease, use IE4+, NN6+, Mozilla1+");
	}
	else return false;
}

function removeUselessRows(obj, currency_pair_id){
	var current_table = null;
	var current_row = null;

	if (isDOM || isMSIE){
		current_table = obj.parentNode.parentNode.parentNode.parentNode;
		current_row = obj.parentNode.parentNode;
		for (var i = 0; i < current_table.rows.length; i++) if (current_table.rows[i] == current_row) break;
		i++
	}

	elements_array1 = obj.form.elements["time_to[" + currency_pair_id + "][]"];
	elements_array2 = obj.form.elements["time_from[" + currency_pair_id + "][]"];

	if (elements_array1.length){
		if (i != current_table.rows.length){
			var k = i;
			while (convertTimeToNumber(obj.value) >= convertTimeToNumber(elements_array1[i].value)){
				current_table.deleteRow(i);
				k++;
			}
			if (k != i) elements_array2[i].value = obj.value;
			else{
				for (k; k > 1; k--){
					if (convertTimeToNumber(obj.value) <= convertTimeToNumber(elements_array1[k-2].value)){
						current_table.deleteRow(k-2);

						if (k-3 >= 0) elements_array2[k-2].value = elements_array1[k-3].value;
						else elements_array2[k-2].value = "00:00";
					};
				};
			};
			if (k!= i) addLastRow(obj, currency_pair_id);
		};
	};
}

function refreshValues(obj, currency_pair_id){
	var current_table = null;
	var current_row = null;

	if (isDOM || isMSIE){
		current_table = obj.parentNode.parentNode.parentNode.parentNode;
		current_row = obj.parentNode.parentNode;
		for (var i = 0; i < current_table.rows.length; i++) if (current_table.rows[i] == current_row) break;
		i++;
	}

	elements_array = obj.form.elements["time_from[" + currency_pair_id + "][]"];
	
	if (elements_array.length){
		if (i != current_table.rows.length)
			elements_array[i].value = obj.value;
	}
}

function refreshRows(obj, currency_pair_id){
	if (convertTimeToNumber(obj.value)){
		addLastRow(obj, currency_pair_id);
		removeLastRows(obj);
		removeUselessRows(obj, currency_pair_id);
	}
	else{
		alert("Wrong time. Please, enter time from 00:00 to 24:00");
		obj.focus();
	}
}

function returnAbsoluteValue(obj){
	var absoluteValue = Math.abs(obj.value);
	if (absoluteValue) obj.value = absoluteValue;
}