/**
 * @Author Clarance, Bilal
 * @Date Apr 11, 2011
 * @Time 10:27:36 AM
 */

var baseUrl = "http://zendtest.local";
/**
 * This function converts html entities into usable
 * pop up text for javascript
 *
 * @param  str
 * @return string
 */
function htmlEntityDecode(str) {
    var ta = document.createElement("textarea");
    ta.innerHTML = str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
    return ta.value;
}

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='/country/"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

/**
 * Function that initiates the highschool drop down
 * ajax getting json object
 *
 * @param highschool
 */
function changeHighschool(highschool){
    var url = baseUrl+'/ajax/gethighschools/highschoolid/'+highschool;
    $.getJSON(url, function(data) {
        fillTextFields(data);
    });
}

/**
 * Function that initiates the university drop down
 * ajax getting json object
 *
 * @param highschool
 */
function changeUniversity(university){
    var url = baseUrl+'/ajax/getuniversities/universityid/'+university;
    $.getJSON(url, function(data) {
        fillTextFields(data);
    });
}

/**
 * Function that fills select drop down with
 * json data formatted with key and value pairs
 * keys: Text and Value
 *
 * @param data
 * @param entity
 * @return void
 */
function fillTextFields(data) {
        $.each(data, function(index, textData) {
            $("#"+index).val(textData);
        });
}

/**
 * Function that initiates the club drop down
 * ajax getting json object
 *
 * @param country
 */
function changeCountryGetLeague(country){
    var countryCode = country.val();
    var url = baseUrl+'/ajax/getleagues/countryid/'+countryCode;
    $.getJSON(url, function(data) {
        $("#league").fillSelect(data, "League");
    });
    $("#club").clearSelect();
}

/**
 * Function that initiates the club drop down
 * ajax getting json object
 *
 * @param league
 */
function changeLeagueGetClub(league){
    var leagueId = league.val();
    var url = baseUrl+'/ajax/getclubs/leagueid/'+leagueId;
    $.getJSON(url, function(data) {
        $("#clubs").fillSelect(data, "Club");
    });
}

/**
 * Function that sets text of club text field
 *
 * @param league
 */
function changeClubSetClubTextField(club){
    if(" " == club) {
        $("#club").removeAttr('disabled');
    }
    else {
        $("#club").attr('disabled', 'disabled');
    }

}

/**
 * Function that fills select drop down with
 * json data formatted with key and value pairs
 * keys: Text and Value
 *
 * @param data
 * @param entity
 * @return void
 */
$.fn.fillSelect = function(data, entity) {
    return this.clearSelect().each(function() {
        if (this.tagName == 'SELECT') {
            var dropdownList = this;
            var selectOption = new Option("Select "+entity, " ");
            if ($.browser.msie) {
                dropdownList.add(selectOption);
            }
            else {
                dropdownList.add(selectOption, null);
            }
            $.each(data, function(index, optionData) {
                var option = new Option(optionData.Text, optionData.Value);
                if ($.browser.msie) {
                    dropdownList.add(option);
                }
                else {
                    dropdownList.add(option, null);
                }
            });
        }
    });
}

/**
 * Function that clears all option elements
 * in a select element
 *
 * @param  void
 * @return void
 */
$.fn.clearSelect = function() {
    return this.each(function() {
        if(this.tagName == 'SELECT') {
            this.options.length = 0;
        }
    });
}



