ana = this;
ana.errors = {};
ana.user_name_check_done = false;
ana.domain_name_check_done = false;
ana.user_name_check_target = "check_user_name.php";
ana.cf = "/webfront3";
$(document).ready(function(){
	var d = new Date();
	var minYear= d.getFullYear() -90;
	var maxYear= d.getFullYear() -10;
	if($('#bDate')){
		$('#bDate').datepick({
			dateFormat: 'dd/mm/yy',
			isRTL: false ,
			changeMonth: true,
			changeYear: true,
			hideIfNoPrevNext: true,
			showOptions: {direction: 'left'},
			yearRange :  minYear + ' : ' + maxYear
		});
	}
	
	$('input[type=text]').blur(function(){
		if(!empty_val($(this)))
			eval("validate_"+$(this).attr("id")+"();");
		if(! ana.errors[$(this).attr("id")])
			hideErrorDiv($('#'+$(this).attr("id")));
	});

	$('#user_name').change(function(){
			ana.user_name_check_done = false;
	});
	$('#password1').blur(function(){
			if(!empty_val($('#password1'))){
				validate_password1($('#password1'));
			}
			if(!ana.errors["password1"])
					hideErrorDiv($('#password1'));
	});
	$('#password2').blur(function(){
			validate_password2($('#password2'));
			if(!ana.errors["password2"])
					hideErrorDiv($('#password2'));
	});
	
	$('input').focus(function(){
			$(this).next().removeClass('hide');	
	});
	$('select').focus(function(){
		$(this).next().removeClass('hide');	
	});
	$('select').blur(function(){
		if($(this).parent().hasClass('p-err') && empty_val($(this)))
			return;
		$(this).next().addClass('hide');	
		$(this).parent().removeClass('p-err');	
	});
	// for textarea
	$('#address').focus(function(){
		$('#address').next().removeClass('hide');	
	});
	$('#address').blur(function(){
		if($('#address').val() != ""){
			$('#address').next().removeClass('p-err');	
		}
		$('#address').next().addClass('hide');	
	});
});

function empty_val(element){
	if (jQuery.trim(element.val()).length == 0) 
		return true;
	return false;
}
function hideErrorDiv(element){
		element.parent().removeClass("p-err");
		element.next().removeClass("err");
		element.next().addClass("hide");
		ana.errors[element.attr("id")] = false;	
}
function showErrorDiv(element){
	element.parent().addClass("p-err");
	element.next().addClass("err");
	element.next().removeClass("hide");
	ana.errors[element.attr("id")] = true;	
}
function is_valid_email(email){
	var reemail = new RegExp(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/);
	if(email.match(reemail)) return true;
	return false;
}
function is_number(num){
  	var i;
    for (i = 0; i < num.length; i++)
    { 
		var c = num.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}
function validate_full_name(){
	if(jQuery.trim($('#full_name').val()).indexOf(" ") == "-1"){
		showErrorDiv($('#full_name'));	
		return;
	}
	ana.errors['full_name'] = false;
}
function validate_bDate(){
		if (!isDate($('#bDate').val())){
			showErrorDiv($('#bDate'));	
			return;
		}
	ana.errors['bDate'] = false;
}
function validate_gender(){
	if(!( $('#gender').val() == "m" || $('#gender').val() == "f")){
		showErrorDiv($('#gender'));	
		return;
	}
	ana.errors['gender'] = false;
}
function validate_country(){
	if( $('#country').val().length != 2){
		showErrorDiv($('#country'));	
		return;
	}
	ana.errors['country'] = false;
}
function validate_city(){
	if( $('#city').val() == ""){
                showErrorDiv($('#city'));
                return;
        }

	ana.errors['city'] = false;
}
function validate_address(){
	ana.errors['address'] = false;
}
function validate_postal(){
	if( $('#postal').val() == ""){
//	if( !is_number($('#postal').val())){
		showErrorDiv($('#postal'));
		return;	
	}
	ana.errors['postal'] = false;
}
function validate_phone(){
	if(!is_number($('#phone').val())){
		showErrorDiv($('#phone'));	
		return;
	}
	ana.errors['phone'] = false;
}

// second form

function validate_user_name(){
	if($('#action').val() == "domain"){
		if(! is_valid_email($('#user_name').val())){
			$('#user_name').parent().addClass('p-err');
			$('#user_name').next().removeClass('hide');
			if(global.lang=="en"){
				$('#user_name').next().html('Enter a vaild email address');
			}else{
				$('#user_name').next().html('‫البريد الذى ادخلته غير صحيح');	 // translate this
			}
			ana.errors['user_name'] = true;
			return;
		}
	}
	if(!ana.user_name_check_done){
		var url = ana.user_name_check_target;
		var data = {'user_name' : $('#user_name').val(), 'action': $('#action').val()};
		$.post(url,data, function(response){
				if (response != "available"){
					$('#user_name').parent().addClass('p-err');
					$('#user_name').next().removeClass('hide');
					$('#user_name').next().html(response);
					ana.errors['user_name'] = true;
				}else{
					var img = '<img src="'+ ana.cf + '/site_media/images/common/valid.gif" />';
					$('#user_name').next().html(img);
					$('#user_name').next().removeClass("hide");
					$('#user_name').parent().removeClass("p-err");
					ana.errors['user_name'] = false;
				} 
			});
		ana.user_name_check_done = true;
	}
}
function validate_password1(){
	if( $('#password1').val().length < 6){
		showErrorDiv($('#password1'));	
		return;
	}
	ana.errors['password1'] = false;
}
function validate_password2(){
	if( $('#password2').val() != $('#password1').val()){
		showErrorDiv($('#password2'));	
		return;
	}
	ana.errors['password2'] = false;
}
function validate_rem_question(){
	ana.errors['rem_question'] = false;
}
function validate_rem_answer(){
	ana.errors['rem_answer'] = false;
}
function validate_alt_email(){
	if(! is_valid_email($('#alt_email').val()) || $('#alt_email').val()== $('#user_name').val() + "@gawab.com"){
		showErrorDiv($('#alt_email'));	
		return;
	}	
	hideErrorDiv($('#alt_email')); // exception for optional field
	ana.errors['alt_email'] = false;
}


function validate_personal_form(){
	var form_inputs =["full_name","bDate","gender","country","city","address","postal","phone"];
	for( var i=0; i< form_inputs.length; i++){
		if(!empty_val($('#'+form_inputs[i]))){
			eval("validate_"+form_inputs[i]+"();");
			if(! ana.errors[form_inputs[i]])
				hideErrorDiv($('#'+form_inputs[i]));
		}else{
			showErrorDiv($('#'+form_inputs[i]));	
			ana.errors[form_inputs[i]] = true;	
		}
	}
}
function show_account_form(){
	var form_inputs =["full_name","bDate","gender","country","city","address","postal","phone"];
	validate_personal_form();
	for( elem in form_inputs)
		if( ana.errors[form_inputs[elem]] ) return false;
	self.scrollTo(0, 0);
	$('#first').slideUp("1300",function(){
		$('#second').slideDown("1100");
		});
	
	
//	$('#second').show();	
	
//	$('#first').hide();	
}
function validate_account_form(){
	if( $('#action').val() == "domain" ){
		var form_inputs =["user_name","password1","password2","rem_question","rem_answer", "alt_email"];
	}else{
		var form_inputs =["user_name","password1","password2","rem_question","rem_answer", "alt_email"] ;
	}

	validate_alt_email($('#alt_email'));
	for( var i=0; i< form_inputs.length; i++){
		if(!empty_val($('#'+form_inputs[i]))){
			eval("validate_"+form_inputs[i]+"();");
			if(! ana.errors[form_inputs[i]])
				hideErrorDiv($('#'+form_inputs[i]));
		}else{
			showErrorDiv($('#'+form_inputs[i]));	
			ana.errors[form_inputs[i]] = true;	
		}
	}
}
function validate_submit(){
	validate_personal_form();
	validate_account_form();
	for( elem in ana.errors){
			if( ana.errors[elem] ){
				return false;
		}
	}
	return true;
}
//

function update_billing(){
	var submit = true ;
	var form_inputs =["full_name","country","city","address","postal","phone","alt_email"];
	for( var i=0; i< form_inputs.length; i++){
		if(!empty_val($('#'+form_inputs[i]))){
			eval("validate_"+form_inputs[i]+"();");
			if(! ana.errors[form_inputs[i]]) {
				hideErrorDiv($('#'+form_inputs[i]));
			} else submit = false;
		}else{
			showErrorDiv($('#'+form_inputs[i]));	
			ana.errors[form_inputs[i]] = true;	
			submit = false;
		}
	}
	if( submit ){
		$('#complete_reg').submit();	
	}
	
}

function register_to_billing(){
	var submit = true ;
	var form_inputs =["full_name","country","city","address","postal","phone","password1","password2","user_name"];
	for( var i=0; i< form_inputs.length; i++){
		if(!empty_val($('#'+form_inputs[i]))){
			eval("validate_"+form_inputs[i]+"();");
			if(! ana.errors[form_inputs[i]])
				hideErrorDiv($('#'+form_inputs[i]));
		}else{
			showErrorDiv($('#'+form_inputs[i]));	
			ana.errors[form_inputs[i]] = true;	
			submit = false;
		}
	}
	if( submit ){
		$('#complete_reg').submit();	
	}
	
}
// validate domain

function reset_domain_err(){
	ana.domain_name_check_done = false;	
}

function go_back(){
	self.scrollTo(0, 0);
	$('#second').slideUp("1300",function(){
		$('#first').slideDown("1100");
		});
}


//date validation
var dtCh= "/";
var d = new Date();
var minYear= d.getFullYear() -90;
var maxYear= d.getFullYear() -10;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay =dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false
	}
	return true
}


function updateStates(country,citycode,cities) {

        var statesel = document.getElementById("city");
        var myLength = statesel.options.length-1;
	var cityname = document.getElementById("cityname");

	for(var i=0; i<myLength ;i++){
                statesel.options[1]=null;
        }
	j=1;
	sindex=0;
        for(i=0; i<(cities.length -1); i++) {
                if (country == cities[i][1] && cities[i][2].length > 2) {
                        opt = statesel.options[statesel.length]=new Option(cities[i][2],cities[i][0]);
                        if (parseInt(citycode) == parseInt(cities[i][0])) {
				opt.selected = true;
				cityname.value = cities[i][2];
				sindex = j;
			}
		j++;
             }
        }
        other = statesel.options[statesel.length]=new Option("Other",-1);
	if (parseInt(citycode) == -1) {
		other.selected = true;
		statesel.options.selectedIndex = statesel.length -1;
	} else statesel.options.selectedIndex = sindex;

}

function updateCityName(cid) {
	var cityname = document.getElementById("cityname");
	for(i=0; i<(cities.length -1); i++) {
		if (parseInt(cid) == parseInt(cities[i][0])) {
			cityname.value = cities[i][2];
			break;
		}
	}
}
