function mailchk(value, lite)
{
    if(arguments[2] === undefined){
        ord=0;
    }
    else{
        ord=arguments[2];
    }
    if(arguments[3] === undefined){
        fld=0;
    }
    else{
        fld=arguments[3];
    }
    var req=new JsHttpRequest();
    req.open(null,"/mailchk.php",true);
    req.send({mail:value, order:ord, lite_val:lite, field:fld});
    req.onreadystatechange=function(){
        repl_dest=(fld==0)?'email_span':fld+'_span';
        if(req.readyState==4){
            document.getElementById(repl_dest).innerHTML=req.responseText;
        }
    }
}

function counter(field,max)
{
	var obj=document.getElementById(field);
	var c_s=document.getElementById(field+'_counter');
	if (obj.value.length > max)
	{
		obj.value=obj.value.slice(0,max);
	}
	c_s.innerHTML=max-obj.value.length;
}


function getOffsetTop(element) {
    var offset = 0;
    do {
        offset += element.offsetTop;
    } while (element = element.offsetParent);
    return offset;
}

function show_hint(key,wid)
{
		ik=doc.getElementById(key+'_info');
		if (ik){
			ik.style.width=wid+'px';
			par=doc.getElementById(key);
			ik.style.display='block';
			ik.style.top=getOffsetTop(par)-ik.offsetHeight+7+'px';
			var dop=par.offsetWidth-7;
			if (ie==1) ik.style.marginLeft='-25px';
			else ik.style.left=par.offsetLeft+dop+'px';
		}
}

function show_hide_hint(key,num)
{
	elem=doc.getElementById(key+'_info').style.display;
	if (elem=='block')hide_hint(key+'_info');
	else show_hint(key,num);
}

function hide_hint(key)
{
	doc.getElementById(key).style.display='none';
}

function get_icon(field_id, check_result)
{
    var new_a = document.createElement("a");
    new_a.href="javascript: void(0);";
    if(!check_result){
        new_a.onclick = function(){
            show_hide_hint(field_id,250);
            return false;
        }
        new_a.innerHTML = '<span><img onload="show_hint(\''+field_id+'\',250);" src="/img/0.gif"></span>';
        document.getElementById(field_id+"_span").style.background='url(/img/inp_r.gif) 0 0 no-repeat';
    }
    else{
        new_a.innerHTML = '<span class="ok"></span>';
        document.getElementById(field_id+"_span").style.background='url(/img/inp_w.gif) 0 0 no-repeat';
    }
    document.getElementById(field_id+"_span").appendChild(new_a);
    document.getElementById(field_id+"_span").style.display = "block";
}

function get_help(field_id)
{
    var new_a = document.createElement("a");
    new_a.href="javascript: void(0);";
    new_a.innerHTML = '<span class="q"><img onload="show_hint(\''+field_id+'\',250);" src="/img/0.gif"></span>';
    document.getElementById(field_id+"_span").appendChild(new_a);
    document.getElementById(field_id+"_span").style.display = "block";
}

function check_field(key, num)
{
    var field_val = document.getElementById(key).value;
    var field_id = key;
    document.getElementById(field_id+"_span").innerHTML = "";
    if(field_val.length < num){
        if(window.error_codes && error_codes[field_id]){
            get_icon(field_id, false);
            document.getElementById(field_id+"_info_s").innerHTML = error_codes[field_id];
        }
    }
    else{
        get_icon(field_id, true);
        hide_hint(key+'_info');
    }
}
$(function(){
    $("#telcode, #tel").bind("keydown", function(event){
        var ctl_codes = new Array(9, 20, 17, 18, 91, 93, 13, 27, 144, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105);
        var ctl_symb = false;
        for(var j in ctl_codes){
            if(ctl_codes[j] == event.keyCode){
                ctl_symb = true;
                break;
            }
        }
        if((event.keyCode >= 44 && event.keyCode <= 57) || event.keyCode == 8 || (event.keyCode >= 112 && event.keyCode <= 123) || ctl_symb){
            return true;
        }
        else{
            return false;
        }
    });
});

function check_phone_symbol(ob)
{
    alert(ob.value);
    if(ob.value != 1){
        return false;
    }
}
var is_blur_code = false;
var is_blur_tel = false;

var last_focus = "";
var last_blur = "";

var was_error = false;

function check_phone_code(key1, key2, max_length, type, ob)
{
    if(type == "blur"){
        last_blur = ob.id;
    }
    var val1 = document.getElementById(key1).value;
    var val2 = document.getElementById(key2).value;
    if((val1.length + val2.length) == max_length && val1.length <= 5){
        document.getElementById(key2+"_span").innerHTML = "";
        get_icon(key2, true);
        hide_hint(key2+'_info');
        return;
    }
    if(type != "blur" && type != "keyup" && !was_error){
        document.getElementById(key2+"_span").innerHTML = "";
        get_help(key2);
        document.getElementById(key2+"_info_s").innerHTML = error_codes[key2+"_help"];
        return;
    }
    if(type == "blur" && val1.length + val2.length != max_length){
        was_error = true;
        document.getElementById(key2+"_span").innerHTML = "";
        document.getElementById(key2+"_info_s").innerHTML = error_codes[key2];
        get_icon(key2, false);
    }
    else if((val1.length + val2.length) > max_length){
        was_error = true;
        document.getElementById(key2+"_span").innerHTML = "";
        document.getElementById(key2+"_info_s").innerHTML = error_codes[key2];
        get_icon(key2, false);
    }
    else{
        if(((val1.length + val2.length) < max_length || val1.length <= 5) && was_error){
            was_error = true;
            document.getElementById(key2+"_span").innerHTML = "";
            document.getElementById(key2+"_info_s").innerHTML = error_codes[key2];
            get_icon(key2, false);
        }
    }
}

function precheck_pwd(key,key2,num)
{
	var val= doc.getElementById(key);
	if (val.value.length>0)check_pwd(key,key2,num);
}

function check_pwd(key,key2,num)
{
	var val= doc.getElementById(key);
	var val2= doc.getElementById(key2);
//	var in_div= doc.getElementById(key+'_in');
	var spn= doc.getElementById(key+'_span');
	var spn2= doc.getElementById(key2+'_span');
		if (val.value != val2.value || val2.value.length < num)
		{
			new_html='<a href="javascript: void(0);">!<span></span></a>';
		//	in_div.style.background='url(/img/inp_r.gif)';
			document.getElementById(key+'_info_s').innerHTML='Введенные пароли не совпадают или слишком короткие!';
			show_hint(key,230);
		}else{
			new_html='<a href="javascript: void(0);"><span class="ok"></span></a>';
		//	in_div.style.background='url(/img/inp_w.gif)';
			hide_hint(key+'_info');
			hide_hint(key2+'_info');
			spn2.innerHTML='<a href="javascript: void(0);"><span class="ok"></span></a>';

		}
	spn.innerHTML=new_html;
}

function check_url(key)
{
    document.getElementById(key+"_span").innerHTML = "";
    var val = document.getElementById(key).value;
    if(isValidURL(val)){
        get_icon(key, true);
        hide_hint(key+'_info');
    }
    else{
        get_icon(key, false);
        if(error_codes[key]){
            document.getElementById(key+"_info_s").innerHTML = error_codes[key];
        }
    }
}

function isValidURL(url)
{
    //if(url == "" || url==" ") return true;
    if(trim(url) == "") return true;
    //else if( url.indexOf ( "http://" , 0) == -1 ) return false;
    //return /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&amp;?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/.test(url);
    return (/^http(s)?:\/\/?([a-z0-9а-яё][-_a-z0-9а-яё]*[a-z0-9а-яё]\.)+[a-zа-яё]{2,}(\/[-_,\.0-9a-zа-яё]+)*\/?$/i).test(url);
}

function trim(str)
{
	var str = str.replace(/^\s+/, '');
	for (var i = str.length - 1; i >= 0; i--) {
		if (/\S/.test(str.charAt(i))) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return str;
}


