
var STUDYLINK = {};

STUDYLINK.getSubject = function(code, label){

    for(i=0;i<subjectAreasList.length;i++){
    
        var subject = subjectAreasList[i];

	if(code!=null){

	    if(subject.code == code){ return subject.label; }
        }else if(label!=null){

            if(subject.label == label){ return subject.code; }
        }else{ return; }
    } 
}

STUDYLINK.deleteCriteria = function(code){

    $("input[name=subject-areas]").each(function(){

        if($(this).val() == code){ 

            $(this).val(""); 
            $("#"+code).remove();
        }
    });
}

STUDYLINK.subjectAlreadyAdded = function(code){

    var alreadyAdded = false;
    $("input[name=subject-areas]").each(function(){
        if( $(this).val() == code ){
	    alreadyAdded = true;
	}
    });
    return alreadyAdded;
}

STUDYLINK.getSubjectAppendHTML = function(code){

    var html = "<span id='" + code + "'>";
    html+= STUDYLINK.getSubject(code, null);
    html+= "<a href='#' onClick='STUDYLINK.deleteCriteria($code$);'><img src='http://media.studylink.com/xl/nwr/home/btn-delete.gif' hspace='5'></a><br/></span>".replace("$code$", '"' + code + '"');
    return html;
}

STUDYLINK.error = function(message){
    $("#message").html(message);
    $("#message").show();
}

/**
 * checks value is not empty, if it is show error message
 * and returns false.
 */
STUDYLINK.isValueNotEmpty = function(elements, messages){

    for(i=0;i<elements.length; i++){
       if(elements[i] == ""){
	    STUDYLINK.error(messages[i]);
	    return false;
	}
    }
    return true;
}


STUDYLINK.submitForm = function(name){
    
    if(name == "step1"){

        if(! ( $("input[name=subject-areas]").length > 0 ) ){
	    STUDYLINK.error("Please choose a subject area.");
	    return;
	
	} else{
            var i = 0;
	    $("input[name=subject-areas]").each(function(){
                if( $(this).val().length > 0 ){ i++; }
	    });

	    if(i<1){ STUDYLINK.error("Please choose a subject area."); return; }
	}

	

/*
	if( $("#subjectSelections").html() == ""){
	    STUDYLINK.error("Please choose a subject area.");
	    return;
	}
*/	
	var checked = 0;
	$("input[name=levels-of-study]").each(function() {
	    if( $(this).attr('checked') ){
                checked++;
	    }
	});

	if( checked < 1 ){
	    STUDYLINK.error("Please chose at least one level of study.");
	    return;
	}

    }else if(name == "step2"){


	if( $("input[name=other-asia]").attr("checked") ){
	    var otherAsia = ["x-a-io", "x-a-my", "x-a-ph", "x-a-ch", "x-a-th", "x-a-cc"];

	    for(i=0; i<otherAsia.length; i++){
	        $("#step2").append('<input type="hidden" name="study-locations" value="' + otherAsia[i] + '" />');
	    }
	}

	var checked = 0;
	$("input[name=study-locations]").each(function() {
	    if( $(this).attr('checked') ){
                checked++;
	    }
	});

	if( $("input[name=other-asia]").attr("checked") ){ checked++; }

	if( checked < 1 ){
	    STUDYLINK.error("Please chose at least one location.");
	    return;
	}
    
    }else if(name == "step3"){
        var month = $("select[name=study-start-preference-month]").val();
	var year = $("select[name=study-start-preference-year]").val();
	var elements = [month, year];
	var messages = ["Please select a start month.", "Please select a start year."];
	
        if(!STUDYLINK.isValueNotEmpty(elements, messages)){ return; }
	
	var checked = 0;
	$("input[name=study-funding]").each(function() {
	    if( $(this).attr('checked') ){
                checked++;
	    }
	});

	if( checked < 1 ){
	    STUDYLINK.error("Please specify how you plan to fund your study. If you are not sure select 'Not sure'");
	    return;
	}

    }else if(name == "step4"){
        var firstname = $("input[name=first-name]").val();
	var lastname = $("input[name=last-name]").val();
	var country = $("select[name=country-of-origin]").val();
	var email = $("input[name=email-address]").val();
	var password = $("#password").val();

        var alreadyRegistered = $("input[name=already-registered]").attr("checked");

        if(alreadyRegistered){
	    password = $("#already-registered-password").val();
	    $("#password").remove();
	    //$("#password").val(password);
	}else{
	    $("#already-registered-password").val(password);
	}

	var elements = [firstname, lastname, country, email, password];
	var messages = ["Please enter your first name.", "Please enter your last name.", "Please select your country of origin.",
		"Please enter your email address.", "Please enter a password."];
  
        if(alreadyRegistered){
	    elements = [$("input[name=username]").val(), elements[4]];
	    messages = ["Please enter your username.", messages[4]];
	}

   	if(!STUDYLINK.isValueNotEmpty(elements, messages)){ return; }

        if(!alreadyRegistered){
	    $("#already-registered-password").val(password);
    	    var passwordC = $("input[name=password-confirmation]").val();

	    if(password != passwordC){
	        STUDYLINK.error("Your passwords do not match.");
	       return;
	    }

	    var emailC = $("input[name=email-address-confirmation]").val();

	    if(email != emailC){
	        STUDYLINK.error("Your email confirmation and email do not match.");
	        return;
	    }
	
	    if(! $("input[name=read-terms-and-conditions]").attr("checked") ){
	        STUDYLINK.error("Please read and accept StudyLink's terms and conditions.");
	        return;
	    }
        }
    }
    
    if(name == "step4"){
   
        $("#signup-box").block({
	    message: $("#loading"),
	    css: { border: "0px", backgroundColor: "#fff", padding: "5px" }
	});


	$("#step4").submit();


    }else{
        $("#"+name).submit();
    }
}

// Read a page's URL params and return them as an associative array.
STUDYLINK.getUrlParams = function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++){
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
