﻿/// <reference name="MicrosoftAjax.js"/>

var pageNo = 0;
var pageSize = 20;

var tickets = {
    countries: 0,
    towns: 0,
    comps: 0
};

function moreLessToggle() {
    sh('line2');
    sh('line3');
    sh('line4');
    sh('line5');
}

function sh(e) {
    var el = $get(e);
    if (el) {
        if (Sys.UI.DomElement.containsCssClass(el, 'hidden'))
            Sys.UI.DomElement.removeCssClass(el, 'hidden');
        else
            Sys.UI.DomElement.addCssClass(el, 'hidden');
    }
}

function loadCountries() {
    var x = new DSInfo.Client.Web.Services();
    x.GetAllCountries(language, countriesLoaded, countriesFailed);
    tl = $get('Towns');
    tl.options.length = 0;
    tl.disabled = true;
    pageNo = 0;
}

function countriesLoaded(s) {
    var cl = $get('Countries');
    cl.options.length = 0;
    for (var i = 0; i < s.length; i++) {
        var oOption = document.createElement("OPTION");
        cl.options.add(oOption);
        oOption.innerHTML = s[i].CountryName;
        oOption.value = s[i].CountryId;
    }
}

function countriesFailed(r, a, b, c) {
    alert('Country load failed')
}

function loadTowns(countrysel, townsel) {
    pageNo = 0;
    var cl = $get('Countries');
    if (cl.value.length > 0) {
        var x = new DSInfo.Client.Web.Services();
        x.GetPlaces(cl.value, townsLoaded, townsFailed);
    }
    tl = $get('Towns');
    tl.options.length = 0;
    tl.disabled = true;
    updateComps();
}

function townsLoaded(result, userContext, methodName) {
    //a.a();
    var Towns = result;
    _fillTowns(Towns);
}

function townsFailed(webServiceError, userContext, methodName) {
    $get('Towns').disabled = true;
    alert('Error in connection');
}

function compsFailed(webServiceError, userContext, methodName) {
    $get('comps').innerHTML = "<strong>Error</strong>";
    alert('Error in connection');
}

function _fillTowns(s) {
    tl = $get('Towns');
    tl.options.length = 0;
    if (s.length == 0)
        tl.disabled = true;
    else {
        tl.disabled = false;
        var o = document.createElement("OPTION");
        tl.options.add(o);
        o.innerHTML = '';
        o.value = '';
        for (var i = 0; i < s.length; i++) {
            var oOption = document.createElement("OPTION");
            tl.options.add(oOption);
            oOption.innerHTML = s[i];
            oOption.value = s[i];
        }
    }
}

function updateComps() {
    pageNo = 0;
    updateComps2();
}
function updateComps2()
{
    var x = new DSInfo.Client.Web.Services();
    var cl = $get('Countries');
    var tl = $get('Towns');
    var town = '';
    if (tl.selectedIndex >= 0)
        town = tl.value;
    var cn = $get('compName');
    var sd = '';
    if (typeof (txtStartedTillId) != 'undefined')
        sd = $get(txtStartedTillId).value;
    var photos = $get(cbPhotosId).checked;
    var videos = $get(cbVideosId).checked;
    var style = $get('styleList').value;
    var status = $get('statusList').value;
    var ccountry = $get('CCountries').value;
    x.GetCompetitionList2(cl.value, town, sd, cn.value, language, pageNo, pageSize, photos, videos, style, status, ccountry, compsLoaded, compsFailed, ++tickets.comps);
    $get('comps').innerHTML = 'Loading ...<img src="/Pictures/loading3.gif" />';
}

function StringBuffer() { 
   this.buffer = []; 
} 

StringBuffer.prototype.append = function append(string) { 
   this.buffer[this.buffer.length] = string; 
   return this; 
}; 

StringBuffer.prototype.toString = function toString() { 
   return this.buffer.join(""); 
};


function compsLoaded(r, ticket) {
    if (ticket != tickets.comps)
        return;
	var start1=new Date();
var eventTime = 0;

    var ahrefComp = "<a href='/Competition/";
    var aend = "</a>";
    var clinkpage = linkToPhotos ? "/Photos.aspx'>" : "/EventList.aspx'>";
    var elinkpage = linkToPhotos ? "/Photos.aspx'>" : "/Results.aspx'>";


    var buf = new StringBuffer();

    buf.append('<table><tbody>');
    for (var i = 0, rlen = r.length; i < rlen; i++) {
        var C = r[i];
        var c = r[i].Comp;
        var encodedComp = (c.CodedName.length == 0 ? c.Name : c.CodedName)+"_"+c.ID;
        var cPath = ahrefComp + encodedComp;
	buf.append("<tr valign='top'><td >");
	buf.append("<span class='currentCompName'>");
	buf.append(cPath);
	buf.append(clinkpage);
	buf.append(c.Name);
	buf.append(aend);
	buf.append("</span>");

        if (c.Photo > 0 || c.Video > 0) {
            buf.append("<span style='font-weight:normal;padding-left:10px; line-height:18px; font-size: 90%'>");
            if (c.Photo > 0) {
                buf.append(cPath);
                buf.append("/Photos.aspx'>"); buf.append(PhotoWord);buf.append(" (");buf.append(c.Photo);buf.append(")");
		buf.append(aend);
                if (c.Video > 0)
                    buf.append(" | ");
            }
            if (c.Video > 0) {
                buf.append(cPath);
                buf.append("/Videos.aspx'>"); buf.append(VideoWord); buf.append(" ("); buf.append(c.Video); buf.append(")");
		buf.append(aend);
            }
            buf.append("</span>");
        }
        buf.append("</td>");
        buf.append("<td style='margin-bottom: 0.2em; color:#900'>" + c.Place + "</td>");
        buf.append("<td style='margin-bottom: 0.2em;'>" + c.Date + "</td>");
        
	var starfdfsd = new Date();
        if (!doNotDisplayEvents) {
            buf.append("</tr><tr><td colspan='3' style='padding-bottom: 20px;'>");
            buf.append("<div style='font-size:90%;'>");
            for (var j = 0; j < c.EventDates.length; j++) {
                var eventDate = c.EventDates[j];
                if (c.EventDates.length > 1) {
                    buf.append("<div style='color:#333;float:left;'>");
                    buf.append(eventDate.Dow);
                    buf.append("</div> :");
                }
		buf.append("<div class='compEventsSubtitles' style='margin-left: 10px'>");
                for (var k = 0; k < eventDate.Events.length; k++) {
                    var ev = eventDate.Events[k];
                    if (k > 0)
                        buf.append("&nbsp;<b>&middot;</b>&nbsp;");
                    buf.append(cPath);
        		    buf.append("/");
        		    buf.append(ev.CodedName.length == 0 ? ev.Name : ev.CodedName);
        		    buf.append("_");
        		    buf.append(ev.ID);
		            buf.append(elinkpage);
		            buf.append(ev.Name);
		            buf.append(aend);
                }
                buf.append("</div>");
            }
            buf.append("</td>");
        }
eventTime += (new Date() - starfdfsd);
        buf.append("</tr>");
    }
    buf.append("</tbody></table>");
	var end1 = new Date();
	var startinnerhtml = new Date();
    $get('comps').innerHTML = buf.toString();
/*	$get('footer2').innerHTML=(new Date()-startinnerhtml);
	$get('footer2').innerHTML+=" " + (end1-start1);
	$get('footer2').innerHTML+=" " + eventTime;
*/
}

function nextPage() {
    pageNo++;
    updateComps2();
}

function prevPage() {
    if (pageNo)
        pageNo--;
    updateComps2();
}
        
