﻿var userAgent = navigator.userAgent.toLowerCase();
$.browser.chrome = /chrome/.test(userAgent);
$.browser.ie = /ie/.test(userAgent);

$(
    function() {
        cms.form();
        cms.orderForm();
        cms.spanLinks();
        cms.comments();
        cms.video();
        cms.homepageTeachers();
        cms.marquee();
        cms.fixIeHeight();
        cms.content.users.init();
        cms.forums.init();
    }
)

var cms = {
    forms: {
        init: function () {
            $('div.cms-forms button:not(.noajax)').click(function () {
                var form = $(this).parents('div.cms-forms').find('form').get(0);

                if (cms.forms.check(form)) cms.forms.ajax(form, this);
            });
        },

        check: function (frm) {
            var str = Form_Err,
			err = false;

            for (var i = 0; i < frm.elements.length; i++) {
                var type = frm.elements[i].type;

                if (type != "hidden" && type != "button") {
                    var value = frm.elements[i].value;
                    var error = frm.elements[i].getAttribute("error");
                    var required = frm.elements[i].getAttribute("required");
                    var validation = frm.elements[i].getAttribute("validation");
                    var title = frm.elements[i].title;
                    var checked = frm.elements[i].checked;

                    if (required === "True") {
                        if ((type === "text" || type === "textarea") && value === "") {
                            err = true;
                            str += REQUIRED_TEXT.replace("%1", title) + "!\n";
                        }

                        if (type === "checkbox" && !checked) {
                            err = true;
                            str += REQUIRED_TEXT.replace("%1", title) + "!\n";
                        }
                    }

                    if (validation != "None" && value != "") {
                        if (!cms.forms.validate[validation](value)) {
                            err = true;
                            str += error + "!\n";
                        }
                    }
                }
            }

            if (err) {
                alert(str);
                return false;
            } else {
                return true;
            }
        },

        validate: {
            Email: function (s) {
                var re = /^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$/i;
                return re.test(s);
            },
            ILPhone: function (s) {
                var re = /^0(?:77|72|52|54|50|57|3|4|8|9)-?\d{7}$/;
                return re.test(s);
            },
            ILDate: function (s) {
                var re = /^((29\/0?2(?=\/(\d{2}(0[48]|[13579][26]|[2468][048])|([13579][26]|[2468][048])00))|([01]?\d|2[0-8])\/(0?\d|1[0-2])|(29|30)\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/\d{4})$/;
                return re.test(s);
            },
            ILSocialID: function (s) {
                var tot = 0;
                for (i = 0; i < 8; i++) {
                    x = (((i % 2) + 1) * s.charAt(i));
                    if (x > 9) {
                        x = x.toString();
                        x = parseInt(x.charAt(0)) + parseInt(x.charAt(1))
                    }

                    tot += x;
                }

                if ((tot + parseInt(s.charAt(8))) % 10 == 0) {
                    return true;
                } else {
                    return false;
                }
            }
        },

        ajax: function (form, btn) {
            var html = "";
			//url = $(form).attr("action");

            $("input:text", $(form)).each(
				function (i) {
				    html += "<strong>" + $(this).prev("label").text() + "</strong> " + $(this).val() + "<br />";
				}
			)

            $("textarea", $(form)).each(
				function (i) {
				    html += "<strong>" + $(this).prev("label").text() + "</strong> " + $(this).val() + "<br />";
				}
			)

            html += "<p>";

            $(":checked", $(form)).each(
				function (i) {
				    html += $(this).next("label").text() + "<br />";
				}
			)

            html += "</p>";

            html = FORMS_HTML.replace(/\[@URL\]/g, document.location).replace(/\[@HTML\]/g, html);

            $(form).attr({ method: "post" });

            var wrapper = $(form).closest("div.cms-forms");


            var formData = "SubmitContact=True&html=" + escape(html);

            $(btn).text(sending).attr("disabled", true);

            $.post(url, formData, function (data) {
                wrapper.html(data);
            })
        }
    },

    content: {
        users: {
            init: function () {
                if ($(".user-login").get(0)) {
                    $(".header-user-login").overlay({
                        target: ".user-login",
                        top: "25%",
                        expose: "#fafafa"
                    });

                    $("div.user-login form").submit(
					function (e) {
					    e.preventDefault();
					    return false;
					}
				)

                $("div.user-login button").click(
					function (e) {
					    e.preventDefault();

					    if ($("div.user-login form input[name='email']").val() == '') {
					        alert(USER_EMAIL_ERR);
					        return false;
					    }
					    if (!cms.forms.validate.Email($("div.user-login form input[name='email']").val())) {
					        alert(USER_EMAIL_WRONG);
					        return false;
					    }
					    if ($("div.user-login form input[name='password']").val() == '') {
					        alert(USER_PASSWORD_ERR);
					        return false;
					    }

					    var text = $(this).text();
					    var btn = this;

					    $(btn).text(sending).attr("disabled", true);

					    $.ajax({
					        url: "/login.asp",
					        type: 'GET',
					        dataType: 'json',
					        data: $("div.user-login form").serialize(),
					        success: function (data) {
					            $(btn).text(text).attr("disabled", false);

					            if (!data.response) alert(data.message);
					            else top.location.reload();
					        }
					    });
					}
				)
                }

                if ($(".user-register").get(0)) {
                    $(".header-user-register").overlay({
                        target: ".user-register",
                        top: "25%",
                        expose: "#fafafa"
                    });

                    $(".user-register form").submit(
					function (e) {
					    e.preventDefault();
					    return false;
					}
				)

                    $(".user-register button").click(
					function (e) {
					    e.preventDefault();

					    if ($("div.user-register form input[name='email']").val() == '') {
					        alert(USER_EMAIL_ERR);
					        return false;
					    }
					    if (!cms.forms.validate.Email($("div.user-register form input[name='email']").val())) {
					        alert(USER_EMAIL_WRONG);
					        return false;
					    }
					    if ($("div.user-register form input[name='name']").val() == '') {
					        alert(USER_NAME_ERR);
					        return false;
					    }

					    var text = $(this).text();
					    var btn = this;

					    $(btn).text(sending).attr("disabled", true);

					    $.ajax({
					        url: "/login.asp",
					        type: 'GET',
					        dataType: 'json',
					        data: $("div.user-register form").serialize(),
					        success: function (data) {
					            $(btn).text(text).attr("disabled", false);

					            if (!data.response) alert(data.message);
					            else {
					                $('.user-register').html(data.message);

					                setTimeout(function () {
					                    $('.header-user-register').data("overlay").close();
					                }, 3000);
					            }
					        }
					    });
					}
				)
                }
            }
        }
    },

    forums: {
        init: function () {
            $(".forum-box form").submit(function (e) {
                e.preventDefault();

                return false;
            });

            $(".forum-box button").click(
				function (e) {
					cms.forums.validate($(".forum-box form").get(0), this);
				}
			)

            if (FORUM_OPEN) {
                $(".addSubject").overlay({
                    target: ".forum-box",
                    top: "25%",
                    expose: "#fafafa"
                });
            }
            else {
                if ($(".user-login").get(0)) {
                    $(".addSubject").overlay({
                        target: ".user-login",
                        top: "25%",
                        expose: "#fafafa"
                    });
                }
            }

            $('button.deleteMessage').click(function () {
                if (confirm(FORUMS_DELETE)) {
                    var text = $(this).text();
                    var btn = this;

                    $(btn).text(sending).attr("disabled", true);

                    $.ajax({
                        type: "POST",
                        url: pageUrl,
                        data: "DeleteMessage=True&messageid=" + $(this).attr('messageid'),
                        success: function (msg) {
                            top.location.reload();
                        }
                    });
                }
            });

            $('.forum-box h3.title').html(top.location.href.indexOf('ThreadID') == -1 ? FORUMS_NEW_SUBJECT : FORUMS_NEW_REPLY);
            $('.forum-box span.forums-title').html(top.location.href.indexOf('ThreadID') == -1 ? FORUMS_TITLE_SUBJECT : FORUMS_TITLE_REPLY);
        },

        validate: function (oForm, btn) {
            var sTitle = oForm.title.value,
			sUser = oForm.user,
			sErr = false,
			sStr = Form_Err;

            if (!USER_LOGGED && sUser.value == '') {
				sStr += 'נא להזין שם \n';
                sErr = true;
			}
			
			if (sTitle == "") {
                sStr += (top.location.href.indexOf('ThreadID') == -1 ? Forums_Form_Title : Comments_Form_Title);
                sErr = true;
            }

            if (sErr) {
                alert(sStr);
                return false;
            } else {
                var vInput = document.createElement("input");
                vInput.name = "Robot";
                vInput.type = "Hidden";
                vInput.value = 0;
                oForm.appendChild(vInput);

                var text = $(btn).text();

                $(btn).text(sending).attr("disabled", true);


                $.ajax({
                    type: "POST",
                    url: oForm.action,
                    data: $(oForm).serialize(),
                    success: function (msg) {
                        $(btn).text(sending).attr("disabled", false);
                        top.location.href = top.location.href.replace(/(\?|\&)page\=(.*?)(\&|$)/i, "");
                    }
                });

                return false;
            }
        }
    },

	fixIeHeight: function() {
        var height = $(".container").height() - $(".footer").height() - $(".header").height() - $(".menu").height() - 85;
        $("div.right").css("height", height + "px");
    },
    
    fixChromeCSS: function() {
        if ($.browser.chrome) {
            $("div.contact-form textarea").css("width", "127px");
            $("div.inner-contact-form textarea").css("width", "127px");
        }
    },
    
    marquee: function() {
        if ($("div.news marquee").get(0)) {
            $("div.news marquee").marquee("pointer").mouseover(
                    function() {
                        $(this).trigger("stop");
                    }
                ).mouseout(
                    function() {
                        $(this).trigger("start");
                    }
                )
        }
    },
    
    homepageTeachers : function(){
        if ($("div.homepage-teachers").get(0)) {
            $("div.homepage-teachers-tabs").tabs("div.homepage-teachers > div.article-item", {
				rotate: true
                
            }).slideshow({
				autoplay: true,
				interval: 10000,
				clickable: false
            });

            var tabs = $("div.homepage-teachers-tabs").tabs();
            

        }
    },

    spanLinks: function() {
        $("div.ronin span[href]").each(
            function() {
                var $href = $(this).attr("href"),
                    $text = $(this).text();

                $(this).replaceWith("<a href=\"" + $href + "\" target=\"_blank\">" + $text + "</a>");
            }
        )
    },

    video: function() {
        $("div.gallery-picture[href]").find("span.play").show();
        $("div.gallery-picture[href]").one("click",
            function() {
                $(this).html(
                "<div class=\"player\"><a href=\"" + $(this).attr("href") + "\" style=\"display:block;width:500px;height:400px;\" id=\"player\"></a><div>"
                )
                flowplayer("player", "/swf/flowplayer-3.1.5.swf")
            }
        )
    },
    
    gallery: function() {
        if ($("div.gallery-navigation")) {
            $("div.gallery-navigation a").live("click",
            function(e) {
                e.preventDefault();
                $("div.right-content").load($(this).attr("href") + " div.right-content");

                }
            )
        }
    },

    comments: function() {
        if ($(".comments")) {
            $(".add-comment h3").click(
            function() {
                $(".add-comment form div").toggle();
            }
        )

        $(".comments span[href]").attr("title", function() { return $(this).attr("href"); }).addClass("link").click(function() { window.location = "mailto:" + $(this).attr("href"); });

        $(".comments li a").click(
                function() {
                    $(this).nextAll("div").toggle();
                }
            );
        }
    },

    form: function() {
        if ($("div.form")) {
            $("div.form form").submit(
                function(e) {
                    return false;
                }
            )
            $("div.form form button").click(
                function() {
                    if (CheckFrm($("div.form form").get(0))) {

                        var html = "";

                        $("div.form form input:text").each(
                            function(i) {
                                var $this = $(this);
                                html += $this.prev("label").text() + " " + $this.val() + "<br />";
                            }
                        )

                        $("div.form form textarea").each(
                            function(i) {
                                var $this = $(this);
                                html += $this.prev("label").text() + " " + $this.val() + "<br />";
                            }
                        )

                        $("div.form form :checked").each(
                            function(i) {
                                var $this = $(this);
                                html += $this.next("label").text() + "<br />";
                            }
                        )

                        $("div.form form").attr({ method: "post" });

                        var wrapper = $("div.form");

                        var formData = "SubmitContact=True&html=" + escape(html);

                        $(this).text(sending).attr("disabled", true);

                        $.post(url, formData, function(data) {
                            wrapper.html(data);
                            }
                        )
                    }
                }
            )
        }
    },

    orderForm: function() {
        if ($("div.order-form")) {
            $("div.order-form form").submit(
                function(e) {
                    return false;
                }
            )
            $("div.order-form form button").click(
                function() {
                if (CheckFrm($("div.order-form form").get(0))) {

                        var html = "";

                        $("div.order-form form input:text, div.order-form form input:hidden").each(
                            function(i) {
                                var $this = $(this);
                                html += $this.prev("label").text() + " " + $this.val() + "<br />";
                            }
                        )

                        $("div.order-form form textarea").each(
                            function(i) {
                                var $this = $(this);
                                html += $this.prev("label").text() + " " + $this.val() + "<br />";
                            }
                        )

                        $("div.order-form form :checked").each(
                            function(i) {
                                var $this = $(this);
                                html += $this.next("label").text() + "<br />";
                            }
                        )

                        $("div.order-form form").attr({ method: "post" });

                            var wrapper = $("div.order-form");

                        var formData = "SubmitContact=True&html=" + escape(html);

                        $(this).text(sending).attr("disabled", true);

                        $.post(url, formData, function(data) {
                            wrapper.html(data);
                        }
                        )
                    }
                }
            )
        }
    }
}


