Mackolik = Mackolik || {};

Mackolik.LiveScore.MatchSelection = {
    odds : [],
    iddaaMatches : [],
    closeDiv : function () {
        document.getElementById("dvSelection").style.display = "none";
        document.getElementById("dvOpenSelection").style.display = "";
        Mackolik.LiveScore.copyBanner();
        Mackolik.LiveScore.writeBanner();
    },
    openDiv : function () {
        document.getElementById("dvOpenSelection").style.display = "none";
        document.getElementById("dvSelection").style.display = "";
        Mackolik.LiveScore.copyBanner();
        Mackolik.LiveScore.writeBanner();
    },
    initVariables : function(){
        function getElementsById(tagName,whichId){
            var objs = document.getElementsByTagName(tagName);
            var returnArray = [];
            for(var i=0, n = objs.length; i < n; i++){
                if(objs[i].id == whichId){
                    returnArray[returnArray.length] = objs[i];
                } 
            }
            return returnArray;
        }
	    this.chkboxes0 = getElementsById("input","chkboxes0");
	    this.chkboxes1 = getElementsById("input","chkboxes1");
	    this.chkboxes2 = getElementsById("input","chkboxes2");
	    this.chkboxesU = getElementsById("input","chkboxesU");
	    this.chkboxesO = getElementsById("input","chkboxesO");
	    this.matchCount = this.chkboxes0.length;
    },
    sendCoupon : function (couponNo) {
        var liveCoupons = getCookie("LIVE_COUPON");
        var coupons = liveCoupons.split("&");
        if (couponNo > coupons.length) {
            alert("Hata oluştu");
            return false;
        }
        var coupon = coupons[couponNo];
        var sbCoupon = new StringBuilder();
        var oyun, tahmin;
        var matches = coupon.split("|");
        for (var j=0; j< matches.length; j++) {
            var matchData = matches[j].split("_");
            if (matchData[2] != 0) {
                for (var k=0; k < this.iddaaMatches.length; k++) {
                    if (this.iddaaMatches[k][0] == parseInt(matchData[0])) {
                        var couponMatch = this.iddaaMatches[k];
                        if (matchData[1] == "1" || matchData[1] == "0" || matchData[1] == "2") {
                            tahmin = matchData[1];
                            if (matchData[1] == "0") {
                                tahmin = "X";
                            }
                            oyun = "MS";
                        } else if (matchData[1] == "01" || matchData[1] == "02" || matchData[1] == "12") {
                            if (matchData[1] == "01") {
                                tahmin = "1-X";
                            }
                            if (matchData[1] == "02") {
                                tahmin = "X-2";
                            }
                            if (matchData[1] == "12") {
                                tahmin = "1-2";
                            }
                            oyun = "CS";
                        } else if (matchData[1] == "U" || matchData[1] == "O") {
                            if (matchData[1] == "U") {
                                tahmin = "1";
                            } else {
                                tahmin = "2"
                            }
                            oyun = "UO";
                        }
                        sbCoupon.appendFormat("{0}*0*{1}*{2}*{3}*{4}*{5}*{6}~", couponMatch[1], matchData[2], oyun, tahmin, couponMatch[2], couponMatch[3], couponMatch[4]==0?4:couponMatch[4]);
                        
                        break;
                    }
                }
            }
        }
        window.open(USR_APP_ROOT + "/Bilyoner/CreateCoupons/Coupon.aspx?si=0&ks=" + sbCoupon);
    },
    createCoupon : function () {
        var s = "";
        for (var i=0; i<this.matchCount; i++) {
            var odd = 0;
            if( this.chkboxesU[i].checked ) {
                if(s != "") {
				    s += "|";
                }
                if (this.odds[i][6]) {
				    odd = this.odds[i][6];
                }				    
				s += this.chkboxesU[i].value + "_" + odd;
				this.chkboxesU[i].checked = false;
				continue;
            }
            if( this.chkboxesO[i].checked ) {
                if(s != "") {
				    s += "|";
                }					    
                if (this.odds[i][7]) {
				    odd = this.odds[i][7];
				}
				s += this.chkboxesO[i].value + "_" + odd;
				this.chkboxesO[i].checked = false;
				continue;
            }
            
            if (this.chkboxes0[i].checked || this.chkboxes1[i].checked || this.chkboxes2[i].checked ) 
            {
                if(s != "") {
			        s += "|";
                }					    
                var macId = this.chkboxes0[i].value.substr(0, this.chkboxes0[i].value.length-2);
                if( this.chkboxes0[i].checked && this.chkboxes1[i].checked ) {
                    if (this.odds[i][3]) {
                        odd = this.odds[i][3];
                    }
                    s2 = macId + "_01_" + odd;
                    this.chkboxes0[i].checked = false;
                    this.chkboxes1[i].checked = false;
                }
                else if( this.chkboxes0[i].checked && this.chkboxes2[i].checked ) {
                    if (this.odds[i][5]) {
                        odd = this.odds[i][5];
                    }
                    s2 = macId + "_02_" + odd;
                    this.chkboxes0[i].checked = false;
                    this.chkboxes2[i].checked = false;
                }
                else if( this.chkboxes1[i].checked && this.chkboxes2[i].checked ) {
                    if (this.odds[i][4]) {
                        odd = this.odds[i][4];
                    }
                    s2 = macId + "_12_" + odd;
                    this.chkboxes1[i].checked = false;
                    this.chkboxes2[i].checked = false;
                }
                else if ( this.chkboxes0[i].checked ) {
                    if (this.odds[i][1]) {
                        odd = this.odds[i][1];
                    }
                    s2 = macId + "_0_" + odd;
                    this.chkboxes0[i].checked = false;
                }
                else if ( this.chkboxes1[i].checked ) {
                    if (this.odds[i][0]) {
                        odd = this.odds[i][0];
                    }
                    s2 = macId + "_1_" + odd;
                    this.chkboxes1[i].checked = false;
                }
                else if ( this.chkboxes2[i].checked ) {
                    if (this.odds[i][2]) {
                        odd = this.odds[i][2];
                    }
                    s2 = macId + "_2_" + odd;
                    this.chkboxes2[i].checked = false;
                }
                s += s2;
            } 
        }
        if (!s) {
            alert("Kupon oluşturmak için maç seçmelisiniz");
            return;
        }
        var liveCoupon = getCookie("LIVE_COUPON");
        
        if (s) {
            if (liveCoupon) {
                liveCoupon = liveCoupon + "&" + s;
            } else {
                liveCoupon = s;
            }
        }            

        var expiration = new Date();
	    expiration.setTime(expiration.getTime() + (24 * 60 * 60 * 1000)); //1 gün
	    setCookie("LIVE_COUPON", liveCoupon, expiration);
	    Mackolik.LiveScore.getLiveScores(3);
	    this.closeDiv();
    },
    deleteCoupon : function (no) {
        var liveCoupon = getCookie("LIVE_COUPON");
        
        var couponArray = liveCoupon.split("&");
        couponArray.remove(no);
        liveCoupon = couponArray.join("&");
        var expiration = new Date();
	    expiration.setTime(expiration.getTime() + (24 * 60 * 60 * 1000)); //1 gün
	    setCookie("LIVE_COUPON", liveCoupon, expiration);
	    
	    Mackolik.LiveScore.getLiveScores(3);

    },
    MMCheckBox : function (obj, idx){
    	var s = "";
	    var macID = obj.value.substr(0, obj.value.length-2);
        var sUnderCheck = 'chkboxesU';
        var sOverCheck = 'chkboxesO';
        var sHomeCheck = 'chkboxes1';
        var sAwayCheck = 'chkboxes2';
        var sDrawCheck = 'chkboxes0';

	    if (obj.checked) {
	        if ( obj.name == sUnderCheck || obj.name == sOverCheck ) {
		        if(obj.name == sUnderCheck) {
			        if(this.chkboxesO[idx].checked){
				        obj.checked = false;
				        return;
			        }
		        } else if(obj.name == sOverCheck) {
			        if(this.chkboxesU[idx].checked){
				        obj.checked = false;
				        return;
			        }
		        }
		        this.chkboxes1[idx].checked = false;
		        this.chkboxes0[idx].checked = false;
		        this.chkboxes2[idx].checked = false;
		    } else if( obj.name == sHomeCheck || obj.name == sDrawCheck || obj.name == sAwayCheck) {
			    if(obj.name == sHomeCheck) {
			        if(this.chkboxes0[idx].checked && this.chkboxes2[idx].checked){
				        obj.checked = false;
				        return;
			        }
		        } else if(obj.name == sAwayCheck) {
			        if(this.chkboxes0[idx].checked && this.chkboxes1[idx].checked){
				        obj.checked = false;
				        return;
			        }
		        } else if(obj.name == sDrawCheck) {
			        if(this.chkboxes1[idx].checked && this.chkboxes2[idx].checked){
				        obj.checked = false;
				        return;
			        }
		        }
		        this.chkboxesU[idx].checked = false;
		        this.chkboxesO[idx].checked = false;
	        }
	    } 	    
    },
    getSelection: function() {
        Mackolik.LiveScore.date = '';
        var url = APP_ROOT + '/LiveScores/SelectionData.aspx';
        Mackolik.LiveScore.type = 3;
        var callback = new AjaxCallback(function(response) { Mackolik.LiveScore.MatchSelection.getSelectionCompleted(response) }, null,
        function(response) { Mackolik.LiveScore.errorHandler(); });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);

        if (Mackolik.LiveScore.timeout) {
            clearTimeout(Mackolik.LiveScore.timeout);
        }
        Mackolik.Analytics.trackEvent('Canlı Sonuçlar', 'Maç Seçme');
    },
    getSelectionCompleted: function(response) {
        var data = eval("(" + response.responseText + ")");
        this.writeMatchesForSelection(data);
        Mackolik.LiveScore.getLiveScores(3);
    },
    writeMatchesForSelection: function(data) {
        var groupDataFormat = '<div><a href="javascript:popLeague({0})">{1}</a></div>';
        var headerRow = '<tr class="livescore-header"><td colspan=2>Lig</td><td>Saat</td><td>Kod</td><td colspan=3>Maç</td><td>&nbsp;</td><td>1</td><td>0</td><td>2</td><td>A</td><td>Ü</td></tr>'
        var rowFormat = '<tr class="alt{0}" onmouseover="highlight(this);" onmouseout="highlight(this);"><td nowrap><img src="' + GROUP_FLAG_PATH + '{1}.gif"/></td><td title="{3}" nowrap>{5}</td><td nowrap align=center>{6}</td><td align=center><a href="javascript:popComparison({10})">{9}</a></td><td align=right><a href="javascript:popTeam({7})">{2}</a></td><td align=center><a href="javascript:popMatch({10})"><b>{12}</b></a></td><td align=left><a href="javascript:popTeam({8})">{4}</a></td><td align=center><b>{13}</b></td>{11}</tr>';
        var header = '<div id="dvOpenSelection" style="display:none;text-align:right"><img src="' + IMG_PATH + '/mac-sec.gif" onclick="Mackolik.LiveScore.MatchSelection.openDiv();" style="cursor:pointer;">&nbsp;&nbsp;</div><div id="dvSelection"><div style="text-align: right;"><img src="' + IMG_PATH + '/kuponolustur.gif" onclick="Mackolik.LiveScore.MatchSelection.createCoupon();" style="cursor:pointer;">&nbsp;&nbsp;<img src="' + IMG_PATH + '/kapat-buton.gif" onclick="Mackolik.LiveScore.MatchSelection.closeDiv();" style="cursor:pointer;">&nbsp;&nbsp;</div><table cellspacing=0 cellpadding=0 id="resultsList" width="100%">';
        header = header + '<colgroup><col width=12 /><col width=35 /><col width=30 /><col width=20 /><col width=140 /><col width=30 /><col width=140 /><col width=20 /><col width=15 /><col width=15 /><col width=15 /><col width=15 /><col width=15 /></colgroup>';
        var selectionFormat = '<td align=center><input type="checkbox" onclick="Mackolik.LiveScore.MatchSelection.MMCheckBox(this,{0})" class="canlichkb" id="chkboxes1" value="{1}_1" name="chkboxes1" {2} /></td><td align=center><input type="checkbox" onclick="Mackolik.LiveScore.MatchSelection.MMCheckBox(this,{0})" class="canlichkb" id="chkboxes0" value="{1}_0" name="chkboxes0" {3} /></td><td align=center><input type="checkbox" onclick="Mackolik.LiveScore.MatchSelection.MMCheckBox(this,{0})" class="canlichkb" id="chkboxes2" value="{1}_2" name="chkboxes2" {4} /></td><td align=center><input type="checkbox" onclick="Mackolik.LiveScore.MatchSelection.MMCheckBox(this,{0})" class="canlichkb" id="chkboxesU" value="{1}_U" name="chkboxesU" {5} /></td><td align=center><input type="checkbox" onclick="Mackolik.LiveScore.MatchSelection.MMCheckBox(this,{0})" class="canlichkb" id="chkboxesO" value="{1}_O" name="chkboxesO" {6} /></td>';

        var sbScores = new StringBuilder();

        sbScores.append(header);
        sbScores.append(headerRow);
        document.getElementById('dvNoMatches').style.display = "none";
        Mackolik.LiveScore.isPlay = false;

        for (var i = 0; i < data.length; i++) {
            var matchData = data[i];
            
            this.odds[i] = [];
            this.odds[i][0] = matchData[14];
            this.odds[i][1] = matchData[15];
            this.odds[i][2] = matchData[16];
            this.odds[i][3] = matchData[17];
            this.odds[i][4] = matchData[18];
            this.odds[i][5] = matchData[19];
            this.odds[i][6] = matchData[20];
            this.odds[i][7] = matchData[21];

            if (matchData[5] != 0) {
                this.iddaaMatches.push(new Array(matchData[0], matchData[5], matchData[2], matchData[4], matchData[22], matchData[14], matchData[15], matchData[16], matchData[17], matchData[18], matchData[19], matchData[20], matchData[21]));
            }

            var sbGroupData = new StringBuilder();
            sbGroupData.appendFormat(groupDataFormat, matchData[6], matchData[11]);

            var sbSelection = new StringBuilder();
            sbSelection.appendFormat(selectionFormat, i, matchData[0], matchData[14] ? "title='" + matchData[14].toFixed(2) + "'" : "", matchData[15] ? "title='" + matchData[15].toFixed(2) + "'" : "", matchData[16] ? "title='" + matchData[16].toFixed(2) + "'" : "", matchData[20] ? "title='" + matchData[20].toFixed(2) + "'" : "", matchData[21] ? "title='" + matchData[21].toFixed(2) + "'" : "");

            sbScores.appendFormat(rowFormat, i % 2 + 1, matchData[8], matchData[2], matchData[7], matchData[4],  //4
                sbGroupData, matchData[10], matchData[1], matchData[3], matchData[5] ? matchData[5] : '&nbsp;',  // 9
                matchData[0], sbSelection, matchData[12] ? matchData[12] : "v", matchData[13] ? matchData[13] : "&nbsp;");
        }
        
        sbScores.append("</table></div>");
        var sTab = Mackolik.LiveScore.writeTabRow(3, null);
        document.getElementById('dvScores').innerHTML = sTab + "<div style='width:100%'>" + sbScores + "</div><div id=\"dvSelectionScores\"></div>";
        Mackolik.LiveScore.copyBanner();
        this.initVariables();
    },
    writeLiveScoresBySelection: function(livedata) {
        var groupDataFormat = '<div><a href="javascript:popLeague({3})">{1}</a></div>';
        var headerRow = '<tr class="livescore-header"><td colspan=2>Lig</td><td>Saat</td><td>Kod</td><td colspan=5>Maç</td><td colspan=3><a href="javascript:Mackolik.LiveScore.MatchSelection.sendCoupon({0});"><img src="' + ICON_PATH + 'kuponuoyna.gif"></a></td><td colspan=2><img src="' + IMG_PATH + '/sil-buton.gif" onclick="Mackolik.LiveScore.MatchSelection.deleteCoupon({0})" style="cursor:pointer;"></td></tr>'
        var rowFormat = '<tr class="alt{0}"><td nowrap><img src="' + GROUP_FLAG_PATH + '{12}.gif"/></td><td title="{14}" nowrap>{13}</td><td nowrap align=center>{17}</td><td nowrap><a href="javascript:popComparison({16})">{9}</a></td><td align=right><a href="javascript:popTeam({7})">{2}</a></td><td nowrap align=right>{5}</td><td nowrap class="score">{3}</td><td nowrap>{6}</td><td><a href="javascript:popTeam({8})">{4}</a></td><td align=center>{1}</td><td nowrap align=center><b>{18}</b></td><td nowrap>{11}</td><td>{19}</td><td>{20}</td></tr>';
        var header = '<table cellspacing=0 cellpadding=0 border=0 id="resultsList" width="100%">';

        header = header + '<colgroup><col width=12 /><col width=40 /><col width=40 /><col width=30 /><col width=130 /><col width=8 /><col width=70 /><col width=8 /><col width=130 /><col width=30 /><col width=30 /><col width=10 /><col width=30 /><col width=15 /></colgroup>';
        var bannerRow = '<tr><td class="bannerPlaceHolderTd" align="center" colspan="14"><div id="bannerPlaceHolder"/></td></tr>';
        var footer = '</table>';

        var sbScores = new StringBuilder();

        var serverTime = livedata.t;
        var data = livedata.m;
        if (livedata.t && document.getElementById('spTime')) {
            document.getElementById('spTime').innerHTML = livedata.t;
        }

        document.getElementById('dvNoMatches').style.display = "none";
        Mackolik.LiveScore.isPlay = false;
        var liveCoupons = getCookie("LIVE_COUPON");
        sbScores.append(header);
        sbScores.append(bannerRow);
        sbScores.append(footer);
        if (!liveCoupons) {
            document.getElementById('dvSelectionScores').innerHTML = sbScores + "<div style='color:red;font-weight:bold;height:20px;padding-top:10px;text-align:center'>Maç seçmelisiniz</div>";
            return;
        }
        var coupons = liveCoupons.split("&");
        for (var i = 0; i < coupons.length; i++) {
            var matches = coupons[i].split("|");
            sbScores.append(header);
            sbScores.appendFormat(headerRow, i);
            var rowNumber = 0;

            for (var j = 0; j < matches.length; j++) {
                var matchData = matches[j].split("_");
                var macId = matchData[0];
                var option = matchData[1];
                var odd = matchData[2];

                for (var k = 0; k < data.length; k++) {
                    if (data[k][0] == parseInt(macId)) {
                        var strRow = writeMatchRow(data[k], option, odd);
                        sbScores.append(strRow);
                        break;
                    }
                }
            }
            sbScores.append(footer);
        }
        document.getElementById('dvSelectionScores').innerHTML = "<div style='float:left;width:100%'>" + sbScores + "</div>";

        function writeMatchRow(matchData, option, odd) {
            if (odd == 0) {
                odd = null;
            }
            var score = '';
            var match_status = '';
            var stadium_status = '&nbsp;';
            var matchDetail = matchData[15];
            var redCard1 = '&nbsp;', redCard2 = '&nbsp;';
            var statusFormat = '<img src="' + ICON_PATH + 'p-form-{0}.gif">&nbsp;';
            var sbStatus = new StringBuilder();

            if (matchDetail.f2 || matchDetail.f2 == 0) {
                score = "<span class='oldScore'>(" + matchDetail.f2 + ")</span> ";
            }
            if (matchDetail.t) {
                stadium_status = '<span title="Tarafsız Saha" style="color:red;font-weight:bold">T</span>';
            }
            if (matchDetail.s) {
                stadium_status = '<span title="Seyircisiz" style="color:red;font-weight:bold">S</span>';
            }
            if (matchData[8] == 1) {
                score = score + '<img src="' + ICON_PATH + 'ball.gif">';
            }
            if (matchData[5] == 0) {
                score = score + '&nbsp;<a href="javascript:popMatch(' + matchData[0] + ')">v</a>&nbsp;';
            } else {
                if (matchDetail.k1) {
                    redCard1 = '<img src="' + ICON_PATH + 'kk-' + matchDetail.k1 + '.gif">';
                }
                var score1 = parseInt(matchData[12]);
                var score2 = parseInt(matchData[13]);
                var scoreStyle = "boldScore";
                if (
                 (score1 > score2 && (option == "1" || option == "01" || option == "12")) ||
                 (score1 == score2 && (option == "0" || option == "01" || option == "02")) ||
                 (score1 < score2 && (option == "2" || option == "02" || option == "12")) ||
                 (option == "U" && score1 + score2 < 3) ||
                 (option == "O" && score1 + score2 > 2)) {
                    scoreStyle = "green_score";
                    sbStatus.appendFormat(statusFormat, 'w');
                }
                else {
                    scoreStyle = "red_score";
                    sbStatus.appendFormat(statusFormat, 'l');
                }
                score = score + '<a href="javascript:popMatch(' + matchData[0] + ')" class="' + scoreStyle + '">' + matchData[12] + " - " + matchData[13] + '</a>';

                if (matchDetail.k2) {
                    redCard2 = '<img src="' + ICON_PATH + 'kk-' + matchDetail.k2 + '.gif">';
                }
            }
            if (matchData[9] == 1) {
                score = score + '<img src="' + ICON_PATH + 'ball.gif">';
            }
            if (matchData[5] == 0) {
                match_status = "&nbsp;";
            } else if (matchData[5] == 2) {
                match_status = "<span class='red_score'>" + matchData[6] + "</span>";
            } else if (matchData[5] == 1 || matchData[5] == 3 || matchData[5] == 5) {
                if (parseInt(matchData[6]) < 0) {
                    match_status = "<span class='red_score'>0</span>";
                } else {
                    match_status = "<span class='red_score'>" + matchData[6] + "<img src='" + ICON_PATH + "blink_bg.gif'/></span>";
                }
            } else {
                match_status = "<span class='bold_score'>" + matchData[6] + "</span>";
            }

            if (matchDetail.f1 || matchDetail.f1 == 0) {
                score = score + " <span class='oldScore'>(" + matchDetail.f1 + ")</span> ";
            }
            var rowType = (rowNumber % 2) + 1;
            rowNumber++;

            if (matchData[8] == 1 || matchData[9] == 1) {
                rowType = "goal";
                Mackolik.LiveScore.isPlay = true;
                Mackolik.LiveScore.sNewGoals += matchData[0] + '_' + matchData[12] + '_' + matchData[13] + "|";
            }
            var sbGroupData = new StringBuilder();

            sbGroupData.appendFormat(groupDataFormat, matchData[17], matchData[22], matchData[18], matchData[16]);

            if (!match_status) {
                match_status = "&nbsp;";
            }

            var team1 = matchData[2];
            if (matchDetail.e == 1) {
                team1 = "<b>" + matchData[2] + "</b>";
            }

            var team2 = matchData[4];
            if (matchDetail.e == 2) {
                team2 = "<b>" + matchData[4] + "</b>";
            }
            var optionText = option;
            switch (option) {
                case "U":
                    optionText = "A";
                    break;
                case "O":
                    optionText = "U";
                    break;
                case "01":
                    optionText = "1-X";
                    break;
                case "02":
                    optionText = "X-2";
                    break;
                case "12":
                    optionText = "1-2";
                    break;
                case "0":
                    optionText = "X";
                    break;
            }

            sbScores.appendFormat(rowFormat,
                rowType, match_status, team1, score, team2,  //4
                redCard1, redCard2, matchData[1], matchData[3], matchData[14] ? matchData[14] : '<img src="' + ICON_PATH + 'compare.gif">',  // 9
                matchData[7] ? matchData[7] : '&nbsp;', stadium_status, matchData[17], sbGroupData, matchData[18] + ' ' + matchData[19], // 14
                matchData[21], matchData[0], matchData[21], optionText, odd ? parseFloat(odd).toFixed(2) : "&nbsp;", sbStatus); // 20

            return sbScores;
        }
    }
}