function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function checkZero (s) {
	switch (s){
		case 0:var result = "00";
			break;
		case 1:var result = "01";
			break;
		case 2:var result = "02";
			break;
		case 3:var result = "03";
			break;
		case 4:var result = "04";
			break;
		case 5:var result = "05";
			break;
		case 6:var result = "06";
			break;
		case 7:var result = "07";
			break;
		case 8:var result = "08";
			break;
		case 9:var result = "09";
			break;
		default:var result = s;
	}
	return result;
}
var seconds = true;
function move_clock () {
	day = new Date ();
	hor = checkZero (day.getHours());
	min = checkZero (day.getMinutes());
	sec = checkZero (day.getSeconds());
	var points = (seconds) ? ':' : '&nbsp;';
	//seconds=!seconds;
	clock_screen = hor + points + min + points + sec;
	document.getElementById("clock").innerHTML = clock_screen;
	id = setTimeout ("move_clock()",500);
}

function set_regions (country_id, default_region) {
	var region = document.forms['users'].region;
	var new_region, regions_array, region_id;
	if (regions2country[country_id] == undefined) {
		return;
	}
	if (default_region == undefined || default_region == '') {
		switch (country_id) {
			case '1':default_region = 1; break;
			case '2':default_region = 2; break;
//			case '3':default_region = 2; break;
			case '4':default_region = 45; break;
			case '5':default_region = 111; break;
			case '6':default_region = 120; break;
		}
	}
	region.options.length = 0;
	regions_array = regions2country[country_id].split (';');
	regions_array.each(function (key){
	      if (!key) {
	      	return;
	      }
			new_region = document.createElement("OPTION");
			new_region.text = regions[key];
			new_region.value = key;
			region.options.add (new_region);
			if (default_region != undefined && default_region == key) {
				region.options[region.options.length - 1].selected = true;
			}
		});
}

function check_registration (reg) {
	if (reg.name.value == '') {
		alert (messages[0]);
		reg.name.focus ();
		return false;
	}
	if (reg.surname.value == '') {
		alert (messages[1]);
		reg.surname.focus ();
		return false;
	}
	if (reg.phone.value == '') {
		alert (messages[2]);
		reg.phone.focus ();
		return false;
	}
	if (!is_valid_phone (reg.phone.value)) {
		alert (messages[11]);
		reg.phone.focus ();
		return false;
	}
	if (reg.login.value == '') {
		alert (messages[3]);
		reg.login.focus ();
		return false;
	}
	if (reg.password.value == '') {
		alert (messages[4]);
		reg.password.focus ();
		return false;
	}
	if (reg.password.value.length < 5) {
		alert (messages[13]);
		reg.password.focus ();
		return false;
	}
	if (reg.re_password.value == '') {
		alert (messages[5]);
		reg.re_password.focus ();
		return false;
	}
	if (reg.password.value != reg.re_password.value) {
		alert (messages[8]);
		reg.re_password.focus ();
		return false;
	}
	if (reg.email.value == '') {
		alert (messages[6]);
		reg.email.focus ();
		return false;
	}
	if (!is_valid_email (reg.email.value)) {
		alert (messages[10]);
		reg.email.focus ();
		return false;
	}
	if (reg.re_email.value == '') {
		alert (messages[7]);
		reg.re_email.focus ();
		return false;
	}
	if (reg.email.value != reg.re_email.value) {
		alert (messages[9]);
		reg.re_email.focus ();
		return false;
	}
	if (reg.agry.checked == false) {
		alert (messages[12]);
		return false;
	}
	return true;
}

function check_profile (reg) {
	if (reg.name.value == '') {
		alert (messages[0]);
		reg.name.focus ();
		return false;
	}
	if (reg.surname.value == '') {
		alert (messages[1]);
		reg.surname.focus ();
		return false;
	}
	if (reg.phone.value == '') {
		alert (messages[2]);
		reg.phone.focus ();
		return false;
	}
	if (!is_valid_phone (reg.phone.value)) {
		alert (messages[11]);
		reg.phone.focus ();
		return false;
	}
	if (reg.password.value.length && reg.password.value.length < 5) {
		alert (messages[13]);
		reg.password.focus ();
		return false;
	}
	if (reg.password.value != reg.re_password.value) {
		alert (messages[8]);
		reg.re_password.focus ();
		return false;
	}
	if (reg.email.value == '') {
		alert (messages[6]);
		reg.email.focus ();
		return false;
	}
	if (!is_valid_email (reg.email.value)) {
		alert (messages[10]);
		reg.email.focus ();
		return false;
	}
	if (reg.curpassword.value == '') {
		alert (messages[14]);
		reg.curpassword.focus ();
		return false;
	}
	if (old_num != reg.phone.value) {
		var result = confirm (messages[15]);
		if (!result) {
			reg.phone.value = old_num;
			reg.phone.focus ();
			return false;
		}
	}
	return true;
}

function check_simple (sms) {
	var time = new Date ();
	if (sms.date.disabled == false && sms.date.value == '0' && sms.hours.value <= time.getHours () && sms.minutes.value <= time.getMinutes ()) {
		alert (messages[6]);
		sms.date.focus ();
		return false;
   }
	if (sms.number.value == '') {
		alert (messages[0]);
		sms.number.focus ();
		return false;
	}
	if (!is_valid_phone (sms.number.value)) {
		alert (messages[1]);
		sms.number.focus ();
		return false;
	}
	if (sms.name != undefined) {
		if (sms.from == undefined && sms.name.value == '') {
			alert (messages[2]);
			sms.name.focus ();
			return false;
		}
		if (sms.name.value != '' && !is_valid_sign (sms.name.value)) {
			alert (messages[5]);
			sms.name.focus ();
			return false;
		}
	}
	if (sms.wappush.value == '' && sms.text.value == '') {
		alert (messages[3]);
		sms.text.focus ();
		return false;
	}
	sms.send.value = messages[4];
	sms.send.disabled = true;
	return true;
}

function check_mass (sms) {
	var time = new Date ();
	if (sms.date.disabled == false && sms.date.value == '0' && sms.hours.value <= time.getHours () && sms.minutes.value <= time.getMinutes ()) {
		alert (messages[6]);
		sms.date.focus ();
		return false;
   }
	if ($('bases').selectedIndex == -1) {
		alert (messages[0]);
		return false;
	}
	if (sms.name != undefined) {
		if (sms.from == undefined && sms.name.value == '') {
			alert (messages[2]);
			sms.name.focus ();
			return false;
		}
		if (sms.name.value != '' && !is_valid_sign (sms.name.value)) {
			alert (messages[5]);
			sms.name.focus ();
			return false;
		}
	}
	if (sms.wappush.value == '' && sms.text.value == '') {
		alert (messages[3]);
		sms.text.focus ();
		return false;
	}
	sms.send.value = messages[4];
	sms.send.disabled = true;
	return true;
}

function check_tpl (sms) {
	var time = new Date ();
	if (sms.date.disabled == false && sms.date.value == '0' && sms.hours.value <= time.getHours () && sms.minutes.value <= time.getMinutes ()) {
		alert (messages[6]);
		sms.date.focus ();
		return false;
   }
	if (sms.name != undefined) {
		if (sms.from == undefined && sms.name.value == '') {
			alert (messages[2]);
			sms.name.focus ();
			return false;
		}
		if (sms.name.value != '' && !is_valid_sign (sms.name.value)) {
			alert (messages[5]);
			sms.name.focus ();
			return false;
		}
	}
	if (sms.wappush.value == '' && sms.text.value == '') {
		alert (messages[3]);
		sms.text.focus ();
		return false;
	}
	if (sms.values.value == '') {
		alert (messages[0]);
		sms.values.focus ();
		return false;
	}
	sms.send.value = messages[4];
	sms.send.disabled = true;
	return true;
}

function check_bill (bill) {
	if (bill.name != undefined && bill.client != undefined && bill.phone != undefined) {
		if (bill.name.value == '') {
			alert (messages[0]);
			bill.name.focus ();
			return false;
		}
//		if (bill.phone.value == '') {
//			alert (messages[1]);
//			bill.phone.focus ();
//			return false;
//		}
//		if (!is_valid_phone (bill.phone.value)) {
//			alert (messages[2]);
//			bill.phone.focus ();
//			return false;
//		}
	}
	return true;
}

function is_valid_email (email) {
	var reg = /^[a-zA-Z0-9_.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
	if (!reg.test (email)) {
		return false;
	}
	return true;
}

function is_valid_phone (phone) {
	var reg = /^\+?[0-9]{10,12}$/;
	phone = phone.replace (/[^0-9]/g, '');
	if (!reg.test (phone)) {
		return false;
	}
	return true;
}

function is_valid_sign (sign) {
	var reg_short = /^[0-9]{3,4}$/;
	var reg_num = /^\+?[0-9]{10,12}$/;
	var reg_name = /^[a-z0-9&_.-]{1,11}$/i;
	if (!reg_short.test (sign) && !reg_num.test (sign) && !reg_name.test (sign)) {
		return false;
	}
	return true;
}

function checkBaseLen (numbers_field, count_field) {
	var len = 0;
	var str = numbers_field.value;
	if (numbers_field.value != '') {
		var re = /\n[\s]*/;
		var newArray = str.split (re);
		for (var i = 0; i < newArray.length; i++) {
			if (is_valid_phone (newArray[i])) {
				len++;
			}
		}
	}
	count_field.innerHTML = len;
}

function check_bases (base) {
	if (base.name.value == '') {
		alert (messages[0]);
		base.name.focus ();
		return false;
	}
	if (base.numbers.value == '' && base.csv.value == '') {
		alert (messages[1]);
		base.numbers.focus ();
		return false;
	}
	return true;
}

function check_sign (sign) {
	if (sign.sign.value == '') {
		alert (messages[0]);
		sign.sign.focus ();
		return false;
	}
	if (!is_valid_sign (sign.sign.value)) {
		alert (messages[1]);
		sign.sign.focus ();
		return false;
	}
	return true;
}

function checkLen () {
	var str = document.forms['sendsms'].text.value;
	var len = str.length + document.forms['sendsms'].wappush.value.length;
	var ciryllic = /([^a-z0-9\[\]\{\}\s\'"!#%&*()_+=\/\-,.:;<>?])/i;
	if (ciryllic.test (str)) {
		var maxLen = (document.forms['sendsms'].wappush.value != '') ? 70 : 70;
		var size = (document.forms['sendsms'].wappush.value != '') ? [70, 133, 199, 265, 331, 397, 463, 529, 595, 661] : [70, 133, 199, 265, 331, 397, 463, 529, 595, 661];
	} else {
		var maxLen = (document.forms['sendsms'].wappush.value != '') ? 110 : 160;
		var size = (document.forms['sendsms'].wappush.value != '') ? [110, 232, 354, 476, 598, 720, 842, 964, 1086, 1208] : [160, 305, 457, 609, 761, 913, 1065, 1217, 1369, 1521];
	}

	if (len > maxLen) {
		document.getElementById('last_row').style.display = 'none';
	} else if (len <= maxLen) {
		document.getElementById('last_row').style.display = 'block';
	}
	document.getElementById('countChar').innerHTML = len;
	document.getElementById('countLast').innerHTML = maxLen - len;
	for (var count = 0; count < size.length; count++) {
		if (len <= size[count]) {
			break;
		}
	}
	count++;
	document.getElementById('countSMS').innerHTML = count  + ' ' + strings_[0];
}

function check_route (route) {
   var login_exp = /^[a-z0-9]{1,16}$/i;
	if (route.login.value == '') {
		alert (messages[0]);
		route.login.focus ();
		return false;
	} else if (!login_exp.test (route.login.value)) {
		alert (messages[4]);
		route.login.focus ();
		return false;
	}
	if ($('old') == undefined || $('old').checked == false) {
		if (route.password.value == '') {
			alert (messages[1]);
			route.password.focus ();
			return false;
		}
		if (route.password.value.length < 5) {
			alert (messages[5]);
			route.password.focus ();
			return false;
		}
		if (route.re_password.value == '') {
			alert (messages[2]);
			route.re_password.focus ();
			return false;
		}
		if (route.password.value != route.re_password.value) {
			alert (messages[7]);
			route.re_password.focus ();
			return false;
		}
	}
	if (route.curpassword.value == '') {
		alert (messages[6]);
		route.curpassword.focus ();
		return false;
	}
	var types = get_checked (route, 'type');
	if (!types.length) {
		alert (messages[3]);
		return false;
	}
	return true;
}

function check_credits (credits) {
	return true;
	var maximum;
	if (credits.amount.value == '' || credits.amount.value == '0') {
		alert (messages[2]);
		credits.amount.focus ();
		return false;
	}
	if (credits.amount.value < min) {
		alert (messages[5] + min);
		credits.amount.focus ();
		return false;
	}
	if (credits.amount.value % step) {
		alert (messages[4] + step);
		credits.amount.focus ();
		return false;
	}
	if (credits.payment.value == 'wm') {
		maximum = (max > system) ? system : max;
	} else if (credits.payment.value == 'cc') {
		maximum = (cc > system) ? system : cc;
	} else {
		maximum = system_max;
	}
	if (credits.amount.value > maximum) {
		alert (messages[3] + maximum);
		credits.amount.focus ();
		return false;
	}
	return true;
}

function get_cost (value) {
	for (var i = 0; i < costs.length; i++) {
		if (value >= costs[i][1] && value < costs[i][2]) {
			document.getElementById('cost').innerHTML = costs[i][0];
			return;
		}
	}
	if (value > costs[(costs.length-1)][1]) {
		document.getElementById('cost').innerHTML = costs[(costs.length-1)][0];
	} else {
		document.getElementById('cost').innerHTML = costs[0][0];
	}
}

function get_max (value) {
	if (value == 'wm') {
		document.getElementById('max').innerHTML = (max > system) ? system : max;
	} else if (value == 'cc') {
		document.getElementById('max').innerHTML = (cc > system) ? system : cc;
	} else {
		document.getElementById('max').innerHTML = system_max;
	}
}

function search_smses (start) {
	var doc = document.forms['smses'];
	if (doc.sign.value != '' && !is_valid_sign (doc.sign.value)) {
		alert (messages[0]);
		doc.sign.focus ();
		return false;
	}
	switch (doc.result.value) {
		case 'base':
			doc.action = '/phonebook/add.html';
			doc.submit ();
			break;
		case 'excel':
			doc.action = '/export/excel.html';
			doc.submit ();
			break;
		case 'screen':
			document.getElementById('results').innerHTML = wait_string;
			var query = 'sign=' + doc.sign.value + 
					'&number=' + doc.number.value + 
					'&date_from=' + doc.date_from.value + 
					'&date_to=' + doc.date_to.value + 
					'&date=' + doc.date.value + 
					'&text=' + doc.text.value + 
					'&bases=' + ((document.getElementById('bases') != undefined) ? get_selected (document.getElementById('bases')) : '') + 
					'&start=' + start + 
					'&type=' + doc.type.value + 
					'&status=' + doc.status.value + 
					'&sort_by=' + doc.sort_by.value + 
					'&sort_order=' + doc.sort_order.value;

			new Ajax.Updater ('results', 'sended/show.html', { 
					method: 'post', 
					parameters: query,
					onFailure: report_error 
				}
			);
	}
	return false;
}

function search_bases (start) {
	document.getElementById('results').innerHTML = wait_string;
	var doc = document.forms['bases'];
	var query = 'name=' + doc.name.value + 
			'&number=' + doc.number.value + 
			'&date_from=' + doc.date_from.value + 
			'&date_to=' + doc.date_to.value + 
			'&sort_by=' + doc.sortby.value + 
			'&start=' + start + 
			'&sort_order=' + doc.order.value;

	new Ajax.Updater ('results', 'phonebook/show.html', { 
			method: 'post', 
			parameters: query,
			onFailure: report_error 
		}
	);
	return false;
}

function search_payments (start) {
	document.getElementById('results').innerHTML = wait_string;
	var doc = document.forms['payments'];
	var query = 'status=' + doc.status.value + 
			'&type=' + doc.payment.value + 
			'&currency=' + doc.currency.value + 
			'&start=' + start + 
			'&sort_by=' + doc.sortby.value + 
			'&sort_order=' + doc.order.value;

	new Ajax.Updater ('results', 'payment/show.html', { 
			method: 'post', 
			parameters: query,
			onFailure: report_error 
		}
	);
	return false;
}

function search_sign (start) {
	document.getElementById('results').innerHTML = wait_string;
	var query = 'start=' + start;

	new Ajax.Updater ('results', 'sign/show.html', { 
			method: 'post', 
			parameters: query,
			onFailure: report_error 
		}
	);
	return false;
}

function search_numbers (start) {
	var doc = document.forms['numbers'];
	switch (doc.result.value) {
		case 'base':
			doc.action = '/phonebook/add.html';
			doc.submit ();
			break;
		case 'excel':
			doc.action = '/export/excel.html';
			doc.submit ();
			break;
		case 'screen':
			document.getElementById('results').innerHTML = wait_string;
			var query = 'status=' + doc.status.value + 
				'&bases=' + ((doc.bases != undefined) ? doc.bases.value : '') + 
				'&number=' + ((doc.number != undefined) ? doc.number.value : '') + 
				'&start=' + start + 
				'&sort_by=' + doc.sort_by.value + 
				'&sort_order=' + doc.sort_order.value;

			new Ajax.Updater ('results', '/sended/show/' + sms_id + '.html', { 
					method: 'post', 
					parameters: query,
					onFailure: report_error 
				}
			);
	}
	return false;
}

function get_selected (field) {
	var selected_array = new Array ();
	for (var i = 0; i < field.length; i++) {
		if (field.disabled || field.options[i].selected == true) {
			selected_array[i] = field.options[i].value;
		}
	}
	return (selected_array);
}

function get_checked (form, field_name) {
	var checked_array = new Array ();
	var index = 0;
	for (i = 0; i < form.elements.length; i++) {
		if (form.elements[i].type == "checkbox" && form.elements[i].name.indexOf(field_name) == 0 && form.elements[i].checked == true) {
			checked_array[index] = form.elements[i].value;
			index++;
		}
	}
	return (checked_array);
}

function report_error(request){
	alert('Sorry. There was an error.');
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
		if (undefined != document.getElementById(inputs[i].id + '_hint')) {
			inputs[i].onclick = inputs[i].onfocus = function (id) {
				return function() {
					document.getElementById(id + '_hint').style.display = "inline";
				}
			}(inputs[i].id);
			inputs[i].onblur = function (id) {
				return function() {
					document.getElementById(id + '_hint').style.display = "none";
				}
			}(inputs[i].id);
		}
	}
	var selects = document.getElementsByTagName("select");
	for (var k=0; k<selects.length; k++){
//		for (var key in selects[i]) {
//			alert (key);
//		}
		break;
		if (undefined != document.getElementById(selects[i].id + '_hint')) {
			selects[i].onmouseover = selects[i].onfocus = function (id) {
				return function() {
					document.getElementById(id + '_hint').style.display = "inline";
				}
			}(selects[i].id);
			selects[i].onmouseout = selects[i].onblur = function (id) {
				return function() {
					document.getElementById(id + '_hint').style.display = "none";
				}
			}(selects[i].id);
		}
	}
}
addLoadEvent(prepareInputsForHints);

var answer = new Array ();
function show (answer_id) {
	if (answer[answer_id] == undefined || answer[answer_id] == 'hidden') {
		document.getElementById('answer' + answer_id).style.display = 'block';
		answer[answer_id] = 'visible'

	} else {
		document.getElementById('answer' + answer_id).style.display = 'none';
		answer[answer_id] = 'hidden'
	}
}

function hide_calendars () {
	if (undefined != $('calendar') && $('calendar').style.visibility=='visible') {
		$('calendar').style.visibility='hidden';
	}
	if (undefined != $('calendar1') && $('calendar1').style.visibility=='visible') {
		$('calendar1').style.visibility='hidden';
	}
	if (undefined != $('calendar2') && $('calendar2').style.visibility=='visible') {
		$('calendar2').style.visibility='hidden';
	}
}

function hide_pass (checked) {
	if (checked) {
		$('pass_row').style.display = 'none';
		$('re_pass_row').style.display = 'none';
	} else {
		$('pass_row').style.display = 'block';
		$('re_pass_row').style.display = 'block';
	}
}

var clicks = new Array ();
function no_click (row_id) {
	clicks[row_id] = $('row_' + row_id).onclick;
	$('row_' + row_id).onclick = '';
}
function set_click (row_id) {
	$('row_' + row_id).onclick = clicks[row_id];
}
function check (id) {
	if ($('id_' + id).checked == true) {
		$('id_' + id).checked = false;
	} else {
		$('id_' + id).checked = true;
	}
}

function toggleAll (onoff, field) {
	var form = document.forms['sms'];
	for (i = 0; i < form.elements.length; i++) {
		if (form.elements[i].type == "checkbox" && form.elements[i].name.indexOf(field) >= 0) {
			form.elements[i].checked = onoff;
		}
	}
}

function do_wait (millis) {
	date = new Date ();
	var curDate = null;
	do {
		var curDate = new Date ();
	} while (curDate - date < millis);
} 

function do_payment (button, path) {
	var payment = window.open ('');
	document.forms['credits'].target = payment;
	document.forms['credits'].submit();
	button.disabled = 'true';
	do_wait(3000);
	self.location.href = path + 'payment.html';
}

function split_logos (start) {
        document.getElementById('results').innerHTML = wait_string;
        var doc = document.forms['logos'];
		var query = '&start=' + start;
		new Ajax.Updater ('results', '/logos/show.html', {
			method: 'post',
			parameters: query,
			onFailure: report_error
		}
	);
	return false;
}

var opened = '';
function show_block (block) {
	if ('hidden' == $(block).style.visibility) {
	   if (opened) {
			$(opened).style.display = 'none';
			$(opened).style.visibility = 'hidden';
		}
		$(block).style.display = 'block';
		$(block).style.visibility = 'visible';
		opened = block;
	} else {
		$(block).style.display = 'none';
		$(block).style.visibility = 'hidden';
		opened = '';
	}
}

