// ---------------------------------------------- General ------------------------------------------------------
$(document).ready(function() {

    ie6 = $.browser.msie && ($.browser.version == "6.0") && !window.XMLHttpRequest

    //$("#footer").css("top", $(document).height() - 240 + "px");

});

function formatCurrency(num) {
    num = isNaN(num) || num == '' || num == null || num == Infinity || num == -Infinity ? 0.00 : num;
    var res = parseFloat(num).toFixed(2);
    res = res.replace('.', ',');
    return res;
}

function currencyStrToFloat(numStr) {
    if (numStr == "") return 0;
    var num = parseFloat(numStr.replace('.', '').replace(',', '.'));
    num = isNaN(num) || num == null || num == Infinity || num == -Infinity ? 0.00 : num;
    return num;
}

// ---------------------------------------------- Alert dialogs -------------------------------------------------

var _global_confirm_dialog_event_accept;
var _global_confirm_dialog_event_data;
function _global_confirm_dialog_event_fire_accept() {
    if (_global_confirm_dialog_event_accept) {
        _global_confirm_dialog_event_accept(_global_confirm_dialog_event_data);
    }
}
var _global_confirm_dialog_event_cancel;
function _global_confirm_dialog_event_fire_cancel() {
    _global_confirm_dialog_event_fired = true;
    if (_global_confirm_dialog_event_cancel) {
        _global_confirm_dialog_event_cancel(_global_confirm_dialog_event_data);
    }
}

function confirmDialog(title, message, acceptEvent, cancelEvent, data) {
    _global_confirm_dialog_event_data = data;
    _global_confirm_dialog_event_accept = function() { }
    if (acceptEvent) _global_confirm_dialog_event_accept = acceptEvent;
    _global_confirm_dialog_event_cancel = function() { }
    if (cancelEvent) _global_confirm_dialog_event_cancel = cancelEvent;
    $("#global_confim_dialog_p").text(message);
    //$('#_global_confim_dialog').dialog('open');
}


function alertD(msg) {
    alert(msg);
    //$('#GenericAlertDlg_p').text(msg);
    //$('#GenericAlertDlg').dialog('open');
}

function warnD(msg) {
    
    //$('#GenericErrorDlg_p').text(msg);
    //$('#GenericErrorDlg').dialog('open');
    alert(msg);
}

function warnLoginD(msg) {
    alert(msg);
    //$('#LoginErrorDlg_p').text(msg);
    //$('#LoginErrorDlg').dialog('open');
}

// ---------------------------------------------- General -------------------------------------------------------
function DoNothing() {

    return false;

}

// ---------------------------------------------- OnLoad / OnResize ---------------------------------------------
$(window).load(function() {

    ExternalLinks();

});


$(window).resize(function() {

    
});


// ---------------------------------------------- CSS Operation -------------------------------------------------
$(document).ready(function() {

    
    
});

// ---------------------------------------------- External Link -------------------------------------------------
function ExternalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "External")
            anchor.target = "_blank";
    }
}

// ---------------------------------------------- Ajax -------------------------------------------------



function getAjaxValueFromServer(frm) {
    var res = "";
    $.ajax({
        type: 'POST',
        url: "AjaxCall.aspx" + getRandomUrlParam(),
        data: $("#" + frm).serialize(),
        async: false,
        success: function (data) {
            if (data.successMsg) {
                res = data.successMsg;
            }
        },
        dataType: "json"
    });
return res;

}

var secureBaseUrl = "";

function getRandomUrlParam() {
    var t = new Date();
    return '?r=' + Math.random() + '&t=' + t.getTime();
}

function getRandomUrlParamEx() {
    var t = new Date();
    return '&r=' + Math.random() + '&t=' + t.getTime();
}

var IsSecurePage = false;

function ajaxPostFormSecure(frm, succesFunction, errorFunction) {

    ajaxPostFormEx(frm, succesFunction, errorFunction, IsSecurePage);
}

function ajaxPostForm(frm, succesFunction, errorFunction, isSucure) {
    ajaxPostFormEx(frm, succesFunction, errorFunction, IsSecurePage);
}

function ajaxPostFormEx(frm, succesFunction, errorFunction, isSucure) {
    var url = "AjaxCall.aspx" + getRandomUrlParam();
    if (isSucure)
        url = secureBaseUrl + url;
    $.post(url,
		    $("#" + frm).serialize(),
		    function (data) {
		        if (data.result) {
		            if (data.successMsg) {
		                if (data.successMsg != "") {
		                    alertD(data.successMsg);
		                }
		            }
		            if (succesFunction)
		                succesFunction();
		        }
		        else {

		            if (data.errorCode && data.errorCode == "LoginError") {
		                warnLoginD(data.errorMsg);
		            }
		            else if (data.errorMsg && data.errorMsg != "") {
		                warnD(data.errorMsg);
		            }

		            if (errorFunction) {
		                errorFunction();
		            }

		        }
		    }, "json").error(function (e, jqxhr, settings, exception) { alert('error in: ' + settings + ' ' + '\nerror: ' + jqxhr); });


}



// ---------------------------------------------- Credit Card validation -------------------------------------------------

var re = /^((4\d{3})|(5[1-5]\d{2})|(6011)|(3[68]\d{2})|(30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$/;  //regular expression for Credit Card checking
//var re = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$./;
function isValidCC(ccnum) {
    return re.test(ccnum)
}

var reCVC = /[^0-9]/;
function isValidCVC(cvcnum) {
    return re.test(cvcnum) && (cvcnum.length==3)
}


// ---------------------------------------------- Validate -------------------------------------------------
function IsNumber(value) {
    var pattern = new RegExp(/^(([-]{0,1}[0-9]+)?)$/);
    return (pattern.test(value));
}

function checkLength(o, n, min, max) {
    if (o) {
        if (o.val().length > max || o.val().length < min) {
            o.addClass('ui-state-error');
            var msg = n + ' en az {1}, en fazla {2} karakter olmalıdır';
            msg = msg.replace('{1}', min);
            msg = msg.replace('{2}', max);
            alertD(msg);
            return false;
        } else {
            return true;
        }
    }
    else return true;


}

function checkRegexp(o, regexp, n) {

    if (!(regexp.test(o.val()))) {
        o.addClass('ui-state-error');
        alertD(n);
        return false;
    } else {
        return true;
    }

}

function checkEmail(emailfld) {
    return checkRegexp(emailfld, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Geçerli bir e-mail girmelisiniz.");
}
// ---------------------------------------------- Form Element Default Value -----------------------------------------
(function($) {

    $.fn.defaultvalue = function() {

        // Scope
        var elements = this;
        var args = arguments;
        var c = 0;

        return (
			elements.each(function() {

			    // Default values within scope
			    var el = $(this);
			    var def = args[c++];

			    el.val(def).focus(function() {
			        if (el.val() == def) {
			            el.val("");
			        }
			        el.blur(function() {
			            if (el.val() == "") {
			                el.val(def);
			            }
			        });
			    });

			})
		);
    }
})(jQuery)

//$("#txtSearch, #ex-textarea").defaultvalue("Anahtar Kelime", "Textarea value");

function parseIntWithZero(str) {
    while (str.length > 0 && str.substr(0, 1) == '0') {
        str = str.substr(1);
    }
    if (str == '')
        return 0;
    else
        return parseInt(str);
}
//------------ signup / update profile ----------------
var serverLocation = "Default.aspx";
function signupPost(formName) {
    var name = $("#fcName");
    var email = $("#fcEmail");
    var password = $("#fcPassword");
    var passwordAgain = password;
    if ($("#fcPasswordAgain"))
        passwordAgain = $("#fcPasswordAgain");
    var agreeMembershipRule = $("#fcAgreeMembershipRule");
    var bValid = true;

    bValid = bValid && checkLength(email, 'E-Mail', 6, 80);
    bValid = bValid && checkLength(name, 'Ad Soyad', 4, 80);
    if (formName == 'signup_form')
        bValid = bValid && checkLength(password, 'Şifre', 5, 20);

    bValid = bValid && checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Geçerli bir e-mail girmelisiniz.");
    bValid = bValid && checkRegexp(password, /^([0-9a-zA-Z])+$/, 'Parola Alanı Sadece Şu Karakterlere İzin Veriyor : a-z 0-9');

    if (bValid) {
        if (password.val() != passwordAgain.val()) {
            alertD('Girdiğiniz şifreler aynı olmalıdır.');
            return;
        }
    }
    if (bValid) {
        if (formName == 'signup_form' && !agreeMembershipRule.attr('checked')) {
            alertD('Kullanım koşullarını kabul etmelisiniz.');
            return;
        }
    }

    if (bValid) {
        $('#username').val($('#fcEmail').val());
        $('#password').val($('#fcPassword').val());
        ajaxPostForm("frmValidateSignup", function () {
            if (formName == 'signup_form')
                $('#signup_form').attr('action', serverLocation);
            document.forms[formName].submit();
            return;
        });
    }
    else {
        return;
    }

}

//------------ contact ----------------
function contactPost() {
    var name = $("#fcName");
    var email = $("#fcEmail");
    var bValid = true;

    if (!checkLength(email, 'E-Mail', 6, 80)) {
        bValid = false;
        $("#fcEmail").focus();
    }
    else if (!checkRegexp(email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "Geçerli bir e-mail girmelisiniz.")) {
        bValid = false;
        $("#fcEmail").focus();
    }
    else if (!checkLength(name, 'Ad Soyad', 4, 80)) {
        bValid = false;
        $("#fcName").focus();
    }
     
    if (bValid) {
        $('#Contact_form').attr('action', serverLocation);
        document.forms['Contact_form'].submit();
        return true;
    }
    else 
        return false;
    

}




// ---------------------------------------------- Deal Refresh (Ajax) -------------------------------------------------


function timeStr(min) {
    var h = Math.floor(min / 3600);
    var m = Math.floor((min - h * 3600) / 60);
    var s = min - h * 3600 - m * 60;
    var hStr = h + '';
    var mStr = m + '';
    var sStr = s + '';
    if (hStr.length < 2)
        hStr = '0' + hStr;
    if (mStr.length < 2)
        mStr = '0' + mStr;
    if (sStr.length < 2)
        sStr = '0' + sStr;
    return '<span class="deal_activites_timer_hours">' + hStr + '</span><span class="deal_activites_timer_sperator">:</span><span class="deal_activites_timer_minutes">' + mStr + '</span><span class="deal_activites_timer_sperator">:</span><span class="deal_activites_timer_minutes">' + sStr + '</span>';
}

function timeStrToMin(remTime) {
    
    //remTime = remTime.substring(41, remTime.length - 48);
    
    var tmparts = remTime.split(':');
    if (tmparts[0][0] == '0')
        tmparts[0] = tmparts[0].substring(1);
    if (tmparts[1][0] == '0')
        tmparts[1] = tmparts[1].substring(1);
    if (tmparts[2][0] == '0')
        tmparts[2] = tmparts[2].substring(1);
    var mins = parseInt(tmparts[2]) + parseInt(tmparts[1]) * 60 + parseInt(tmparts[0]) * 3600;
    return mins;
}

var updatingIdByServerValue = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
var refreshClientTimer = 0;
function doRefreshOnClient() {
    if (postbacking)
        return false;
    if (dealIdList.length > 0) {

        var dealIdArr = dealIdList.split('_');
        for (var i = 1; i < dealIdArr.length; i++) {
            var remTime = $("#p_t_" + dealIdArr[i]).text();
            
            var mins = timeStrToMin(remTime);
            if (mins > 0) {
                mins--;
                if (updatingIdByServerValue[i - 1] != parseInt(dealIdArr[i])) {
                    var bin = document.getElementById("p_t_" + dealIdArr[i]);
                    bin.innerHTML = "";
                    $("#p_t_" + dealIdArr[i]).html(timeStr(mins));
                }
            }
        }
    }
}

var postbacking = false;
var errorCount = 0;
var currentMemberId = 0;

function doRefreshValues() {
    if (postbacking)
        return false;
    
    if (dealIdList.length > 0) {

        $('#dealIdList').val(dealIdList);
        var d = new Date();


        $.ajax({
            url: 'DealCall.aspx' + getRandomUrlParam(),
            data: $("#frmDealCall").serialize(),
            async: true,
            dataType: 'json',
            mtype: 'POST',
            contentType: 'application/json; charset=utf-8',
            complete: function (jsondata, stat) {
                if (stat == 'success') {
                    var data = eval('(' + jsondata.responseText + ')');
                    if (data.result) {
                        dealIdList = "";
                        for (var i = 0; i < data.dealList.length; i++) {
                            updatingIdByServerValue[i] = data.dealList[i].Id;
                            if (data.dealList[i].IsFinished || data.dealList[i].IsCancelled) {
                                $("#p_t_" + data.dealList[i].Id).html(data.dealList[i].RemainingTimeAsText);
                                $('#p_msg_' + data.dealList[i].Id).text(((data.dealList[i].IsCancelled) ? 'İPTAL' : 'TÜKENDİ'));
                                $('#buy_btn_span_' + data.dealList[i].Id).replaceWith('');
                            }
                            else {
                                dealIdList += "_" + data.dealList[i].Id;
                                var bin = document.getElementById("p_t_" + data.dealList[i].Id);
                                bin.innerHTML = "";
                                $("#p_t_" + data.dealList[i].Id).html(data.dealList[i].RemainingTimeAsText);
                            }
                            var bin = document.getElementById("p_c_" + data.dealList[i].Id);
                            bin.innerHTML = "";
                            $("#p_c_" + data.dealList[i].Id).text(data.dealList[i].BuyCountAsText);
                            bin = document.getElementById("deal_status_" + data.dealList[i].Id);
                            bin.innerHTML = "";
                            $("#deal_status_" + data.dealList[i].Id).text(((data.dealList[i].IsActualized) ? 'etkinlik gerçekleşiyor' : ''));
                            setTimeout("updatingIdByServerValue[" + i + "] = 0", 800);

                        }
                        if (refreshClientTimer == 0)
                            refreshClientTimer = setInterval("doRefreshOnClient()", 980);
                        setTimeout(doRefreshValues, 120000);
                    }
                    else {
                        if (data.errorMsg) {
                            if (data.errorMsg == '-22' || data.errorMsg == '') {
                                refreshPage();
                            }
                            else {
                                errorCount++;
                            }
                        }
                        else errorCount++;
                        if (errorCount > 5)
                            refreshPage();
                        else
                            setTimeout(doRefreshValues, 30000);

                    }
                    data = null;
                }
                else {
                    //alert('err' + stat);
                    setTimeout(doRefreshValues, 30000);
                }
            }
        });


    }
}


function goHome() {
    postbacking = true;
    $("#frmHome").submit();
}

function refreshPage() {
    postbacking = true;
    $("#frmRefresh").submit();
}

//----------------------------------------Header scripts ------------------------//
function openCitySelectBoard() {
    if ($('#city_selection_board').css("height") == "0px") {
        $('#city_selection_board').animate({ height: 342 }, { duration: 1000, easing: "easeInOutCirc" });
    } else {
        closeCitySelectBoard();
    }
}
function closeCitySelectBoard() {
    $('#city_selection_board').animate({ height: 0 }, { duration: 1000, easing: "easeInOutCirc" });
}
function tab(n) {
    $('#detail_tabs_container .tab').removeClass('tab_selected');
    $($('#detail_tabs_container .tab')[n]).addClass('tab_selected');
    $('.detail_elements_container .detail_tab_element').hide();
    $($('.detail_elements_container .detail_tab_element')[n]).show();
}


