var perExec;

document.write("<script type='text/javascript' src='/scripts/jquery/jquery-1.4.1.js'></script>");
document.write("<script type='text/javascript' src='/scripts/php_value_fetcher.js'></script>");

/*function purchaseSchedule(groupId, planId, datetime, scheduleMsg) {
    //var target = "schedule-link-div";
    //var url = "schedule_logic.php";
    //var pars = {dateTime: escape(datetime), groupID: escape(groupId), planID: escape(planId), scheduleMsg: escape(scheduleMsg)};

    $.ajax({ 
        type: "POST", 
        url: "schedule_logic.php",
        data: {dateTime: escape(datetime), groupID: escape(groupId), planID: escape(planId), scheduleMsg: escape(scheduleMsg)},
        async: false,
        cache: false,
        success: function(transport){
	        var response = transport.responseText || "no response text";
	        $('#schedule-link-div').html(response);
        },
        error: function() { 
        	$('#schedule-link-div').html("Error loading data!"); 
    	}
    });
        
	new Ajax.Request(url, 
    {
        method: 'post', parameters: pars,
        onSuccess: function(transport){
            var response = transport.responseText || "no response text";
            //$('schedule-link-div').innerHTML = response;
            $('#schedule-link-div').html(response);
        },
        onFailure: function() { 
            //$('schedule-link-div').innerHTML = "Error loading data!"; }
        	$('schedule-link-div').html("Error loading data!"); 
    	}
    });
}*/


function releaseTimer() {
	perExec.stop();
}

function confirmBooking(form) {
	if (confirm("You're about to book a lesson, do you want to proceed?")) {
		form.submit();
	} else {
		return;
	}
}
	
function closeScheduler() {
	//$('schedule-link-div').style.display = 'none';
	$('#schedule-link-div').css('display', 'none');
	//$('schedBox').style.display = 'none';
	$('#schedBox').css('display', 'none');
}

function purchaseSchedule(form) {
	form.submit();
}



function showhide(id) {
	if (document.getElementById){
		obj = document.getElementById(id);
		if (obj.style.display == "none"){
			obj.style.display = "";
			} else {
				obj.style.display = "none";
		}
	}
}


function SendToPayPal(form) {
	var item_names = new Array("$10 (50 credits)", "$20 (100 credits)", "$40 (200 credits)");
	var radioValue ;
	
	var radioLength = form.creditoption.length;

	var hasChecked = false;
	for(var i = 0; i < radioLength; i++) {
		if(form.creditoption[i].checked) {
			form.amount.value =  form.creditoption[i].value;
			form.item_name.value = item_names[i];
			hasChecked = true;
			break;
		}
	}
	
	if (!hasChecked){
		alert ("Please select an amount to purchase.");
		return;
	}

	form.submit();

}

function ChangeAmountLabel(value, credits, text) {
	document.getElementById('amountContainer').innerHTML = "";
	document.getElementById('div_cont_credits_label').innerHTML = "";
	document.getElementById('div_cont_small_amount_label').innerHTML = "";
	
	document.getElementById('amountContainer').innerHTML = '<strong>' + value + '</strong>';
	document.getElementById('div_cont_credits_label').innerHTML = text;
	document.getElementById('div_cont_small_amount_label').innerHTML = value ;
}

function ValidateUserProfile(form) {
	var success  = false;
	
	if (isEmpty(form.email)) {
		alert(_eval('lng_pagescripts_enteremail'));
		return;
	} else if (isEmpty(form.password)) {
		alert(_eval('lng_pagescripts_enterpassword'));
		return;
	} else if (isNotEqual(form.password, form.confirmPassword)) {
		alert(_eval("lng_pagescripts_notmatch"));
		return;
	} else if (isEmpty(form.firstname)) {
		alert(_eval('lng_pagescripts_enterfirstname'));
		return;
	} else if (isEmpty(form.lastname)) {
		alert(_eval('lng_pagescripts_enterlastname'));
		return;
	} 
	
	if (!isEMailAddr(form.email)) {
		return;
	}


	form.submit();
	
}

function ValidateUserRegistration(form) {
	
var success  = false;
	
	if (isEmpty(form.email)) {
		alert(_eval("lng_pagescripts_enteremail"));
		return;
	} else if (isEmpty(form.password)) {
		alert(_eval("lng_pagescripts_enterpassword"));
		return;
	} else if (isEmpty(form.confirmPassword)) {
		alert(_eval("lng_pagescripts_confirmpassword"));
		return;
	}else if (isNotEqual(form.password, form.confirmPassword)) {
		alert(_eval("lng_pagescripts_notmatch"));
		return;
	}else if (isEmpty(form.firstname)) {
		alert(_eval("lng_pagescripts_enterfirstname"));
		return;
	} else if (isEmpty(form.lastname)) {
		alert(_eval("lng_pagescripts_enterlastname"));
		return;
	} 
	
	if (!isEMailAddr(form.email)) {
		return;
	}
	

	var email =  form.email.value;
	var password = form.password.value;
	var firstname = form.firstname.value;
	var lastname = form.lastname.value;
	var gender = form.gender.value;
	var age = form.age.value;
	var country = form.country.value;
	var cmd = form.cmd.value;
	
    $.ajax({ 
        type: "POST", 
        url: "/framework/service/controller/registration_control.php",
        data: "cmd="+escape(cmd)+"&email="+escape(email)+"&password="+escape(password)+"&firstname="+escape(firstname)+"&lastname="+escape(lastname)+"&gender="+escape(gender)+"&age="+escape(age)+"&country="+escape(country),
        async: false,
        cache: false,
        success: function(response){
			$('#divtextboard').html(response || "no_response_text");
		},
		error: function() {
			$('#divtextboard').html("Error loading data!");
		}
    });
}

function RecoverPassword(form) {
	if (isEmpty(form.recover_email)) {
		return;
	}
	
	var email = form.recover_email.value;
	//var url = "/framework/service/controller/password_recover_control.php";
	//var pars =  {email: email};

    $.ajax({ 
        type: "POST", 
        url: "/framework/service/controller/password_recover_control.php",
        data: {email: email},
        async: false,
        cache: false, 
        success: function(response){
			$('#div_pass_recover_resp').html(response || "no_response_text");
		},
		error: function() {
			$('#div_pass_recover_resp').html("Error loading data!");
		}
    });
	
/*
var myAjax = new Ajax.Request(url, {method: 'post', parameters: pars,
									onSuccess: function(transport){
										var response = transport.responseText || "no_response_text";
										$('div_pass_recover_resp').innerHTML = response;
									},
									onFailure: function() {
										$('div_pass_recover_resp').innerHTML = "Error loading data!"; }
									});	
*/
}
/**
 * genderic for validation functions from O'Reilly Cookbook
 */

function isEmpty(elem) {
    var str = elem.value;
    if(str == null || str.length == 0) {
        return true;
    } else {
        return false;
    }
}

function isNotEqual(password, confirm) {
    var str = password.value;
    var str1 = confirm.value;
    if(str == str1) {
        return false;
    } else {
        return true;
    }
}

function isEMailAddr(elem) {
    var str = elem.value;
	if(str == null){
		str = elem;	// we assume that the 'elem' parameter is the string itself so it can be reused  
	}	
    str = str.toLowerCase( );
    if (str.indexOf("@") > 1) {
        var addr = str.substring(0, str.indexOf("@"));
        var domain = str.substring(str.indexOf("@") + 1, str.length);
        // at least one top level domain required
        if (domain.indexOf(".") == -1) {
            alert(_eval("lng_pagescripts_verifydomain") + " '" + str + "'.");
            return false;
        }
        // parse address portion first, character by character
        for (var i = 0; i < addr.length; i++) {
            oneChar = addr.charAt(i).charCodeAt(0);
            // dot or hyphen not allowed in first position; dot in last
            if ((i == 0 && (oneChar == 45 || oneChar == 46))  || 
                (i == addr.length - 1 && oneChar == 46)) {
                alert(_eval("lng_pagescripts_verifyusername") + " '" + str + "'.");
                return false;
            }
            // acceptable characters (- . _ 0-9 a-z)
            if (oneChar == 45 || oneChar == 46 || oneChar == 95 || 
                (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123)) {
                continue;
            } else {
                alert(_eval("lng_pagescripts_verifyusername") + " '" + str + "'.");
                return false;
            }
        }
        for (i = 0; i < domain.length; i++) {
            oneChar = domain.charAt(i).charCodeAt(0);
            if ((i == 0 && (oneChar == 45 || oneChar == 46)) || 
                ((i == domain.length - 1  || i == domain.length - 2) && oneChar == 46)) {
                alert(_eval("lng_pagescripts_verifydomain") + " '" + str + "'.");
                return false;
            }
            if (oneChar == 45 || oneChar == 46 || oneChar == 95 || 
                (oneChar > 47 && oneChar < 58) || (oneChar > 96 && oneChar < 123)) {
                continue;
            } else {
                alert(_eval("lng_pagescripts_verifydomain") + " '" + str + "'.");
                return false;
            }
        }
        return true;
    }
    alert(_eval("lng_pagescripts_emailaddformat") + ".\n " + _eval("lng_pagescripts_verify") + " '" + str + "'.");
    return false;
}

// validates that the entry is a positive or negative number
function isNumber(elem) {
    var str = elem.value;
    var oneDecimal = false;
    var oneChar = 0;
    // make sure value hasn't cast to a number data type
    str = str.toString( );
    for (var i = 0; i < str.length; i++) {
        oneChar = str.charAt(i).charCodeAt(0);
        // OK for minus sign as first character
        if (oneChar == 45) {
        		alert("Enter only real numbers for your age.");
            return false;
        
        	/*
            if (i == 0) {
                continue;
            } else {
                alert("Only the first character may be a minus sign.");
                return false;
            }
			*/
        }
        // OK for one decimal point
        if (oneChar == 46) {
            if (!oneDecimal) {
                oneDecimal = true;
                continue;
            } else {
                alert("Only one decimal is allowed in a number.");
                return false;
            }
        }
        // characters outside of 0 through 9 not OK
        if (oneChar < 48 || oneChar > 57) {
            alert("Enter only numbers into the field.");
            return false;
        }
        
    }
    return true;
}
