// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function isIE(){
    return (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
}

function getBackgroundColor(div_id){
    if (isIE()) {
        return document.getElementById(div_id).currentStyle['backgroundColor'];
    }
    else {
        return getStyle(div_id, 'background-color');
    }
}

function getStyle(el, styleProp){
    var x = document.getElementById(el);
    if (x.currentStyle) 
        var y = x.currentStyle[styleProp];
    else 
        if (window.getComputedStyle) 
            var y = document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp);
    
    return y;
}

function keyPressed(e, keyCode){ // use 13 for enter
    var keynum;
    var keychar;
    var numcheck;
    
    if (window.event) // IE
    {
        return (e.keyCode == keyCode);
    }
    else 
        if (e.which) // Netscape/Firefox/Opera
        {
            return (e.which == keyCode);
        }
    return false;
}

function emailValid(email){
    return (email.indexOf(".") > 2) && (email.indexOf("@") > 0);
}

function addLoadEvent(func){
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function(){
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}

function select_leaderboard_tab(size, elementName, tabName){
    var z = 0;
    for (z = 0; z < size; z++) {
        document.getElementById('round_' + z).style.display = 'none';
        document.getElementById('tab_' + z).className = 'tabbed_menu_none_selected';
    }
	if (document.getElementById('total_result') && document.getElementById('tab_total')) {
		document.getElementById('total_result').style.display = 'none';
		document.getElementById('tab_total').className = 'tabbed_menu_none_selected';
	}
    
    document.getElementById(elementName).style.display = 'block';
    document.getElementById(tabName).className = 'tabbed_menu_selected';
}

function select_tee_tab(size, elementName, tabName){
    var z = 0;
    for (z = 0; z < size; z++) {
        document.getElementById('tee_' + z).style.display = 'none';
        document.getElementById('tab_' + z).className = 'tabbed_menu_none_selected';
    }
    
    document.getElementById(elementName).style.display = 'block';
    document.getElementById(tabName).className = 'tabbed_menu_selected';
}


function select_scorecard_tab(elementName, tabName){
    document.getElementById('scorecard_frame').style.display = 'none';
    document.getElementById('tab_scorecard').className = 'tabbed_menu_none_selected';
    document.getElementById('report_frame').style.display = 'none';
    document.getElementById('tab_report').className = 'tabbed_menu_none_selected';
    document.getElementById('graphs_frame').style.display = 'none';
    document.getElementById('tab_graphs').className = 'tabbed_menu_none_selected';
    
    
    document.getElementById(elementName).style.display = 'block';
    document.getElementById(tabName).className = 'tabbed_menu_selected';
}

function setEmails(srcForm, targetField){
    var theForm = document.getElementById(srcForm);
    var targetEl = document.getElementById(targetField);
    var z = 0;
    for (z = 0; z < theForm.elements.length; z++) {
        if (theForm.elements[z].type == 'checkbox' && theForm.elements[z].checked == true && theForm[z].name != 'check_all') {
            if (targetEl.value != "") 
                targetEl.value += ", ";
            targetEl.value += theForm[z].name;
        }
    }
}

function checkUncheckAll(srcForm, srcBox){
    var theForm = document.getElementById(srcForm);
    var z = 0;
    for (z = 0; z < theForm.elements.length; z++) {
        if (theForm.elements[z].type == 'checkbox' && theForm.elements[z].name == srcBox) {
            if (theForm.elements[z].checked == false) {
                uncheckAll(srcForm)
            }
            else {
                checkAll(srcForm)
            }
        }
    }
}

function checkAll(srcForm){
    var theForm = document.getElementById(srcForm);
    var z = 0;
    for (z = 0; z < theForm.elements.length; z++) {
        if (theForm.elements[z].type == 'checkbox') {
            theForm.elements[z].checked = true
        }
    }
}

function uncheckAll(srcForm){
    var theForm = document.getElementById(srcForm);
    var z = 0;
    for (z = 0; z < theForm.elements.length; z++) {
        if (theForm.elements[z].type == 'checkbox') {
            theForm.elements[z].checked = false
        }
    }
}

function set_dropdown_menu(dropdown_menu){
    if (document.getElementById(dropdown_menu).style.display != 'block') {
        document.getElementById('you_dropdown_menu').style.display = 'none';
        document.getElementById('contacts_dropdown_menu').style.display = 'none';
        document.getElementById('competitions_dropdown_menu').style.display = 'none';
        document.getElementById('courses_dropdown_menu').style.display = 'none';
        document.getElementById('forums_dropdown_menu').style.display = 'none';
        document.getElementById('groups_dropdown_menu').style.display = 'none';
        
        document.getElementById(dropdown_menu).style.display = 'block';
    }
    else {
        document.getElementById(dropdown_menu).style.display = 'none';
    }
};

function set_small_dropdown_menu(dropdown_menu){
    if (document.getElementById(dropdown_menu).style.display != 'block') {
        document.getElementById(dropdown_menu).style.display = 'block';
    }
    else {
        document.getElementById(dropdown_menu).style.display = 'none';
    }
};

function remove_main_menu_drop_down(e){
    var target = (e && e.target) || (event && event.srcElement);
    if (checkParent(target, 'main_menu')) {
        document.getElementById('you_dropdown_menu').style.display = 'none';
        document.getElementById('contacts_dropdown_menu').style.display = 'none';
        document.getElementById('competitions_dropdown_menu').style.display = 'none';
        document.getElementById('courses_dropdown_menu').style.display = 'none';
        document.getElementById('groups_dropdown_menu').style.display = 'none';
    }
}

function remove_drop_downs(e){
    var target = (e && e.target) || (event && event.srcElement);
    if (document.getElementById('dropdown_1') != null && checkParent(target, 'dropdown_container')) {
        document.getElementById('dropdown_1').style.display = 'none';
    }
    if (document.getElementById('dropdown_2') != null && checkParent(target, 'dropdown_container')) {
        document.getElementById('dropdown_2').style.display = 'none';
    }
}

function checkParent(t, node_name){
    while (t.parentNode) {
        if (t == document.getElementById(node_name)) {
            return false
        }
        t = t.parentNode
    }
    return true
}

function show_content_tab(element_id, tab_element_id){
    if (document.getElementById(element_id).style.display != 'block') {
        document.getElementById('element_1').style.display = 'none';
        document.getElementById('element_2').style.display = 'none';
        document.getElementById('element_3').style.display = 'none';
        document.getElementById('element_4').style.display = 'none';
        document.getElementById('element_5').style.display = 'none';
        
        document.getElementById('element_1_tab').className = 'tab_not_selected';
        document.getElementById('element_2_tab').className = 'tab_not_selected';
        document.getElementById('element_3_tab').className = 'tab_not_selected';
        document.getElementById('element_4_tab').className = 'tab_not_selected';
        document.getElementById('element_5_tab').className = 'tab_not_selected';
        
        document.getElementById(element_id).style.display = 'block';
        document.getElementById(tab_element_id).className = 'tab_selected';
    }
};

function show_content_area(element_id, tab_element_id){
    if (element_id == '-1' || tab_element_id == '-1') {
    	if (document.getElementById('element_2').style.display == 'block'){
        	document.getElementById('element_2').style.display = 'none';
        	document.getElementById('icon_2').className = 'rounded-decorator shadowed-decorator';
			document.getElementById('element_5').style.display = 'block';
        	document.getElementById('icon_5').className = 'rounded-decorator icon_selected';
		} else if (document.getElementById('element_5').style.display == 'block'){
        	document.getElementById('element_5').style.display = 'none';
        	document.getElementById('icon_5').className = 'rounded-decorator shadowed-decorator';
			document.getElementById('element_3').style.display = 'block';
        	document.getElementById('icon_3').className = 'rounded-decorator icon_selected';
		} else if (document.getElementById('element_3').style.display == 'block'){
        	document.getElementById('element_3').style.display = 'none';
        	document.getElementById('icon_3').className = 'rounded-decorator shadowed-decorator';
			document.getElementById('element_2').style.display = 'block';
        	document.getElementById('icon_2').className = 'rounded-decorator icon_selected';
		}
    }
    else if (document.getElementById(element_id).style.display != 'block') {
        document.getElementById('element_2').style.display = 'none';
        document.getElementById('element_3').style.display = 'none';
        document.getElementById('element_5').style.display = 'none';
        
        document.getElementById('icon_2').className = 'rounded-decorator shadowed-decorator';
        document.getElementById('icon_3').className = 'rounded-decorator shadowed-decorator';
        document.getElementById('icon_5').className = 'rounded-decorator shadowed-decorator';
        
        
        document.getElementById(element_id).style.display = 'block';
        document.getElementById(tab_element_id).className = 'rounded-decorator icon_selected';
    }
};

function addMarker(point){
    //var bounds = new GLatLngBounds();
    //bounds.extend(point);
    var marker = new GMarker(point);
    map.addOverlay(marker);
};

function mapOnClick(overlay, point){
    map.clearOverlays();
    addMarker(point);
    map.setCenter(point);
    map.setZoom(map.getZoom() + 1);
    document.getElementById('club_longitude').value = point.x;
    document.getElementById('club_latitude').value = point.y;
};

function wait_dialog(data, div_id){
    Dialog.info(data, {
        width: 300,
        height: 200,
        showProgress: t,
        className: 'alphacube',
        id: div_id
    });
}


function info_dialog(data, div_id){
    Dialog.info(data, {
        width: 600,
        height: 500,
        zIndex: 100,
        showProgress: false,
        className: 'alphacube',
        id: div_id
    });
};

function info_dialog_small(data, div_id){
    Dialog.info(data, {
        width: 350,
        height: 400,
        zIndex: 100,
        showProgress: false,
        className: 'alphacube',
        id: div_id
    });
};

function confirm_dialog(data, link, ok, cancel){
    Dialog.confirm(data, {
        width: 400,
        zIndex: 100,
        okLabel: ok,
        cancelLabel: cancel,
        buttonClass: "myButtonClass",
        className: 'alphacube',
        id: "myDialogId",
        cancel: function(win){
            return false;
        },
        ok: function(win){
            new Ajax.Updater('content', link, {
                asynchronous: true,
                evalScripts: true
            });
            return true;
        }
    });
};

function confirm_dialog_new_window(data, link, ok, cancel){
    Dialog.confirm(data, {
        width: 400,
        zIndex: 100,
        okLabel: ok,
        cancelLabel: cancel,
        buttonClass: "myButtonClass",
        className: 'alphacube',
        id: "myDialogId",
        cancel: function(win){
            return false;
        },
        ok: function(win){
            self.location = link;
            return true;
        }
    });
};

function alert_info_dialog(content, width, height, ok){
    var win = new Window({
        className: "alphacube",
        width: width,
        height: height,
        zIndex: 100,
        resizable: false,
        title: "",
        showEffect: Effect.BlindDown,
        hideEffect: Effect.SwitchOff,
        draggable: true,
        wiredDrag: true
    })
    win.getContent().innerHTML = content;
    win.showCenter();
    
    /*Dialog.alert(content, {
     buttonClass: "myButtonClass",
     className: 'alphacube',
     width: width,
     height: height,
     zIndex: 100,
     okLabel: ok
     });*/
};

function alert_dialog(link, width, height, ok){
    var win = new Window({
        className: "alphacube",
        width: width,
        height: height,
        zIndex: 100,
        resizable: false,
        title: "",
        showEffect: Effect.BlindDown,
        hideEffect: Effect.SwitchOff,
        draggable: true,
        wiredDrag: true,
        url: link
    })
    win.show();
};

function upload_file_submit(){
    // Lets bind the form for submission
    dojo.io.bind({
        url: "/users/update",
        load: function(type, evaldObj){ /* do something */
        },
        formNode: document.getElementById("upload_file")
    });
    
    // Do an update of the content field using ajax
    new Ajax.Updater('content', '/users/profile', {});
};


// Simple functions used to set calendar
function set_start_date(){
    var start_date_field = document.getElementById('start_date');
    start_date_field.value = startDateCalendar.getValue();
};

// Simple functions used to set calendar
function set_registration_date(){
    var registration_date_field = document.getElementById('registration_date');
    registration_date_field.value = registrationDateCalendar.getValue();
};

function facebook_login(){
    FB.ensureInit(function(){
        FB.Connect.requireSession()
    });
};

